Read live CEX datum
read_live_datumREAD-ONLY: fetch ONE specific live datum on demand (open positions, account balances, or a market quote) instead of waiting for the context snapshot. Never moves funds, never places an order, never widens the context on its own — ask for exactly the datum you need. Returns numbers WITH the venue and a fetch timestamp; report them as 'observed at on '. If the result has no fetched number, say the value is unavailable — NEVER invent a placeholder. Present positions/balances/order reads as an inline markdown table in your reply text (never 'shown above'); when empty, say 'No open positions' explicitly. Not for writing anything; use a propose_* tool when the user wants an action.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"kind": "<kind>"
},
"name": "read_live_datum"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| tag | No | Optional tag pill to filter kind=predictions scope=markets: politics|crypto|sports|economy|ai|tech (Polymarket tag_slug; Opinion matches its category labels best-effort). Omit for the most liquid open markets overall. | |
| kind | Yes | Which datum to read. positions = open derivatives positions with mark/liq/leverage (rows also carry their resting venue-native exit legs as exits[] with TP/SL triggers across all CEX venues, or exitsUnknown:true when the stops book could not be read — quote those, never invent exits). balances = per-connection account balances. open_orders = resting OPEN orders across connections (optional connectionId/exchange narrow, optional symbol pair filter + category spot|linear; empty list means no resting orders, never a flat position). market = a live quote for one symbol. screener = top-by-volume 24h movers on one CEX (pass symbol=<exchange slug>, e.g. binance). onchain = wallet balances across the user's server-resolved wallets (addresses only, never keys; optional chains=<csv> filter, e.g. ethereum,solana). order = ONE order's status by venue order id (open|filled|unknown with observedAt; needs connectionId + orderId, optional symbol + category spot|linear). predictions = prediction-market reads across Polymarket + Opinion (default scope=markets: the most liquid open markets with yes/no prices, volume, liquidity, endDate, conditionId; scope=positions|orders reads the user's wallet-scoped positions and resting orders on both venues; scope=quote returns a live quote for one market/token: Polymarket orderbook + tick-size + taker-delay, Opinion latest price + quote tokens). The first leg of any prediction hunt is scope=markets; price before proposing from scope=quote. | |
| scope | No | Prediction read scope for kind=predictions (default markets). markets = liquid open markets scan; positions = the user's open prediction positions (wallet-scoped, needs connected creds or wallets=); orders = resting prediction orders; quote = live quote for one market (needs market_id and/or token_id). | |
| venue | No | Prediction venue for kind=predictions: polymarket|opinion|all. Scan (scope=markets) defaults to polymarket; positions|orders read both venues unless narrowed; quote defaults to polymarket unless the token/market id is Opinion-shaped. | |
| chains | No | Optional comma list to filter kind=onchain, e.g. ethereum,solana. | |
| status | No | Optional position-status filter for kind=predictions scope=positions: OPEN|REDEEMABLE|REDEEMABLE_LOST|CLOSED|MERGEABLE (default OPEN, Polymarket; Opinion returns its open positions). | |
| symbol | No | Required for kind=market (e.g. BTC/USDT). Optional pair filter for kind=open_orders (e.g. BTC/USDT narrows the resting book). | |
| orderId | No | Venue order id for kind=order (e.g. the orderId a placeOrder/YOLO fill returned). | |
| wallets | No | Optional csv of 0x wallet addresses for kind=predictions scope=positions (merged with the stored Polymarket funder; capped at 10). Omit to read the connected wallets only. | |
| category | No | Optional market scope for kind=order|open_orders: spot|linear. Omit to search both on perp venues. | |
| exchange | No | Venue slug for kind=market (e.g. binance). For positions|balances|open_orders, narrows to one venue; omit to read every connection. | |
| token_id | No | Outcome token id for kind=predictions scope=quote: Polymarket CTF clobTokenId (orderbook + tick-size + taker-delay) or Opinion token id (latest price). | |
| market_id | No | Prediction market selector for kind=predictions scope=orders|quote (and to narrow positions): Polymarket conditionId (0x…), slug, or numeric id; Opinion market id. | |
| withExits | No | Accepted for backward compatibility (older CLI versions send it): positions reads always carry their resting venue-native exit legs as exits[] with TP/SL triggers across all CEX venues, or exitsUnknown:true when the stops book could not be read. Other venues ignore it. | |
| connectionId | No | CEX connection id for positions|balances|open_orders (see list_connections). Omit to read every active connection. REQUIRED for kind=order (an order id is connection-scoped). | |
| max_age_seconds | No | Optional freshness bound. The executor prefers its already-fetched value when it is younger than this; otherwise it reads again. |