meeny
meeny is a universal AI trading agent — one intelligent layer that reasons across equities, crypto, memecoins, prediction markets, and sports betting, then researches, compares, and executes through the right integration for each market.
Most trading bots are single-purpose: one bot for stocks, another for crypto, a third for betting. meeny is the opposite. It is a single agent with a shared reasoning core and market-specific adapters — so a strategy, a risk budget, and a portfolio view span every asset class at once.
meeny runs on the MPP platform for market data, execution, and portfolio state, and uses Stripe for fiat funding. You talk to meeny in plain language or drive it programmatically through the SDK.
5+
Market classes
1
Unified agent core
Stripe
Fiat funding rail
24/7
Autonomous execution
Concept
What meeny is (and is not)
meeny is infrastructure for autonomous, multi-market trading intelligence — not a chatbot with a trading plugin bolted on.
The core idea is that meeny is not a separate bot for each market. It is one agent that understands different market structures, evaluates opportunities on a common scale of expected value and risk, and routes execution to whichever venue or integration is appropriate. Stocks, crypto, memecoins, prediction markets, and sports all flow through the same reasoning loop.
That distinction matters because capital is finite. If a stock screener and a token scanner each run in isolation, nothing can tell you whether this week's best equity setup is actually a better use of a dollar than an event contract expiring on Friday. Fragmented tools produce fragmented decisions: duplicated exposure, uncoordinated risk, and no single answer to the only question that matters — where should the next dollar go?
meeny resolves that by separating reasoning from venue mechanics. The reasoning core is market-agnostic: it thinks in probabilities, expected value, and downside. Each MarketAdapter then translates that intent into the specifics of a venue — an order type on a brokerage, a swap route on-chain, a contract on an event market. Adding a new market means writing an adapter, not another strategy.
The practical consequence is that one mandate governs everything. A single drawdown limit applies across all five market classes, one portfolio view reflects every account, and one audit trail explains every decision. You change the risk budget once and every market respects it immediately.
One agent, many markets
A shared strategy, risk budget, and memory operate across every asset class instead of being fragmented across single-purpose bots.
Opportunity, normalized
meeny expresses every idea — a stock, a token, a contract, a bet — as probability, expected value, and downside so they can be compared directly.
Programmable
Drive meeny conversationally or through the SDK. Strategies, tools, and guardrails are all configurable as code.
Governed by design
Position caps, per-market limits, and human-in-the-loop approvals are first-class, not an afterthought.

