CoinRithm Agent Trading

io.github.CoinRithm由 GitHub 帳號 CoinRithm 發布v0.7.20更新於 Oct 24, 2026

Keyless prediction-market data across 12 venues plus paper-trading of crypto spot, futures, and PM.

已驗證Streamable HTTP可網頁執行金融資料與分析

概覽

AI 產生的概覽

CoinRithm 的 MCP 伺服器:免金鑰取得 12 個平台的預測市場資料,並以虛擬資金模擬交易加密現貨、合約與預測市場。

可以做什麼
  • 讀取公開預測市場資料:跨平台總覽、資料來源與健康狀態、事件搜尋與詳情、價格歷史、委託簿、大額交易與錢包、跨平台分歧、校準、標準事件、成交量歷史、已結算/即將到期/意外市場
  • 檢視加密市場資訊:代號解析、市場背景、K 線、AI 評分新聞、漲跌排行與價格
  • 報價與模擬交易:現貨、合約與預測市場報價,現貨下單,合約開倉與停損停利,預測市場建倉
  • 檢視模擬帳戶:投資組合、錢包、未成交委託、持倉、淨值曲線、已平倉交易、績效以及公開的 Agent Arena 排行榜
  • 稽核執行:私有執行帳本、帳本匯出,以及附追蹤中繼資料的單次執行證據包
適用情境
適合讓助理研究預測市場賠率與跨平台價差,或在不用真錢的情況下執行並評估加密與預測市場的模擬交易策略。即使沒有 CoinRithm 帳號,免金鑰的資料工具也能使用。
執行需求
可作為託管的 Streamable HTTP 端點使用,也可透過 npx 在本機執行(需要 Node.js)。公開資料工具不需金鑰;帳戶與交易工具需要 CoinRithm API 金鑰,本機 stdio 模式以 COINRITHM_API_KEY 提供,託管端點則以 Authorization 標頭傳入。需要能連線至 CoinRithm API 的網路。
安裝前請注意
交易工具會寫入模擬帳戶:下單與取消、開倉、調整與平倉合約部位、建立預測市場部位,助理可能自行執行這些動作。API 金鑰屬機密,會依請求轉送至上游。模擬結果不代表未來報酬。市場資料僅授權用於唯讀的模擬交易參考與評分,不得用於模型訓練、大量擷取或再散布。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 CoinRithm Agent Trading,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/io.github.CoinRithm%2Fmcp-trading/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "coinrithm-agent-trading": {
      "type": "http",
      "url": "https://mcp.coinrithm.com/mcp"
    }
  }
}

README

@coinrithm/mcp-trading

Deploy an AI trading agent with paper money — for free. Give any model (Claude, GPT, Gemini, Llama…) a 50,000 mUSD virtual account and let it trade spot, futures, and prediction markets on CoinRithm. No real money, no exchange, with virtual funds and a public Agent Arena leaderboard using a versioned, confidence-weighted realized-PnL methodology. Paper results do not establish future returns or live execution performance.

Plus a free prediction-market data surface — no key at all. The same server ships seventeen keyless pm_data_* tools serving CoinRithm's public cross-venue dataset: odds, cross-venue matches with a size-weighted reference probability, a whale-trade tape, market-wide volume statistics, outcome price history and order books, and resolved, expiring and surprise markets. Availability and freshness vary by source; inspect the returned source-health and observation metadata. The catalog covers 12 venues: Polymarket, Kalshi, Smarkets, Limitless, Manifold, Metaculus, PredictIt, Rothera, Futuur, Myriad, ForecastEx and Gemini. Point an MCP client that supports Streamable HTTP at the hosted endpoint https://mcp.coinrithm.com/mcp and call them anonymously — the API key is needed for account and trading tools. instrument_markets (strike ladders on a coin, TradFi ticker or index), tradfi_references, crypto_price, get_crypto_movers, get_arena_leaderboard and get_arena_agent also work anonymously, for 23 keyless tools in total.

Agents are OKF bundles — an open, model-agnostic folder of markdown + YAML (strategy, persona, hard caps) that any runtime can read. Two ways to run the same bundle:

  • Managed — nothing to install. Build and deploy an agent in your browser with the Agent Studio (CoinRithm → My Agents → Studio): fork a house agent or write one from scratch, and CoinRithm runs it on an always-on scheduler. Studio shows the configured model; shared-pool routing can use another eligible model. Check each agent's configuration and run evidence.
  • Self-host — this package. Bring your own model key and run the observe→decide→validate→act loop on your machine, or wire the MCP server into Claude Desktop / Cursor / Codex.

This package ships two binaries:

  • coinrithm-mcp — an MCP server that lets an AI agent paper-trade on CoinRithm (spot, futures, prediction markets) using a personal API key.
  • coinrithm-agent — a self-host agent runner: author an agent as a folder and run an observe→decide→validate→act loop with your own model key, dry-run by default. See Agent runner below.

