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 conversational interface with Strategize, Research, Compare, Learn and Code modes
Talk to meeny in natural language — or switch to Strategize, Research, Compare and Code modes.

meeny vs. a generic assistant

A generic assistant answers questions. meeny holds portfolio state, reasons about live markets, respects a risk mandate, and can execute — with the receipts and audit trail a trading system requires.

Core concepts

A handful of primitives show up throughout these docs. Everything else composes from them.

TermWhat it means
MandateThe declarative contract — objective, universe, risk budget, funding, and autonomy — that governs every decision meeny makes.
OpportunityAny candidate trade normalized to probability, expected value, and downside so it can be ranked against ideas from other markets.
MarketAdapterThe per-market plugin that turns the core’s intent into venue-specific research, quotes, orders, and positions.
ReceiptThe immutable record returned by every fill and written to the portfolio and audit log.
CycleOne 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 thisWhyWhat meeny does instead
A signal serviceAlerts 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 strategyYou cannot govern what you cannot inspect.Every decision exposes its inputs, its score, and the limits it was checked against.
A custodianHolding user funds is a different business with different obligations.Fiat rails run on Stripe; crypto settles to wallets you control.
A guaranteed returnNo 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.

Get started

Quickstart

Go from install to a first researched, risk-checked order in a few minutes.

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. 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. 2

    Authenticate to MPP

    Create an MPP_API_KEY from the platform dashboard and initialize the agent. Market data and execution both flow through MPP.

  3. 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. 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.

quickstart.ts
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.

FieldTypeWhat to look at
scorenumberRisk-adjusted rank. Comparable across every market class.
marketstringWhich adapter sourced the idea — equities, crypto, prediction, events.
sizeUSDnumberProposed allocation after position caps and per-market weights.
rationalestringPlain-language thesis. If this reads thin, tighten the universe.
checksobjectEvery mandate rule evaluated, and whether it passed.

Run it flat before you run it live

Leave 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.

Beta

Events

Prediction markets and sports outcomes.

Funding runs on Stripe — 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.

Beta

Sports & events

Odds modelling and edge detection against sportsbook lines.

Extensible

New market classes register through the adapter interface over time.

meeny agent gallery showing Claude Bitcoin, Claude Tesla and Grok Avalanche agents with PnL, win rate and trade counts
Specialized meeny agents across assets — each with live PnL, win rate, and trade history.

One universe, one leaderboard

Because opportunities are normalized, a memecoin momentum trade and an equity earnings play compete for the same capital on the same risk-adjusted scale — no siloed budgets.

How the markets differ

The adapter for each market absorbs these structural differences so the core never has to.

MarketSessionSettlementPrimary signals
Equities & ETFsExchange hoursT+1 via brokerageFundamentals, factors, earnings
Crypto24/7On-chain / CEXLiquidity, on-chain flow, regime
Memecoins24/7On-chainMomentum, holders, contract risk
PredictionUntil eventContract resolves to $0/$1Model probability vs. implied odds
Sports betaUntil eventBook settlementOutcome 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.

Browse portfolios by hedge funds and public figures, with watchlist, top movers and market news
meeny can mirror and learn from tracked portfolios, watchlists, movers, and live news.
equities.ts
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.

memecoin-screen.ts
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.

prediction.ts
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

Sports & event betting is rolling out progressively and availability depends on jurisdiction and connected books. It shares meeny's reasoning and risk engine with all other markets.

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.

LayerOwnsExplicitly does not own
Reasoning coreMandate, memory, scoring, sizing, the decision loop.Venue APIs, order formats, chain or broker specifics.
Market adaptersResearch, quotes, order construction, position reads.Risk policy, portfolio-level allocation, ranking.
Platform railsMarket 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.

Getting started with AI agents on Stripe

How agentic funding and payouts work on Stripe — the same rails that fund meeny.

architecture.ts
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. 1

    Perceive

    Pull live data through each adapter — prices, fundamentals, on-chain flows, odds, and news.

  2. 2

    Estimate

    Build an independent probability / fair-value estimate for each candidate opportunity.

  3. 3

    Compare

    Normalize to expected value and downside, then rank all candidates across every market together.

  4. 4

    Decide

    Size positions against the mandate and risk budget, discarding anything that fails a limit.

  5. 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.

Financial profile with risk gauge set to Conservative, suggested allocation and investing horizon
meeny grounds its reasoning in your risk profile, objective, and investing horizon.

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. 1

    Intent

    Core selects an opportunity and target size within limits.

  2. 2

    Pre-trade checks

    Position caps, per-market exposure, and available funding are validated.

  3. 3

    Route

    The market adapter formats and submits the order to the venue via MPP.

  4. 4

    Settle & record

    Fills return a receipt; portfolio, PnL, and memory are updated.