meeny vs. a generic assistant
Core concepts
A handful of primitives show up throughout these docs. Everything else composes from them.
| Term | What it means |
|---|---|
Mandate | The declarative contract — objective, universe, risk budget, funding, and autonomy — that governs every decision meeny makes. |
Opportunity | Any candidate trade normalized to probability, expected value, and downside so it can be ranked against ideas from other markets. |
MarketAdapter | The per-market plugin that turns the core’s intent into venue-specific research, quotes, orders, and positions. |
Receipt | The immutable record returned by every fill and written to the portfolio and audit log. |
Cycle | One pass of the reasoning loop: perceive → estimate → compare → decide → learn. |
What meeny is not
Being explicit about the boundaries is as useful as the feature list. meeny deliberately does not try to be these things:
| Not this | Why | What meeny does instead |
|---|---|---|
| A signal service | Alerts push the hard part — sizing, timing, and risk — back onto you. | Carries an idea through to a sized, limit-checked order with a written rationale. |
| A black-box strategy | You cannot govern what you cannot inspect. | Every decision exposes its inputs, its score, and the limits it was checked against. |
| A custodian | Holding user funds is a different business with different obligations. | Fiat rails run on Stripe; crypto settles to wallets you control. |
| A guaranteed return | No system can remove market risk. | Bounds downside explicitly through the mandate and reports outcomes honestly. |
Design principles
Four commitments shape the architecture. When a tradeoff arises, these decide it.
Comparability first
If an opportunity cannot be reduced to probability, expected value, and downside, it does not enter the ranking. Uncomparable ideas are excluded rather than guessed at.
Limits are not advisory
Risk checks run inside the execution path, not alongside it. An order that breaches the mandate cannot reach a venue.
Explainable by default
Every decision carries the evidence that produced it. If meeny cannot say why, it does not act.
Markets are pluggable
New venues arrive as adapters behind a stable interface, so adding a market never destabilizes the reasoning core.
The fastest way to understand meeny is to run one cycle end to end. The four steps below install the SDK, authenticate, add buying power, and execute a single pass of the reasoning loop. Start with autoExecute: false — meeny will research and rank without placing anything, which is the right way to read its judgment before delegating capital.
- 1
Install the SDK
Add the meeny client to your project with
npm i @mpp/meeny. The SDK ships typed clients for every supported market. - 2
Authenticate to MPP
Create an
MPP_API_KEYfrom the platform dashboard and initialize the agent. Market data and execution both flow through MPP. - 3
Fund with Stripe
Add fiat via Stripe (card, bank & Apple Pay) or bridge crypto. Funding is what turns a simulated idea into a live position.
- 4
Set a mandate & run
Define a risk budget and universe, then call
meeny.run(). meeny researches, ranks opportunities, and proposes or places orders inside your limits.
import { meeny } from "@mpp/meeny"
const meeny = new meeny({
apiKey: process.env.MPP_API_KEY,
funding: "stripe", // fiat rail: card, bank & Apple Pay
mandate: {
objective: "maximize_risk_adjusted_return",
riskProfile: "balanced",
maxDrawdown: 0.15,
markets: ["equities", "crypto", "prediction"],
},
})
// Research + rank across every enabled market, then act within limits.
const plan = await meeny.run({
budgetUSD: 500,
autoExecute: false, // set true to let meeny place orders
})
console.log(plan.rankedOpportunities)Reading the plan
meeny.run() returns a plan, not just a list of tickers. Each entry in rankedOpportunities carries the score that earned it a place, the market it came from, the size meeny would allocate, and the mandate checks it passed. Reading a few of these side by side is the quickest way to calibrate whether the agent's priorities match yours.
| Field | Type | What to look at |
|---|---|---|
| score | number | Risk-adjusted rank. Comparable across every market class. |
| market | string | Which adapter sourced the idea — equities, crypto, prediction, events. |
| sizeUSD | number | Proposed allocation after position caps and per-market weights. |
| rationale | string | Plain-language thesis. If this reads thin, tighten the universe. |
| checks | object | Every mandate rule evaluated, and whether it passed. |
Run it flat before you run it live
autoExecute off for the first several cycles and compare meeny's ranking against what you would have done. It costs nothing and tells you far more than a backtest.What you can trade on day one
Equities
Stocks & ETFs via connected brokerages.
Crypto
Majors, alts, and memecoins on-chain and on CEXs.
Events
Prediction markets and sports outcomes.
Funding runs on — see Funding & payments for the full deposit flow.
Markets
Supported markets
meeny treats every tradable market as a source of probabilistic opportunity. New market types plug into the same core through adapters.
Each market has its own microstructure, liquidity profile, settlement mechanics, and data. meeny abstracts these behind a common MarketAdapter interface: the reasoning core stays market-agnostic, while adapters translate its intent into venue-specific orders.
Equities & ETFs
Fundamental + technical signals, earnings, and factor exposure via brokerages.
Crypto
Majors and alts across CEX and on-chain venues, 24/7.
Memecoins
Momentum, liquidity, and rug-risk screening for high-volatility tokens.
Prediction markets
Event contracts priced as implied probability of real-world outcomes.
Sports & events
Odds modelling and edge detection against sportsbook lines.
Extensible
New market classes register through the adapter interface over time.

One universe, one leaderboard
How the markets differ
The adapter for each market absorbs these structural differences so the core never has to.
| Market | Session | Settlement | Primary signals |
|---|---|---|---|
| Equities & ETFs | Exchange hours | T+1 via brokerage | Fundamentals, factors, earnings |
| Crypto | 24/7 | On-chain / CEX | Liquidity, on-chain flow, regime |
| Memecoins | 24/7 | On-chain | Momentum, holders, contract risk |
| Prediction | Until event | Contract resolves to $0/$1 | Model probability vs. implied odds |
| Sports beta | Until event | Book settlement | Outcome model vs. vig-adjusted line |
Market adapter
Equities & ETFs
Public-market instruments with rich fundamentals, corporate actions, and regulated execution.
For equities, meeny blends fundamentals (valuation, growth, quality), technical structure, and event context (earnings, guidance, macro) into a single conviction score. It connects to a user's brokerage for holdings, quotes, and order routing, and understands allocation, spending, and net worth as part of the wider portfolio.