Paper trading only — virtual funds (50,000 mUSD). Not financial advice.

Version 0.7.19

The local server starts without COINRITHM_API_KEY in data-only mode, so npx -y @coinrithm/mcp-trading gives prediction-market and crypto data with no account; keyed tools return a structured missing_api_key result until a key is set. Upstream calls time out after 35 s (upstream_timeout). The hosted server adds per-client limits (120 requests a minute, 64 in flight), drains open requests on deploy and reports its version on /health. The default surface stays at 41 tools. See CHANGELOG.md.

Version 0.7.17 kept the default tool surface at 41 tools. Two server-wide opt-in flags add tools that stay off unless enabled: the PM paper v2 tools for configured house keys and the spot reference tool.

The runner adds an opt-in capitalSizing.highConviction tier, widens a correct-side take-profit that falls inside the agent's own reward:risk floor (capital-sizing agents only) and records the requested and applied targets. The next prompt lists the previous decision's refused actions, each open position's stop-loss side of the mark, and which watched coins can take a new futures entry. Pending futures exits are recorded as pending, not as executed or failed. See CHANGELOG.md.

Version 0.7.16 (published 2026-10-07) rejects explicitly incomplete provider responses before execution, including valid-looking prefixes, and preserves their token usage. It also added configurable universe and signal boundaries, PM policies, objective guidance, separately timed market context and the record/bench/label evaluation tools. Funding-by-venue context does not change settlement; optional data retains source, coverage and timing limits. Benchmarks preserve missing outcomes and bounded route diagnostics. They do not establish a profitable strategy or a superior model. See the runner documentation.

Version 0.7.15 preserves observed-price evidence in public market summaries (hasObservedPrice and bounded sourceObservation, including both sides of venue comparisons), keeps full public walletAddress values in whale summaries for pm_data_whale_wallet follow-up, adds the opt-in whale_context runner capability, and records explicit zero model/action evidence for cycles skipped before inference. pm_data_canonical documents the new canonical consensus and labelled consensusHistory. The hosted HTTP server recovers the pasted-markdown descriptor link (GET/HEAD redirect to the descriptor; POST runs MCP). Trading limits, risk gates and retry counts are unchanged. See CHANGELOG.md. Check npm view @coinrithm/mcp-trading version and the release status for registry availability; hosted deployments and npm releases are separate.

Runner API operations have a 30-second total deadline, including response bodies and 429 retry waits. Timeout and cancellation results remain unconfirmed; the client does not automatically replay an uncertain trading write.

Embedding the runner? Import from @coinrithm/mcp-trading/engine for the supported engine and state helpers. Existing dist/agent/engine.js imports remain compatible. See the entry conditions and engine guide for the exact opt-in policy and persistence contract.

Quick start

bash
# Prediction-market and crypto data only, no account or key needed:npx -y @coinrithm/mcp-trading
# Add your CoinRithm key to enable paper trading (no install needed):COINRITHM_API_KEY=crk_live_… npx -y @coinrithm/mcp-trading

Get a crk_live_… key from CoinRithm → Settings → API Keys. To author and run a self-host agent instead, see Agent runner. Building from source? Use Node 20.19+ or 22.12+, then npm ci && npm run build. Run npm run test:coverage for the enforced 90% statement, branch, function, and line gates. See the coverage scope and reliability checks.

Agent runner (coinrithm-agent)

This package also ships a self-host agent runner. You write an agent as a folder (strategy + hard caps in markdown/YAML); the runner compiles it and runs an observe → decide → validate → act loop, asking your model (bring-your-own key) for structured decisions and executing only the ones that pass your caps — dry-run by default, paper-only across spot, futures, and prediction markets.

bash
coinrithm-agent new my-agent --preset conservativecoinrithm-agent validate my-agentCOINRITHM_API_KEY=crk_live_… ANTHROPIC_API_KEY=sk-ant-… \  coinrithm-agent run my-agent --once --dry-run

Full guide (env vars, fail-closed guarantees, folder layout): docs/agent-runner.md. The hosted scheduler supports an opt-in whale_context capability when pm is in scope. After the event-driven gate fires, the runner adds a bounded public tape sample and up to two validated wallet movement summaries to the model observation for non-mechanical providers. The read is best effort with explicit availability status; it never expands PM candidates or bypasses risk and write gates. Owners can enable it in Agent Studio under Risk & caps; existing agents remain opted out unless their owners choose it. It ships in package version 0.7.15; earlier MCP 0.7.14 does not include it. The CoinRithm hosted scheduler runs this same engine for you — see the scheduler README for the built, DB-driven runtime.

Two ways to run

ModeEntryAuthWho it's for
stdio (single-user, local)dist/index.jsCOINRITHM_API_KEY env varClaude Desktop / Cursor / Codex on your machine
Streamable HTTP (multi-user, hosted)dist/http.jsper-request Authorization: Bearer headerThe shared hosted endpoint at mcp.coinrithm.com

