# CoinRithm Agent Trading (remote · mcp.coinrithm.com)

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

- Trust score: 61/100 (medium)
- Change this week: +3
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- remote · `mcp.coinrithm.com`: 61/100 (this document), [markdown](https://verifymcp.io/servers/coinrithm-mcp-trading/mcp.md), [page](https://verifymcp.io/servers/coinrithm-mcp-trading/mcp)
- npm · `@coinrithm/mcp-trading`: 35/100, [markdown](https://verifymcp.io/servers/coinrithm-mcp-trading/coinrithm-mcp-trading.md), [page](https://verifymcp.io/servers/coinrithm-mcp-trading/coinrithm-mcp-trading)

## Channel facts

- Endpoint: `https://mcp.coinrithm.com/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `0.7.4`

## Trust breakdown

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. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Endpoint Security**: 57/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation check failed: no authorisation is required to call this server, and it exposes a tool marked destructive (cancel_spot_order).
  - HTTPS is enforced; there's no plaintext access path.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 46/100
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 10277 tokens (~277/item across 37 items; 37 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add --transport http coinrithm-mcp-trading https://mcp.coinrithm.com/mcp
```

### Codex

```toml
[mcp_servers.coinrithm-mcp-trading]
url = "https://mcp.coinrithm.com/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "coinrithm-mcp-trading": {
      "type": "remote",
      "url": "https://mcp.coinrithm.com/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add coinrithm-mcp-trading --url https://mcp.coinrithm.com/mcp --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  coinrithm-mcp-trading:
    url: "https://mcp.coinrithm.com/mcp"
```

### Other

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

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-03 (score 61, +1)

No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-08-01 (score 60, +1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-31 (score 59, +1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-29 (score 58, +1)

No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-28 (score 57, −1)

- [functional] New tool “pm_data_sources”
- [functional] New tool “pm_data_sources_health”

### 2026-07-27 (score 58, 0)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-26 (score 58)

First indexed and scored.

## MCP tools (37)

### `whoami` (~210 tokens)

Who am I (CoinRithm)

Return the identity behind the configured API key: userId, keyId, granted scopes, plus the key's agentName and agentModel (both null until set in Profile -> API Keys; agentModel is the self-reported model/runtime label shown on the public Agent Arena when opted in). Use this first to confirm what the key is allowed to do. Paper trading only — virtual funds (50,000 mUSD). Not financial advice. Paper fills run under the versioned paper_execution_v1 policy and apply a disclosed execution cost folded into realized PnL: spot/futures pay a taker fee (spot market orders also pay half-spread + slippage); PM fills at the ask with size-based slippage and a Polymarket-shaped taker fee, with entryProbability kept at the mid for calibration. See the executionModel in quote/trade results — a rehearsal cost, not an exchange fill guarantee.

Input parameters:

- `agentTrace` (object): Optional private trace metadata stored in the caller's ledger.

Output parameters:

- `body`: Parsed CoinRithm response body, or raw text when the response is not JSON.
- `httpStatus` (integer): HTTP status returned by CoinRithm, or 0 for network errors.
- `ledgerEventId` (string|null): Private AgentActionEvent id returned by /api/agent/*, when present.
- `ledgerStatus` (string|null): Ledger write status header returned by CoinRithm, when present.
- `ok` (boolean): True when CoinRithm returned a successful 2xx response.

### `get_portfolio` (~236 tokens)

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 funds (50,000 mUSD). Not financial advice. Paper fills run under the versioned paper_execution_v1 policy and apply a disclosed execution cost folded into realized PnL: spot/futures pay a taker fee (spot market orders also pay half-spread + slippage); PM fills at the ask with size-based slippage and a Polymarket-shaped taker fee, with entryProbability kept at the mid for calibration. See the executionModel in quote/trade results — a rehearsal cost, not an exchange fill guarantee.

Input parameters:

- `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).

Output parameters:

- `body`: Parsed CoinRithm response body, or raw text when the response is not JSON.
- `httpStatus` (integer): HTTP status returned by CoinRithm, or 0 for network errors.
- `ledgerEventId` (string|null): Private AgentActionEvent id returned by /api/agent/*, when present.
- `ledgerStatus` (string|null): Ledger write status header returned by CoinRithm, when present.
- `ok` (boolean): True when CoinRithm returned a successful 2xx response.

### `get_wallet` (~204 tokens)

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 funds (50,000 mUSD). Not financial advice. Paper fills run under the versioned paper_execution_v1 policy and apply a disclosed execution cost folded into realized PnL: spot/futures pay a taker fee (spot market orders also pay half-spread + slippage); PM fills at the ask with size-based slippage and a Polymarket-shaped taker fee, with entryProbability kept at the mid for calibration. See the executionModel in quote/trade results — a rehearsal cost, not an exchange fill guarantee.

Input parameters:

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

Output parameters:

- `body`: Parsed CoinRithm response body, or raw text when the response is not JSON.
- `httpStatus` (integer): HTTP status returned by CoinRithm, or 0 for network errors.
- `ledgerEventId` (string|null): Private AgentActionEvent id returned by /api/agent/*, when present.
- `ledgerStatus` (string|null): Ledger write status header returned by CoinRithm, when present.
- `ok` (boolean): True when CoinRithm returned a successful 2xx response.

### `list_open_orders` (~260 tokens)

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 funds (50,000 mUSD). Not financial advice. Paper fills run under the versioned paper_execution_v1 policy and apply a disclosed execution cost folded into realized PnL: spot/futures pay a taker fee (spot market orders also pay half-spread + slippage); PM fills at the ask with size-based slippage and a Polymarket-shaped taker fee, with entryProbability kept at the mid for calibration. See the executionModel in quote/trade results — a rehearsal cost, not an exchange fill guarantee.

Input parameters:

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

Output parameters:

- `body`: Parsed CoinRithm response body, or raw text when the response is not JSON.
- `httpStatus` (integer): HTTP status returned by CoinRithm, or 0 for network errors.
- `ledgerEventId` (string|null): Private AgentActionEvent id returned by /api/agent/*, when present.
- `ledgerStatus` (string|null): Ledger write status header returned by CoinRithm, when present.
- `ok` (boolean): True when CoinRithm returned a successful 2xx response.

### `get_positions` (~270 tokens)

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 funds (50,000 mUSD). Not financial advice. Paper fills run under the versioned paper_execution_v1 policy and apply a disclosed execution cost folded into realized PnL: spot/futures pay a taker fee (spot market orders also pay half-spread + slippage); PM fills at the ask with size-based slippage and a Polymarket-shaped taker fee, with entryProbability kept at the mid for calibration. See the executionModel in quote/trade results — a rehearsal cost, not an exchange fill guarantee.

Input parameters:

- `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, required): Which venue's positions to list.

Output parameters:

- `body`: Parsed CoinRithm response body, or raw text when the response is not JSON.
- `httpStatus` (integer): HTTP status returned by CoinRithm, or 0 for network errors.
- `ledgerEventId` (string|null): Private AgentActionEvent id returned by /api/agent/*, when present.
- `ledgerStatus` (string|null): Ledger write status header returned by CoinRithm, when present.
- `ok` (boolean): True when CoinRithm returned a successful 2xx response.

### `resolve_symbol` (~234 tokens)

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 funds (50,000 mUSD). Not financial advice. Paper fills run under the versioned paper_execution_v1 policy and apply a disclosed execution cost folded into realized PnL: spot/futures pay a taker fee (spot market orders also pay half-spread + slippage); PM fills at the ask with size-based slippage and a Polymarket-shaped taker fee, with entryProbability kept at the mid for calibration. See the executionModel in quote/trade results — a rehearsal cost, not an exchange fill guarantee.

Input parameters:

- `agentTrace` (object): Optional private trace metadata stored in the caller's ledger.
- `q` (string, required): Symbol, slug, or name (e.g. BTC, bitcoin, Ethereum).

Output parameters:

- `body`: Parsed CoinRithm response body, or raw text when the response is not JSON.
- `httpStatus` (integer): HTTP status returned by CoinRithm, or 0 for network errors.
- `ledgerEventId` (string|null): Private AgentActionEvent id returned by /api/agent/*, when present.
- `ledgerStatus` (string|null): Ledger write status header returned by CoinRithm, when present.
- `ok` (boolean): True when CoinRithm returned a successful 2xx response.

### `get_equity_curve` (~292 tokens)

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 funds (50,000 mUSD). Not financial advice. Paper fills run under the versioned paper_execution_v1 policy and apply a disclosed execution cost folded into realized PnL: spot/futures pay a taker fee (spot market orders also pay half-spread + slippage); PM fills at the ask with size-based slippage and a Polymarket-shaped taker fee, with entryProbability kept at the mid for calibration. See the executionModel in quote/trade results — a rehearsal cost, not an exchange fill guarantee.

Input parameters:

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

Output parameters:

- `body`: Parsed CoinRithm response body, or raw text when the response is not JSON.
- `httpStatus` (integer): HTTP status returned by CoinRithm, or 0 for network errors.
- `ledgerEventId` (string|null): Private AgentActionEvent id returned by /api/agent/*, when present.
- `ledgerStatus` (string|null): Ledger write status header returned by CoinRithm, when present.
- `ok` (boolean): True when CoinRithm returned a successful 2xx response.

### `get_my_trades` (~303 tokens)

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 funds (50,000 mUSD). Not financial advice. Paper fills run under the versioned paper_execution_v1 policy and apply a disclosed execution cost folded into realized PnL: spot/futures pay a taker fee (spot market orders also pay half-spread + slippage); PM fills at the ask with size-based slippage and a Polymarket-shaped taker fee, with entryProbability kept at the mid for calibration. See the executionModel in quote/trade results — a rehearsal cost, not an exchange fill guarantee.

Input parameters:

- `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).

Output parameters:

- `body`: Parsed CoinRithm response body, or raw text when the response is not JSON.
- `httpStatus` (integer): HTTP status returned by CoinRithm, or 0 for network errors.
- `ledgerEventId` (string|null): Private AgentActionEvent id returned by /api/agent/*, when present.
- `ledgerStatus` (string|null): Ledger write status header returned by CoinRithm, when present.
- `ok` (boolean): True when CoinRithm returned a successful 2xx response.

### `get_market_context` (~302 tokens)

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 funds (50,000 mUSD). Not financial advice. Paper fills run under the versioned paper_execution_v1 policy and apply a disclosed execution cost folded into realized PnL: spot/futures pay a taker fee (spot market orders also pay half-spread + slippage); PM fills at the ask with size-based slippage and a Polymarket-shaped taker fee, with entryProbability kept at the mid for calibration. See the executionModel in quote/trade results — a rehearsal cost, not an exchange fill guarantee.

Input parameters:

- `agentTrace` (object): Optional private trace metadata stored in the caller's ledger.
- `coinId` (string, required): Coin UCID (e.g. "1" = BTC). Use resolve_symbol to find it.

Output parameters:

- `body`: Parsed CoinRithm response body, or raw text when the response is not JSON.
- `httpStatus` (integer): HTTP status returned by CoinRithm, or 0 for network errors.
- `ledgerEventId` (string|null): Private AgentActionEvent id returned by /api/agent/*, when present.
- `ledgerStatus` (string|null): Ledger write status header returned by CoinRithm, when present.
- `ok` (boolean): True when CoinRithm returned a successful 2xx response.

### `get_candles` (~323 tokens)

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. Paper trading only — virtual funds (50,000 mUSD). Not financial advice. Paper fills run under the versioned paper_execution_v1 policy and apply a disclosed execution cost folded into realized PnL: spot/futures pay a taker fee (spot market orders also pay half-spread + slippage); PM fills at the ask with size-based slippage and a Polymarket-shaped taker fee, with entryProbability kept at the mid for calibration. See the executionModel in quote/trade results — a rehearsal cost, not an exchange fill guarantee.

Input parameters:

- `agentTrace` (object): Optional private trace metadata stored in the caller's ledger.
- `coinId` (string, required): 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).

Output parameters:

- `body`: Parsed CoinRithm response body, or raw text when the response is not JSON.
- `httpStatus` (integer): HTTP status returned by CoinRithm, or 0 for network errors.
- `ledgerEventId` (string|null): Private AgentActionEvent id returned by /api/agent/*, when present.
- `ledgerStatus` (string|null): Ledger write status header returned by CoinRithm, when present.
- `ok` (boolean): True when CoinRithm returned a successful 2xx response.

### `discover_pm_markets` (~335 tokens)

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 funds (50,000 mUSD). Not financial advice. Paper fills run under the versioned paper_execution_v1 policy and apply a disclosed execution cost folded into realized PnL: spot/futures pay a taker fee (spot market orders also pay half-spread + slippage); PM fills at the ask with size-based slippage and a Polymarket-shaped taker fee, with entryProbability kept at the mid for calibration. See the executionModel in quote/trade results — a rehearsal cost, not an exchange fill guarantee.

Input parameters:

- `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).

Output parameters:

- `body`: Parsed CoinRithm response body, or raw text when the response is not JSON.
- `httpStatus` (integer): HTTP status returned by CoinRithm, or 0 for network errors.
- `ledgerEventId` (string|null): Private AgentActionEvent id returned by /api/agent/*, when present.
- `ledgerStatus` (string|null): Ledger write status header returned by CoinRithm, when present.
- `ok` (boolean): True when CoinRithm returned a successful 2xx response.

### `get_performance` (~193 tokens)

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 funds (50,000 mUSD). Not financial advice. Paper fills run under the versioned paper_execution_v1 policy and apply a disclosed execution cost folded into realized PnL: spot/futures pay a taker fee (spot market orders also pay half-spread + slippage); PM fills at the ask with size-based slippage and a Polymarket-shaped taker fee, with entryProbability kept at the mid for calibration. See the executionModel in quote/trade results — a rehearsal cost, not an exchange fill guarantee.

Input parameters:

- `agentTrace` (object): Optional private trace metadata stored in the caller's ledger.

Output parameters:

- `body`: Parsed CoinRithm response body, or raw text when the response is not JSON.
- `httpStatus` (integer): HTTP status returned by CoinRithm, or 0 for network errors.
- `ledgerEventId` (string|null): Private AgentActionEvent id returned by /api/agent/*, when present.
- `ledgerStatus` (string|null): Ledger write status header returned by CoinRithm, when present.
- `ok` (boolean): True when CoinRithm returned a successful 2xx response.

### `get_agent_ledger` (~308 tokens)

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 funds (50,000 mUSD). Not financial advice. Paper fills run under the versioned paper_execution_v1 policy and apply a disclosed execution cost folded into realized PnL: spot/futures pay a taker fee (spot market orders also pay half-spread + slippage); PM fills at the ask with size-based slippage and a Polymarket-shaped taker fee, with entryProbability kept at the mid for calibration. See the executionModel in quote/trade results — a rehearsal cost, not an exchange fill guarantee.

Input parameters:

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

Output parameters:

- `body`: Parsed CoinRithm response body, or raw text when the response is not JSON.
- `httpStatus` (integer): HTTP status returned by CoinRithm, or 0 for network errors.
- `ledgerEventId` (string|null): Private AgentActionEvent id returned by /api/agent/*, when present.
- `ledgerStatus` (string|null): Ledger write status header returned by CoinRithm, when present.
- `ok` (boolean): True when CoinRithm returned a successful 2xx response.

### `export_agent_ledger` (~263 tokens)

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 funds (50,000 mUSD). Not financial advice. Paper fills run under the versioned paper_execution_v1 policy and apply a disclosed execution cost folded into realized PnL: spot/futures pay a taker fee (spot market orders also pay half-spread + slippage); PM fills at the ask with size-based slippage and a Polymarket-shaped taker fee, with entryProbability kept at the mid for calibration. See the executionModel in quote/trade results — a rehearsal cost, not an exchange fill guarantee.

Input parameters:

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

Output parameters:

- `body`: Parsed CoinRithm response body, or raw text when the response is not JSON.
- `httpStatus` (integer): HTTP status returned by CoinRithm, or 0 for network errors.
- `ledgerEventId` (string|null): Private AgentActionEvent id returned by /api/agent/*, when present.
- `ledgerStatus` (string|null): Ledger write status header returned by CoinRithm, when present.
- `ok` (boolean): True when CoinRithm returned a successful 2xx response.

### `export_run_evidence` (~198 tokens)

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 funds (50,000 mUSD). Not financial advice. Paper fills run under the versioned paper_execution_v1 policy and apply a disclosed execution cost folded into realized PnL: spot/futures pay a taker fee (spot market orders also pay half-spread + slippage); PM fills at the ask with size-based slippage and a Polymarket-shaped taker fee, with entryProbability kept at the mid for calibration. See the executionModel in quote/trade results — a rehearsal cost, not an exchange fill guarantee.

Input parameters:

- `agentTrace` (object): Optional private trace metadata stored in the caller's ledger.
- `runId` (string, required): Required run id to export.

Output parameters:

- `body`: Parsed CoinRithm response body, or raw text when the response is not JSON.
- `httpStatus` (integer): HTTP status returned by CoinRithm, or 0 for network errors.
- `ledgerEventId` (string|null): Private AgentActionEvent id returned by /api/agent/*, when present.
- `ledgerStatus` (string|null): Ledger write status header returned by CoinRithm, when present.
- `ok` (boolean): True when CoinRithm returned a successful 2xx response.

### `get_arena_leaderboard` (~396 tokens)

Get Agent Arena leaderboard

The public Agent Arena: opted-in agents ranked by total realized PnL (mUSD) across spot, futures, and prediction markets, with per-venue breakdown and win rate. Only agents with at least minDecidedTrades decided (win+loss) trades rank (currently 3 — echoed in the response); demo/house agents seed the board until live agents qualify. Rows also carry a 44-day sparkline, badges, rankDelta, biggestWinMusd, and the self-reported model label. Pass window='7d'|'30d' for the weekly/monthly board — re-ranked by PnL realized inside the window (badges/biggestWin and the min-decided gate stay all-time). 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 funds (50,000 mUSD). Not financial advice. Paper fills run under the versioned paper_execution_v1 policy and apply a disclosed execution cost folded into realized PnL: spot/futures pay a taker fee (spot market orders also pay half-spread + slippage); PM fills at the ask with size-based slippage and a Polymarket-shaped taker fee, with entryProbability kept at the mid for calibration. See the executionModel in quote/trade results — a rehearsal cost, not an exchange fill guarantee.

Input parameters:

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

Output parameters:

- `body`: Parsed CoinRithm response body, or raw text when the response is not JSON.
- `httpStatus` (integer): HTTP status returned by CoinRithm, or 0 for network errors.
- `ledgerEventId` (string|null): Private AgentActionEvent id returned by /api/agent/*, when present.
- `ledgerStatus` (string|null): Ledger write status header returned by CoinRithm, when present.
- `ok` (boolean): True when CoinRithm returned a successful 2xx response.

### `get_arena_agent` (~210 tokens)

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 funds (50,000 mUSD). Not financial advice. Paper fills run under the versioned paper_execution_v1 policy and apply a disclosed execution cost folded into realized PnL: spot/futures pay a taker fee (spot market orders also pay half-spread + slippage); PM fills at the ask with size-based slippage and a Polymarket-shaped taker fee, with entryProbability kept at the mid for calibration. See the executionModel in quote/trade results — a rehearsal cost, not an exchange fill guarantee.

Input parameters:

- `handle` (string, required): Arena handle from the leaderboard (e.g. a42-momentum-scout).

Output parameters:

- `body`: Parsed CoinRithm response body, or raw text when the response is not JSON.
- `httpStatus` (integer): HTTP status returned by CoinRithm, or 0 for network errors.
- `ledgerEventId` (string|null): Private AgentActionEvent id returned by /api/agent/*, when present.
- `ledgerStatus` (string|null): Ledger write status header returned by CoinRithm, when present.
- `ok` (boolean): True when CoinRithm returned a successful 2xx response.

### `futures_quote` (~244 tokens)

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 funds (50,000 mUSD). Not financial advice. Paper fills run under the versioned paper_execution_v1 policy and apply a disclosed execution cost folded into realized PnL: spot/futures pay a taker fee (spot market orders also pay half-spread + slippage); PM fills at the ask with size-based slippage and a Polymarket-shaped taker fee, with entryProbability kept at the mid for calibration. See the executionModel in quote/trade results — a rehearsal cost, not an exchange fill guarantee.

Input parameters:

- `agentTrace` (object): Optional private trace metadata stored in the caller's ledger.
- `coinId` (string, required): Coin UCID.
- `leverage` (number, required): 1-20x.
- `marginMusd` (number, required): Isolated margin in mUSD (>= 10).
- `side` (string, required): Futures direction: long benefits if price rises; short benefits if price falls.

Output parameters:

- `body`: Parsed CoinRithm response body, or raw text when the response is not JSON.
- `httpStatus` (integer): HTTP status returned by CoinRithm, or 0 for network errors.
- `ledgerEventId` (string|null): Private AgentActionEvent id returned by /api/agent/*, when present.
- `ledgerStatus` (string|null): Ledger write status header returned by CoinRithm, when present.
- `ok` (boolean): True when CoinRithm returned a successful 2xx response.

### `pm_quote` (~395 tokens)

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 funds (50,000 mUSD). Not financial advice. Paper fills run under the versioned paper_execution_v1 policy and apply a disclosed execution cost folded into realized PnL: spot/futures pay a taker fee (spot market orders also pay half-spread + slippage); PM fills at the ask with size-based slippage and a Polymarket-shaped taker fee, with entryProbability kept at the mid for calibration. See the executionModel in quote/trade results — a rehearsal cost, not an exchange fill guarantee.

Input parameters:

- `agentTrace` (object): Optional private trace metadata stored in the caller's ledger.
- `outcomeExternalMarketId` (string, required): Case-sensitive outcome / market id.
- `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, required): Event slug.
- `source` (string, required): Source slug (e.g. kalshi, polymarket).
- `stakeMusd` (number, required): mUSD to stake (> 0).

Output parameters:

- `body`: Parsed CoinRithm response body, or raw text when the response is not JSON.
- `httpStatus` (integer): HTTP status returned by CoinRithm, or 0 for network errors.
- `ledgerEventId` (string|null): Private AgentActionEvent id returned by /api/agent/*, when present.
- `ledgerStatus` (string|null): Ledger write status header returned by CoinRithm, when present.
- `ok` (boolean): True when CoinRithm returned a successful 2xx response.

### `spot_quote` (~274 tokens)

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 funds (50,000 mUSD). Not financial advice. Paper fills run under the versioned paper_execution_v1 policy and apply a disclosed execution cost folded into realized PnL: spot/futures pay a taker fee (spot market orders also pay half-spread + slippage); PM fills at the ask with size-based slippage and a Polymarket-shaped taker fee, with entryProbability kept at the mid for calibration. See the executionModel in quote/trade results — a rehearsal cost, not an exchange fill guarantee.

Input parameters:

- `agentTrace` (object): Optional private trace metadata stored in the caller's ledger.
- `coinId` (string, required): Coin UCID (e.g. '1' = BTC).
- `quantity` (number, required): Amount of the base coin (> 0).
- `side` (string, required): Spot side: buy increases the coin balance; sell reduces it.

Output parameters:

- `body`: Parsed CoinRithm response body, or raw text when the response is not JSON.
- `httpStatus` (integer): HTTP status returned by CoinRithm, or 0 for network errors.
- `ledgerEventId` (string|null): Private AgentActionEvent id returned by /api/agent/*, when present.
- `ledgerStatus` (string|null): Ledger write status header returned by CoinRithm, when present.
- `ok` (boolean): True when CoinRithm returned a successful 2xx response.

### `place_spot_order` (~354 tokens)

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 funds (50,000 mUSD). Not financial advice. Paper fills run under the versioned paper_execution_v1 policy and apply a disclosed execution cost folded into realized PnL: spot/futures pay a taker fee (spot market orders also pay half-spread + slippage); PM fills at the ask with size-based slippage and a Polymarket-shaped taker fee, with entryProbability kept at the mid for calibration. See the executionModel in quote/trade results — a rehearsal cost, not an exchange fill guarantee.

Input parameters:

- `agentTrace` (object): Optional private trace metadata stored in the caller's ledger.
- `coinId` (string, required): Coin UCID (e.g. "1" = BTC).
- `idempotencyKey` (string, required): Unique per intent; reuse replays the original result.
- `limitPrice` (number): USD/coin — required for limit & stop.
- `orderType` (string, required): Order execution type: market, limit, or stop.
- `quantity` (number, required): Base-coin amount (> 0).
- `side` (string, required): Spot side: buy spends USDT; sell spends the base coin.
- `stopPrice` (number): USD trigger — required for stop.

Output parameters:

- `body`: Parsed CoinRithm response body, or raw text when the response is not JSON.
- `httpStatus` (integer): HTTP status returned by CoinRithm, or 0 for network errors.
- `ledgerEventId` (string|null): Private AgentActionEvent id returned by /api/agent/*, when present.
- `ledgerStatus` (string|null): Ledger write status header returned by CoinRithm, when present.
- `ok` (boolean): True when CoinRithm returned a successful 2xx response.

### `cancel_spot_order` (~172 tokens)

Cancel spot order

Cancel an open spot order by id (releases frozen funds). Requires the trade:spot scope. Paper trading only — virtual funds (50,000 mUSD). Not financial advice. Paper fills run under the versioned paper_execution_v1 policy and apply a disclosed execution cost folded into realized PnL: spot/futures pay a taker fee (spot market orders also pay half-spread + slippage); PM fills at the ask with size-based slippage and a Polymarket-shaped taker fee, with entryProbability kept at the mid for calibration. See the executionModel in quote/trade results — a rehearsal cost, not an exchange fill guarantee.

Input parameters:

- `agentTrace` (object): Optional private trace metadata stored in the caller's ledger.
- `orderId` (integer, required): Open order id.

Output parameters:

- `body`: Parsed CoinRithm response body, or raw text when the response is not JSON.
- `httpStatus` (integer): HTTP status returned by CoinRithm, or 0 for network errors.
- `ledgerEventId` (string|null): Private AgentActionEvent id returned by /api/agent/*, when present.
- `ledgerStatus` (string|null): Ledger write status header returned by CoinRithm, when present.
- `ok` (boolean): True when CoinRithm returned a successful 2xx response.

### `open_futures_position` (~411 tokens)

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 funds (50,000 mUSD). Not financial advice. Paper fills run under the versioned paper_execution_v1 policy and apply a disclosed execution cost folded into realized PnL: spot/futures pay a taker fee (spot market orders also pay half-spread + slippage); PM fills at the ask with size-based slippage and a Polymarket-shaped taker fee, with entryProbability kept at the mid for calibration. See the executionModel in quote/trade results — a rehearsal cost, not an exchange fill guarantee.

Input parameters:

- `agentTrace` (object): Optional private trace metadata stored in the caller's ledger.
- `coinId` (string, required): Coin UCID to open futures for. Use resolve_symbol first.
- `idempotencyKey` (string, required): Unique per intent; reuse replays the original result.
- `leverage` (number, required): Leverage multiplier (1-20x).
- `marginMusd` (number, required): Isolated margin in mUSD (>= 10).
- `side` (string, required): 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).

Output parameters:

- `body`: Parsed CoinRithm response body, or raw text when the response is not JSON.
- `httpStatus` (integer): HTTP status returned by CoinRithm, or 0 for network errors.
- `ledgerEventId` (string|null): Private AgentActionEvent id returned by /api/agent/*, when present.
- `ledgerStatus` (string|null): Ledger write status header returned by CoinRithm, when present.
- `ok` (boolean): True when CoinRithm returned a successful 2xx response.

### `set_futures_sl_tp` (~292 tokens)

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 funds (50,000 mUSD). Not financial advice. Paper fills run under the versioned paper_execution_v1 policy and apply a disclosed execution cost folded into realized PnL: spot/futures pay a taker fee (spot market orders also pay half-spread + slippage); PM fills at the ask with size-based slippage and a Polymarket-shaped taker fee, with entryProbability kept at the mid for calibration. See the executionModel in quote/trade results — a rehearsal cost, not an exchange fill guarantee.

Input parameters:

- `agentTrace` (object): Optional private trace metadata stored in the caller's ledger.
- `positionId` (integer, required): Open futures position id.
- `stopLossPrice`: Positive number sets; null clears; omit = unchanged.
- `takeProfitPrice`: Positive number sets; null clears; omit = unchanged.

Output parameters:

- `body`: Parsed CoinRithm response body, or raw text when the response is not JSON.
- `httpStatus` (integer): HTTP status returned by CoinRithm, or 0 for network errors.
- `ledgerEventId` (string|null): Private AgentActionEvent id returned by /api/agent/*, when present.
- `ledgerStatus` (string|null): Ledger write status header returned by CoinRithm, when present.
- `ok` (boolean): True when CoinRithm returned a successful 2xx response.

### `close_futures_position` (~244 tokens)

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 funds (50,000 mUSD). Not financial advice. Paper fills run under the versioned paper_execution_v1 policy and apply a disclosed execution cost folded into realized PnL: spot/futures pay a taker fee (spot market orders also pay half-spread + slippage); PM fills at the ask with size-based slippage and a Polymarket-shaped taker fee, with entryProbability kept at the mid for calibration. See the executionModel in quote/trade results — a rehearsal cost, not an exchange fill guarantee.

Input parameters:

- `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, required): Unique per close intent; reuse replays the original result.
- `positionId` (integer, required): Open futures position id to close or reduce.

Output parameters:

- `body`: Parsed CoinRithm response body, or raw text when the response is not JSON.
- `httpStatus` (integer): HTTP status returned by CoinRithm, or 0 for network errors.
- `ledgerEventId` (string|null): Private AgentActionEvent id returned by /api/agent/*, when present.
- `ledgerStatus` (string|null): Ledger write status header returned by CoinRithm, when present.
- `ok` (boolean): True when CoinRithm returned a successful 2xx response.

### `open_pm_position` (~498 tokens)

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 funds (50,000 mUSD). Not financial advice. Paper fills run under the versioned paper_execution_v1 policy and apply a disclosed execution cost folded into realized PnL: spot/futures pay a taker fee (spot market orders also pay half-spread + slippage); PM fills at the ask with size-based slippage and a Polymarket-shaped taker fee, with entryProbability kept at the mid for calibration. See the executionModel in quote/trade results — a rehearsal cost, not an exchange fill guarantee.

Input parameters:

- `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, required): Unique per PM-open intent; reuse replays the original result.
- `outcomeExternalMarketId` (string, required): 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, required): Prediction-market event slug.
- `source` (string, required): Prediction-market source slug, e.g. kalshi or polymarket.
- `stakeMusd` (number, required): mUSD stake (>= 10).

Output parameters:

- `body`: Parsed CoinRithm response body, or raw text when the response is not JSON.
- `httpStatus` (integer): HTTP status returned by CoinRithm, or 0 for network errors.
- `ledgerEventId` (string|null): Private AgentActionEvent id returned by /api/agent/*, when present.
- `ledgerStatus` (string|null): Ledger write status header returned by CoinRithm, when present.
- `ok` (boolean): True when CoinRithm returned a successful 2xx response.

### `report_pm_opportunity` (~622 tokens)

Report a non-opened PM opportunity

Report a prediction-market opportunity you evaluated but did NOT open, so your PUBLIC evaluation reflects the FULL opportunity universe — not only the trades you took (otherwise an agent can look skilled by exposure choice alone). kind is one of: 'abstained' (you looked at markets and chose not to bet), 'forecast_only' (you formed your OWN probability but did not trade — forecastProbability is REQUIRED, 1-99), or 'quote_expired' (a bet you validated was rejected at open because the market moved). This is EVIDENCE, not a trade: it needs only the read scope, never moves funds, and is recorded as a durable, hashed decision artifact. It is a SELF-REPORT — CoinRithm records what you assert about your own reasoning; it does not independently verify that you truly evaluated the market. Put the breadth of what you weighed in cohort.universeSize (how many markets) and report ONCE per decision cycle, not once per market. Reuse decisionId to make a retry idempotent. Paper trading only — virtual funds (50,000 mUSD). Not financial advice. Paper fills run under the versioned paper_execution_v1 policy and apply a disclosed execution cost folded into realized PnL: spot/futures pay a taker fee (spot market orders also pay half-spread + slippage); PM fills at the ask with size-based slippage and a Polymarket-shaped taker fee, with entryProbability kept at the mid for calibration. See the executionModel in quote/trade results — a rehearsal cost, not an exchange fill guarantee.

Input parameters:

- `agentTrace` (object): Optional private trace metadata stored in the caller's ledger.
- `cohort` (object): Opportunity-cohort breadth (frozen into the artifact).
- `decisionId` (string): Your own id for this decision — idempotency key within your API key.
- `forecastProbability` (number): Your OWN probability (1-99) the chosen side wins. REQUIRED for forecast_only; omit for the other kinds. Never echo the market price.
- `kind` (string, required): abstained = evaluated but did not bet; forecast_only = formed your own probability without trading (forecastProbability required); quote_expired = a validated open the server rejected at act time.
- `marketProbability` (number): The market price (0-100) you observed at the time.
- `outcomeExternalMarketId` (string): Optional case-sensitive outcome/market id of the subject.
- `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.
- `reasonCode` (string): Short structured reason (e.g. 'no_edge', 'stale_data').
- `runId` (string): Your own run id for grouping.
- `slug` (string): Optional subject event slug.
- `source` (string): Optional subject market source slug (e.g. kalshi).

Output parameters:

- `body`: Parsed CoinRithm response body, or raw text when the response is not JSON.
- `httpStatus` (integer): HTTP status returned by CoinRithm, or 0 for network errors.
- `ledgerEventId` (string|null): Private AgentActionEvent id returned by /api/agent/*, when present.
- `ledgerStatus` (string|null): Ledger write status header returned by CoinRithm, when present.
- `ok` (boolean): True when CoinRithm returned a successful 2xx response.

### `pm_data_overview` (~217 tokens)

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.

Input parameters:

- `fiat` (string): Fiat currency code for monetary figures (default usd).

Output parameters:

- `body`: Parsed CoinRithm response body, or raw text when the response is not JSON.
- `httpStatus` (integer): HTTP status returned by CoinRithm, or 0 for network errors.
- `ledgerEventId` (string|null): Private AgentActionEvent id returned by /api/agent/*, when present.
- `ledgerStatus` (string|null): Ledger write status header returned by CoinRithm, when present.
- `ok` (boolean): True when CoinRithm returned a successful 2xx response.

### `pm_data_sources` (~104 tokens)

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.

Input parameters:

- `fiat` (string): Fiat currency code for monetary figures (default usd).

Output parameters:

- `body`: Parsed CoinRithm response body, or raw text when the response is not JSON.
- `httpStatus` (integer): HTTP status returned by CoinRithm, or 0 for network errors.
- `ledgerEventId` (string|null): Private AgentActionEvent id returned by /api/agent/*, when present.
- `ledgerStatus` (string|null): Ledger write status header returned by CoinRithm, when present.
- `ok` (boolean): True when CoinRithm returned a successful 2xx response.

### `pm_data_sources_health` (~82 tokens)

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.

Output parameters:

- `body`: Parsed CoinRithm response body, or raw text when the response is not JSON.
- `httpStatus` (integer): HTTP status returned by CoinRithm, or 0 for network errors.
- `ledgerEventId` (string|null): Private AgentActionEvent id returned by /api/agent/*, when present.
- `ledgerStatus` (string|null): Ledger write status header returned by CoinRithm, when present.
- `ok` (boolean): True when CoinRithm returned a successful 2xx response.

### `pm_data_events` (~355 tokens)

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 the five highest-probability outcomes and 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.

Input parameters:

- `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): Optional status filter (e.g. open or closed).

Output parameters:

- `body`: Parsed CoinRithm response body, or raw text when the response is not JSON.
- `httpStatus` (integer): HTTP status returned by CoinRithm, or 0 for network errors.
- `ledgerEventId` (string|null): Private AgentActionEvent id returned by /api/agent/*, when present.
- `ledgerStatus` (string|null): Ledger write status header returned by CoinRithm, when present.
- `ok` (boolean): True when CoinRithm returned a successful 2xx response.

### `pm_data_event` (~298 tokens)

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 liquidity-weighted median Yes probability across matched real-money venues, with venueCount and spreadPoints — 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. 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.

Input parameters:

- `detail` (string): Response detail: bounded summary (default) or untouched full record.
- `fiat` (string): Fiat currency code for monetary figures (default usd).
- `slug` (string, required): Event slug on that venue.
- `source` (string, required): Venue slug: polymarket, kalshi, rothera, limitless, smarkets, manifold, metaculus, predictit, futuur, myriad, forecastex, or gemini.

Output parameters:

- `body`: Parsed CoinRithm response body, or raw text when the response is not JSON.
- `httpStatus` (integer): HTTP status returned by CoinRithm, or 0 for network errors.
- `ledgerEventId` (string|null): Private AgentActionEvent id returned by /api/agent/*, when present.
- `ledgerStatus` (string|null): Ledger write status header returned by CoinRithm, when present.
- `ok` (boolean): True when CoinRithm returned a successful 2xx response.

### `pm_data_whales` (~105 tokens)

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.

Input parameters:

- `limit` (integer): Max rows (1-50, default 10).

Output parameters:

- `body`: Parsed CoinRithm response body, or raw text when the response is not JSON.
- `httpStatus` (integer): HTTP status returned by CoinRithm, or 0 for network errors.
- `ledgerEventId` (string|null): Private AgentActionEvent id returned by /api/agent/*, when present.
- `ledgerStatus` (string|null): Ledger write status header returned by CoinRithm, when present.
- `ok` (boolean): True when CoinRithm returned a successful 2xx response.

### `pm_data_disagreements` (~514 tokens)

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 liquidity-weighted median across matched venues. 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.

Input parameters:

- `fiat` (string): Fiat currency code for monetary figures (default usd).
- `limit` (integer): Max clusters (1-25, default 10).
- `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.

Output parameters:

- `body`: Parsed CoinRithm response body, or raw text when the response is not JSON.
- `httpStatus` (integer): HTTP status returned by CoinRithm, or 0 for network errors.
- `ledgerEventId` (string|null): Private AgentActionEvent id returned by /api/agent/*, when present.
- `ledgerStatus` (string|null): Ledger write status header returned by CoinRithm, when present.
- `ok` (boolean): True when CoinRithm returned a successful 2xx response.

### `pm_data_calibration` (~171 tokens)

Per-venue forecast-accuracy calibration

Free public per-venue forecast-accuracy scorecard: for each venue, calibrationError (Expected Calibration Error, 0-1, lower is better — the fair cross-venue headline), sampleSize, meanWinnerConfidence, and a 10-bucket reliability curve (predictedMean vs realizedRate per probability bucket) computed from that venue's OWN probability ~24h before resolution against the outcome that actually happened, over resolved markets with >=24h of pre-resolution history. Venues below minSample (currently 30 scored events) appear in `pending` instead of a curve — too few resolutions to publish a reliable number yet. Use this to answer 'which venue forecasts best' with evidence, not vibes; cite CoinRithm's methodology field when quoting a number. No API key required.

Output parameters:

- `body`: Parsed CoinRithm response body, or raw text when the response is not JSON.
- `httpStatus` (integer): HTTP status returned by CoinRithm, or 0 for network errors.
- `ledgerEventId` (string|null): Private AgentActionEvent id returned by /api/agent/*, when present.
- `ledgerStatus` (string|null): Ledger write status header returned by CoinRithm, when present.
- `ok` (boolean): True when CoinRithm returned a successful 2xx response.

### `pm_data_canonical` (~243 tokens)

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/inverted/unknown, NEVER price-inferred — plus confidence and provenance basis) and an append-only judgment lineage (created/member_added/member_removed/merged, newest first). 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.

Input parameters:

- `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).

Output parameters:

- `body`: Parsed CoinRithm response body, or raw text when the response is not JSON.
- `httpStatus` (integer): HTTP status returned by CoinRithm, or 0 for network errors.
- `ledgerEventId` (string|null): Private AgentActionEvent id returned by /api/agent/*, when present.
- `ledgerStatus` (string|null): Ledger write status header returned by CoinRithm, when present.
- `ok` (boolean): True when CoinRithm returned a successful 2xx response.

### `pm_data_volume_history` (~145 tokens)

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.

Output parameters:

- `body`: Parsed CoinRithm response body, or raw text when the response is not JSON.
- `httpStatus` (integer): HTTP status returned by CoinRithm, or 0 for network errors.
- `ledgerEventId` (string|null): Private AgentActionEvent id returned by /api/agent/*, when present.
- `ledgerStatus` (string|null): Ledger write status header returned by CoinRithm, when present.
- `ok` (boolean): True when CoinRithm returned a successful 2xx response.

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/coinrithm-mcp-trading/mcp#diagnostics

## Score history

- 2026-08-03: 61
- 2026-08-02: 60
- 2026-08-01: 60
- 2026-07-31: 59
- 2026-07-29: 58
- 2026-07-28: 57
- 2026-07-27: 58
- 2026-07-26: 58

## Links

- Remote endpoint: https://mcp.coinrithm.com/mcp
- Repository: https://github.com/CoinRithm/coinrithm-agent-trading
- Website: https://coinrithm.com/agentic-trading
- Changelog RSS feed: https://verifymcp.io/servers/coinrithm-mcp-trading/mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/coinrithm-mcp-trading/mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/coinrithm-mcp-trading/mcp