const ideas = await meeny.equities.screen({
universe: "sp500",
signals: ["quality", "momentum", "earnings_surprise"],
maxPositions: 8,
})
// Each idea is normalized to expected value + downside.
ideas.forEach(i =>
console.log(i.ticker, i.expectedReturn, i.maxDrawdown, i.confidence),
)Market adapter
Crypto & memecoins
Always-on markets spanning blue-chip assets to highly speculative tokens — with risk screening tuned to volatility.
Crypto never closes, so meeny operates continuously. For established assets it weighs liquidity, on-chain flows, and market regime. For memecoins, it adds aggressive safety screening — liquidity depth, holder concentration, contract risk, and momentum decay — because the failure modes differ sharply from equities.
Blue-chip crypto
Regime-aware sizing on BTC, ETH, and major alts across venues.
Memecoin guardrails
Rug/honeypot checks, liquidity and holder analysis, and tight stop discipline.
const token = await meeny.crypto.assess("0xTOKEN...", {
checks: ["liquidity", "holders", "contract_risk", "momentum"],
})
if (token.risk === "high") meeny.skip(token)
else meeny.propose({ token, sizeUSD: 25, stopLoss: 0.2 })Market adapter
Prediction markets
Event contracts are pure probability instruments — meeny's native language.
A prediction-market contract that settles at $1 if an event occurs is simply a tradable probability. meeny builds an independent probability estimate for the event, compares it to the market's implied odds, and takes the position when its edge clears costs and its risk limits.
const market = await meeny.prediction.get("us-cpi-above-3pct")
// meeny's model vs. the market's implied probability.
const edge = meeny.estimate(market) - market.impliedProbability
if (edge > market.fees + meeny.mandate.minEdge) {
meeny.propose({ market, side: "yes", edge })
}Market adapter
Sports & event betting
Sportsbook lines are odds with a margin. meeny models the true outcome and hunts for mispricing.
Sports betting is handled as another probability market: meeny models outcome likelihoods from team/player data and situational factors, removes the book's vig, and bets only where its estimated probability beats the implied line by a configurable margin. Stake sizing follows the same risk core as every other market.
Beta capability
Architecture
Conceptual architecture
A market-agnostic reasoning core, surrounded by pluggable adapters for data, execution, and funding.
meeny is organized in three layers. The reasoning core holds the mandate, memory, and decision loop and is identical for every market. Market adapters translate the core's intent into venue-specific research and orders. The platform layer — MPP for data/execution/portfolio and Stripe for funding — provides the rails everything runs on.
The boundary between these layers is the important part. The core is forbidden from knowing venue specifics: it cannot reference a ticker format, an order type, or a chain. It only emits intent — “take this much exposure to this outcome at this price or better.” Adapters own every detail below that line.
This keeps the risky surface small. A bug in the crypto adapter cannot corrupt equity reasoning, and a change to the scoring model applies everywhere at once without touching a single venue integration. It also means the same mandate produces consistent behavior even as venues are added, replaced, or removed underneath.
| Layer | Owns | Explicitly does not own |
|---|---|---|
| Reasoning core | Mandate, memory, scoring, sizing, the decision loop. | Venue APIs, order formats, chain or broker specifics. |
| Market adapters | Research, quotes, order construction, position reads. | Risk policy, portfolio-level allocation, ranking. |
| Platform rails | Market data, execution transport, funding, audit storage. | Any trading judgment whatsoever. |
Reasoning core
Mandate, memory, opportunity scoring, and the research → decide → act loop.
Market adapters
Per-market data + execution behind one MarketAdapter contract.
Platform rails
MPP data & execution; Stripe funding; portfolio and audit state.
How agentic funding and payouts work on Stripe — the same rails that fund meeny.
interface MarketAdapter {
research(context: Mandate): Promise<Opportunity[]>
price(id: string): Promise<Quote>
execute(order: Order): Promise<Receipt>
positions(): Promise<Position[]>
}
// The core never knows which market it is talking to.
class meenyCore {
constructor(private adapters: Record<Market, MarketAdapter>) {}
async cycle(mandate: Mandate) { /* research → rank → act */ }
}Intelligence
How meeny reasons about opportunities
Every idea — regardless of market — is reduced to probability, expected value, and downside so it can be ranked on one scale.
- 1
Perceive
Pull live data through each adapter — prices, fundamentals, on-chain flows, odds, and news.
- 2
Estimate
Build an independent probability / fair-value estimate for each candidate opportunity.
- 3
Compare
Normalize to expected value and downside, then rank all candidates across every market together.
- 4
Decide
Size positions against the mandate and risk budget, discarding anything that fails a limit.
- 5
Learn
Write outcomes to memory so future cycles are calibrated by realized performance.
Cross-market comparison
A single ranking function means capital always flows to the best risk-adjusted edge, wherever it lives.
Calibrated conviction
Position size scales with confidence and edge, not gut feel — and shrinks as uncertainty rises.