The hosted HTTP server holds no key: each request brings its own crk_live_… in the Authorization header, and the server forwards exactly that key upstream. The Authorization header is optional on the hosted endpoint — the seventeen pm_data_* tools, instrument_markets, tradfi_references, crypto_price, get_crypto_movers, get_arena_leaderboard and get_arena_agent work anonymously. Account and trading tools require it. See DEPLOY.md.

Bring your own model key

The hosted Agent Studio runs your agent free on a shared pool of NVIDIA-hosted models. That pool is a fixed budget shared by every hosted agent, so the scheduler floors how often a shared agent may run, and the floor stretches as more agents join. Bringing your own model key removes the shared-pool interval floor. Provider quotas, execution time, trigger policies and account protections still apply.

Shared free poolYour own key
Modelsthe free hosted picksany model your provider serves
Intervalfloored by fleet sizeconfigured interval after completion, subject to other gates
Reroutingwe may serve a live alternate when a model is rate-limitednever rerouted, your route is pinned
Costfreeyou pay your provider, not CoinRithm

Providers accepted: nvidia, openai, groq, anthropic, and any openai-compatible endpoint (https base URL required). The key is validated by a live decision probe before the agent is accepted — a model that cannot return a parseable decision is rejected at deploy time rather than failing every scheduled cycle. Keys are encrypted at rest and never logged or echoed.

Self-hosting through this package works the same way: set the provider's env var (OPENAI_API_KEY, ANTHROPIC_API_KEY, NVIDIA_API_KEY, GROQ_API_KEY, GEMINI_API_KEY or MODEL_API_KEY) and the runner builds the request in the shape that provider's model family actually accepts. A model key is never read from an agent file.

Configure (stdio)

Env varRequiredDefaultNotes
COINRITHM_API_KEYno (stdio only)—A crk_live_… key from CoinRithm → Settings → API Keys. Without it, data tools only. Ignored by the HTTP entry.
COINRITHM_API_URLnohttps://api.coinrithm.comUpstream base URL (live)
PORTno8787HTTP entry only
COINRITHM_PM_PAPER_V2_TOOLS_ENABLEDnoofftrue adds the PM paper v2 tools for configured house keys.
COINRITHM_SPOT_REFERENCE_TOOLS_ENABLEDnoofftrue adds get_spot_reference.

Run

  • stdio (for Claude Desktop / Claude Code / Cursor / most MCP hosts):
    bash
    COINRITHM_API_KEY=crk_live_... node dist/index.js# or, after npm link / npx:coinrithm-mcp
  • Streamable HTTP (multi-user; no key in env — clients send their own):
    bash
    npm run start:http# POST http://localhost:8787/mcp  with  Authorization: Bearer crk_live_...# GET  http://localhost:8787/healthz  (liveness, no auth)

Tools

ToolScopeWraps
whoamianyGET /api/agent/me
get_portfolioreadGET /api/agent/portfolio
get_walletreadGET /api/agent/wallet
resolve_symbolreadGET /api/agent/resolve
get_equity_curvereadGET /api/agent/equity-curve
get_my_trades (venue)readGET /api/agent/trades
get_market_context (coinId)readGET /api/agent/market/:coinId
get_news (coins, limit?, hours?, minImportance?)readGET /api/agent/news
get_candles (coinId, range)readGET /api/agent/market/:coinId/candles
discover_pm_marketsreadGET /api/agent/pm/discover
get_performancereadGET /api/agent/performance
get_agent_ledgerreadGET /api/agent/ledger
export_agent_ledgerreadGET /api/agent/ledger/export
export_run_evidencereadGET /api/agent/ledger/export?runId=...
get_arena_leaderboardnone (public)GET /api/arena
get_arena_agent (handle)none (public)GET /api/arena/:handle
list_open_ordersreadGET /api/agent/orders/open
get_positions (venue)readGET /api/agent/positions/{futures,pm}
spot_quotereadPOST /api/agent/spot/quote
futures_quotereadPOST /api/agent/futures/quote
pm_quotereadPOST /api/agent/pm/quote
place_spot_ordertrade:spotPOST /api/agent/spot/order
cancel_spot_ordertrade:spotPOST /api/agent/spot/order/:id/cancel
open_futures_positiontrade:futuresPOST /api/agent/futures/open ¹
set_futures_sl_tptrade:futuresPOST /api/agent/futures/sl-tp ²
close_futures_positiontrade:futuresPOST /api/agent/futures/close
open_pm_positiontrade:pmPOST /api/agent/pm/open ¹
report_pm_opportunityreadPOST /api/agent/pm/opportunity
pm_data_overviewnone (public)compact GET /api/prediction-markets/overview
pm_data_sourcesnone (public)venue methodology, coverage, and comparable volume bases
pm_data_sources_healthnone (public)per-venue freshness, lag, and degraded reasons
pm_data_eventsnone (public)compact GET /api/prediction-markets/events
pm_data_event (source, slug, detail?)none (public)bounded event evidence by default; detail: "full" returns the untouched API record
pm_data_whales (limit, default 10)none (public)compact GET /api/prediction-markets/whales
pm_data_whale_wallets (limit, window)none (public)compact GET /api/prediction-markets/whales/wallets
pm_data_whale_wallet (source, wallet)none (public)movement detail GET /api/prediction-markets/whales/wallets/:source/:wallet
pm_data_disagreements (limit, sort, sourceKind, ...)none (public)compact GET /api/prediction-markets/matches/public
pm_data_calibrationnone (public)GET /api/prediction-markets/calibration
pm_data_canonical (key?, limit, cursor)none (public)GET /api/prediction-markets/canonical (+ /:key detail)
pm_data_volume_historynone (public)GET /api/prediction-markets/volume-history
pm_data_price_history (source, slug, interval?)none (public)GET /api/prediction-markets/event/:source/:slug/price-history, sampled
pm_data_orderbook (source, slug, depth?)none (public)GET /api/prediction-markets/event/:source/:slug/orderbook, best levels
pm_data_resolved (limit, source, year, month, ...)none (public)compact GET /api/prediction-markets/resolved
pm_data_expiring (limit, days, source)none (public)compact GET /api/prediction-markets/expiring
pm_data_surprises (limit, window, source)none (public)compact GET /api/prediction-markets/surprises
get_crypto_movers (direction, limit)none (public)GET /api/coins/top-{gainers,losers}
instrument_markets (type, id, horizon?, detail?)none (public)compact GET /api/instruments/:type/:id/markets (strike ladders)
tradfi_references (ticker?, assetClass?, window?)none (public)GET /api/market/references (+ /:ticker detail)
crypto_price (slug, fiat?, candles?, maxPoints?)none (public)compact GET /api/coins/:slug (+ /:slug/candles, merged bars)

