← The evidence ledger
Evidence row 1540700
Observed , by probe.mcp/1.
- Kind
- mcp.tools
- About
- endpoint 1a77b77a-9c2d-4433-9a41-f2480e98bd8f
- Recorded
- Previous row
- None: the first of its kind about this subject
- Body SHA-256
- ef28862ab44b4624c99b114a2fa6bfc91d7e667dd7fab1244f050617bc899e4f
- Leaf
- 0x7e2790e89bd832328d81a04e68de24f8c160823c0b06ce346ffcecfac1efa8d3
What was observed
{
"count": 38,
"tools": [
{
"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. 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",
"inputSchema": {
"properties": {
"address": {
"type": "string"
},
"chainId": {
"type": "number"
}
},
"required": [
"address"
],
"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"
},
"window": {
"enum": [
"1H",
"1D",
"1W",
"ALL"
],
"type": "string"
}
},
"required": [
"address"
],
"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 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"
}
},
"required": [
"address"
],
"type": "object"
},
"name": "kellian_get_market_news"
},
{
"description": "Read dated research, sources and published AI analyst takes for a binary market. 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"
}
},
"required": [
"address"
],
"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": "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 or event id) 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. Information, not a signal. Past performance is not indicative of future results.",
"inputSchema": {
"properties": {
"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 Polymarket question: its slug (polymarket.com/event/<slug>) or its event id.",
"maxLength": 200,
"pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
"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": "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.\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":"ef28862ab44b4624c99b114a2fa6bfc91d7e667dd7fab1244f050617bc899e4f","id":1540700,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793484656219287,"prev":null,"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 (246033 rows).
- 0x7e279fa8fd63933cc307ff993b5ef6d724f66a365b404a76a55e1dc2e6064ecb
- 0x61cd974f0c10d3fe314559c150d5b14e6e0fabf409d1b562a25d8c59b56ec1ac
- 0x0e9060d630bade4bb2a0556dbf813b8dcbb60a47a0460c8e2fe17660f0c10e9f
- 0xa9c61c28e3a77a84a27bb4fdd697f9eb54682a68221361db780c1cecbbd0c3ff
- 0x437c70f86199aa7daba564ab5f3f86e9b7ce5b931279471ef117ad9627c6339f
- 0x6593fd45408d97dacb6abfbed43460732dcc2b642dc93d289c935b43e77866b7
- 0x9e78605753fe65b6012895c3d3a7b7de7ff6e1e213ec2256375c7ec5792ca513
- 0x28b7c242082108e6dbc58a71dfce53795b97196072c5348e7fdc4d97d2b2571d
- 0xe28c74222ff8eadab0931ff03a60ff4fd1670f0776512b8006980b8c9a147548
- 0x16e53c29086afb053e92aba24a598f89bf7312de11e45db9b390ce18b887e7de
- 0xd0e61650490db86d81bceca137fce8e5f5bbd8f5c2b0cfd7ffed0a3e88284909
- 0xfcbfea6a3a43a0cddc163edc5f62f856abc7d2e88585280f590a132beec2644b
- 0xb8dab76bc20f2684f18b564fa86d761c945682b27d437e71aa84495e8acc34a5
- 0x84193793d818f53b9c5052b74eabfcc53522dfa943c3bf7c8bd476913e085e52
- 0xb553c856ad5fb96dd995dd0c40f65a2d8efc7b7f254a1ac0f2c104350e544985
- 0x919f237dec4df392868ab95f1d4300b185479ae64464cbc2e7385ad1fd6ab390
- 0xa00a931d72706fa2402bfc9b441a12eb7c6a61ff42a542916106e3637177f101
- 0x59f83f7228f07febe2780660e422e171b0359b8aa031ee3be07e991118130c15
- Day root
- 0x24463725d1c0d9894bd6123691d532547aaa79f0762c0e45aa6a68acf1fd71ab
- Chained
- 0x7d4824ff313dee7252a46f9d5c37b452851deb6c9f24a40c2f74ee0e53c82980
- Published
- On Arc Testnet, block 70093156: 0xedb7b832f4ebf6781b5ecd2ed241c435b862f4d3761541fa31adc1831b8c44a0