The scoring model
Every opportunity collapses to a single comparable number — an edge-weighted, risk-penalized score. Conceptually meeny ranks candidates by expected value net of a downside penalty and transaction cost:
score = p · payoff − (1 − p) · loss − λ · σ − c
where p is meeny's estimated probability, σ is expected volatility of the outcome, λ is the risk-aversion set by your profile, and c is round-trip cost. Only positive-score ideas that also clear every hard limit survive to sizing.
pnumber- meeny’s independent probability / fair-value estimate for the outcome, calibrated against realized history.
lambdanumber- Risk aversion derived from the mandate's
riskProfile. Higher values punish volatility harder and shrink positions. sigmanumber- Expected dispersion of the outcome — wider for memecoins and event bets, tighter for blue chips.
cnumber- Round-trip cost estimate: spread, fees, slippage, and (for events) the book’s vig.
Execution
Execution flow
From a ranked opportunity to a filled order — with approvals and receipts at every hop.
Once an opportunity clears risk checks, meeny constructs an order for the target market adapter. Depending on your mandate it either proposes the trade for human approval or executes autonomously. Every fill returns a Receipt that is written to the portfolio and audit log.
- 1
Intent
Core selects an opportunity and target size within limits.
- 2
Pre-trade checks
Position caps, per-market exposure, and available funding are validated.
- 3
Route
The market adapter formats and submits the order to the venue via MPP.
- 4
Settle & record
Fills return a receipt; portfolio, PnL, and memory are updated.

Autonomy is a dial
autoExecute: false to keep meeny in propose-only mode, or raise the dial per market so low-risk trades execute while large or novel ones wait for approval.Safety
Risk controls
Risk management is part of the core loop, applied identically across every market.
Risk controls in meeny are not a post-trade report. They execute inside the decision path, so an order that would breach a limit is never constructed in the first place. This is a deliberate architectural choice: advisory limits get overridden, structural limits do not.
Limits come in two flavors. Hard limits are binary — breach one and meeny stops, no discretion involved. Soft limits shape behavior continuously, scaling position size down as exposure concentrates or uncertainty widens. Most day-to-day protection comes from the soft limits; the hard limits exist to catch the tail.
Hard limits
Max drawdown, per-position and per-market caps, and daily loss stops halt trading when breached.
Exposure budgeting
A single risk budget is allocated across markets so no asset class can quietly dominate.
Continuous re-check
Limits are re-evaluated every cycle, not just at entry — positions are trimmed as risk shifts.
Human-in-the-loop
Approvals, allow-lists, and kill-switches keep a person in control of consequential actions.
meeny.setRisk({
maxDrawdown: 0.15, // stop trading past a 15% drawdown
perMarket: {
equities: { maxWeight: 0.6 },
crypto: { maxWeight: 0.3, memecoinCap: 0.05 },
prediction: { maxWeight: 0.1 },
},
requireApprovalOver: 250, // USD notional needing human sign-off
})Limit reference
Each limit answers a different failure mode. Setting all of them is not redundant — they constrain different axes of risk.
| Limit | Kind | Protects against |
|---|---|---|
maxDrawdown | Hard | A losing streak compounding past your tolerance. Trading halts entirely. |
maxWeight | Soft | One market class quietly becoming the whole portfolio. |
memecoinCap | Soft | Tail-risk assets taking more than a token allocation. |
requireApprovalOver | Hard | Large notional moving without a human seeing it first. |
dailyLossStop | Hard | A single bad session cascading. Resets on the next window. |
What happens when a limit trips
Breaches are events, not silent no-ops. When a hard limit trips, meeny pauses the affected scope, writes a receipt explaining exactly which rule failed and with what values, and surfaces the pause in the activity timeline. Nothing resumes automatically — you decide whether to widen the limit, reduce exposure, or stay flat.
Soft limits behave differently: they do not pause anything. They reduce the size meeny is willing to take until the constraint is satisfied, and if the resulting size falls below the minimum viable position, the opportunity is simply dropped from the plan with the reason recorded.
Start tighter than feels necessary
Platform
Funding & payments
Capital enters through Stripe for fiat and on-chain bridges for crypto. Funding is what turns meeny's proposals into live positions.
When a user adds funds, meeny offers two paths. Pay with Fiat uses Stripe to accept cards, bank transfers, and Apple Pay, with Stripe handling identity verification, PCI compliance, and settlement. Deposit Crypto bridges assets from another chain or wallet. Either way, cleared balance becomes buying power the agent can deploy across markets.