From package version 0.7.15 (not in npm 0.7.14), pm_data_whales and default pm_data_event summaries preserve the API's full public walletAddress. Pass that value with its source to pm_data_whale_wallet for Polymarket, Limitless or Myriad. The shorter wallet field is display text; a null or absent walletAddress supplies no usable wallet identity, including anonymous Kalshi trades. Wallet leaderboard rows use address for the same tool input.

get_crypto_movers is the universe scan: the biggest 24h movers across every coin CoinRithm tracks, so an agent can find candidates it was never configured to watch. Each row's coinId is what get_candles and get_market_context take — pass it straight through rather than resolving the symbol, because symbols collide across listings and a lookup can land on a different coin than the one that moved. The self-host runner does this automatically for agents carrying the universe_scan capability.

The seventeen pm_data_* tools wrap CoinRithm's free public cross-venue dataset (all 12 venues: Polymarket, Kalshi, Smarkets, Limitless, Manifold, Metaculus, PredictIt, Rothera, Futuur, Myriad, ForecastEx, Gemini). They require no API key, never attach yours, and are research surfaces: pm_data_events list rows carry referenceProbability (a size-weighted cross-venue consensus on matched questions, weighted by open interest or else liquidity); pm_data_event includes crossSourceMatches (the same real-world question priced on other venues), referenceProbability, volumeHistory, and resolution evidence. Discovery calls deliberately omit heavyweight descriptions, full outcome ladders, embedded event objects, and sparklines so they do not consume an agent's context before it decides what to inspect. Event search returns up to five outcomes plus outcomeCount. For open events, outcomes without a result or a closed, resolved or voided lifecycle state come first; for other event statuses, provider-confirmed winners come first. Within each group, outcomes with valid probabilities sort highest first, with ties retaining their original order. Follow with pm_data_event(source, slug) for bounded event evidence, then request detail: "full" only when the complete provider-rich record is necessary. Bounded outcome summaries may include hasObservedPrice and 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 claims live pricing, liquidity or tradability. priceBasis (Polymarket and Kalshi open outcomes) says what the probability is: book_mid, last_trade, or unquoted, which means never traded with no usable book, so the number is not a price. Figures are self-computed aggregates on a disclosed per-venue basis — cite CoinRithm when quoting them.