Activity view with a calendar and transaction history for connected accounts
Every action lands in a transparent activity timeline you can audit and export.

Autonomy is a dial

Set 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.

risk.ts
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.

LimitKindProtects against
maxDrawdownHardA losing streak compounding past your tolerance. Trading halts entirely.
maxWeightSoftOne market class quietly becoming the whole portfolio.
memecoinCapSoftTail-risk assets taking more than a token allocation.
requireApprovalOverHardLarge notional moving without a human seeing it first.
dailyLossStopHardA 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

Limits are trivial to loosen once you trust the agent's behavior and painful to discover you needed after the fact. Begin conservative and widen deliberately.

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.

Fiat railStripe— card, bank transfer & Apple Pay

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.

Add Funds modal offering Pay with Fiat via Stripe or Deposit Crypto
The Add Funds flow — fiat via Stripe, or a crypto bridge.

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.

funding.ts
// 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 amounts and order notionals are recomputed and validated server-side, and Stripe operations use idempotency keys so a retry can never double-charge.

Deposit methods at a glance

MethodRailSpeedNotes
CardStripeInstantLower limits until the first purchase clears identity checks.
Bank transferStripe1–3 daysHigher limits; best for larger balances.
Apple PayStripeInstantTokenized card rails with device authentication.
Crypto bridgeOn-chainMinutesBridge 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.

Net worth dashboard with allocation donut across stocks, crypto, cash and bonds, plus connected accounts
A single net-worth and allocation view spanning every connected account.

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

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.

ControlOwnerWhat it guarantees
PCI DSS Level 1StripeCard data is tokenized and never touches meeny servers.
Identity verificationStripeKYC on funding before higher limits unlock.
Mandate limitsmeeny coreDrawdown, per-market, and approval caps enforced pre-trade.
Receipt logMPP platformTamper-evident record of every decision and fill.

Not Financial Advice

meeny is software that researches and executes against limits you configure. It is informational and never a recommendation to buy or sell any asset.

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.

meeny.config.ts
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, or aggressive — 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.

server.ts
// 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

EventFires whenPayload
order.proposedmeeny recommends a trade in propose-only modeOpportunity + suggested size
order.filledAn order settles at a venueReceipt with price, size, fees
risk.breachedA hard limit is crossedLimit, current value, market
funding.settledA Stripe or crypto deposit clearsAmount, 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.

CodeMeaningSafe to retry?
insufficient_fundingBuying power is below the proposed size.After funding clears
limit_breachedA hard mandate limit blocked the order.No — widen the limit or reduce size
venue_unavailableThe target venue rejected or timed out.Yes, with backoff
approval_requiredNotional exceeded the approval threshold.After a human approves
stale_quotePrice moved past tolerance before submit.Yes, re-price first

Idempotency

Pass a stable 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?+
Only if you opt in. With 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?+
Fiat funding runs through Stripe, which handles identity verification, PCI compliance, and settlement. Crypto is bridged on-chain. meeny reasons over balances but every movement goes through the platform rails with a receipt.
Can I add a market that isn’t listed?+
Yes — implement the 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?+
The adapter reports the outage and that market is excluded from the current cycle rather than retried blindly. meeny ranks and acts on the markets that are reachable, and the skipped venue is noted in the plan so the gap is visible rather than silent.
How does meeny avoid double-counting the same exposure?+
Positions are reconciled against every connected account before scoring, so an equity held directly and the same name held through an ETF resolve to one net exposure. Per-market weights are then applied to that reconciled view, not to each account separately.
Can I run meeny read-only across accounts I already manage?+
Yes. Connect accounts, leave 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?+
No. meeny is software for research and execution against limits you set. It is informational and not a recommendation to buy or sell any asset.

Reference

Changelog

What's new in meeny. Dates are illustrative for this documentation experiment.

  1. v1.4Aug 2026Latest

    Sports & 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.

  2. v1.3Jul 2026

    Agents & 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.

  3. v1.2Jun 2026

    Stripe funding rail

    Fiat deposits via card, bank transfer, and Apple Pay through Stripe, with server-side validation and idempotent charges.

  4. v1.1May 2026

    Prediction markets

    Event-contract adapter comparing meeny’s modeled probability to implied odds to surface positive-expected-value contracts.

  5. v1.0Apr 2026

    Universal reasoning core

    First release: one risk-adjusted opportunity scale across equities, crypto, and memecoins with a declarative mandate.

Reference

Next steps

Go deeper with the guides that map to the sections above.