Pay with Fiat — Stripe
Card, bank & Apple Pay. Stripe manages verification, compliance, and payouts.
Deposit Crypto
Bridge from another chain or wallet for instant on-chain settlement.
First-deposit limits
Early card/bank limits may be lower while Stripe finishes identity checks — they rise after a first successful purchase.
// Fiat top-up via Stripe — returns a hosted checkout session.
const session = await meeny.funding.deposit({
method: "stripe", // card · bank · Apple Pay
amountUSD: 50,
})
redirect(session.url)
// ...or bridge crypto from an external wallet.
await meeny.funding.deposit({ method: "crypto", asset: "USDC", chain: "base" })Server-side validation
Deposit methods at a glance
| Method | Rail | Speed | Notes |
|---|---|---|---|
| Card | Stripe | Instant | Lower limits until the first purchase clears identity checks. |
| Bank transfer | Stripe | 1–3 days | Higher limits; best for larger balances. |
| Apple Pay | Stripe | Instant | Tokenized card rails with device authentication. |
| Crypto bridge | On-chain | Minutes | Bridge USDC or native assets from another wallet or chain. |
Platform
Portfolio & accounts
meeny keeps one net-worth view across connected brokerages, wallets, and cash — the ground truth its risk engine reasons over.
Connect brokerages and wallets and meeny consolidates holdings into a single net worth, allocation breakdown, and spending view. This unified portfolio is not just reporting — it is the state the risk engine reads when sizing every new position.

