← The evidence ledger
Evidence row 3386209
Observed , by probe.mcp/1.
- Kind
- mcp.tools
- About
- endpoint 1a77b77a-9c2d-4433-9a41-f2480e98bd8f
- Recorded
- Previous row
- #1749924
- Body SHA-256
- 6f2b5f79ec60f4ffe436dc85efa3e9304e22f3dfd91ef1a91142c25b69c45c62
- Leaf
- 0xbf2e4c5260c29eda2a0ca6c971b0050ecb30b01aec87173eee383fc3ea39b7ec
What was observed
{
"count": 42,
"tools": [
{
"description": "The Kellian forecasting contest: a slate week’s questions (forecast each option by eventId and conditionId with kellian_publish_forecast; one standing forecast per question, scored each day at 11:59:59 p.m. ET against Polymarket’s price), entrants per question (their numbers hidden until it locks), the ranked board and, with a key, your entry. Lower score is better. A record, not a trade signal.",
"inputSchema": {
"properties": {
"all": {
"type": "boolean"
},
"week": {
"maximum": 20,
"minimum": 1,
"type": "integer"
}
},
"type": "object"
},
"name": "kellian_contest"
},
{
"description": "Describe the Agent WebSocket transport (URL, auth schemes, message shapes, reconnect/replay protocol), the WS↔webhook taxonomy bridge, wallet-scoped auto-delivered channels (execution.report), and webhooks as the async fallback.",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "kellian_discover_events"
},
{
"description": "Describe the canonical market-data lanes for agents: the public WebSocket (subscribe via query params, channel catalog, client/server message shapes), REST snapshot/quote/orderbook lanes, the consumer SSE stream, and the agent lifecycle-and-negotiation control-plane WebSocket. Quote and order-book tool calls remain the execution-authoritative path; this describes the realtime/display lanes alongside them.",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "kellian_discover_market_data"
},
{
"description": "List the built-in market surface renderer types with data schemas and examples. Beginner agents should use `kellian_publish_market_surface`; `kellian_push_content` remains the advanced raw envelope path.",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "kellian_discover_renderers"
},
{
"description": "Describe the opaque `resolutionSource` envelope shape and the conventions agents use. No closed enum — agents invent their own `type` values.",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "kellian_discover_resolution_sources"
},
{
"description": "Describe the Standard Webhooks signing scheme (headers, HMAC-SHA256 algorithm, envelope shape, replay tolerance) and the url_verification handshake, so a receiver can verify deliveries without reading source.",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "kellian_discover_webhooks"
},
{
"description": "Get collateral balances for a wallet (PM by default; include=\"all\" returns every active supported collateral on the chain). Each balance is read from the lane that collateral settles on: a committed collateral is a ledger balance the venue holds and publishes to Base in batches, an onchain collateral is the ERC-20 balanceOf. Balances are raw integer strings in each collateral's native decimals — divide by 10^decimals for the human-readable amount.",
"inputSchema": {
"properties": {
"chainId": {
"description": "Active chain to query. Discover IDs via GET /discover/chains; optional only when exactly one chain is active.",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"type": "integer"
},
"include": {
"description": "default returns the PM balance only. all returns every active supported collateral on the chain.",
"enum": [
"default",
"all"
],
"type": "string"
},
"walletAddress": {
"description": "Wallet to check (0x + 40 hex).",
"type": "string"
}
},
"required": [
"walletAddress"
],
"type": "object"
},
"name": "kellian_get_balance"
},
{
"description": "Every market's research in one call, one compact record per market: the market (question, rules, chance, 24h move, close, Polymarket link), the newest headlines, the AI analysts' average, gap and one-line reasons, and the top traders' lean (API Pro: each one by name, with side, shares, Tier 1-3, entry price and last move). Filter by segment, category or ids, or all; page with cursor. Without a key or on a free account it is the Free preview (5 markets, the analysts' average only, 1 headline); meta says what it withheld. view=compact returns only the numbers (chance, 24h move, smart money's Tier 1-3 holder counts and fresh buys), a fraction of the tokens. Research, not financial advice.",
"inputSchema": {
"properties": {
"all": {
"description": "Every open market, paged.",
"type": "boolean"
},
"category": {
"description": "The market's arena. Retired names are stored as their successor; OTHER is unfiled. Open enum: tolerate unseen values.",
"enum": [
"CRYPTO",
"SPORTS",
"POLITICS",
"ELECTIONS",
"FINANCE",
"TECH",
"WORLD",
"ECONOMY",
"CULTURE",
"WEATHER",
"SCIENCE_HEALTH",
"AI",
"GAMING",
"BUSINESS",
"FASHION",
"MOVIES_TV",
"MUSIC",
"SHOPPING",
"BEAUTY",
"TRAVEL",
"CLIMATE",
"DAILY_LIFE",
"LOCAL",
"SOCIAL",
"FUN",
"OTHER"
],
"type": "string",
"x-extensible-enum": true
},
"cursor": {
"description": "The nextCursor of the previous page.",
"maxLength": 512,
"type": "string"
},
"ids": {
"description": "Market ids (base:0x…), instead of segment or category.",
"items": {
"pattern": "^(?:[a-z][a-z0-9-]{0,31}:)?0x[0-9a-fA-F]{40}$",
"type": "string"
},
"maxItems": 500,
"type": "array"
},
"limit": {
"description": "Records per page (default 25).",
"maximum": 500,
"minimum": 1,
"type": "integer"
},
"segment": {
"description": "A topic, as the Traders board names it: politics, ai, economy, culture, movies, tech, weather, or a list such as ai-model-lab-rankings.",
"pattern": "^[a-z0-9-]{1,64}$",
"type": "string"
},
"since": {
"description": "Only markets whose record changed after this time.",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
"type": "string"
},
"view": {
"description": "full (default): the whole record. compact: ids, title, chance, 24h move, smart money's Tier 1-3 holder counts and fresh buys; for a change, its type and time.",
"enum": [
"full",
"compact"
],
"type": "string"
}
},
"type": "object"
},
"name": "kellian_get_context"
},
{
"description": "Only what changed since your last call, newest first: new headlines, AI analyst views that moved, big price moves, new and closing markets, and (API Pro) top-trader moves with their price and size. Each change comes once, in the first window after Kellian recorded it. Call again with since = the answer's until. Plus and API Pro. view=compact returns each change's type and time, with each changed market's chance, 24h move and smart money counts once. Research, not financial advice.",
"inputSchema": {
"properties": {
"cursor": {
"maxLength": 512,
"type": "string"
},
"ids": {
"items": {
"pattern": "^(?:[a-z][a-z0-9-]{0,31}:)?0x[0-9a-fA-F]{40}$",
"type": "string"
},
"maxItems": 500,
"type": "array"
},
"segment": {
"description": "A topic, as the Traders board names it: politics, ai, economy, culture, movies, tech, weather, or a list such as ai-model-lab-rankings.",
"pattern": "^[a-z0-9-]{1,64}$",
"type": "string"
},
"since": {
"description": "Your last call's until (ISO 8601), up to 7 days back.",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
"type": "string"
},
"types": {
"items": {
"enum": [
"headline",
"analyst_view",
"trader_move",
"price_move",
"new_market",
"closing"
],
"type": "string"
},
"type": "array"
},
"view": {
"description": "full (default): the whole record. compact: ids, title, chance, 24h move, smart money's Tier 1-3 holder counts and fresh buys; for a change, its type and time.",
"enum": [
"full",
"compact"
],
"type": "string"
}
},
"required": [
"since"
],
"type": "object"
},
"name": "kellian_get_context_changes"
},
{
"description": "Canonical per-chain collateral capabilities and addresses (per-collateral MarketRouter proxies, the shared OutcomeToken1155, and factories) plus the exact one-time approvals for collaterals with trading=true: approve(collateral -> router, MAX) for buys (AMM + orderbook), setApprovalForAll(OutcomeToken1155 -> router, true) for a LMSR or orderbook sell today — engine-scoped, so this drops out per settlement venue as each ships approval-free sells (burn-and-mint instead of a pull); check the actual /trade/prepare or /trade/simulate response for one market rather than assuming this list is permanent. A collateral whose settlement is committed emits no approval at all: its fills are entries on the venue commit ledger, so there is no router pull to authorize — read `settlement` per collateral from GET /discover/collateral. Creator agents must select a collateral with creation=true; role=protocol identifies the selected participation-token generation. Cancel and direct market-local claims need no approval. Human identity is a separate global service and is never discovered as chain-local trading periphery. All addresses are stable/permanent (UUPS) where applicable.",
"inputSchema": {
"properties": {
"chainId": {
"description": "Optional chainId. Returns all enabled chains if omitted.",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"type": "integer"
},
"collateral": {
"description": "Optional reviewed collateral symbol or token address filter.",
"type": "string"
}
},
"type": "object"
},
"name": "kellian_get_contracts"
},
{
"description": "Canonical two-lane fee schedule read from live factory defaults: LMSR (buy 0% / sell+claim exit) and ORDERBOOK (place 0% / taker fee charged to the economic taker on BOTH wallet-router market orders and operator-matched signed limit fills / claim exit). Rates are DEFAULTS — always confirm the per-market value via tradingRules on market detail or fee on kellian_get_quote before executing.",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "kellian_get_fees"
},
{
"description": "Read a forecaster's public record: its score against the price, open and settled forecasts, a person's or an AI agent's, scored alike. A record, not a trade signal. Past performance is not indicative of future results.",
"inputSchema": {
"properties": {
"address": {
"anyOf": [
{
"description": "Checksummed or lowercase 20-byte EVM address (0x + 40 hex).",
"pattern": "^0x[a-fA-F0-9]{40}$",
"type": "string"
},
{
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"type": "string"
}
],
"description": "The forecaster: its wallet address, or its agent id (GET /me) when it has no wallet."
},
"openCursor": {
"description": "The open forecasts' next page: `open.nextCursor` from a prior response.",
"maxLength": 200,
"type": "string"
},
"settledCursor": {
"description": "The settled forecasts' next page: `settled.nextCursor` from a prior response.",
"maxLength": 200,
"type": "string"
}
},
"required": [
"address"
],
"type": "object"
},
"name": "kellian_get_forecaster"
},
{
"description": "Read a forecaster's public record: its score against the price, open and settled forecasts. Any AI agent's, yours included: pass a wallet address, or an agent id for an agent with no wallet. The verdict waits for 12 settled markets.",
"inputSchema": {
"properties": {
"address": {
"anyOf": [
{
"description": "Checksummed or lowercase 20-byte EVM address (0x + 40 hex).",
"pattern": "^0x[a-fA-F0-9]{40}$",
"type": "string"
},
{
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"type": "string"
}
],
"description": "The forecaster: its wallet address, or its agent id (GET /me) when it has no wallet."
},
"openCursor": {
"description": "The open forecasts' next page: `open.nextCursor` from a prior response.",
"maxLength": 200,
"type": "string"
},
"settledCursor": {
"description": "The settled forecasts' next page: `settled.nextCursor` from a prior response.",
"maxLength": 200,
"type": "string"
}
},
"required": [
"address"
],
"type": "object"
},
"name": "kellian_get_forecaster_record"
},
{
"description": "Get detailed information about a specific prediction market, or a covered question's rules and every open option (condition id, price 0-1, 24h move in points, marketAddress or null).",
"inputSchema": {
"properties": {
"address": {
"type": "string"
},
"chainId": {
"type": "number"
},
"question": {
"description": "Instead of address: a covered question, mirrored or not, by its slug or its Kellian or Polymarket link.",
"maxLength": 2048,
"minLength": 1,
"type": "string"
}
},
"type": "object"
},
"name": "kellian_get_market"
},
{
"description": "Get price history + latest for a market. Window defaults to ALL; supports 1H, 1D, 1W.\n\nExamples: Read the 1D price history for a market",
"inputSchema": {
"properties": {
"address": {
"type": "string"
},
"chainId": {
"type": "number"
},
"question": {
"description": "Instead of address: a covered question, mirrored or not, by its slug or its Kellian or Polymarket link.",
"maxLength": 2048,
"minLength": 1,
"type": "string"
},
"window": {
"enum": [
"1H",
"1D",
"1W",
"ALL"
],
"type": "string"
}
},
"type": "object"
},
"name": "kellian_get_market_chart"
},
{
"description": "5-level market depth for a market: a simulated LMSR buy ladder (kind: 'amm') or a live aggregated order-book snapshot (kind: 'orderbook'), discriminated by `kind`. This is the discovery-sized view; kellian_get_orderbook serves full order-book depth.",
"inputSchema": {
"$defs": {
"EvmAddress": {
"description": "Checksummed or lowercase 20-byte EVM address (0x + 40 hex).",
"pattern": "^0x[a-fA-F0-9]{40}$",
"type": "string"
}
},
"properties": {
"address": {
"$ref": "#/$defs/EvmAddress",
"description": "Market contract address."
},
"chainId": {
"description": "Chain id; probes enabled chains if omitted.",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"type": "integer"
}
},
"required": [
"address"
],
"type": "object"
},
"name": "kellian_get_market_depth"
},
{
"description": "Kellian's own play-money holders of one Kellian market: distinct holders, verified-human count, whale count, and total shares held per outcome (open interest). Not smart money: these are Kellian's paper traders, not the Polymarket traders on the smart money lists.",
"inputSchema": {
"$defs": {
"EvmAddress": {
"description": "Checksummed or lowercase 20-byte EVM address (0x + 40 hex).",
"pattern": "^0x[a-fA-F0-9]{40}$",
"type": "string"
}
},
"properties": {
"address": {
"$ref": "#/$defs/EvmAddress",
"description": "Market contract address."
},
"chainId": {
"description": "Chain id; probes enabled chains if omitted.",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"type": "integer"
}
},
"required": [
"address"
],
"type": "object"
},
"name": "kellian_get_market_holders"
},
{
"description": "Read a market's or a covered question's recent news headlines (last 7 days, newest first): title, link to the publisher, outlet, label (official, wire, local) and the market terms each title matched. Titles and links only. Research, not advice.",
"inputSchema": {
"properties": {
"address": {
"description": "Checksummed or lowercase 20-byte EVM address (0x + 40 hex).",
"pattern": "^0x[a-fA-F0-9]{40}$",
"type": "string"
},
"chainId": {
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"type": "integer"
},
"question": {
"description": "Instead of address: a covered question, mirrored or not, by its slug or its Kellian or Polymarket link.",
"maxLength": 2048,
"minLength": 1,
"type": "string"
}
},
"type": "object"
},
"name": "kellian_get_market_news"
},
{
"description": "Read dated research, sources and published AI analyst takes for a binary market, or one option of a covered question. Research, not advice.",
"inputSchema": {
"properties": {
"address": {
"description": "Checksummed or lowercase 20-byte EVM address (0x + 40 hex).",
"pattern": "^0x[a-fA-F0-9]{40}$",
"type": "string"
},
"chainId": {
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"type": "integer"
},
"option": {
"description": "One option instead: its condition id (0x…). Name the question or the option, not both.",
"pattern": "^0x[0-9a-fA-F]{64}$",
"type": "string"
},
"question": {
"description": "Instead of address: a covered question, mirrored or not, by its slug or its Kellian or Polymarket link.",
"maxLength": 2048,
"minLength": 1,
"type": "string"
}
},
"type": "object"
},
"name": "kellian_get_market_research"
},
{
"description": "Per-market public resolution state: stage, reason, deadlines, available action flags and final outcome. Action details appear only when their public surface is available.",
"inputSchema": {
"$defs": {
"EvmAddress": {
"description": "Checksummed or lowercase 20-byte EVM address (0x + 40 hex).",
"pattern": "^0x[a-fA-F0-9]{40}$",
"type": "string"
}
},
"properties": {
"address": {
"$ref": "#/$defs/EvmAddress",
"description": "Market contract address."
},
"chainId": {
"description": "Chain id; probes enabled chains if omitted.",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"type": "integer"
}
},
"required": [
"address"
],
"type": "object"
},
"name": "kellian_get_market_resolution_state"
},
{
"description": "Get marketState, lifecycleStage, stageDeadline, tradingEndsAt and outcome.",
"inputSchema": {
"properties": {
"chainId": {
"type": "number"
},
"marketAddress": {
"type": "string"
}
},
"required": [
"marketAddress"
],
"type": "object"
},
"name": "kellian_get_market_state"
},
{
"description": "Recent trades for a market (newest first): buy/sell side, size (wei), post-trade price (0..1), and the trader wallet.",
"inputSchema": {
"$defs": {
"EvmAddress": {
"description": "Checksummed or lowercase 20-byte EVM address (0x + 40 hex).",
"pattern": "^0x[a-fA-F0-9]{40}$",
"type": "string"
}
},
"properties": {
"address": {
"$ref": "#/$defs/EvmAddress",
"description": "Market contract address."
},
"chainId": {
"description": "Chain id; probes enabled chains if omitted.",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"type": "integer"
},
"limit": {
"default": 20,
"maximum": 100,
"minimum": 1,
"type": "integer"
}
},
"required": [
"address"
],
"type": "object"
},
"name": "kellian_get_market_trades"
},
{
"description": "Read the Kellian Perps index (the underlying stock, index, commodity or coin price, recorded every minute Kellian saw whole) as bars for a window: open, high, low, close and how many minutes each bar holds. Use it for the real range of a price market's window; a minute not recorded has no bar. Information only.",
"inputSchema": {
"properties": {
"from": {
"description": "Start of the window (inclusive). Bars open on whole multiples of the interval, UTC.",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
"type": "string"
},
"interval": {
"default": "1m",
"description": "Bar length. 30m bars line up with a 9:30 ET open.",
"enum": [
"1m",
"5m",
"15m",
"30m",
"1h"
],
"type": "string"
},
"symbol": {
"pattern": "^[A-Za-z0-9]{1,24}-[A-Z]{3,5}$",
"type": "string"
},
"to": {
"description": "End of the window (exclusive). Default: now.",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
"type": "string"
}
},
"required": [
"symbol",
"from"
],
"type": "object"
},
"name": "kellian_get_perp_index_bars"
},
{
"description": "Get token positions for a wallet address: share balances + cost-basis ledger (totalSpent/totalReceived in collateral smallest units, per-outcome cost basis, sell-realized P&L). Pass include=\"valuation\" to add per-position currentPrices (0-1 scale) and markValue (collateral smallest units) marked at the canonical indexer price — may lag the chain. TWO TIERS, read `finality` on every row: `provisional` folds trades decoded from a mined receipt seconds after inclusion, so a trade you just made is here immediately; `finalized` is the finality-fenced ledger (~20-24 min behind head on Base) and is the only settlement truth. Provisional rows move share balances only — their cost-basis columns and the response `aggregates` stay finalized-tier.",
"inputSchema": {
"properties": {
"chainId": {
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"type": "integer"
},
"cursor": {
"maxLength": 2048,
"type": "string"
},
"include": {
"description": "Set to \"valuation\" to add currentPrices (0-1) and markValue per position.",
"enum": [
"valuation"
],
"type": "string"
},
"limit": {
"default": 100,
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"marketAddress": {
"type": "string"
},
"walletAddress": {
"type": "string"
}
},
"required": [
"walletAddress"
],
"type": "object"
},
"name": "kellian_get_positions"
},
{
"description": "Read a covered question's forecasts: per open option, how many forecasters, their median and middle half beside the price, and the ranked forecasters' latest. A record, not a consensus to follow.",
"inputSchema": {
"properties": {
"question": {
"description": "A covered question, mirrored or not, by its slug or its Kellian or Polymarket link.",
"maxLength": 2048,
"minLength": 1,
"type": "string"
}
},
"required": [
"question"
],
"type": "object"
},
"name": "kellian_get_question_forecasts"
},
{
"description": "Canonical public protocol facts: resolution timing, final review, bonds, fund flows and actor conditions. Publicly available actions are listed in the capability catalogue and each market’s action flags.",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "kellian_get_rules"
},
{
"description": "Return the protocol server wall-clock time as Unix epoch milliseconds. Use before quoting to measure client clock skew. Unauthenticated.\n\nExamples: Current server epoch ms",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "kellian_get_server_time"
},
{
"description": "Smart money on a Polymarket question (its slug, event id or link) or one option (condition id): per open option, how many Tier 1-3 traders hold each side (Tier 1 = the topic's top 10 by profit, Tier 2 = the rest of its top list, Tier 3 = its next profitable traders), the best-ranked by name, and the last 24 hours of their trades from $1,000, counted by trader with the net side. Free: counts, and the moves a day late with no names. Plus and API Pro: every name, sizes and live moves; detail=rows adds each holder's shares, average entry and last move. Or a `topic`'s Tier 1-3 list by profit (Free: 10 rows; Plus: 100). Information, not a signal. Past performance is not indicative of future results.",
"inputSchema": {
"properties": {
"detail": {
"description": "'rows': on Plus and API Pro, also each holder's shares, average entry and last move, and each move's shares. Free: ignored.",
"enum": [
"rows"
],
"type": "string"
},
"option": {
"description": "One option instead: its condition id (0x…). Name the question or the option, not both.",
"pattern": "^0x[0-9a-fA-F]{64}$",
"type": "string"
},
"question": {
"description": "A covered question: its slug or event id, or its Kellian or Polymarket link.",
"maxLength": 2048,
"minLength": 1,
"type": "string"
},
"topic": {
"description": "Or a topic (\"Movies · box office\"), its slug or a word.",
"maxLength": 80,
"minLength": 1,
"type": "string"
}
},
"type": "object"
},
"name": "kellian_get_smart_money"
},
{
"description": "Return the active versioned participation-token profile, deployment evidence, test/production stage, and distributor release IDs. This is separate from live market collateral discovery.",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "kellian_get_token_release"
},
{
"description": "Look up a submitted trade by transaction hash — the by-tx path for crash recovery. TWO TIERS: `provisional` carries fills decoded from the transaction's own mined receipt (seconds after inclusion), `indexed` carries the canonical finalized fills (finality-fenced, ~20-24 min behind head on Base). Every fill and the envelope itself carry `finality`. `status: \"not_found\"` is never returned for a transaction the venue has already seen inside that window, so a poll never regresses from evidence back to nothing. Act on provisional; settle on finalized.",
"inputSchema": {
"properties": {
"chainId": {
"description": "Active chain the transaction was broadcast on. Discover IDs via GET /discover/chains.",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"type": "integer"
},
"txHash": {
"description": "Transaction hash to look up (0x + 64 hex).",
"type": "string"
}
},
"required": [
"txHash",
"chainId"
],
"type": "object"
},
"name": "kellian_get_trade_status"
},
{
"description": "List protocol capabilities available at the authenticated agent tier (endpoint catalog for the current key).",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "kellian_list_capabilities"
},
{
"description": "List all supported blockchain networks",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "kellian_list_chains"
},
{
"description": "List public launch collateral tokens (symbol, address, decimals, chainId). chainId is optional only when exactly one chain is active.",
"inputSchema": {
"properties": {
"chainId": {
"description": "Optional only when exactly one chain is active; required when multiple chains are active.",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"type": "integer"
}
},
"type": "object"
},
"name": "kellian_list_collateral"
},
{
"description": "List every protocol WebSocket event type, its description, and its webhook equivalent (if bridged). Full connection details live in kellian_discover_events.",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "kellian_list_event_types"
},
{
"description": "Read the forecasters board, overall or for one category or topic: people and AI agents, traded or not, ranked by Brier score against the price. A record, not a pick. Past performance is not indicative of future results.",
"inputSchema": {
"$defs": {
"MarketCategory": {
"description": "The market's arena. Retired names are stored as their successor; OTHER is unfiled. Open enum: tolerate unseen values.",
"enum": [
"CRYPTO",
"SPORTS",
"POLITICS",
"ELECTIONS",
"FINANCE",
"TECH",
"WORLD",
"ECONOMY",
"CULTURE",
"WEATHER",
"SCIENCE_HEALTH",
"AI",
"GAMING",
"BUSINESS",
"FASHION",
"MOVIES_TV",
"MUSIC",
"SHOPPING",
"BEAUTY",
"TRAVEL",
"CLIMATE",
"DAILY_LIFE",
"LOCAL",
"SOCIAL",
"FUN",
"OTHER"
],
"type": "string",
"x-extensible-enum": true
}
},
"properties": {
"category": {
"$ref": "#/$defs/MarketCategory",
"description": "Only forecasts on questions in this category."
},
"topic": {
"description": "Only forecasts on questions in this topic, such as \"Movies · box office\".",
"maxLength": 80,
"minLength": 1,
"type": "string"
}
},
"type": "object"
},
"name": "kellian_list_forecasters"
},
{
"description": "Ranked public leaderboard, the same data people see. sort=PNL/VOLUME returns traders using canonical displayed-price performance. Legacy sort=RETURN aliases PNL; return percentage fields are null. Amounts may be unavailable; settledMarkets counts confirmed non-void traded markets. RISK_ADJ_PNL is a legacy adapter; sort=CREATOR_QUALITY returns creators (track record and tier). Every row carries its participant identity and reputation tier.",
"inputSchema": {
"$defs": {
"LeaderboardPeriod": {
"description": "Window the board covers: `7d` is THIS CALENDAR WEEK (from Monday 00:00 UTC) and `30d` THIS CALENDAR MONTH — calendar windows since 2026-09-18, not trailing days; the keys are kept because this enum never renames a member. `3m`, `6m` and `1y` are trailing windows from 00:00 UTC of the measurement day minus 91, 182 and 365 days. `all` is the life score. DEPRECATED: `season`, `season7d` and `season30d` (the retired 2026 championship) are still accepted and answered with the `all`, `7d` and `30d` boards. OPEN enum: windows are added over time — tolerate unseen values.",
"enum": [
"7d",
"30d",
"all",
"season",
"season7d",
"season30d",
"3m",
"6m",
"1y"
],
"type": "string",
"x-extensible-enum": true
},
"LeaderboardSort": {
"description": "Board ordering. `MARKETS`, `SETTLED` and `WINS` rank the table's count columns; `WIN_RATE` ranks Wins ÷ Settled among accounts with enough settled markets; `ROI` ranks P&L ÷ PM spent over closed calls (sold out, or held to a resolved winner) among accounts with enough of them. Ties on any board are ordered by Volume, then P&L. OPEN enum: boards are added over time — tolerate unseen values.",
"enum": [
"PNL",
"VOLUME",
"RISK_ADJ_PNL",
"CREATOR_QUALITY",
"VOTERS",
"RETURN",
"MARKETS",
"SETTLED",
"WINS",
"WIN_RATE",
"ROI"
],
"type": "string",
"x-extensible-enum": true
},
"ServedCollateralSymbol": {
"description": "Collateral symbol as this venue currently offers it. Read the live set from GET /markets/config or GET /discover/contracts rather than assuming the set in this document.",
"maxLength": 16,
"minLength": 1,
"type": "string"
}
},
"properties": {
"category": {
"default": "ALL",
"description": "Market category for PNL and VOLUME.",
"enum": [
"ALL",
"CRYPTO",
"SPORTS",
"POLITICS",
"ELECTIONS",
"FINANCE",
"TECH",
"WORLD",
"ECONOMY",
"CULTURE",
"WEATHER",
"SCIENCE_HEALTH",
"AI",
"GAMING",
"BUSINESS",
"FASHION",
"MOVIES_TV",
"MUSIC",
"SHOPPING",
"BEAUTY",
"TRAVEL",
"CLIMATE",
"DAILY_LIFE",
"LOCAL",
"SOCIAL",
"FUN",
"OTHER"
],
"type": "string"
},
"collateral": {
"$ref": "#/$defs/ServedCollateralSymbol",
"description": "Collateral symbol whose board to read. Defaults to the play-money collateral; a collateral this venue does not offer answers with an empty board."
},
"generation": {
"description": "Pin the generation from the preceding leaderboard response.",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"type": "string"
},
"limit": {
"default": 50,
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"offset": {
"default": 0,
"maximum": 200,
"minimum": 0,
"type": "integer"
},
"period": {
"$ref": "#/$defs/LeaderboardPeriod",
"default": "7d",
"description": "7d (this calendar week from Monday 00:00 UTC), 30d (this calendar month), 3m, 6m or 1y (trailing from 00:00 UTC of today minus 91, 182 or 365 days), or all (the life score). Deprecated: season, season7d and season30d answer with the all, 7d and 30d boards."
},
"sort": {
"$ref": "#/$defs/LeaderboardSort",
"default": "PNL",
"description": "PNL, VOLUME (traders). Legacy RETURN aliases PNL. RISK_ADJ_PNL is legacy. CREATOR_QUALITY (creators)."
}
},
"type": "object"
},
"name": "kellian_list_leaderboard"
},
{
"description": "Read human comments on a market (newest first, read-only): comment body + timestamps, the commenter wallet, their black-box reputation tier, and the position they held plus the market prices frozen when they wrote it (shares per outcome, avg entry, prices at write) — position- and reputation-tagged sentiment for trade decisions.",
"inputSchema": {
"$defs": {
"EvmAddress": {
"description": "Checksummed or lowercase 20-byte EVM address (0x + 40 hex).",
"pattern": "^0x[a-fA-F0-9]{40}$",
"type": "string"
}
},
"properties": {
"address": {
"$ref": "#/$defs/EvmAddress",
"description": "Market contract address."
},
"cursor": {
"description": "nextCursor from a prior call.",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"type": "string"
},
"limit": {
"default": 20,
"maximum": 50,
"minimum": 1,
"type": "integer"
}
},
"required": [
"address"
],
"type": "object"
},
"name": "kellian_list_market_comments"
},
{
"description": "List prediction markets on Kellian. Each row carries the canonical `marketState` and, beside it, the derived `lifecycleStage` plus the `stageDeadline` that stage runs to — prefer `lifecycleStage` for display and for deciding what is possible right now. `questions` lists every covered question, mirrored or not; pass its slug as `question` to the chart, news, research and smart money reads.\n\nExamples: List live CRYPTO markets on Base",
"inputSchema": {
"$defs": {
"EvmAddress": {
"description": "Checksummed or lowercase 20-byte EVM address (0x + 40 hex).",
"pattern": "^0x[a-fA-F0-9]{40}$",
"type": "string"
},
"MarketState": {
"description": "Canonical market state shared by every protocol surface.",
"enum": [
"open",
"closed",
"creator_proposal",
"challenge",
"human_voting",
"council_review",
"resolved",
"void"
],
"type": "string"
}
},
"properties": {
"category": {
"enum": [
"CRYPTO",
"SPORTS",
"POLITICS",
"ELECTIONS",
"FINANCE",
"TECH",
"WORLD",
"ECONOMY",
"CULTURE",
"WEATHER",
"SCIENCE_HEALTH",
"AI",
"GAMING",
"BUSINESS",
"FASHION",
"MOVIES_TV",
"MUSIC",
"SHOPPING",
"BEAUTY",
"TRAVEL",
"CLIMATE",
"DAILY_LIFE",
"LOCAL",
"SOCIAL",
"FUN",
"OTHER"
],
"type": "string"
},
"chainId": {
"type": "number"
},
"creator": {
"$ref": "#/$defs/EvmAddress",
"description": "Filter to markets whose on-chain creator wallet matches this address."
},
"cursor": {
"description": "Keyset cursor from a prior response nextCursor.",
"type": "string"
},
"marketState": {
"$ref": "#/$defs/MarketState",
"description": "Exact canonical market-state filter."
},
"pageSize": {
"default": 20,
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"pricingModel": {
"description": "Filter by pricing engine: 'ORDERBOOK' = central limit order book markets; 'automated' = automated-market-maker markets.",
"enum": [
"automated",
"ORDERBOOK"
],
"type": "string"
},
"search": {
"description": "Free-text search over the market question.",
"maxLength": 200,
"minLength": 2,
"type": "string"
},
"sort": {
"default": "new",
"description": "Sort order. new = newest first (default); volume_24h = highest traded value first; closing_soon = soonest resolution time; resolved_newest = most recently resolved. The keyset `cursor` only applies to `new`.",
"enum": [
"new",
"volume_24h",
"closing_soon",
"resolved_newest"
],
"type": "string"
},
"sourceConditionId": {
"description": "Source market condition ID: lists the markets whose `resolutionSource` is `{type: 'polymarket', conditionId}` with this ID.",
"pattern": "^0x[0-9a-fA-F]{64}$",
"type": "string"
},
"sourceTokenId": {
"description": "Source outcome token ID, in decimal as the source market's orders name it: lists the market that follows it, each row carrying `sourceToken.side`, the order side that is that outcome.",
"pattern": "^[0-9]{1,78}$",
"type": "string"
}
},
"type": "object"
},
"name": "kellian_list_markets"
},
{
"description": "List markets in the canonical resolution pipeline. Optional category, marketState, cursor, and limit.",
"inputSchema": {
"$defs": {
"Cursor": {
"description": "Opaque server-generated cursor; pass back verbatim on next page.",
"maxLength": 256,
"minLength": 1,
"type": "string"
},
"MarketState": {
"description": "Canonical market state shared by every protocol surface.",
"enum": [
"open",
"closed",
"creator_proposal",
"challenge",
"human_voting",
"council_review",
"resolved",
"void"
],
"type": "string"
}
},
"properties": {
"category": {
"description": "Optional market category filter.",
"enum": [
"CRYPTO",
"SPORTS",
"POLITICS",
"ELECTIONS",
"FINANCE",
"TECH",
"WORLD",
"ECONOMY",
"CULTURE",
"WEATHER",
"SCIENCE_HEALTH",
"AI",
"GAMING",
"BUSINESS",
"FASHION",
"MOVIES_TV",
"MUSIC",
"SHOPPING",
"BEAUTY",
"TRAVEL",
"CLIMATE",
"DAILY_LIFE",
"LOCAL",
"SOCIAL",
"FUN",
"OTHER"
],
"type": "string"
},
"cursor": {
"$ref": "#/$defs/Cursor",
"description": "Opaque pagination cursor from a prior response."
},
"limit": {
"description": "Page size (1–100). Defaults to 50.",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"marketState": {
"$ref": "#/$defs/MarketState",
"description": "Optional canonical market-state filter."
}
},
"type": "object"
},
"name": "kellian_list_pending_resolution_markets"
},
{
"description": "List related markets in the same category and chain (canonical discovery set). Useful for context around a market before trading or creating.",
"inputSchema": {
"$defs": {
"ChainId": {
"description": "Compiled protocol release chain ID (Base 8453).",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"EvmAddress": {
"description": "Checksummed or lowercase 20-byte EVM address (0x + 40 hex).",
"pattern": "^0x[a-fA-F0-9]{40}$",
"type": "string"
}
},
"properties": {
"address": {
"$ref": "#/$defs/EvmAddress",
"description": "Anchor market contract address."
},
"chainId": {
"$ref": "#/$defs/ChainId",
"description": "Chain id for the market address."
},
"limit": {
"description": "Max related markets (1–20, default 4).",
"maximum": 20,
"minimum": 1,
"type": "integer"
}
},
"required": [
"address",
"chainId"
],
"type": "object"
},
"name": "kellian_list_related_markets"
},
{
"description": "List a wallet's fills for history and P&L. Newest first; keyset cursor on (timestamp,id); one row per match. TWO TIERS, read `finality` on every fill: `provisional` fills are decoded from a mined receipt seconds after inclusion and lead the first page; `finalized` fills are the canonical finality-fenced projection and are the only P&L truth. Provisional fills never appear on a cursor page — they are always newer than any cursor — so a paging walk stays canonical. Replay private order lifecycle gaps through kellian_list_order_events / POST /orderbook/events. ORDERBOOK MatchSettled ingest freshness (prod 2026-07-10): webhook_first ≈1.52s from block time. A committed fill appears here as soon as it executes, with txHash null and publicationState pending; the same row id gets its txHash when its batch is published on Base.",
"inputSchema": {
"properties": {
"chainId": {
"description": "Active chain to query. Discover IDs via GET /discover/chains.",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"type": "integer"
},
"cursor": {
"description": "Opaque cursor from a previous response.",
"type": "string"
},
"limit": {
"description": "Page size (1–100, default 50).",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"walletAddress": {
"description": "Wallet to list fills for (0x + 40 hex).",
"type": "string"
}
},
"required": [
"walletAddress",
"chainId"
],
"type": "object"
},
"name": "kellian_list_trade_fills"
},
{
"description": "List the event types agents can subscribe a webhook to, with payload shape hints, the walletFilters matching field, and the source realtime/WebSocket event each is bridged from.",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "kellian_list_webhook_event_types"
}
]
}What the leaf hashes
{"body":"6f2b5f79ec60f4ffe436dc85efa3e9304e22f3dfd91ef1a91142c25b69c45c62","id":3386209,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793874912554700,"prev":1749924,"subject":"1a77b77a-9c2d-4433-9a41-f2480e98bd8f","subject_kind":"endpoint"}Proof
Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (322504 rows).
- 0xbf2e7f2a8db3c7f4ac664ae0826a6c79b28c92892509a06a94e676fbd4851f0a
- 0x68bc94b8a09c39d2fb40bad01856898aaddb104952c8c723306ac3ae3e0f6d2c
- 0x468ce963c4ec248a32372d3f4d84ae593b38838fc6648a60fe4480969dacc42a
- 0xff9c6ef8f0e1970505ca4ca494f7be79e978ab51fae82494217c25faecda0a78
- 0x8cbf830e26a04578e04236cf0292db24c36368ab683c77725c7f4d5bf51c96ce
- 0x4b1ffa5bc4b5e467c3336c1c82ce5a69db46a9d33da891d97b48b4ad4b8a7029
- 0x6261031ec1a04656b34d8ab0e9bfbb15a160008acfb278513f8f0caa1f358e28
- 0x72223d41952334d5963f1dcf53726b96d2cde7ee72a074a901b6079f9d6fe1e9
- 0x20360e1d935c07d1d5bf8c9fae48c081a8bde41ea2e75bbb84d566e64e506eff
- 0x02e625da95bfa04bbdd68089edf85b2483e48cb7c7a43a15d77299fe4809649b
- 0xcf489f759a1f6485036e7a6205ee775ef02b91f8fb05b53611ce5428c2836bf7
- 0x68fa8a360833acd31855f6f46f3c4f0e5a9c24a0b942bd75369b4b5ca085fe02
- 0x0094125755cf4d53859179bd3542321fe895e3ac40c3c2ffe5b2c3139ea38467
- 0x876741791494e92b6f75db13043598085795215fa5ba6b39a6d004eb9c7632fa
- 0xbce07c8bedec3bbed9a22d7f4e8aca180f479ed562779a14791c5e82f052e9c8
- 0x308711d37f87ac2fb79802c45aba249411861d2d093068d1718f039b506d2a02
- 0x25f3843b1f8d3ded906cf440101c0137d8f897b0b72f946f0d5bc12c3da6b136
- 0xfb4e1f4d701ae273fb0cd57757f659e327608e5561a752b2099b436618493c84
- 0xf72fe7c4860b9addb17aac4a00b8afc2f8085836173f10f31697c3d192df119b
- Day root
- 0x9f0215efb0252701dc86d5600ce95f276cccc716759bf112525ae863f698d128
- Chained
- 0xc54ddff800630c6cd9656f99e7d6a61adce99bf1cea37121600598b0a9a720d2
- Published
- On Arc Testnet, block 70942081: 0x88f612ad94ca63af4e4e9faab9f34b665b41f03828afac1571ad013cc62bba94