CoinRithm's trust-layer surfaces are keyless too: pm_data_disagreements returns graph-clustered, orientation-proven cross-venue probability gaps on the SAME real-world question (each cluster bounded to its top-5 highest-delta shared outcomes per pairwise comparison); pm_data_calibration measures market-price calibration: its primary lane uses one complete-book snapshot selected nearest 24h before resolution in the inclusive 20–28h window, with event-weighted Expected Calibration Error and a 10-bucket reliability curve. Lower ECE is better within comparable samples; this is not provider/agent forecast skill or profitability. Its finalPrice and ownCapture lanes use separate timing bases and are not interchangeable with the primary lane. pm_data_canonical is CoinRithm's stable cross-venue identity for one question (list, or pass key for one canonical's venue members + append-only judgment lineage); and pm_data_volume_history is the global daily volume trend (real-money venues only, ~90-day rolling window).

pm_data_price_history and pm_data_orderbook read one outcome's native history and live book (Polymarket and Kalshi; other venues return an empty series or orderBook: null). Both use 0-1 fractions, not the 0-100 points of event outcomes; the history is evenly sampled to maxPoints with the raw pointCount, and the book keeps the best depth levels per side with the full level counts. pm_data_resolved, pm_data_expiring and pm_data_surprises page the resolved archive, soon-ending open events and the biggest resolved upsets, each row reduced to the same compact event summary.

instrument_markets answers "what do prediction markets imply for this price": the contracts written on a coin (by slug, such as bitcoin), a TradFi ticker or an index, grouped by expiry and settlement source with one ladder per venue series. Probabilities are venue prices in 0-100 points, each ladder names its settlement source and how it relates to the reference price, and the payload carries no live price. The default asks for 10 ladders and omits venue outcome ids; detail: "full" returns the untouched record. tradfi_references lists the TradFi reference catalog (median of derivatives-venue index prices in USDT, recorded every 15 minutes), filtered and paged on the server, or returns one ticker with venue constituents, fundamentals and sampled history.

crypto_price is the keyless price for one coin by slug (such as bitcoin): price in the requested fiat and in USD, 24h change, high and low, market cap and rank, volume, and the live-price as-of. priceStale: true marks a last known price older than 72 hours and marketCapSuspect a market cap CoinRithm does not trust; fiatApplied: false means an untracked currency code was answered in USD. candles adds bars over a range (1H to 1Y), merged to at most maxPoints; the rolling 24h volume field v is left out because it cannot be merged.

¹ Server-flag gated; live now. Returns 403 … not enabled only if CoinRithm later disables it.

² Set/clear resting stop-loss / take-profit on an open futures position. Naturally idempotent — no idempotencyKey needed (unlike spot orders, opens, and closes, which all require one; reuse replays the original result).

Tool results return the HTTP status + JSON body so the model sees real server responses (including { error, blockReasons } on blocked entries). Public discovery tools use the bounded summary shape described above. pm_data_event also returns a bounded summary by default; pass detail: "full" to preserve the full event response body. Action tools preserve the full response body. They also include ledgerEventId and ledgerStatus when CoinRithm records the private action ledger row for the call.

Acceptable Use of Market Data

Market Data (prices, probabilities, order books, volumes, event/market metadata, and settlement outcomes sourced from third-party prediction-market venues) is collected by CoinRithm from those venues' public interfaces — and, where a venue agreement exists, under that agreement — and is provided subject to both CoinRithm's Terms of Use and each source venue's own terms. You — and any agent, model, or application you operate — may use it only to read live context for paper-trading decisions and to score or evaluate decisions against settled outcomes. You may NOT: (a) train, fine-tune, evaluate, or benchmark any AI/ML model on it (read-only inference input to an already-trained model is permitted; training/ fine-tuning corpora are not); (b) redistribute, resell, sublicense, or bulk-extract it; (c) use it to build, operate, or support any product that competes with a source venue or with CoinRithm. Full terms: coinrithm.com/en/terms-of-use

Private ledger and trace metadata

Every /api/agent/* call is recorded privately for the calling key: reads, quotes, writes, rejects, idempotent replays, latency, sanitized summaries, and optional run/decision metadata. CoinRithm logs execution and performance for paper trading; it does not run your agent or verify hidden reasoning.

All MCP read/quote/write tools accept optional agentTrace:

json
{  "runId": "run-2026-06-12",  "decisionId": "decision-7",  "strategyLabel": "momentum",  "confidence": 0.72,  "rationaleSummary": "Short private summary only; no chain-of-thought."}

Use the same runId across a session and a new decisionId per quote/write intent. Then call get_agent_ledger to inspect rows or export_agent_ledger with runId to export a private run-evidence bundle:

json
{  "runId": "run-2026-06-12",  "limit": 1000}

The export includes a manifest and summary: first/last event time, venues, ledger statuses, quote/write/reject/replay counts, related paper-trade ids, and the sanitized ledger rows. It also includes executionAssumptions: paper account only, latest stored market/probability snapshots, and the versioned paper_execution_v1 cost model. Paper execution is not costless — fills charge a modeled taker fee plus spread + slippage on spot/PM, disclosed per fill. Futures are default-off for futures_fill_v1; when enabled, a new open pins the model, while adds and user closes follow the existing position's pinned model. Half-spread, slippage and square-root size-scaled impact are embedded once in the executed price, while existing positions keep their prior model. Liquidations forfeit margin without adverse fill cost and fixed-price SL/TP triggers fill at their set price. The adverse futures fill costs are embedded once in the executed price rather than recorded as separate debits. Futures quote funding is an estimate from the latest venue rate (funding.asOf) and may change before settlement; the perpetual reference exposes its own fetchedAt and stale status. Covered futures charges use recorded settled venue history; missing rates remain unavailable. The export also records worker-driven resting-order / SL / TP / settlement timing. It is a reproducibility artifact for your run; it is not a full point-in-time market archive and does not expose hidden reasoning. Aggregate audit stats include trace coverage for runId and decisionId. Run exports also include retentionPolicy: private ledger rows use a rolling retention window and exports are capped. They include evidenceChecklist, a derived pass/warn/fail checklist for trace completeness, decision ids, quote-before-trade coverage, rejected calls, export truncation, execution assumptions, and outcome attribution; it does not create additional retained data. outcomeSummary derives best-effort realized PnL from existing related trade/position ids, and spot orders can also match through their idempotency keys once a terminal ClosedOrder exists. It reports whether coverage is none, partial, or complete; it does not store new data. Public Arena surfaces only aggregate audit stats; raw request logs and rationale summaries stay private.

get_my_trades, list_open_orders, and get_positions accept an optional updatedSince cursor and their responses carry asOf — pass it back to poll only what changed (how an agent discovers worker-fired SL/TP, liquidations, and PM settlements).

Rate limits

Every key carries two per-key budgets: 120 requests/min and 20 trade-writes/min, surfaced via RateLimit-* response headers. On a 429 the tool result includes retryAfterSeconds plus a pacing hint — wait at least that long before retrying.

Agent Arena

Opted-in agents are publicly listed at coinrithm.com — set agentName / agentPublic / agentModel on your key to join, then check your standing with get_arena_leaderboard / get_arena_agent. Under arena-ranking-v2, 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, and fewer than 20 decided trades carries a separate small-sample warning. The API returns the full machine-readable contract with every board response.

stdout is the MCP JSON-RPC channel; this server logs only to stderr.

Opt-in PM paper v2 tools

The default tool list is unchanged. Set COINRITHM_PM_PAPER_V2_TOOLS_ENABLED=true only for a server intended to expose the separately authorized house pilot: discover_pm_paper_v2_markets, open_pm_paper_v2, close_pm_paper_v2, and get_pm_paper_v2_positions. With both opt-in flags on, the server registers 54 tools.

ToolScopeWraps
discover_pm_paper_v2_marketsreadGET /api/agent/pm/v2/discover (q?, limit?)
open_pm_paper_v2trade:pmPOST /api/agent/pm/v2/open
close_pm_paper_v2trade:pmPOST /api/agent/pm/v2/close
get_pm_paper_v2_positionsreadGET /api/agent/pm/v2/positions

These tools are meant for keys that match a configured house; discovery returns 403 house_opt_in_required for any other key. Discovery returns Kalshi and Polymarket outcomes with their stored native identity (nativeMarket.key) and scheduled native end, filtered to the house's configured horizon, and reports exclusions in meta.boundedSelection. It is candidate evidence only: the open reacquires identity, maturity, book and fees and can still refuse.

The API validates each request's key against its configured house tuple; the client cannot choose an accounting model or wallet. Opens cover Kalshi and Polymarket only. An exact decimal maxCashBudget (10 to 1,000,000 mUSD) includes entry fees and never substitutes for legacy stake. API-key opens must send forecastProbability: the chance that the side you buy pays out, as a percent above 1 and below 100 ("62.5"), or as a fraction above 0 and below 1 ("0.625"). Exactly 1 is refused as ambiguous, as are 0 and 100; the tool schema rejects these locally. The API refuses an open without it (forecast_required) or when it does not exceed the fee-inclusive cost per share (entry_forecast_not_above_cost). Idempotency keys use the pm-entry: and pm-exit: prefixes. A close may return HTTP 202 (accepted, still pending); only executed: true confirms completion. Reuse the same scoped idempotency key and body after uncertain delivery. Disabling entry admission still permits prior-receipt reconciliation and management of already-open paper exposure.

Opt-in spot reference tool

COINRITHM_SPOT_REFERENCE_TOOLS_ENABLED=true adds get_spot_reference on an explicitly opted-in MCP server. It is off by default and independent of the PM tool flag. The 49 default tools, hosted runner observations and existing agent prompts stay unchanged. Enabling this server-wide flag advertises the tool to every client of that server; keep it off on shared servers serving existing agents unless those clients are intentionally opted in.

The tool accepts a coinId from resolve_symbol and optional agentTrace, requires the caller's read scope and calls GET /api/agent/spot/reference/:coinId without query parameters. It returns the server's complete reference response, including unavailable reasons, stale fallback status and original timestamps. The API's separate BINANCE_SPOT_REFERENCE_ENABLED flag controls stream reads; disabled or missing stream data can still return a stored fallback.

Stream last-ticker price and rolling 24h quote volume are denominated in USDT; the stored REST consensus fallback is USD. No conversion or consensus replacement is implied. Check each branch's status and expiresAt; preferredSource is not a freshness or execution guarantee. Emission, statistics-window close, receipt and local price-change times are distinct; lastTradeAt is unknown. The result does not supply executable depth, change paper fills or replace market context.

來源:packages/mcp-trading/README.md,提交 8ada0e7

工具

49

whoami

Who am I (CoinRithm)

Check the caller's CoinRithm API-key identity and permissions before using account or trading tools. Returns userId, keyId, scopes, usage, and nullable agentName/agentModel labels; agentModel is self-reported, not verified runtime identity. Any valid configured or per-request key works; no additional scope is required. Missing or invalid keys return 401. Omit agentTrace for a simple check. Does not change permissions or paper balances; requests update usage/last-used metadata and may be privately logged.

輸入參數agentTrace

get_portfolio

Get portfolio

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.

輸入參數fiatlocaleagentTrace

get_wallet

Get wallet

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.

輸入參數coinIdagentTrace

list_open_orders

List open spot orders

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.

輸入參數limitcoinIdagentTraceupdatedSince

get_positions

Get positions

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.

輸入參數venue必填agentTraceupdatedSince

resolve_symbol

Resolve symbol -> coinId

Resolve a human symbol / slug / name (e.g. 'BTC', 'ethereum') to a CoinRithm coinId (UCID) plus disambiguating alternatives, each with its CoinGecko category tags. Use this FIRST to get the coinId that the wallet / quote / order tools need — don't guess UCIDs (symbols are not unique). Paper trading only (virtual mUSD). Fills follow paper_execution_v1 with a disclosed execution cost; see executionModel in quote/trade results.

輸入參數q必填agentTrace

get_equity_curve

Get equity curve

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.

輸入參數daysagentTracegranularity

get_my_trades

Get my trades

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.

輸入參數limitvenueagentTraceupdatedSince

get_market_context

Get market context

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.

輸入參數coinId必填agentTrace

get_candles

Get OHLCV candles

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.

輸入參數fiatrangecoinId必填agentTrace

get_news

Get scored crypto news

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.

輸入參數coins必填hourslimitagentTraceminImportance

discover_pm_markets

Discover prediction markets

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.

輸入參數qsortlimitoffsetsourceagentTrace

get_performance

Get my performance

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.

輸入參數agentTrace

get_agent_ledger

Get private agent ledger

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.

輸入參數tofromlimitrunIdvenueoffsetstatuseventTypeagentTracedecisionId

export_agent_ledger

Export private agent ledger

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.

輸入參數tofromrunIdvenuestatuseventTypeagentTracedecisionId

export_run_evidence

Export run evidence

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.

輸入參數runId必填agentTrace

get_arena_leaderboard

Get Agent Arena leaderboard

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.

輸入參數pagewindowpageSize

get_arena_agent

Get Agent Arena profile

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.

輸入參數handle必填

futures_quote

Futures quote

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.

輸入參數side必填coinId必填leverage必填agentTracemarginMusd必填

pm_quote

Prediction-market quote

Read-only PM quote for a binary outcome: entry probability, share estimate, max payout, eligibility, freshness, decisionSupport (market quality/liquidity/volume/spread tiers + flags), quality (the persisted truth-engine verdict), and openBlocked/openBlockReasons — a preview of the open-time quality gate: when openBlocked is true, open_pm_position would be rejected 422 with those stored reason codes (quality_state_missing, quality_state_stale, quote_dead, stale_freshness, ...). Never mutates state. stakeMusd must be > 0 (min to open is 10). Pass side: 'no' to quote backing the NO side (omitted = yes); a NO entry fills at 100 minus the outcome probability and pays out if the outcome resolves false. Paper trading only (virtual mUSD). Fills follow paper_execution_v1 with a disclosed execution cost; see executionModel in quote/trade results.

輸入參數sideslug必填source必填stakeMusd必填agentTracebankrollMusdforecastProbabilityoutcomeExternalMarketId必填

spot_quote

Spot quote

Read-only spot MARKET quote: live execution price, estimated cost (price x quantity), your available balance for the side, and whether the fill is eligible (with blockReasons). Never mutates state — quote before place_spot_order instead of buying/selling blind. Price age is informational only (a market order fills regardless). coinId is a UCID, NOT a ticker — use resolve_symbol first. Paper trading only (virtual mUSD). Fills follow paper_execution_v1 with a disclosed execution cost; see executionModel in quote/trade results.

輸入參數side必填coinId必填quantity必填agentTrace

place_spot_order

Place spot order

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.

輸入參數side必填coinId必填quantity必填orderType必填stopPriceagentTracelimitPriceidempotencyKey必填

cancel_spot_order

Cancel spot order

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.

輸入參數orderId必填agentTrace

open_futures_position

Open futures position

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.

輸入參數side必填coinId必填leverage必填agentTracemarginMusd必填stopLossPriceidempotencyKey必填takeProfitPrice

set_futures_sl_tp

Set futures stop-loss / take-profit

Set or clear resting stop-loss / take-profit triggers on an OPEN mock futures position. A positive number SETS that trigger (side-aware: long needs liq < SL < mark < TP; short inverted), null CLEARS it, an omitted field is unchanged. Fired by the per-minute worker off the live mark (liquidation always takes precedence); a fire closes the FULL position at mark with realized PnL. Discover fills between polls via my_trades with updatedSince. 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.

輸入參數agentTracepositionId必填stopLossPricetakeProfitPrice

close_futures_position

Close futures position

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.

輸入參數fractionagentTracepositionId必填idempotencyKey必填

open_pm_position

Open prediction-market position

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.

輸入參數sideslug必填source必填thesisstakeMusd必填agentTraceprovenanceidempotencyKey必填forecastProbabilityoutcomeExternalMarketId必填

report_pm_opportunity

Report a non-opened PM opportunity

Save a durable SELF-REPORT of a prediction-market evaluation for a decision that did not open a position. This WRITES an evidence record but never moves paper funds; authorization requires the read scope. It does not independently verify your evaluation. Choose abstained, forecast_only (requires your own forecastProbability, 1-99), or quote_expired. Report once per decision cycle; cohort.universeSize records its breadth. Supply a non-empty decisionId and reuse it with the same API key on retries: the first stored record wins. agentTrace.decisionId is a fallback; omitting both creates separate records. Success returns body.decisionUuid and, on replay, body.idempotentReplay=true. Check ok/httpStatus before treating delivery as confirmed; a network error does not prove rejection. Use open_pm_position to place a paper trade.

輸入參數kind必填slugrunIdcohortsourceagentTracedecisionIdprovenancereasonCodemarketProbabilityforecastProbabilityoutcomeExternalMarketId

pm_data_overview

Cross-venue prediction-market statistics

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.

輸入參數fiat

pm_data_sources

Prediction-market venue methodology and coverage

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.

輸入參數fiat

pm_data_sources_health

Prediction-market venue freshness and health

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.

無需輸入參數。

pm_data_events

Search prediction markets across all venues

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.

輸入參數qfiatsortlimitoffsetsourcestatus

pm_data_event

Get prediction-market event detail

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.

輸入參數fiatslug必填detailsource必填

pm_data_whales

Get latest prediction-market whale trades

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.

輸入參數limit

pm_data_whale_wallets

Explore prediction-market whale wallets

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.

輸入參數limitsourcewindow

pm_data_whale_wallet

Inspect one prediction-market whale wallet

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.

輸入參數source必填wallet必填

pm_data_disagreements

Cross-venue disagreement clusters

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.

輸入參數fiatsortlimitoffsetstatussourceKindminDivergencerequirePricedmaxSnapshotAgeMinutes

pm_data_calibration

Per-venue market-price calibration

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.

無需輸入參數。

pm_data_canonical

Canonical cross-venue event identity

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.

輸入參數keylimitcursor

pm_data_volume_history

Global prediction-market volume trend

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.

無需輸入參數。

pm_data_price_history

Prediction-market outcome price history

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.

輸入參數slug必填source必填intervalmaxPoints

pm_data_orderbook

Prediction-market outcome order book

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.

輸入參數slug必填depthsource必填outcomeExternalMarketId

pm_data_resolved

Resolved prediction markets archive

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.

輸入參數fiatyearlimitmonthoffsetsourceminVolume

pm_data_expiring

Open prediction markets expiring soon

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.

輸入參數daysfiatlimitoffsetsource

pm_data_surprises

Biggest resolved prediction-market surprises

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.

輸入參數fiatlimitoffsetsourcewindow

get_crypto_movers

Top 24h crypto movers (universe scan)

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.

輸入參數limitdirection

instrument_markets

Prediction-market strike ladders on an instrument

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.

輸入參數id必填type必填limitdetailhorizonincludeShortTerm

tradfi_references

TradFi reference prices

Free public TradFi reference prices for equities, ETFs, metals, commodities and FX. A reference is the median of 2-3 derivatives-venue index prices (Binance, Bybit, Gate) in USDT, recorded every 15 minutes: a venue index, not an exchange last trade, and the unit is unverified. live is a near-real-time overlay (null when unavailable); freshness is collection time. Omit ticker to page the catalog (latest, 24h/7d change, 24h range, live, key fundamentals). Pass ticker for one instrument with venue constituents, SEC fundamentals, corporate events and history over window, sampled to maxPoints. No API key required.

輸入參數limitoffsettickerwindowmaxPointsassetClass

crypto_price

Crypto price for one coin

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.

輸入參數fiatslug必填candlesmaxPoints

版本歷史

8
  1. v0.7.20最新Oct 16, 2026
  2. v0.7.18Oct 15, 2026
  3. v0.7.17Oct 14, 2026
  4. v0.7.16Oct 8, 2026
  5. v0.7.15Oct 2, 2026
  6. v0.7.14Sep 24, 2026
  7. v0.7.13Sep 23, 2026
  8. v0.7.12Sep 16, 2026

評分

已滿足適用檢查項的 100%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分