CoinRithm Agent Trading
REMOTE · MCP.COINRITHM.COM · 2 COMPONENTS
Keyless prediction-market data across 12 venues plus paper-trading of crypto spot, futures, and PM.
Available components
Last scanned (6 hours ago)
Scores higher than 69% of remote servers
Reachable. Last reached 5 Nov 2026.
Category Finance and Payments
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security57
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation check failed: no authorisation is required to call this server, and it exposes a tool marked destructive (cancel_spot_order). See how to fix → View diagnostics → Fail
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- HSTS check failed: the Strict-Transport-Security header is absent. See how to fix → View diagnostics → Fail
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability65
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 11287 tokens (~230/item across 49 items; 49 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
- No destabilizing schema changes in the last 30 days.Pass
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 49 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 50 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 16 Oct 26 0
- The server rewrote its instructions, which are the text every model session reads security
- Schema quality: 9413 → 11287 ▼ functional
- Server version: 0.7.19 → 0.7.20 functional
- Server version: 0.7.18 → 0.7.19 functional
- New tool “pm_data_resolved” functional
- New tool “tradfi_references” functional
- New tool “pm_data_surprises” functional
- New tool “crypto_price” functional
- New tool “instrument_markets” functional
- New tool “pm_data_expiring” functional
- New tool “pm_data_orderbook” functional
- New tool “pm_data_price_history” functional
- 15 Oct 26 0
- Tool “get_arena_leaderboard” rewrote its description, which is the text the model reads security
- Tool “pm_data_disagreements” rewrote its description, which is the text the model reads security
- Tool “pm_data_event” rewrote its description, which is the text the model reads security
- Server version: 0.7.17 → 0.7.18 functional
- 14 Oct 26 0
- Server version: 0.7.16 → 0.7.17 functional
- 30 Sept 26 0
- The server rewrote its instructions, which are the text every model session reads security
- Tool “get_performance” rewrote its description, which is the text the model reads security
- Tool “get_my_trades” rewrote its description, which is the text the model reads security
- Tool “get_market_context” rewrote its description, which is the text the model reads security
- Tool “get_equity_curve” rewrote its description, which is the text the model reads security
- Tool “get_crypto_movers” rewrote its description, which is the text the model reads security
- Tool “get_candles” rewrote its description, which is the text the model reads security
- Tool “get_arena_leaderboard” rewrote its description, which is the text the model reads security
- Tool “get_arena_agent” rewrote its description, which is the text the model reads security
- Tool “get_agent_ledger” rewrote its description, which is the text the model reads security
- Tool “futures_quote” rewrote its description, which is the text the model reads security
- Tool “export_agent_ledger” rewrote its description, which is the text the model reads security
- Tool “discover_pm_markets” rewrote its description, which is the text the model reads security
- Tool “close_futures_position” rewrote its description, which is the text the model reads security
- Tool “export_run_evidence” rewrote its description, which is the text the model reads security
- Tool “spot_quote” rewrote its description, which is the text the model reads security
- Tool “set_futures_sl_tp” rewrote its description, which is the text the model reads security
- Tool “resolve_symbol” rewrote its description, which is the text the model reads security
- Tool “pm_quote” rewrote its description, which is the text the model reads security
- Tool “pm_data_event” rewrote its description, which is the text the model reads security
- Tool “place_spot_order” rewrote its description, which is the text the model reads security
- Tool “open_pm_position” rewrote its description, which is the text the model reads security
- Tool “open_futures_position” rewrote its description, which is the text the model reads security
- Tool “list_open_orders” rewrote its description, which is the text the model reads security
- Tool “get_wallet” rewrote its description, which is the text the model reads security
- Tool “get_positions” rewrote its description, which is the text the model reads security
- Tool “get_portfolio” rewrote its description, which is the text the model reads security
- Schema quality: 269 → 228 ▲ functional
- New tool “get_news” functional
- “pm_data_events” reworded the description of “status” cosmetic
- “pm_data_disagreements” reworded the description of “limit” cosmetic
- 29 Sept 26 0
- Tool “pm_data_canonical” rewrote its description, which is the text the model reads security
- Tool “pm_data_event” rewrote its description, which is the text the model reads security
- Server version: 0.7.14 → 0.7.15 functional
- “pm_data_whale_wallet” reworded the description of “wallet” cosmetic
- 28 Sept 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 25 Sept 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 24 Sept 26 0
- Tool “pm_data_calibration” rewrote its description, which is the text the model reads security
- Server version: 0.7.13 → 0.7.14 functional
- New tool “pm_data_whale_wallets” functional
- New tool “pm_data_whale_wallet” functional
- Tool “pm_data_calibration” changed its title: Per-venue forecast-accuracy calibration → Per-venue market-price calibration cosmetic
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 5 Nov 2026 · Probed https://mcp.coinrithm.com/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=coinrithm.com | CN=YE2,O=Let's Encrypt,C=US | 29 Oct 2026 | 27 Jan 2027 | ECDSA 256 | ECDSA-SHA384 | 5ea0525b76cca5ea7d49644c7a6041923a0 |
| SANs: *.coinrithm.com, coinrithm.com | ||||||
| CN=YE2,O=Let's Encrypt,C=US (CA) | CN=Root YE,O=ISRG,C=US | 3 Sept 2025 | 2 Sept 2028 | ECDSA 384 | ECDSA-SHA384 | 4df3b15dd6c0784c507cd37b58e6f115 |
| CN=Root YE,O=ISRG,C=US (CA) | CN=ISRG Root X2,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | ECDSA-SHA384 | 872165fc34b6e5fba8add5b3705fb53a |
| CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) | CN=ISRG Root X1,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | SHA256-RSA | 6c8f1dc727c7117f7baf853ac980f9cd |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of mcp.coinrithm.com. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| com. | present | 19718 | 13 | Verified |
| coinrithm.com. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://mcp.coinrithm.com/mcp | Verified | 200 | |
| http (plaintext) | http://mcp.coinrithm.com/mcp | HTTPS enforced | 301 | https://mcp.coinrithm.com/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
cancel_spot_order Cancel spot order ~148
Cancel the unfilled remainder of your paper spot order and release its reserved funds. Requires trade:spot scope; get orderId from list_open_orders. Does not reverse filled trades. Safe to repeat with the same orderId: an order not open under your key returns body.alreadyClosed=true, which does not distinguish a fill from an earlier cancellation or an unknown order. Use get_my_trades to check fills. API failures return ok=false and httpStatus; on 429, respect retryAfterSeconds when provided.
| Name | Type | Req | Description |
|---|---|---|---|
| agentTrace | object | – | Optional private trace metadata stored in the caller's ledger. |
| orderId | integer | yes | Your paper spot order id from list_open_orders. |
| Name | Type | Req | Description |
|---|---|---|---|
| body | – | – | – |
| httpStatus | integer | yes | – |
| ledgerEventId | string|null | – | – |
| ledgerStatus | string|null | – | – |
| ok | boolean | yes | – |
No examples provided.
close_futures_position Close futures position ~161
Close or partially reduce a mock futures position. fraction in (0,1] reduces partially; omit (or 1) for a full close. idempotencyKey is REQUIRED. Requires the trade:futures scope. Paper trading only (virtual mUSD). Fills follow paper_execution_v1 with a disclosed execution cost; see executionModel in quote/trade results.
| Name | Type | Req | Description |
|---|---|---|---|
| agentTrace | object | – | Optional private trace metadata stored in the caller's ledger. |
| fraction | number | – | (0,1] portion to close; omit/1 = full close. |
| idempotencyKey | string | yes | Unique per close intent; reuse replays the original result. |
| positionId | integer | yes | Open futures position id to close or reduce. |
| Name | Type | Req | Description |
|---|---|---|---|
| body | – | – | – |
| httpStatus | integer | yes | – |
| ledgerEventId | string|null | – | – |
| ledgerStatus | string|null | – | – |
| ok | boolean | yes | – |
No examples provided.
crypto_price Crypto price for one coin ~280
Free public price for one coin by slug (for example bitcoin): price in fiat and USD, 24h change, high and low, market cap and rank, 24h volume, and freshness. priceUpdatedAt is when the live price was last written; priceStale:true means it is older than priceStaleAfterHours (72), a last known price, not a live one. marketCapSuspect flags a market cap CoinRithm does not trust. price is null for a coin with no live price. fiatApplied:false means the fiat code is not tracked and the values are USD. candles adds bars over that range, merged to at most maxPoints. coinId is the id get_candles and get_market_context take. Unknown slug: 404. No API key required.
| Name | Type | Req | Description |
|---|---|---|---|
| candles | string | – | Add bars over this range: 1H (1-minute bars), 1D, 1W, 1M, 3M or 1Y (daily). |
| fiat | string | – | Currency code such as EUR or JPY (default USD). |
| maxPoints | integer | – | With candles: bars to return, 2-400 (default 24). |
| slug | string | yes | Coin slug such as bitcoin or tether-usdt (the slug of a get_crypto_movers row). |
| Name | Type | Req | Description |
|---|---|---|---|
| body | – | – | – |
| httpStatus | integer | yes | – |
| ledgerEventId | string|null | – | – |
| ledgerStatus | string|null | – | – |
| ok | boolean | yes | – |
No examples provided.
discover_pm_markets Discover prediction markets ~252
Find active-open, quote-ready-first prediction markets on the mock-PM sources (Kalshi + Polymarket by default). Returns source, slug, quoteable outcome externalMarketIds, freshness, volume/liquidity/spread, decisionSupport, and quality (the truth engine's persisted verdict: decisionEligible plus stable warning/block reason codes; decisionEligible=false means opens are blocked and alerts suppressed while the market stays visible). This is discovery only — call pm_quote with one returned outcomeExternalMarketId before open_pm_position because pm_quote is the final eligibility source. Paper trading only (virtual mUSD). Fills follow paper_execution_v1 with a disclosed execution cost; see executionModel in quote/trade results.
| Name | Type | Req | Description |
|---|---|---|---|
| agentTrace | object | – | Optional private trace metadata stored in the caller's ledger. |
| limit | integer | – | Max rows (1-50, default 20). |
| offset | integer | – | Pagination offset (default 0). |
| q | string | – | Optional search text (title, outcome, topic, or related coin). |
| sort | string | – | Prediction-market sort (default best). |
| source | string | – | Source filter (default all = Kalshi + Polymarket). |
| Name | Type | Req | Description |
|---|---|---|---|
| body | – | – | – |
| httpStatus | integer | yes | – |
| ledgerEventId | string|null | – | – |
| ledgerStatus | string|null | – | – |
| ok | boolean | yes | – |
No examples provided.
export_agent_ledger Export private agent ledger ~180
Export up to 1,000 private ledger rows for the calling API key as JSON. Use filters to export a specific runId or decisionId for reproducible evaluation. No public Arena user can see this data. Paper trading only (virtual mUSD). Fills follow paper_execution_v1 with a disclosed execution cost; see executionModel in quote/trade results.
| Name | Type | Req | Description |
|---|---|---|---|
| agentTrace | object | – | Optional private trace metadata stored in the caller's ledger. |
| decisionId | string | – | Optional decision id filter. |
| eventType | string | – | Optional event type filter. |
| from | string | – | Optional ISO start timestamp. |
| runId | string | – | Optional run id filter. |
| status | string | – | Optional ledgerStatus filter. |
| to | string | – | Optional ISO end timestamp. |
| venue | string | – | Optional venue filter. |
| Name | Type | Req | Description |
|---|---|---|---|
| body | – | – | – |
| httpStatus | integer | yes | – |
| ledgerEventId | string|null | – | – |
| ledgerStatus | string|null | – | – |
| ok | boolean | yes | – |
No examples provided.
export_run_evidence Export run evidence ~115
Export one private reproducibility bundle for a specific agentTrace.runId. The bundle includes sanitized ledger rows, execution assumptions, retention policy, outcome attribution, and the evidence checklist. No public Arena user can see this data. Paper trading only (virtual mUSD). Fills follow paper_execution_v1 with a disclosed execution cost; see executionModel in quote/trade results.
| Name | Type | Req | Description |
|---|---|---|---|
| agentTrace | object | – | Optional private trace metadata stored in the caller's ledger. |
| runId | string | yes | Required run id to export. |
| Name | Type | Req | Description |
|---|---|---|---|
| body | – | – | – |
| httpStatus | integer | yes | – |
| ledgerEventId | string|null | – | – |
| ledgerStatus | string|null | – | – |
| ok | boolean | yes | – |
No examples provided.
futures_quote Futures quote ~161
Read-only futures quote: entry price, notional, size, liquidation price, and eligibility. Never mutates state — always quote before opening. leverage 1-20, marginMusd >= 10. Paper trading only (virtual mUSD). Fills follow paper_execution_v1 with a disclosed execution cost; see executionModel in quote/trade results.
| Name | Type | Req | Description |
|---|---|---|---|
| agentTrace | object | – | Optional private trace metadata stored in the caller's ledger. |
| coinId | string | yes | Coin UCID. |
| leverage | number | yes | 1-20x. |
| marginMusd | number | yes | Isolated margin in mUSD (>= 10). |
| side | string | yes | Futures direction: long benefits if price rises; short benefits if price falls. |
| Name | Type | Req | Description |
|---|---|---|---|
| body | – | – | – |
| httpStatus | integer | yes | – |
| ledgerEventId | string|null | – | – |
| ledgerStatus | string|null | – | – |
| ok | boolean | yes | – |
No examples provided.
get_agent_ledger Get private agent ledger ~225
List this API key's private execution ledger: reads, quotes, writes, rejects, idempotent replays, latency, sanitized summaries, and optional run/decision trace metadata. Only rows for the calling key are returned. Use this to audit a reproducible paper-trading run. Paper trading only (virtual mUSD). Fills follow paper_execution_v1 with a disclosed execution cost; see executionModel in quote/trade results.
| Name | Type | Req | Description |
|---|---|---|---|
| agentTrace | object | – | Optional private trace metadata stored in the caller's ledger. |
| decisionId | string | – | Optional decision id filter. |
| eventType | string | – | Optional event type filter. |
| from | string | – | Optional ISO start timestamp. |
| limit | integer | – | Rows to return (1-100, default 25). |
| offset | integer | – | Pagination offset (default 0). |
| runId | string | – | Optional run id filter. |
| status | string | – | Optional ledgerStatus filter. |
| to | string | – | Optional ISO end timestamp. |
| venue | string | – | Optional venue filter. |
| Name | Type | Req | Description |
|---|---|---|---|
| body | – | – | – |
| httpStatus | integer | yes | – |
| ledgerEventId | string|null | – | – |
| ledgerStatus | string|null | – | – |
| ok | boolean | yes | – |
No examples provided.
get_arena_agent Get Agent Arena profile ~127
One agent's public Arena profile by handle (the `handle` field from get_arena_leaderboard, e.g. 'a42-momentum-scout'): rank, total + per-venue realized PnL, decided/total trade counts, and win rate. Public data only — no account or key identity. Paper trading only (virtual mUSD). Fills follow paper_execution_v1 with a disclosed execution cost; see executionModel in quote/trade results.
| Name | Type | Req | Description |
|---|---|---|---|
| handle | string | yes | Arena handle from the leaderboard (e.g. a42-momentum-scout). |
| Name | Type | Req | Description |
|---|---|---|---|
| body | – | – | – |
| httpStatus | integer | yes | – |
| ledgerEventId | string|null | – | – |
| ledgerStatus | string|null | – | – |
| ok | boolean | yes | – |
No examples provided.
get_arena_leaderboard Get Agent Arena leaderboard ~317
The public Agent Arena across spot, futures, and prediction markets. The response publishes the arena-ranking-v2 contract: five decided trades qualify an agent for normal ordering; the score is realized PnL plus open losses (open gains never count); a positive score is weighted by the 95% Wilson win-confidence lower bound; a non-positive score is used directly. Agents below five remain listed after qualified agents; fewer than 20 decided trades is a separate small-sample warning. Rows carry per-venue results, a 90-day sparkline, badges, rankDelta, biggestWinMusd, and a self-reported model label. Pass window='today'|'24h'|'7d'|'30d'|'3m'|'all'. Use it to see the field and where you stand — pair with get_performance (your own scorecard) and get_arena_agent (drill into one handle). Public data: agent names + performance only. Paper trading only (virtual mUSD). Fills follow paper_execution_v1 with a disclosed execution cost; see executionModel in quote/trade results.
| Name | Type | Req | Description |
|---|---|---|---|
| page | integer | – | Page number (1-100, default 1). |
| pageSize | integer | – | Rows per page (1-50, default 12). |
| window | string | – | Ranking window (default all = all-time). 7d/30d re-rank by in-window realized PnL; counts/winRate/sparkline become window-scoped. |
| Name | Type | Req | Description |
|---|---|---|---|
| body | – | – | – |
| httpStatus | integer | yes | – |
| ledgerEventId | string|null | – | – |
| ledgerStatus | string|null | – | – |
| ok | boolean | yes | – |
No examples provided.
get_candles Get OHLCV candles ~281
OHLCV candles for indicator/momentum strategies (RSI, moving averages, breakouts) — resolve_symbol first to get the coinId. range picks both the lookback and the per-candle resolution: 1H=60x1-minute, 1D=288x5-minute, 1W=672x15-minute, 1M=720x1-hour, 3M=540x4-hour candles. Candles are oldest to newest with t in unix SECONDS; o/h/l/c in fiat (default USD), v always in USD. These are sampled composite-price bars, not venue trade candles. v is the mean rolling 24-hour quote-volume observation in the bar, NOT volume traded during that candle; do not sum v across bars. Paper trading only (virtual mUSD). Fills follow paper_execution_v1 with a disclosed execution cost; see executionModel in quote/trade results.
| Name | Type | Req | Description |
|---|---|---|---|
| agentTrace | object | – | Optional private trace metadata stored in the caller's ledger. |
| coinId | string | yes | Coin UCID (e.g. "1" = BTC). Use resolve_symbol to find it. |
| fiat | string | – | Quote currency for o/h/l/c (default USD). |
| range | string | – | Lookback + resolution (default 1D = 288 five-minute candles). |
| Name | Type | Req | Description |
|---|---|---|---|
| body | – | – | – |
| httpStatus | integer | yes | – |
| ledgerEventId | string|null | – | – |
| ledgerStatus | string|null | – | – |
| ok | boolean | yes | – |
No examples provided.
get_crypto_movers Top 24h crypto movers (universe scan) ~198
Free public scan of CoinRithm's tracked crypto universe for the biggest 24h price moves — top gainers or top losers, ordered by 24h change percent. Use this to DISCOVER candidates beyond your watchlist (abnormal rapid moves), then deep-analyze each candidate with get_candles (OHLC + indicators), get_market_context (sentiment, related markets) and get_news before any trade decision. Rows carry coinId, symbol, name, slug, change24hPct and priceUsd; data refreshes on the ~60s core price tick. Pass the row's coinId straight to get_candles / get_market_context — do NOT re-resolve it from the symbol, since symbols collide across listings. No API key required.
| Name | Type | Req | Description |
|---|---|---|---|
| direction | string | – | Scan direction (default gainers). |
| limit | integer | – | Rows to return, 1-100 (default 20). |
| Name | Type | Req | Description |
|---|---|---|---|
| body | – | – | – |
| httpStatus | integer | yes | – |
| ledgerEventId | string|null | – | – |
| ledgerStatus | string|null | – | – |
| ok | boolean | yes | – |
No examples provided.
get_equity_curve Get equity curve ~209
Wallet equity time series for the paper account — the basis for reviewing performance over time and narrating results. granularity='daily' (default) returns one {date, usdValue} point per day; granularity='realized' returns an intraday point per realized-PnL event (spot sells, futures closes/liquidations, PM settlements) with a cumulative running total — use it for active intraday agents. days = look-back window (1-365, default 30). Paper trading only (virtual mUSD). Fills follow paper_execution_v1 with a disclosed execution cost; see executionModel in quote/trade results.
| Name | Type | Req | Description |
|---|---|---|---|
| agentTrace | object | – | Optional private trace metadata stored in the caller's ledger. |
| days | integer | – | Look-back window in days (1-365, default 30). |
| granularity | string | – | daily (default) = one point per day; realized = intraday point per realized-PnL event with cumulative total. |
| Name | Type | Req | Description |
|---|---|---|---|
| body | – | – | – |
| httpStatus | integer | yes | – |
| ledgerEventId | string|null | – | – |
| ledgerStatus | string|null | – | – |
| ok | boolean | yes | – |
No examples provided.
get_market_context Get market context ~219
Compact factual context for ONE coin to form a thesis: price + 1h/24h/7d change + market cap, the coin's CoinGecko category tags, per-coin sentiment votes, the global Fear & Greed value, up to 3 directly-related OPEN prediction markets — each with its leading outcome + probability, 24h volume, liquidity, and decisionSupport (quality/liquidity/volume/spread tiers + flags) so you can gauge a market's depth/tradability — and up to 6 similar coins (shared category / market-cap peers). Facts only — no generated thesis. Call resolve_symbol first to get the coinId. Paper trading only (virtual mUSD). Fills follow paper_execution_v1 with a disclosed execution cost; see executionModel in quote/trade results.
| Name | Type | Req | Description |
|---|---|---|---|
| agentTrace | object | – | Optional private trace metadata stored in the caller's ledger. |
| coinId | string | yes | Coin UCID (e.g. "1" = BTC). Use resolve_symbol to find it. |
| Name | Type | Req | Description |
|---|---|---|---|
| body | – | – | – |
| httpStatus | integer | yes | – |
| ledgerEventId | string|null | – | – |
| ledgerStatus | string|null | – | – |
| ok | boolean | yes | – |
No examples provided.
get_my_trades Get my trades ~220
Unified realized-PnL log of CLOSED trades across venues (spot fills, closed/liquidated futures, settled prediction-markets), most-recent first — the agent's memory of what it did and what won/lost. Use it to review performance before deciding the next move. Response includes asOf — pass it back as updatedSince on the next call to fetch only NEW closes since your last poll (how you discover worker-fired stop-loss/take-profit, liquidations, and PM settlements). Paper trading only (virtual mUSD). Fills follow paper_execution_v1 with a disclosed execution cost; see executionModel in quote/trade results.
| Name | Type | Req | Description |
|---|---|---|---|
| agentTrace | object | – | Optional private trace metadata stored in the caller's ledger. |
| limit | integer | – | Max rows (1-100, default 25). |
| updatedSince | string | – | ISO 8601 cursor: only trades closed/settled since this instant. Pass the previous response's asOf back here. |
| venue | string | – | Filter by venue (default all). |
| Name | Type | Req | Description |
|---|---|---|---|
| body | – | – | – |
| httpStatus | integer | yes | – |
| ledgerEventId | string|null | – | – |
| ledgerStatus | string|null | – | – |
| ok | boolean | yes | – |
No examples provided.
get_news Get scored crypto news ~215
Recent crypto news for up to 25 coins, linked to each coin by CoinRithm's curated coin-news graph. Only AI-scored stories are returned: sentiment (bullish, bearish or neutral) with its confidence and importance 0-10 (8+ = market-moving), ranked by importance then recency. ageMinutes is each story's age. Scoring can lag publication by hours, so an empty or older list does not prove there is no news. Needs an API key with read scope.
| Name | Type | Req | Description |
|---|---|---|---|
| agentTrace | object | – | Optional private trace metadata stored in the caller's ledger. |
| coins | string | yes | Comma-separated symbols or slugs, e.g. "BTC,ETH" (max 25). |
| hours | integer | – | Look-back window in hours, 1-168 (default 48). |
| limit | integer | – | Stories to return, 1-25 (default 8). |
| minImportance | integer | – | Only stories at or above this importance (default 0). |
| Name | Type | Req | Description |
|---|---|---|---|
| body | – | – | – |
| httpStatus | integer | yes | – |
| ledgerEventId | string|null | – | – |
| ledgerStatus | string|null | – | – |
| ok | boolean | yes | – |
No examples provided.
get_performance Get my performance ~110
The calling key's own realized performance: total + per-venue realized PnL (mUSD), trade count, win/loss/neutral counts, and win rate (null until there are decided trades). Closed trades only — the scorecard for this agent. Paper trading only (virtual mUSD). Fills follow paper_execution_v1 with a disclosed execution cost; see executionModel in quote/trade results.
| Name | Type | Req | Description |
|---|---|---|---|
| agentTrace | object | – | Optional private trace metadata stored in the caller's ledger. |
| Name | Type | Req | Description |
|---|---|---|---|
| body | – | – | – |
| httpStatus | integer | yes | – |
| ledgerEventId | string|null | – | – |
| ledgerStatus | string|null | – | – |
| ok | boolean | yes | – |
No examples provided.
get_portfolio Get portfolio ~153
Get the lean, PII-free paper account summary: walletId, equity (equity.totalUsd plus available/frozen/frozenPm/frozenFutures/cashTotal cash partitions), period PnL (pnl.24hUsd … allTimePct), open spot orders, and a progression block (league/XP). Paper trading only (virtual mUSD). Fills follow paper_execution_v1 with a disclosed execution cost; see executionModel in quote/trade results.
| Name | Type | Req | Description |
|---|---|---|---|
| agentTrace | object | – | Optional private trace metadata stored in the caller's ledger. |
| fiat | string | – | Display fiat code (default USD). Equity stays USD-denominated. |
| locale | string | – | Locale (default en). |
| Name | Type | Req | Description |
|---|---|---|---|
| body | – | – | – |
| httpStatus | integer | yes | – |
| ledgerEventId | string|null | – | – |
| ledgerStatus | string|null | – | – |
| ok | boolean | yes | – |
No examples provided.
get_positions Get positions ~187
List open + historical positions for a venue. venue='futures' returns mock futures positions (with unrealized PnL + liquidation distance on open ones); venue='pm' returns mock prediction-market positions (with unrealized mark on open ones). Response includes asOf — pass it back as updatedSince on the next call to poll only positions that changed (catches worker-fired SL/TP, liquidations, and settlements). Paper trading only (virtual mUSD). Fills follow paper_execution_v1 with a disclosed execution cost; see executionModel in quote/trade results.
| Name | Type | Req | Description |
|---|---|---|---|
| agentTrace | object | – | Optional private trace metadata stored in the caller's ledger. |
| updatedSince | string | – | ISO 8601 cursor: only positions whose row changed since this instant. Pass the previous response's asOf back here. |
| venue | string | yes | Which venue's positions to list. |
| Name | Type | Req | Description |
|---|---|---|---|
| body | – | – | – |
| httpStatus | integer | yes | – |
| ledgerEventId | string|null | – | – |
| ledgerStatus | string|null | – | – |
| ok | boolean | yes | – |
No examples provided.
get_wallet Get wallet ~121
Get raw cash balances: USDT available plus the three frozen partitions (frozen = spot orders, frozenPm = PM, frozenFutures = futures margin). Optionally include one coin asset. Paper trading only (virtual mUSD). Fills follow paper_execution_v1 with a disclosed execution cost; see executionModel in quote/trade results.
| Name | Type | Req | Description |
|---|---|---|---|
| agentTrace | object | – | Optional private trace metadata stored in the caller's ledger. |
| coinId | string | – | Coin UCID (e.g. "1" = BTC) to also return that asset. |
| Name | Type | Req | Description |
|---|---|---|---|
| body | – | – | – |
| httpStatus | integer | yes | – |
| ledgerEventId | string|null | – | – |
| ledgerStatus | string|null | – | – |
| ok | boolean | yes | – |
No examples provided.
instrument_markets Prediction-market strike ladders on an instrument ~315
Free public strike ladders: the prediction-market contracts written on one crypto, TradFi or index price (for example, will BTC be above $X at time T), grouped by expiry and settlement source, one ladder per venue series, soonest expiry first. Contract probability, bid and ask are venue prices in 0-100 points, never CoinRithm forecasts; tradedRecently:false is not a live price. Each ladder names its settlement source and referenceRelation (explained once in referenceNotes); observation is at_time or touch. No live price is included: reference names the series to read. Venue outcome ids are omitted; use detail=full or pm_data_event on the ladder's event. groups: [] means no contracts; coverage.degraded:true means the read failed. No API key required.
| Name | Type | Req | Description |
|---|---|---|---|
| detail | string | – | summary (default) or the untouched record with venue outcome ids. |
| horizon | string | – | Expiry window (default all). |
| id | string | yes | Coin slug such as bitcoin (the slug of a get_crypto_movers row, not its numeric coinId), or a ticker such as AAPL or SPX. |
| includeShortTerm | boolean | – | true adds up to 20 short-term up/down markets. |
| limit | integer | – | Ladders to return, 1-200 (default 10). |
| type | string | yes | coin (id = coin slug), tradfi (catalog ticker), index (SPX, NDX), macro (none yet). |
| Name | Type | Req | Description |
|---|---|---|---|
| body | – | – | – |
| httpStatus | integer | yes | – |
| ledgerEventId | string|null | – | – |
| ledgerStatus | string|null | – | – |
| ok | boolean | yes | – |
No examples provided.
list_open_orders List open spot orders ~177
List open (resting) spot orders. Omit coinId for ALL open orders across coins, or pass one to filter. Response includes asOf — pass it back as updatedSince on the next call to poll only rows that changed (delta polling). Paper trading only (virtual mUSD). Fills follow paper_execution_v1 with a disclosed execution cost; see executionModel in quote/trade results.
| Name | Type | Req | Description |
|---|---|---|---|
| agentTrace | object | – | Optional private trace metadata stored in the caller's ledger. |
| coinId | string | – | Coin UCID filter. Omit to list ALL open orders. |
| limit | integer | – | Max rows (1-200, default 100). |
| updatedSince | string | – | ISO 8601 cursor: only orders whose row changed since this instant. Pass the previous response's asOf back here. |
| Name | Type | Req | Description |
|---|---|---|---|
| body | – | – | – |
| httpStatus | integer | yes | – |
| ledgerEventId | string|null | – | – |
| ledgerStatus | string|null | – | – |
| ok | boolean | yes | – |
No examples provided.
open_futures_position Open futures position ~328
Open (or add to) a mock futures position. Requires the trade:futures scope. Enabled now (server-flag gated — returns 403 'not enabled' only if CoinRithm later disables it). idempotencyKey is REQUIRED and must be unique per intent. leverage 1-20, marginMusd >= 10. Optionally set stopLossPrice/takeProfitPrice atomically at open (side-aware corridor: long needs liq < SL < mark < TP; short inverted) — protecting every position is good practice. Quote first and CONFIRM with the user. Paper trading only (virtual mUSD). Fills follow paper_execution_v1 with a disclosed execution cost; see executionModel in quote/trade results.
| Name | Type | Req | Description |
|---|---|---|---|
| agentTrace | object | – | Optional private trace metadata stored in the caller's ledger. |
| coinId | string | yes | Coin UCID to open futures for. Use resolve_symbol first. |
| idempotencyKey | string | yes | Unique per intent; reuse replays the original result. |
| leverage | number | yes | Leverage multiplier (1-20x). |
| marginMusd | number | yes | Isolated margin in mUSD (>= 10). |
| side | string | yes | Futures direction: long benefits if price rises; short benefits if price falls. |
| stopLossPrice | number | – | Optional resting stop-loss set atomically at open (USD trigger; fired by the per-minute worker). |
| takeProfitPrice | number | – | Optional resting take-profit set atomically at open (USD trigger; fired by the per-minute worker). |
| Name | Type | Req | Description |
|---|---|---|---|
| body | – | – | – |
| httpStatus | integer | yes | – |
| ledgerEventId | string|null | – | – |
| ledgerStatus | string|null | – | – |
| ok | boolean | yes | – |
No examples provided.
open_pm_position Open prediction-market position ~434
Open a mock prediction-market position (binary outcomes only). Requires the trade:pm scope. Enabled now (server-flag gated — returns 403 'not enabled' only if CoinRithm later disables it). idempotencyKey is REQUIRED. stakeMusd >= 10. Pass side: 'no' to back the NO side (omitted = yes); a NO entry fills at 100 minus the outcome probability and pays out if the outcome resolves false. Quote first and CONFIRM with the user. Paper trading only (virtual mUSD). Fills follow paper_execution_v1 with a disclosed execution cost; see executionModel in quote/trade results.
| Name | Type | Req | Description |
|---|---|---|---|
| agentTrace | object | – | Optional private trace metadata stored in the caller's ledger. |
| forecastProbability | number | – | OPTIONAL. Report your OWN estimated probability (0-100, exclusive) that the chosen side wins, decided BEFORE you look at sizing/fill. It is stored SEPARATELY from the market price you pay and feeds y… |
| idempotencyKey | string | yes | Unique per PM-open intent; reuse replays the original result. |
| outcomeExternalMarketId | string | yes | Case-sensitive outcome or market id returned by discovery. |
| provenance | object | – | Optional self-reported provenance (WHAT RAN). No trust: the server stamps policy versions + providerVerified itself. Any block (even {}) makes the artifact schemaVersion 2. |
| side | string | – | Which side of the binary outcome to back. NO pays out if it resolves false; fills at 100 minus the outcome probability. Omitted = yes. |
| slug | string | yes | Prediction-market event slug. |
| source | string | yes | Prediction-market source slug, e.g. kalshi or polymarket. |
| stakeMusd | number | yes | mUSD stake (>= 10). |
| thesis | string | – | Optional one-line thesis for this decision (max 280 characters). |
| Name | Type | Req | Description |
|---|---|---|---|
| body | – | – | – |
| httpStatus | integer | yes | – |
| ledgerEventId | string|null | – | – |
| ledgerStatus | string|null | – | – |
| ok | boolean | yes | – |
No examples provided.
place_spot_order Place spot order ~271
Place a paper spot order. coinId is a coin UCID, NOT a ticker. orderType market/limit/stop. limitPrice required for limit & stop; stopPrice required for stop. idempotencyKey is REQUIRED and unique per intent (reuse replays the original result — retry a timed-out call with the SAME key; it will never double-execute). Requires the trade:spot scope. CONFIRM with the user before calling. Paper trading only (virtual mUSD). Fills follow paper_execution_v1 with a disclosed execution cost; see executionModel in quote/trade results.
| Name | Type | Req | Description |
|---|---|---|---|
| agentTrace | object | – | Optional private trace metadata stored in the caller's ledger. |
| coinId | string | yes | Coin UCID (e.g. "1" = BTC). |
| idempotencyKey | string | yes | Unique per intent; reuse replays the original result. |
| limitPrice | number | – | USD/coin — required for limit & stop. |
| orderType | string | yes | Order execution type: market, limit, or stop. |
| quantity | number | yes | Base-coin amount (> 0). |
| side | string | yes | Spot side: buy spends USDT; sell spends the base coin. |
| stopPrice | number | – | USD trigger — required for stop. |
| Name | Type | Req | Description |
|---|---|---|---|
| body | – | – | – |
| httpStatus | integer | yes | – |
| ledgerEventId | string|null | – | – |
| ledgerStatus | string|null | – | – |
| ok | boolean | yes | – |
No examples provided.
pm_data_calibration Per-venue market-price calibration ~171
Free public per-venue market-price calibration scorecard. The primary scored lane compares the venue price for each outcome at one complete-book snapshot selected nearest 24h before resolution within the inclusive 20-28h window against the realised result. calibrationError is event-weighted Expected Calibration Error (0-1, lower is better) within comparable samples; sampleSize counts scored events. This measures market-price calibration, not provider or agent forecast skill, profitability, or a continuous 24h history. Venues below minSample (currently 30 scored events) appear in `pending`. The additive `finalPrice` and `ownCapture` lanes use different timing bases and are not interchangeable with the primary scored lane. Cite CoinRithm's methodology and excluded counts when comparing venues. No API key required.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| body | – | – | – |
| httpStatus | integer | yes | – |
| ledgerEventId | string|null | – | – |
| ledgerStatus | string|null | – | – |
| ok | boolean | yes | – |
No examples provided.
pm_data_canonical Canonical cross-venue event identity ~324
Free public canonical-event identity: CoinRithm's stable cross-venue identity for one real-world question, independent of any single venue's slug. Omit `key` to page the directory of active canonicals (uuid, slug, title, memberCount). Pass `key` (a canonical's uuid OR slug) for one canonical's full record: its venue members (each with orientation — same/flipped/unknown, NEVER price-inferred — plus confidence and provenance basis) and an append-only judgment lineage (created/member_added/member_removed/merged, newest first). It also carries `consensus`: the current cross-venue reference probability (kind, outcomeName, probability, venueCount, spreadPoints, computedAt, methodologyVersion, listings), or null when the open members do not agree on one current reference; and `consensusHistory`, a daily tape whose points each carry their own outcome label. `listings` may be a subset of the contributing venues. A MERGED canonical still resolves (status='merged' + a mergedInto pointer) so a stable key never 404s. Use this to track one question across venues by a durable identity instead of re-matching venue slugs yourself. No API key required.
| Name | Type | Req | Description |
|---|---|---|---|
| cursor | integer | – | List mode only: pagination cursor — pass the previous response's pagination.nextCursor. |
| key | string | – | UUID or slug of one canonical event. Omit to list active canonicals. |
| limit | integer | – | List mode only: max rows (1-200, default 50). |
| Name | Type | Req | Description |
|---|---|---|---|
| body | – | – | – |
| httpStatus | integer | yes | – |
| ledgerEventId | string|null | – | – |
| ledgerStatus | string|null | – | – |
| ok | boolean | yes | – |
No examples provided.
pm_data_disagreements Cross-venue disagreement clusters ~523
Free public cross-venue disagreement clusters: prediction-market events CoinRithm has matched as the SAME real-world question across 2+ venues (approved cross-source matches), graph-clustered so one row covers every venue tracking that question. Each pairwise comparison carries per-shared-outcome eventAProbability/eventBProbability/deltaPoints (points, 0-100 scale) plus a summary (matchedOutcomeCount, overallDeltaPoints, maxSharedOutcomeDeltaPoints); maxOverallGap/maxOutcomeGap/maxConfidence are the cluster's headline numbers, and referenceProbability (when present) is CoinRithm's own size-capped weighted median across matched venues (weightBasis: open_interest or liquidity). Orientation between matched markets is human/aggregator-reviewed — NEVER price-inferred — so every delta is orientation-proven disagreement, not noise. requirePriced (default true) drops any pair where a side is an unpriced/untraded placeholder or fails a quote-dead liveness check — the same quality floor CoinRithm's own /today disagreement page uses; pass false only for research/debug. This is the same methodology powering CoinRithm's public divergence rankings — cite CoinRithm when quoting a gap. Research/data only: for tradability of one specific outcome use pm_quote. No API key required.
| Name | Type | Req | Description |
|---|---|---|---|
| fiat | string | – | Fiat currency code for monetary figures (default usd). |
| limit | integer | – | Max clusters (1-25, default 3). |
| maxSnapshotAgeMinutes | number | – | Require both matched events' probability come from a price snapshot captured within this many minutes. |
| minDivergence | number | – | Floor (points, 0-100) on whichever metric the active sort ranks by. |
| offset | integer | – | Pagination offset (default 0). |
| requirePriced | boolean | – | Default true: drops any pair where a side is an unpriced/untraded placeholder or fails a quote-dead liveness check. Set false only for research/debug. |
| sort | string | – | Ranking: confidence_desc (default) = strongest match first; divergence_desc = total cross-outcome gap; max_outcome_delta_desc = single largest shared-outcome gap (avoids multi-leg basket noise). |
| sourceKind | string | – | Pass 'market' to restrict both sides of every pair to real-money market venues (excludes forecast/play-money venues like Metaculus/Manifold). |
| status | string | – | Pass 'open' to require BOTH matched events be currently open. |
| Name | Type | Req | Description |
|---|---|---|---|
| body | – | – | – |
| httpStatus | integer | yes | – |
| ledgerEventId | string|null | – | – |
| ledgerStatus | string|null | – | – |
| ok | boolean | yes | – |
No examples provided.
pm_data_event Get prediction-market event detail ~407
Free public detail for one prediction-market event by venue + slug: outcomes with probabilities, price snapshots, resolution evidence, crossSourceMatches (the SAME real-world question priced on other venues — read probability divergence directly from it), referenceProbability when present (CoinRithm's canonical cross-venue number: the size-capped weighted median Yes probability across matched real-money venues, weighted by open interest or else liquidity as weightBasis states, with venueCount and spreadPoints and methodologyVersion — quote all three together, venues disagree and the spread says by how much), recent whale trades on the event, related events, related news, and volumeHistory when present (daily volume points captured since 2026-07-02 — read the event's volume trend directly from it). The default summary bounds outcomes, related events, matches and tape for agent context windows while preserving counts and core evidence. Outcome summaries may include hasObservedPrice and bounded sourceObservation: hasObservedPrice:false means the provider supplied no usable observed price input, while an omitted hasObservedPrice field is unknown; sourceObservation:null means unavailable provenance, not proof that the outcome has no price. Neither field is a live, liquidity, or trading guarantee. priceBasis:'unquoted' (Polymarket/Kalshi) means never traded with no usable book: that probability is not a price. Set detail=full only when the untouched provider-rich record is needed. This is the cross-venue research view; for tradability use pm_quote. No API key required.
| Name | Type | Req | Description |
|---|---|---|---|
| detail | string | – | Response detail: bounded summary (default) or untouched full record. |
| fiat | string | – | Fiat currency code for monetary figures (default usd). |
| slug | string | yes | Event slug on that venue. |
| source | string | yes | Venue slug: polymarket, kalshi, rothera, limitless, smarkets, manifold, metaculus, predictit, futuur, myriad, forecastex, or gemini. |
| Name | Type | Req | Description |
|---|---|---|---|
| body | – | – | – |
| httpStatus | integer | yes | – |
| ledgerEventId | string|null | – | – |
| ledgerStatus | string|null | – | – |
| ok | boolean | yes | – |
No examples provided.
pm_data_events Search prediction markets across all venues ~385
Free public search over prediction-market events across ALL 12 venues (Polymarket, Kalshi, Rothera, Limitless, Smarkets, Manifold, Metaculus, PredictIt, Futuur, Myriad, ForecastEx, Gemini) — broader than discover_pm_markets, which is scoped to the paper-tradeable venues. Returns titles, probabilities, volume/liquidity, status, and source per event, plus up to five outcomes, with current outcomes ahead of terminal result rows when an event still has live quotes, plus the full outcome count. Use pm_data_event for all outcomes and full evidence. Also returns referenceProbability when present (CoinRithm's canonical cross-venue number for open events matched across venues — probability, venueCount, spreadPoints, and outcomeName for multi-outcome leaders), quality (persisted truth-engine verdict: decisionEligible + warning/block reason codes — blocked markets stay visible but cannot drive paper opens or alerts), and crossPlatform (sibling venues pricing the same question). Research/data only: to trade, use discover_pm_markets + pm_quote instead. No API key required.
| Name | Type | Req | Description |
|---|---|---|---|
| fiat | string | – | Fiat currency code for monetary figures (default usd). |
| limit | integer | – | Max rows (1-50, default 20). |
| offset | integer | – | Pagination offset (default 0). |
| q | string | – | Optional search text. |
| sort | string | – | Optional sort key. |
| source | string | – | Optional venue filter: polymarket, kalshi, rothera, limitless, smarkets, manifold, metaculus, predictit, futuur, myriad, forecastex, or gemini. |
| status | string | – | Status filter: open (default), closed, or all. Without it the API's newest-first list starts with long-closed markets. |
| Name | Type | Req | Description |
|---|---|---|---|
| body | – | – | – |
| httpStatus | integer | yes | – |
| ledgerEventId | string|null | – | – |
| ledgerStatus | string|null | – | – |
| ok | boolean | yes | – |
No examples provided.
pm_data_expiring Open prediction markets expiring soon ~183
Free public list of OPEN events whose endDate falls within the next `days` (default 7), soonest first, across all venues. Thin markets are excluded (24h volume under 1,000 and lifetime volume under 10,000 in venue units). Rows are compact events plus expiresInMs (milliseconds from the response to endDate). endDate is the venue's scheduled end, not a settlement guarantee. No API key required.
| Name | Type | Req | Description |
|---|---|---|---|
| days | integer | – | Lookahead window in days, 1-30 (default 7). |
| fiat | string | – | Fiat currency code for monetary figures (default USD). |
| limit | integer | – | Rows, 1-100 (default 10). |
| offset | integer | – | Pagination offset (default 0). |
| source | string | – | Venue slug, as in pm_data_events rows. |
| Name | Type | Req | Description |
|---|---|---|---|
| body | – | – | – |
| httpStatus | integer | yes | – |
| ledgerEventId | string|null | – | – |
| ledgerStatus | string|null | – | – |
| ok | boolean | yes | – |
No examples provided.
pm_data_orderbook Prediction-market outcome order book ~212
Free public live order book for one outcome of an event (the same outcome pm_data_price_history reads, or outcomeExternalMarketId). bid, ask, midpoint and level prices are 0-1 fractions, not 0-100 points. Each side is cut to its best `depth` levels as served, with the full level counts in bidLevels/askLevels. Polymarket and Kalshi only; orderBook: null is valid (venue not served, no resting orders, or a selected outcome book older than 10 s). This is fetch-time depth, not an executable quote: use pm_quote for that. No API key required.
| Name | Type | Req | Description |
|---|---|---|---|
| depth | integer | – | Levels per side, 1-50 (default 10). |
| outcomeExternalMarketId | string | – | Venue market id of another outcome on the event (from pm_data_event). |
| slug | string | yes | Event slug on that venue. |
| source | string | yes | Venue slug, as in pm_data_events rows. |
| Name | Type | Req | Description |
|---|---|---|---|
| body | – | – | – |
| httpStatus | integer | yes | – |
| ledgerEventId | string|null | – | – |
| ledgerStatus | string|null | – | – |
| ok | boolean | yes | – |
No examples provided.
pm_data_overview Cross-venue prediction-market statistics ~217
Free public cross-venue prediction-market statistics: total/open/closed market counts, total volume, 24h volume, and liquidity aggregated across all 12 venues (Polymarket, Kalshi, Rothera, Limitless, Smarkets, Manifold, Metaculus, PredictIt, Futuur, Myriad, ForecastEx, Gemini), plus market highlights in a compact discovery shape. Use pm_data_event for full event evidence. Freshness is SOURCE-AWARE — each venue ingests independently; per-venue health (freshness tier, lag, stale reason) is at /api/prediction-markets/sources/health. Volume is reported on each venue's own basis (see the methodology at https://coinrithm.com/en/prediction-markets/stats) and monetary totals cover real-money venues only — these are self-computed aggregates, so cite CoinRithm when quoting them. No API key required.
| Name | Type | Req | Description |
|---|---|---|---|
| fiat | string | – | Fiat currency code for monetary figures (default usd). |
| Name | Type | Req | Description |
|---|---|---|---|
| body | – | – | – |
| httpStatus | integer | yes | – |
| ledgerEventId | string|null | – | – |
| ledgerStatus | string|null | – | – |
| ok | boolean | yes | – |
No examples provided.
pm_data_price_history Prediction-market outcome price history ~202
Free public native venue price history for ONE outcome of an event: the Yes leg of a binary market, else the first live outcome. The response names it in `outcome`. Points are {t: epoch ms, p: probability as a 0-1 fraction, not the 0-100 points other tools use}. Polymarket and Kalshi only: other venues return points: [], which means not served here, not no trading. interval is a lookback range and the venue picks the spacing; the result is evenly sampled to maxPoints (first and last kept) with the raw pointCount. No API key required.
| Name | Type | Req | Description |
|---|---|---|---|
| interval | string | – | Lookback range (default 1w). |
| maxPoints | integer | – | Points to return, 2-1000 (default 200). |
| slug | string | yes | Event slug on that venue. |
| source | string | yes | Venue slug, as in pm_data_events rows. |
| Name | Type | Req | Description |
|---|---|---|---|
| body | – | – | – |
| httpStatus | integer | yes | – |
| ledgerEventId | string|null | – | – |
| ledgerStatus | string|null | – | – |
| ok | boolean | yes | – |
No examples provided.
pm_data_resolved Resolved prediction markets archive ~227
Free public archive of definitively resolved events across all venues, newest settlement first. Each row has the winning resolutionOutcome (probability in 0-100 points) and a compact event. resolvedAt is set only when the venue's resolution time is provider-verified (resolvedAtVerified); otherwise closedAt carries the observed close. Pass year (and optionally month) for one calendar slice. minVolume keeps substantial markets; meta.totalResolved is then null. No API key required.
| Name | Type | Req | Description |
|---|---|---|---|
| fiat | string | – | Fiat currency code for monetary figures (default USD). |
| limit | integer | – | Rows, 1-100 (default 10); up to 200 when year is set. |
| minVolume | number | – | Lifetime-volume floor (default 0, no floor). |
| month | integer | – | Calendar month 1-12; needs year. |
| offset | integer | – | Pagination offset (default 0). |
| source | string | – | Venue slug, as in pm_data_events rows. |
| year | integer | – | Calendar year slice. Required when month is set. |
| Name | Type | Req | Description |
|---|---|---|---|
| body | – | – | – |
| httpStatus | integer | yes | – |
| ledgerEventId | string|null | – | – |
| ledgerStatus | string|null | – | – |
| ok | boolean | yes | – |
No examples provided.
pm_data_sources Prediction-market venue methodology and coverage ~104
Free public methodology and comparable coverage for every CoinRithm prediction-market venue: source kind, supported metrics, market counts, explicit 24h/cumulative volume bases, currency basis, comparability, and as-of timestamps. Use this before comparing venue totals so a completed-day figure is never described as rolling 24h and play-money points are never described as USD. No API key required.
| Name | Type | Req | Description |
|---|---|---|---|
| fiat | string | – | Fiat currency code for monetary figures (default usd). |
| Name | Type | Req | Description |
|---|---|---|---|
| body | – | – | – |
| httpStatus | integer | yes | – |
| ledgerEventId | string|null | – | – |
| ledgerStatus | string|null | – | – |
| ok | boolean | yes | – |
No examples provided.
pm_data_sources_health Prediction-market venue freshness and health ~82
Free public per-venue ingest health across all CoinRithm sources: freshness tier, observed lag, stale/degraded reason, coverage counts, and current health timestamps. Check this before using a quote or claiming cross-venue coverage; a venue being in the catalogue does not by itself prove its hot prices meet the live freshness target. No API key required.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| body | – | – | – |
| httpStatus | integer | yes | – |
| ledgerEventId | string|null | – | – |
| ledgerStatus | string|null | – | – |
| ok | boolean | yes | – |
No examples provided.
pm_data_surprises Biggest resolved prediction-market surprises ~180
Free public surprise index: resolved binary markets whose winner was priced under 50 (of 100) about 24 hours before settlement, lowest T-24h winner probability first. surprise.t24hProbability and surprise.t7dProbability are the WINNING outcome's probability in 0-100 points (t7d is often null). Multi-strike ladders and markets without provider resolution are excluded. window filters by resolution recency. No API key required.
| Name | Type | Req | Description |
|---|---|---|---|
| fiat | string | – | Fiat currency code for monetary figures (default USD). |
| limit | integer | – | Rows, 1-100 (default 10). |
| offset | integer | – | Pagination offset (default 0). |
| source | string | – | Venue slug, as in pm_data_events rows. |
| window | string | – | Resolved within this window (default all). |
| Name | Type | Req | Description |
|---|---|---|---|
| body | – | – | – |
| httpStatus | integer | yes | – |
| ledgerEventId | string|null | – | – |
| ledgerStatus | string|null | – | – |
| ok | boolean | yes | – |
No examples provided.
pm_data_volume_history Global prediction-market volume trend ~145
Free public global daily prediction-market volume trend: one point per UTC calendar day (day-over-day delta of each event's cumulative volume, summed across REAL-MONEY venues only — play-money/forecast venues like Manifold and Metaculus are excluded), with a per-venue breakdown (bySource) each day. Captured forward since 2026-07-02, bounded to a rolling ~90-day window; a day or venue with no known value is a gap (null), never a zero bar — do not read a gap as zero activity. Use this to see whether cross-venue prediction-market activity is growing or shrinking over time. No API key required.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| body | – | – | – |
| httpStatus | integer | yes | – |
| ledgerEventId | string|null | – | – |
| ledgerStatus | string|null | – | – |
| ok | boolean | yes | – |
No examples provided.
pm_data_whale_wallet Inspect one prediction-market whale wallet ~149
Free public wallet movement detail for one supported on-chain prediction-market venue and address. Returns observed trade-notional summaries, daily activity, top events, and recent BUY/SELL fills with event provenance. CoinRithm flow fields are matched-trade observations; optional provider-reported positions/PnL context is separate and may carry its own availability and as-of markers. Absence of a row is not proof of inactivity. No API key required.
| Name | Type | Req | Description |
|---|---|---|---|
| source | string | yes | Supported wallet-address venue. |
| wallet | string | yes | Full walletAddress from pm_data_whales or pm_data_event, or address from pm_data_whale_wallets. The shortened wallet display is not an address. |
| Name | Type | Req | Description |
|---|---|---|---|
| body | – | – | – |
| httpStatus | integer | yes | – |
| ledgerEventId | string|null | – | – |
| ledgerStatus | string|null | – | – |
| ok | boolean | yes | – |
No examples provided.
pm_data_whale_wallets Explore prediction-market whale wallets ~146
Free public 7-day (default) or 30-day aggregation of identifiable large-trader wallet activity for the on-chain venues that expose wallet addresses. Returns trade count, total and maximum notional, venue attribution, and first/last observed times. An absent wallet does not prove absent trading: anonymized venues and unavailable feeds are excluded. This is market context, not a wallet identity guarantee or recommendation. No API key required.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Max wallets (1-50, default 10). |
| source | string | – | Restrict results to one wallet-address venue. |
| window | string | – | Observed aggregation window (default 7d). |
| Name | Type | Req | Description |
|---|---|---|---|
| body | – | – | – |
| httpStatus | integer | yes | – |
| ledgerEventId | string|null | – | – |
| ledgerStatus | string|null | – | – |
| ok | boolean | yes | – |
No examples provided.
pm_data_whales Get latest prediction-market whale trades ~105
Free public tape of the latest large prediction-market trades (roughly $1k+ notional) across venues, newest first: side, outcome, USD value, price, market question, and the event it printed on. Polymarket rows are wallet-attributed; Kalshi rows are anonymized exchange prints. A large print is information, not a recommendation. No API key required.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Max rows (1-50, default 10). |
| Name | Type | Req | Description |
|---|---|---|---|
| body | – | – | – |
| httpStatus | integer | yes | – |
| ledgerEventId | string|null | – | – |
| ledgerStatus | string|null | – | – |
| ok | boolean | yes | – |
No examples provided.
How do I install the CoinRithm Agent Trading MCP server?
CoinRithm Agent Trading is a hosted endpoint at https://mcp.coinrithm.com/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · mcp.coinrithm.com
claude mcp add --transport http coinrithm-mcp-trading 'https://mcp.coinrithm.com/mcp'
What is the CoinRithm Agent Trading MCP server?
CoinRithm Agent Trading is an MCP server listed in the public MCP registry as io.github.CoinRithm/mcp-trading. Keyless prediction-market data across 12 venues plus paper-trading of crypto spot, futures, and PM. This page covers its hosted endpoint (https://mcp.coinrithm.com/mcp).
Is the CoinRithm Agent Trading MCP server safe to use?
CoinRithm Agent Trading scores 77 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the CoinRithm Agent Trading MCP server expose?
CoinRithm Agent Trading exposes 49 tools: whoami, get_portfolio, get_wallet, list_open_orders, get_positions, and 44 more. Their descriptions and schemas cost roughly 10,951 tokens of context every time the server is loaded.
Does the CoinRithm Agent Trading MCP server require authentication?
No. We connected to CoinRithm Agent Trading without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.
Is the CoinRithm Agent Trading MCP server still maintained?
CoinRithm Agent Trading is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.