Allocation
Live breakdown by asset class and account, updated as trades settle.
Balances
Cash, crypto, and holdings unified into one buying-power figure.
Connections
Brokerages, banks, and wallets link once and stay in sync.
Platform
Agents & copy trading
Run purpose-built meeny agents per asset, compare their track records, and copy or counter them.
Beyond a single mandate, you can spin up specialized agents — a Bitcoin agent, a Tesla agent, an Avalanche agent — each with its own strategy and live PnL, win rate, and trade count. Users can Copy an agent to mirror its trades or Counter to take the opposite side, all governed by the same risk core.
Specialized agents
Each agent is versioned and benchmarked with transparent performance metrics.
Copy & counter
Follow a strategy one-click, or systematically fade it — sizing still respects your limits.
Platform
Integrations
meeny connects to the venues, data, and rails each market needs through the MPP platform.
Stripe
Fiat funding: cards, bank transfers, and Apple Pay with compliant settlement.
Brokerages
Equity holdings, quotes, and order routing for connected accounts.
Crypto venues
CEX and on-chain execution plus wallet bridging.
Market data
Prices, fundamentals, on-chain flows, odds, and news feeds.
Prediction & books
Event-contract and sportsbook connectivity where available.
Custom adapters
Register your own venue through the MarketAdapter interface.
Platform
Security & compliance
meeny handles capital, so security is not a feature bolted on later — it is enforced at the funding rail, the execution boundary, and the audit log.
Money movement is delegated to Stripe, which carries PCI DSS Level 1 certification and runs identity verification. meeny never stores raw card data. Trade authority is bounded by your mandate, and every action is written to an append-only receipt log you can export or stream.
Delegated custody
Fiat rails run on Stripe; crypto settles on-chain to wallets you control. meeny reasons over balances, it does not hold your keys.
Scoped authority
Every order is checked against the mandate's limits before it reaches a venue. Breaching a hard limit pauses the agent.
Immutable audit log
Proposals, approvals, fills, and funding events are recorded as receipts — a complete, exportable trail.
Human-in-the-loop
Approval thresholds keep a person on trades above a size you set, even in autonomous mode.
| Control | Owner | What it guarantees |
|---|---|---|
| PCI DSS Level 1 | Stripe | Card data is tokenized and never touches meeny servers. |
| Identity verification | Stripe | KYC on funding before higher limits unlock. |
| Mandate limits | meeny core | Drawdown, per-market, and approval caps enforced pre-trade. |
| Receipt log | MPP platform | Tamper-evident record of every decision and fill. |
Not Financial Advice
Reference
Configuration
A single mandate object defines objective, universe, risk, funding, and autonomy for the whole agent.
Configuration is declarative. The Mandate is the contract between you and meeny: it decides which markets are live, how aggressively to trade, how funding flows, and when a human must approve.
import type { Mandate } from "@mpp/meeny"
export const mandate: Mandate = {
objective: "maximize_risk_adjusted_return",
riskProfile: "balanced", // conservative | balanced | aggressive
markets: ["equities", "crypto", "prediction", "sports"],
funding: { fiat: "stripe", crypto: true },
risk: {
maxDrawdown: 0.15,
requireApprovalOver: 250,
perMarket: { crypto: { memecoinCap: 0.05 } },
},
autoExecute: false,
}Mandate fields
objectiveenumrequired- What meeny optimizes for, e.g. maximize_risk_adjusted_return or preserve_capital.
riskProfileenumrequired- One of
conservative,balanced, oraggressive— sets the risk-aversion used in scoring and sizing. marketsMarket[]required- The enabled market adapters. Only listed markets are researched or traded.
fundingFundingConfig- Fiat rail (
"stripe") and whether crypto bridging is allowed. riskRiskConfig- Hard limits: max drawdown, approval thresholds, and per-market caps.
autoExecuteboolean- When false, meeny only proposes trades; when true it places them within limits.
Reference
SDK & API
Typed clients for the agent core and every market adapter, plus a REST/webhook surface for server integrations.
TypeScript SDK
First-class client: @mpp/meeny with full types for mandates and adapters.
REST API
Language-agnostic endpoints for funding, orders, and portfolio state.
Webhooks
Subscribe to fills, receipts, and risk events for your own systems.
// React to meeny events server-side.
meeny.on("order.filled", async (receipt) => {
await db.trades.insert(receipt)
})
meeny.on("risk.breached", async (event) => {
await notify(event) // drawdown, per-market cap, etc.
await meeny.pause()
})Webhook events
| Event | Fires when | Payload |
|---|---|---|
order.proposed | meeny recommends a trade in propose-only mode | Opportunity + suggested size |
order.filled | An order settles at a venue | Receipt with price, size, fees |
risk.breached | A hard limit is crossed | Limit, current value, market |
funding.settled | A Stripe or crypto deposit clears | Amount, method, new balance |
Errors & retries
Every SDK call either returns a result or throws a typed MeenyError carrying a stable code. Codes are the contract — match on them rather than on message strings, which are meant for humans and may change.
| Code | Meaning | Safe to retry? |
|---|---|---|
insufficient_funding | Buying power is below the proposed size. | After funding clears |
limit_breached | A hard mandate limit blocked the order. | No — widen the limit or reduce size |
venue_unavailable | The target venue rejected or timed out. | Yes, with backoff |
approval_required | Notional exceeded the approval threshold. | After a human approves |
stale_quote | Price moved past tolerance before submit. | Yes, re-price first |
Idempotency
idempotencyKey on any call that moves money or places an order. A retried request with the same key returns the original receipt instead of creating a second position or a duplicate charge.FAQ
Does meeny trade on its own without me?+
autoExecute: false meeny proposes trades and waits for approval. You can raise autonomy per market so small, low-risk trades execute automatically while larger ones still need sign-off.How is my money actually held and moved?+
Can I add a market that isn’t listed?+
MarketAdapter interface and register it. The reasoning core treats your venue exactly like the built-in ones.What happens if a venue is down mid-cycle?+
How does meeny avoid double-counting the same exposure?+
Can I run meeny read-only across accounts I already manage?+
autoExecute off, and set no funding source. meeny will reconcile positions, compute exposure, and rank opportunities without ever constructing an order — useful as a second opinion on a portfolio you trade yourself.Is this financial advice?+
v1.4Aug 2026LatestSports & events markets (beta)
Added an events adapter that prices sportsbook lines against an internal outcome model and ranks them on the same edge-adjusted scale as every other market.
v1.3Jul 2026Agents & copy trading
Spin up specialized per-asset agents with transparent PnL, then copy or counter them one-click — all still governed by your mandate limits.
v1.2Jun 2026Stripe funding rail
Fiat deposits via card, bank transfer, and Apple Pay through Stripe, with server-side validation and idempotent charges.
v1.1May 2026Prediction markets
Event-contract adapter comparing meeny’s modeled probability to implied odds to surface positive-expected-value contracts.
v1.0Apr 2026Universal reasoning core
First release: one risk-adjusted opportunity scale across equities, crypto, and memecoins with a declarative mandate.
meeny · universal trading agent · v1 docs