Whole Wicked suite for agents: market data, SEC filings, wallet checks, risk, identity, memory.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
[Trading Data API] Average True Range (Wilder's) + volatility-regime classification (low/normal/high/extreme by historical percentile) — Average True Range (Wilder's) + volatility-regime classification (low/normal/high/extreme by historical percentile). Crypto or stocks. **Example:** `/v1/atr?symbol=BTC&timeframe=1h&period=14`
Required. e.g. BTC, NVDA, SPY (or any with &class=).
Optional. stock|crypto for non-curated symbols.
Optional. ATR period (default 14).
Optional. 1m,5m,15m,30m,1h,2h,4h,6h,12h,1D,1W (default 1h).
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
[Trading Data API] Average True Range (Wilder's) + volatility-regime classification (low/normal/high/extreme by historical percentile) — Average True Range (Wilder's) + volatility-regime classification (low/normal/high/extreme by historical percentile). Crypto or stocks. **Example:** `/v1/atr?symbol=BTC&timeframe=1h&period=14`
| Argument | Type | Description |
|---|---|---|
| class | string | Optional. stock|crypto for non-curated symbols. |
| period | number | Optional. ATR period (default 14). |
| symbol* | string | Required. e.g. BTC, NVDA, SPY (or any with &class=). |
| timeframe | string | Optional. 1m,5m,15m,30m,1h,2h,4h,6h,12h,1D,1W (default 1h). |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"symbol"
],
"properties": {
"class": {
"type": "string",
"description": "Optional. stock|crypto for non-curated symbols."
},
"period": {
"type": "number",
"description": "Optional. ATR period (default 14)."
},
"symbol": {
"type": "string",
"description": "Required. e.g. BTC, NVDA, SPY (or any with &class=)."
},
"timeframe": {
"type": "string",
"description": "Optional. 1m,5m,15m,30m,1h,2h,4h,6h,12h,1D,1W (default 1h)."
}
}
}[Trading Data API] Spot-vs-perp basis (premium %) with funding-implied annualized carry — Spot-vs-perp basis (premium %) with funding-implied annualized carry. Spot from Coinbase; perp marks from Binance + Bybit. **Example:** `/v1/basis?symbol=BTC`
| Argument | Type | Description |
|---|---|---|
| symbol* | string | Required. Base crypto symbol (e.g. BTC). |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"symbol"
],
"properties": {
"symbol": {
"type": "string",
"description": "Required. Base crypto symbol (e.g. BTC)."
}
}
}[Broker Sync API] Cash & buying power per connected account (normalized). — Cash & buying power per connected account (normalized).
| Argument | Type | Description |
|---|---|---|
| user_id* | string | Required. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"user_id"
],
"properties": {
"user_id": {
"type": "string",
"description": "Required."
}
}
}[Broker Sync API] List a user's connected brokerage accounts (normalized). — List a user's connected brokerage accounts (normalized).
| Argument | Type | Description |
|---|---|---|
| user_id* | string | Required. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"user_id"
],
"properties": {
"user_id": {
"type": "string",
"description": "Required."
}
}
}[Broker Sync API] Real positions across all of a user's connected brokerages, one normalized schema, stamped as_of. — Real positions across all of a user's connected brokerages, one normalized schema, stamped as_of.
| Argument | Type | Description |
|---|---|---|
| user_id* | string | Required. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"user_id"
],
"properties": {
"user_id": {
"type": "string",
"description": "Required."
}
}
}[Broker Sync API] Prop-firm platform integration registry — live-verified methods (Topstep ProjectX API, FTMO MatchTrader bridge) and connection status. — Prop-firm platform integration registry — live-verified methods (Topstep ProjectX API, FTMO MatchTrader bridge) and connection status.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}[Broker Sync API] Register a user with SnapTrade and get a brokerage connection-portal URL. — Register a user with SnapTrade and get a brokerage connection-portal URL.
| Argument | Type | Description |
|---|---|---|
| user_id* | string | Your application's stable identifier for this end user. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"user_id"
],
"properties": {
"user_id": {
"type": "string",
"description": "Your application's stable identifier for this end user."
}
}
}[Broker Sync API] Transaction/activity history across brokerages. — Transaction/activity history across brokerages.
| Argument | Type | Description |
|---|---|---|
| to | string | Optional. YYYY-MM-DD. |
| from | string | Optional. YYYY-MM-DD. |
| user_id* | string | Required. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"user_id"
],
"properties": {
"to": {
"type": "string",
"description": "Optional. YYYY-MM-DD."
},
"from": {
"type": "string",
"description": "Optional. YYYY-MM-DD."
},
"user_id": {
"type": "string",
"description": "Required."
}
}
}[Trading Data API] Native-token balance (ETH/POL) for any address or ENS name on Ethereum, Base, Arbitrum, Optimism or Polygon — Native-token balance (ETH/POL) for any address or ENS name on Ethereum, Base, Arbitrum, Optimism or Polygon. Live from the chain over redundant RPCs — wei plus formatted units. **Example:** `/v1/chain-balance?address=vitalik.eth&chain=ethereum`
| Argument | Type | Description |
|---|---|---|
| chain | string | Optional. ethereum, base, arbitrum, optimism, polygon (default base). |
| address* | string | Required. A 0x address or an ENS name (e.g. vitalik.eth). |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"address"
],
"properties": {
"chain": {
"type": "string",
"description": "Optional. ethereum, base, arbitrum, optimism, polygon (default base)."
},
"address": {
"type": "string",
"description": "Required. A 0x address or an ENS name (e.g. vitalik.eth)."
}
}
}[Trading Data API] Block header lookup: number, hash, timestamp, miner, tx count, gas used/limit and base fee — Block header lookup: number, hash, timestamp, miner, tx count, gas used/limit and base fee. Latest by default, or any block number, safe or finalized. **Example:** `/v1/chain-block?chain=base&block=latest`
| Argument | Type | Description |
|---|---|---|
| block | string | Optional. A block number, "latest", "safe" or "finalized" (default latest). |
| chain | string | Optional. ethereum, base, arbitrum, optimism, polygon (default base). |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"block": {
"type": "string",
"description": "Optional. A block number, \"latest\", \"safe\" or \"finalized\" (default latest)."
},
"chain": {
"type": "string",
"description": "Optional. ethereum, base, arbitrum, optimism, polygon (default base)."
}
}
}[Trading Data API] ENS lookup on Ethereum mainnet in either direction: name to address, or address to primary name. — ENS lookup on Ethereum mainnet in either direction: name to address, or address to primary name. **Example:** `/v1/chain-ens?name=vitalik.eth`
| Argument | Type | Description |
|---|---|---|
| name* | string | Optional. An ENS name to resolve (e.g. vitalik.eth). Either name or address is required. |
| address | string | Optional. An address to reverse-resolve to its primary ENS name. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "Optional. An ENS name to resolve (e.g. vitalik.eth). Either name or address is required."
},
"address": {
"type": "string",
"description": "Optional. An address to reverse-resolve to its primary ENS name."
}
}
}[Trading Data API] Transaction count (nonce) for an address or ENS name: confirmed nonce plus pending nonce, so an agent can sign the next transaction without a collision. — Transaction count (nonce) for an address or ENS name: confirmed nonce plus pending nonce, so an agent can sign the next transaction without a collision. **Example:** `/v1/chain-nonce?address=0xB71C06dAC44c91bc997FB84C247DeEF676F4A9f6&chain=base`
| Argument | Type | Description |
|---|---|---|
| chain | string | Optional. ethereum, base, arbitrum, optimism, polygon (default base). |
| address* | string | Required. A 0x address or an ENS name. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"address"
],
"properties": {
"chain": {
"type": "string",
"description": "Optional. ethereum, base, arbitrum, optimism, polygon (default base)."
},
"address": {
"type": "string",
"description": "Required. A 0x address or an ENS name."
}
}
}[Trading Data API] ERC-20 token balance for an address or ENS name, with token symbol and decimals read from the contract — ERC-20 token balance for an address or ENS name, with token symbol and decimals read from the contract. Ethereum, Base, Arbitrum, Optimism, Polygon. **Example:** `/v1/chain-token-balance?address=0xB71C06dAC44c91bc997FB84C247DeEF676F4A9f6&token=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913&chain=base`
| Argument | Type | Description |
|---|---|---|
| chain | string | Optional. ethereum, base, arbitrum, optimism, polygon (default base). |
| token* | string | Required. ERC-20 contract address. |
| address* | string | Required. Holder: a 0x address or an ENS name. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"address",
"token"
],
"properties": {
"chain": {
"type": "string",
"description": "Optional. ethereum, base, arbitrum, optimism, polygon (default base)."
},
"token": {
"type": "string",
"description": "Required. ERC-20 contract address."
},
"address": {
"type": "string",
"description": "Required. Holder: a 0x address or an ENS name."
}
}
}[Trading Data API] Transaction lookup by hash: status (success/reverted/pending), block, from/to, value, nonce, gas used, effective gas price and log count. — Transaction lookup by hash: status (success/reverted/pending), block, from/to, value, nonce, gas used, effective gas price and log count. **Example:** `/v1/chain-tx?hash=0x...&chain=base`
| Argument | Type | Description |
|---|---|---|
| hash* | string | Required. 0x-prefixed 32-byte transaction hash. |
| chain | string | Optional. ethereum, base, arbitrum, optimism, polygon (default base). |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"hash"
],
"properties": {
"hash": {
"type": "string",
"description": "Required. 0x-prefixed 32-byte transaction hash."
},
"chain": {
"type": "string",
"description": "Optional. ethereum, base, arbitrum, optimism, polygon (default base)."
}
}
}[Trading Data API] Latest crypto headlines aggregated from Cointelegraph, Decrypt and Bitcoin Magazine, newest first: title, source, URL, published time and a short summary — Latest crypto headlines aggregated from Cointelegraph, Decrypt and Bitcoin Magazine, newest first: title, source, URL, published time and a short summary. Filter by keyword or source. **Example:** `/v1/crypto-news?q=etf&limit=10`
| Argument | Type | Description |
|---|---|---|
| q | string | Optional. Keyword filter on title and summary. |
| limit | number | Optional. 1-50 (default 20). |
| source | string | Optional. cointelegraph, decrypt or bitcoinmagazine (default all). |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"q": {
"type": "string",
"description": "Optional. Keyword filter on title and summary."
},
"limit": {
"type": "number",
"description": "Optional. 1-50 (default 20)."
},
"source": {
"type": "string",
"description": "Optional. cointelegraph, decrypt or bitcoinmagazine (default all)."
}
}
}[Trading Data API] DefiLlama data: TVL by chain, stablecoin circulating supply, or yield pools. — DefiLlama data: TVL by chain, stablecoin circulating supply, or yield pools. **Example:** `/v1/defi-tvl?view=chains`
| Argument | Type | Description |
|---|---|---|
| view | string | Optional. chains (default), stablecoins, or yields. |
| chain | string | Optional (yields view). Filter pools by chain, e.g. Ethereum. |
| limit | number | Optional. Rows to return (default 20, max 100). |
| project | string | Optional (yields view). Filter pools by project, e.g. aave-v3. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"view": {
"type": "string",
"description": "Optional. chains (default), stablecoins, or yields."
},
"chain": {
"type": "string",
"description": "Optional (yields view). Filter pools by chain, e.g. Ethereum."
},
"limit": {
"type": "number",
"description": "Optional. Rows to return (default 20, max 100)."
},
"project": {
"type": "string",
"description": "Optional (yields view). Filter pools by project, e.g. aave-v3."
}
}
}[Trading Data API] US equity earnings announcement calendar: report date, before/after-market timing, analyst EPS estimate + count, market cap, and prior-year actual EPS — US equity earnings announcement calendar: report date, before/after-market timing, analyst EPS estimate + count, market cap, and prior-year actual EPS. Sourced live from Nasdaq's public calendar. **Example:** `/v1/earnings-calendar?date=2026-07-14&days=3`
| Argument | Type | Description |
|---|---|---|
| date | string | Optional. Start date YYYY-MM-DD (default: today). |
| days | number | Optional. Days to scan forward from date (default 1, max 7). |
| symbol | string | Optional. Filter to one ticker within the scanned range. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"date": {
"type": "string",
"description": "Optional. Start date YYYY-MM-DD (default: today)."
},
"days": {
"type": "number",
"description": "Optional. Days to scan forward from date (default 1, max 7)."
},
"symbol": {
"type": "string",
"description": "Optional. Filter to one ticker within the scanned range."
}
}
}[Filings Oracle] 8-K material-event alerts classified into categories an agent can act on: earnings, exec_change, material_agreement, acquisition_disposition, bankruptcy, delisting, cybersecurity, auditor_or_restatement, control_change, financing, restructuring_impairment, shareholder_vote, governance, reg_fd, other_events — 8-K material-event alerts classified into categories an agent can act on: earnings, exec_change, material_agreement, acquisition_disposition, bankruptcy, delisting, cybersecurity, auditor_or_restatement, control_change, financing, restructuring_impairment, shareholder_vote, governance, reg_fd, other_events. Each event lists every item with its official label. **Example:** `/v1/8k-events?category=bankruptcy&days=7`
| Argument | Type | Description |
|---|---|---|
| days | number | Optional. Look back N days (default 2, max 90). Ignored when since is set. |
| wait | number | Optional. With since: long-poll up to N seconds (max 25). |
| limit | number | Optional. Max rows (default 50, max 200). |
| since | number | Optional. Cursor from meta.cursor of a previous response. |
| ticker | string | Optional. Ticker symbol. |
| category | string | Optional. One of the category names above. Default all. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"days": {
"type": "number",
"description": "Optional. Look back N days (default 2, max 90). Ignored when since is set."
},
"wait": {
"type": "number",
"description": "Optional. With since: long-poll up to N seconds (max 25)."
},
"limit": {
"type": "number",
"description": "Optional. Max rows (default 50, max 200)."
},
"since": {
"type": "number",
"description": "Optional. Cursor from meta.cursor of a previous response."
},
"ticker": {
"type": "string",
"description": "Optional. Ticker symbol."
},
"category": {
"type": "string",
"description": "Optional. One of the category names above. Default all."
}
}
}[Filings Oracle] One filing by accession number, with its parsed items or insider transactions and the SEC document link — One filing by accession number, with its parsed items or insider transactions and the SEC document link. **Example:** `/v1/filing?accession=0001731122-26-001341`
| Argument | Type | Description |
|---|---|---|
| accession* | string | Required. SEC accession number, e.g. 0001731122-26-001341. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"accession"
],
"properties": {
"accession": {
"type": "string",
"description": "Required. SEC accession number, e.g. 0001731122-26-001341."
}
}
}[Filings Oracle] Proof of real-time: seconds since the last successful SEC poll, age of the newest filing, median and p95 ingest lag (from SEC acceptance time) over the last 200 live filings, last successful poll per form type, and rows stored — Free. Proof of real-time: seconds since the last successful SEC poll, age of the newest filing, median and p95 ingest lag (from SEC acceptance time) over the last 200 live filings, last successful poll per form type, and rows stored. **Example:** `/v1/freshness`
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}[Filings Oracle] Insider activity rollup for one ticker over a window: open-market buy and sell counts and dollar totals, net flow, distinct buyers and sellers, a cluster-buying flag (three or more insiders buying), and the largest trades — Insider activity rollup for one ticker over a window: open-market buy and sell counts and dollar totals, net flow, distinct buyers and sellers, a cluster-buying flag (three or more insiders buying), and the largest trades. **Example:** `/v1/insider-summary?ticker=NVDA&days=30`
| Argument | Type | Description |
|---|---|---|
| days | number | Optional. Window in days (default 30, max 90). |
| ticker* | string | Required. Issuer ticker symbol. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"ticker"
],
"properties": {
"days": {
"type": "number",
"description": "Optional. Window in days (default 30, max 90)."
},
"ticker": {
"type": "string",
"description": "Required. Issuer ticker symbol."
}
}
}[Filings Oracle] Form 4 insider transactions parsed to one row per trade: insider, role and title, security, code (P purchase, S sale, A grant ...), shares, price, dollar value, shares owned after, direct/indirect, and whether it was under a 10b5-1 plan — Form 4 insider transactions parsed to one row per trade: insider, role and title, security, code (P purchase, S sale, A grant ...), shares, price, dollar value, shares owned after, direct/indirect, and whether it was under a 10b5-1 plan. Defaults to open-market buys and sells only. **Example:** `/v1/insider-trades?side=buy&min_value=100000&exclude_10b5_1=true`
| Argument | Type | Description |
|---|---|---|
| days | number | Optional. Look back N days (default 7, max 90). Ignored when since is set. |
| role | string | Optional. director, officer or 10pct_owner. |
| side | string | Optional. buy or sell (open-market purchases / sales). |
| wait | number | Optional. With since: long-poll up to N seconds (max 25). |
| limit | number | Optional. Max rows (default 50, max 200). |
| owner | string | Optional. Case-insensitive substring of the insider's name. |
| since | number | Optional. Cursor from meta.cursor of a previous response. |
| ticker |
[Filings Oracle] The 10 most recent filings across all form types (form, company, ticker, filed_at only) — Free. The 10 most recent filings across all form types (form, company, ticker, filed_at only). Full structured data, filtering and cursors need /v1/filings. **Example:** `/v1/latest-preview`
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}[Filings Oracle] Structured SEC filings feed (8-K, Form 4, Schedule 13D/13G, 10-K, 10-Q), ingested within about a minute of SEC acceptance — Structured SEC filings feed (8-K, Form 4, Schedule 13D/13G, 10-K, 10-Q), ingested within about a minute of SEC acceptance. Filter by form, ticker, CIK or 8-K item; page with a cursor, or long-poll with wait= to receive the next filing the moment it lands. **Example:** `/v1/filings?form=8-K&item=5.02&days=1`
| Argument | Type | Description |
|---|---|---|
| cik | string | Optional. SEC CIK number. |
| days | number | Optional. Look back N days (default 2, max 90). Ignored when since is set. |
| form | string | Optional. Comma list: 8-K, 4, SCHEDULE 13D, SCHEDULE 13G, 10-K, 10-Q (amendments included). Default all. |
| item | string | Optional. 8-K item number, e.g. 5.02 (executive change) or 2.02 (earnings). |
| wait | number | Optional. With since: hold the request up to N seconds (max 25) until a new filing arrives. |
| limit | number | Optional. Max rows (default 50, max 200). |
| since | number | Optional. Cursor from a previous response (meta.cursor): returns only filings stored after it, oldest first. |
| ticker | string |
[Trading Data API] Aggregated perpetual-futures funding rate & open interest from Binance + Bybit, with 7-day average funding, 24h OI change, and a long/short bias signal. — Aggregated perpetual-futures funding rate & open interest from Binance + Bybit, with 7-day average funding, 24h OI change, and a long/short bias signal. **Example:** `/v1/funding-oi?symbol=BTC`
| Argument | Type | Description |
|---|---|---|
| symbol* | string | Required. Base crypto symbol (e.g. BTC, ETH, SOL). Mapped to the <SYMBOL>USDT perpetual ticker on Binance/Bybit. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"symbol"
],
"properties": {
"symbol": {
"type": "string",
"description": "Required. Base crypto symbol (e.g. BTC, ETH, SOL). Mapped to the <SYMBOL>USDT perpetual ticker on Binance/Bybit."
}
}
}[Trading Data API] Fair Value Gap zones (standard ICT/LuxAlgo) with CE (50%), gap size, age, fill status, distance from price — Fair Value Gap zones (standard ICT/LuxAlgo) with CE (50%), gap size, age, fill status, distance from price. Standard timeframes match TradingView candles. Crypto or stocks. **Example:** `/v1/fvg?symbol=BTC&timeframe=1h`
| Argument | Type | Description |
|---|---|---|
| class | string | Optional. stock|crypto for non-curated symbols. |
| symbol* | string | Required. e.g. BTC, NVDA, SPY (or any with &class=). |
| lookback | number | Optional. Timeframe candles to analyze (default 120, max 500). |
| timeframe | string | Optional. 1m,5m,15m,30m,1h,2h,4h,6h,12h,1D,1W (default 1h). Matches TradingView candles. |
| min_gap_pct | number | Optional. Filter out gaps smaller than this % of price (default 0 = all). |
| include_filled | boolean | Optional. true to include filled FVGs (default false = active only). |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"symbol"
],
"properties": {
"class": {
"type": "string",
"description": "Optional. stock|crypto for non-curated symbols."
},
"symbol": {
"type": "string",
"description": "Required. e.g. BTC, NVDA, SPY (or any with &class=)."
},
"lookback": {
"type": "number",
"description": "Optional. Timeframe candles to analyze (default 120, max 500)."
},
"timeframe": {
"type": "string",
"description": "Optional. 1m,5m,15m,30m,1h,2h,4h,6h,12h,1D,1W (default 1h). Matches TradingView candles."
},
"min_gap_pct": {
"type": "number",
"description": "Optional. Filter out gaps smaller than this % of price (default 0 = all)."
},
"include_filled": {
"type": "boolean",
"description": "Optional. true to include filled FVGs (default false = active only)."
}
}
}[Trading Data API] Free, no signup required — Free, no signup required. Ethereum gas oracle (safe/propose/fast gas prices + base fee, in gwei), via Etherscan. **Example:** `/v1/gas`
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}[Trading Data API] Hyperliquid perpetual context: funding (hourly), open interest, mark/oracle/mid price, premium, 24h volume — Hyperliquid perpetual context: funding (hourly), open interest, mark/oracle/mid price, premium, 24h volume. Not geo-blocked. **Example:** `/v1/hyperliquid?symbol=BTC`
| Argument | Type | Description |
|---|---|---|
| symbol* | string | Required. Hyperliquid coin name (e.g. BTC, ETH, SOL). |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"symbol"
],
"properties": {
"symbol": {
"type": "string",
"description": "Required. Hyperliquid coin name (e.g. BTC, ETH, SOL)."
}
}
}[Wicked Identity] Request a real time-boxed liveness challenge (constrained-generation task, 30s budget). The clock starts when this returns: answer in ONE pass via identity_submit_response before `expires_at`. Real wallet: needs a fresh signed nonce (fetch + sign the nonce for the NEXT call before calling this). Sandbox: just wallet + sandbox_token.
| Argument | Type | Description |
|---|---|---|
| nonce | string | Real wallet: nonce from a FRESH identity_get_nonce call. Omit for sandbox. |
| wallet* | string | Your 0x wallet address on Base, or the sandbox wallet from identity_sandbox_register. |
| signature | string | Real wallet: 0x-prefixed ECDSA signature over that nonce's message. Omit for sandbox. |
| sandbox_token | string | Sandbox identity: the sandbox_token from identity_sandbox_register. Use INSTEAD of nonce/signature. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"wallet"
],
"properties": {
"nonce": {
"type": "string",
"description": "Real wallet: nonce from a FRESH identity_get_nonce call. Omit for sandbox."
},
"wallet": {
"type": "string",
"description": "Your 0x wallet address on Base, or the sandbox wallet from identity_sandbox_register."
},
"signature": {
"type": "string",
"description": "Real wallet: 0x-prefixed ECDSA signature over that nonce's message. Omit for sandbox."
},
"sandbox_token": {
"type": "string",
"description": "Sandbox identity: the sandbox_token from identity_sandbox_register. Use INSTEAD of nonce/signature."
}
}
}[Wicked Identity] Real-wallet path, step 1: a one-time nonce + message to sign. Every signed identity call needs a fresh nonce (single-use, 5-minute TTL). Not needed for sandbox identities.
| Argument | Type | Description |
|---|---|---|
| wallet* | string | Your 0x wallet address on Base, or the sandbox wallet from identity_sandbox_register. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"wallet"
],
"properties": {
"wallet": {
"type": "string",
"description": "Your 0x wallet address on Base, or the sandbox wallet from identity_sandbox_register."
}
}
}[Wicked Identity] Get a free self-serve test API key (7-day expiry, 20 requests/min) to use as api_key on identity_status instead of paying via x402. Limit: 5 per IP per day.
| Argument | Type | Description |
|---|---|---|
| label | string | Optional name for this key. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"label": {
"type": "string",
"description": "Optional name for this key."
}
}
}[Wicked Identity] Public RS256 keys to verify an assertion_token locally. Free. Set sandbox=true for the separate key set that signs sandbox assertions.
| Argument | Type | Description |
|---|---|---|
| sandbox | boolean | true = the sandbox key set (issuer wicked-identity-sandbox). |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"sandbox": {
"type": "boolean",
"description": "true = the sandbox key set (issuer wicked-identity-sandbox)."
}
}
}[Wicked Identity] Register a REAL wallet (no stake required). Needs your signature over identity_get_nonce's message; this tool never signs. Sandbox identities are registered by identity_sandbox_register instead.
| Argument | Type | Description |
|---|---|---|
| nonce* | string | Nonce from a FRESH identity_get_nonce call. |
| wallet* | string | Your 0x wallet address on Base, or the sandbox wallet from identity_sandbox_register. |
| signature* | string | 0x-prefixed ECDSA signature over that nonce's message. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"wallet",
"nonce",
"signature"
],
"properties": {
"nonce": {
"type": "string",
"description": "Nonce from a FRESH identity_get_nonce call."
},
"wallet": {
"type": "string",
"description": "Your 0x wallet address on Base, or the sandbox wallet from identity_sandbox_register."
},
"signature": {
"type": "string",
"description": "0x-prefixed ECDSA signature over that nonce's message."
}
}
}[Wicked Identity] START HERE if you have no wallet or cannot sign messages. Returns a sandbox wallet + sandbox_token (no signing, no body). Then call identity_get_challenge and identity_submit_response with wallet + sandbox_token. Sandbox results are for trying the service: signed with a separate key (identity_jwks sandbox=true) and never reported as verified. Use a real wallet for an accountable identity. Limit: 10 per IP per hour.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}[Wicked Identity] Does a wallet currently hold a valid, unexpired assertion? No signature needed. Pays via x402, or pass api_key (get one free from identity_get_test_key) / set IDENTITY_API_KEY. Sandbox wallets are never `verified`; they report sandbox: true and sandbox_verified instead.
| Argument | Type | Description |
|---|---|---|
| wallet* | string | The 0x wallet address. |
| api_key | string | Optional x-api-key, e.g. from identity_get_test_key. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"wallet"
],
"properties": {
"wallet": {
"type": "string",
"description": "The 0x wallet address."
},
"api_key": {
"type": "string",
"description": "Optional x-api-key, e.g. from identity_get_test_key."
}
}
}[Wicked Identity] Submit your answer to a challenge; scored pass / fail / inconclusive. A pass returns a short-lived signed assertion_token (JWT) verifiable via identity_jwks. Real wallet: needs a DIFFERENT fresh nonce than identity_get_challenge used. Sandbox: wallet + sandbox_token.
| Argument | Type | Description |
|---|---|---|
| nonce | string | Real wallet: nonce from a FRESH identity_get_nonce call. Omit for sandbox. |
| wallet* | string | Your 0x wallet address on Base, or the sandbox wallet from identity_sandbox_register. |
| signature | string | Real wallet: 0x-prefixed ECDSA signature over that nonce's message. Omit for sandbox. |
| challenge_id* | string | The challenge_id from identity_get_challenge. |
| response_text* | string | Your answer exactly as the instructions specify: raw text only. |
| sandbox_token | string | Sandbox identity: the sandbox_token from identity_sandbox_register. Use INSTEAD of nonce/signature. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"wallet",
"challenge_id",
"response_text"
],
"properties": {
"nonce": {
"type": "string",
"description": "Real wallet: nonce from a FRESH identity_get_nonce call. Omit for sandbox."
},
"wallet": {
"type": "string",
"description": "Your 0x wallet address on Base, or the sandbox wallet from identity_sandbox_register."
},
"signature": {
"type": "string",
"description": "Real wallet: 0x-prefixed ECDSA signature over that nonce's message. Omit for sandbox."
},
"challenge_id": {
"type": "string",
"description": "The challenge_id from identity_get_challenge."
},
"response_text": {
"type": "string",
"description": "Your answer exactly as the instructions specify: raw text only."
},
"sandbox_token": {
"type": "string",
"description": "Sandbox identity: the sandbox_token from identity_sandbox_register. Use INSTEAD of nonce/signature."
}
}
}[Trading Data API] Single Kalshi market depth: orderbook (yes/no levels) + recent trades for a specific ticker. — Single Kalshi market depth: orderbook (yes/no levels) + recent trades for a specific ticker. **Example:** `/v1/kalshi-market?ticker=KXBTCD-26JUN1315-T64099.99`
| Argument | Type | Description |
|---|---|---|
| depth | number | Optional. Orderbook depth per side (default 10, max 100). |
| ticker* | string | Required. A Kalshi market ticker (e.g. KXBTCD-26JUN1315-T64099.99). |
| trades | string | Optional. Recent trades to return (default 20, max 100). |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"ticker"
],
"properties": {
"depth": {
"type": "number",
"description": "Optional. Orderbook depth per side (default 10, max 100)."
},
"ticker": {
"type": "string",
"description": "Required. A Kalshi market ticker (e.g. KXBTCD-26JUN1315-T64099.99)."
},
"trades": {
"type": "string",
"description": "Optional. Recent trades to return (default 20, max 100)."
}
}
}[Trading Data API] Free, no signup required — Free, no signup required. Kalshi prediction-market probabilities. Query by category (returns the most active open markets) or a specific market ticker. **Example:** `/v1/kalshi-probability?category=crypto`
| Argument | Type | Description |
|---|---|---|
| limit | number | Optional. Max markets to return for a category query (default 25, max 100). |
| ticker | string | Optional. A specific Kalshi market ticker (e.g. KXBTCD-...). |
| category* | string | Optional. One of: crypto, macro, fed-rate, financials, politics, sports, world, companies, climate, science, health, entertainment, elections. Either category or ticker is required. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"category"
],
"properties": {
"limit": {
"type": "number",
"description": "Optional. Max markets to return for a category query (default 25, max 100)."
},
"ticker": {
"type": "string",
"description": "Optional. A specific Kalshi market ticker (e.g. KXBTCD-...)."
},
"category": {
"type": "string",
"description": "Optional. One of: crypto, macro, fed-rate, financials, politics, sports, world, companies, climate, science, health, entertainment, elections. Either category or ticker is required."
}
}
}[Trading Data API] Recent forced liquidations on OKX USDT perpetual swaps for a coin: each event with time, liquidated side, bankruptcy price, size and USD notional, plus long vs short liquidated totals and the largest event — Recent forced liquidations on OKX USDT perpetual swaps for a coin: each event with time, liquidated side, bankruptcy price, size and USD notional, plus long vs short liquidated totals and the largest event. Real exchange data, no estimates. **Example:** `/v1/liquidations?coin=ETH&limit=50`
| Argument | Type | Description |
|---|---|---|
| coin | string | Optional. Ticker such as BTC (default), ETH, SOL. |
| limit | number | Optional. 1-100 (default 50). |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"coin": {
"type": "string",
"description": "Optional. Ticker such as BTC (default), ETH, SOL."
},
"limit": {
"type": "number",
"description": "Optional. 1-100 (default 50)."
}
}
}[Trading Data API] ICT liquidity levels: buy-side liquidity (above swing highs) & sell-side (below swing lows), sweep/taken status, relative-equal pools, and nearest untaken targets — ICT liquidity levels: buy-side liquidity (above swing highs) & sell-side (below swing lows), sweep/taken status, relative-equal pools, and nearest untaken targets. Crypto or stocks. **Example:** `/v1/liquidity-levels?symbol=TQQQ&timeframe=1h`
| Argument | Type | Description |
|---|---|---|
| symbol* | string | Required. e.g. BTC, NVDA, TQQQ (or any with &class=). |
| lookback | number | Optional. Candles to analyze (default 300, max 500). |
| timeframe | string | Optional. 1m..1W (default 1h). |
| swing_length | number | Optional. Pivot strength — bars each side of a swing (default 5). Tune to match your chart indicator. |
| include_swept | boolean | Optional. true to include already-taken levels (default false = resting only). |
| equal_threshold_pct | number | Optional. Group swings within this % as relative-equal pools (default 0.1). |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"symbol"
],
"properties": {
"symbol": {
"type": "string",
"description": "Required. e.g. BTC, NVDA, TQQQ (or any with &class=)."
},
"lookback": {
"type": "number",
"description": "Optional. Candles to analyze (default 300, max 500)."
},
"timeframe": {
"type": "string",
"description": "Optional. 1m..1W (default 1h)."
},
"swing_length": {
"type": "number",
"description": "Optional. Pivot strength — bars each side of a swing (default 5). Tune to match your chart indicator."
},
"include_swept": {
"type": "boolean",
"description": "Optional. true to include already-taken levels (default false = resting only)."
},
"equal_threshold_pct": {
"type": "number",
"description": "Optional. Group swings within this % as relative-equal pools (default 0.1)."
}
}
}[Trading Data API] Binance long/short ratios: global account, top-trader account, top-trader position, and taker buy/sell — Binance long/short ratios: global account, top-trader account, top-trader position, and taker buy/sell. Companion to funding-oi. **Example:** `/v1/long-short-ratio?symbol=BTC&period=1h`
| Argument | Type | Description |
|---|---|---|
| period | number | Optional. One of 5m,15m,30m,1h,2h,4h,6h,12h,1d (default 5m). |
| symbol* | string | Required. Base crypto symbol (e.g. BTC). Mapped to <SYMBOL>USDT. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"symbol"
],
"properties": {
"period": {
"type": "number",
"description": "Optional. One of 5m,15m,30m,1h,2h,4h,6h,12h,1d (default 5m)."
},
"symbol": {
"type": "string",
"description": "Required. Base crypto symbol (e.g. BTC). Mapped to <SYMBOL>USDT."
}
}
}[Trading Data API] Free, no signup required — Free, no signup required. Upcoming US macro events (FOMC rate decisions, CPI, jobs report) with verified Fed/BLS dates, days-until, and Kalshi rate-decision odds (cut/hold/hike) for FOMC meetings. **Example:** `/v1/macro-calendar`
| Argument | Type | Description |
|---|---|---|
| days | number | Optional. Only events within the next N days. |
| type | string | Optional. Filter to FOMC, CPI, or NFP. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"days": {
"type": "number",
"description": "Optional. Only events within the next N days."
},
"type": {
"type": "string",
"description": "Optional. Filter to FOMC, CPI, or NFP."
}
}
}[Trading Data API] US equities market clock (is_open, next_open/close) + upcoming sessions, via Alpaca — US equities market clock (is_open, next_open/close) + upcoming sessions, via Alpaca. Crypto endpoints are 24/7 and unaffected. **Example:** `/v1/market-clock`
| Argument | Type | Description |
|---|---|---|
| days | number | Optional. Upcoming session days to include (default 3, max 30; 0 to omit). |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"days": {
"type": "number",
"description": "Optional. Upcoming session days to include (default 3, max 30; 0 to omit)."
}
}
}[Trading Data API] Free, no signup required — Free, no signup required. CoinGecko global crypto stats (total market cap, 24h volume, BTC/ETH dominance) or top coins by market cap. **Example:** `/v1/market-overview`
| Argument | Type | Description |
|---|---|---|
| view | string | Optional. global (default) or coins. |
| limit | number | Optional (coins view). Number of coins (default 20, max 100). |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"view": {
"type": "string",
"description": "Optional. global (default) or coins."
},
"limit": {
"type": "number",
"description": "Optional (coins view). Number of coins (default 20, max 100)."
}
}
}[Wicked Memory] PERMANENTLY hard-delete a memory (right-to-be-forgotten). Default scope "chain" removes every version; "version" only this one. Only an audit row (no content) is kept.
| Argument | Type | Description |
|---|---|---|
| nonce* | string | From memory_prepare (single use). |
| scope | string | "chain" (all versions, default) or "version". |
| reason | string | Optional audit-log note (max 200 chars). |
| wallet* | string | Your agent's 0x wallet address. |
| memory_id* | string | UUID of any version in the chain. |
| signature* | string | Your wallet's signature over memory_prepare's message_to_sign. |
| timestamp* | string | From memory_prepare. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"wallet",
"memory_id",
"timestamp",
"nonce",
"signature"
],
"properties": {
"nonce": {
"type": "string",
"description": "From memory_prepare (single use)."
},
"scope": {
"type": "string",
"description": "\"chain\" (all versions, default) or \"version\"."
},
"reason": {
"type": "string",
"description": "Optional audit-log note (max 200 chars)."
},
"wallet": {
"type": "string",
"description": "Your agent's 0x wallet address."
},
"memory_id": {
"type": "string",
"description": "UUID of any version in the chain."
},
"signature": {
"type": "string",
"description": "Your wallet's signature over memory_prepare's message_to_sign."
},
"timestamp": {
"type": "string",
"description": "From memory_prepare."
}
}
}[Wicked Memory] Your deletion audit log (ids, times, reasons; never content).
| Argument | Type | Description |
|---|---|---|
| nonce* | string | From memory_prepare (single use). |
| wallet* | string | Your agent's 0x wallet address. |
| signature* | string | Your wallet's signature over memory_prepare's message_to_sign. |
| timestamp* | string | From memory_prepare. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"wallet",
"timestamp",
"nonce",
"signature"
],
"properties": {
"nonce": {
"type": "string",
"description": "From memory_prepare (single use)."
},
"wallet": {
"type": "string",
"description": "Your agent's 0x wallet address."
},
"signature": {
"type": "string",
"description": "Your wallet's signature over memory_prepare's message_to_sign."
},
"timestamp": {
"type": "string",
"description": "From memory_prepare."
}
}
}[Wicked Memory] Fetch one of your memories by id (another wallet's or a deleted id returns the same 404).
| Argument | Type | Description |
|---|---|---|
| nonce* | string | From memory_prepare (single use). |
| wallet* | string | Your agent's 0x wallet address. |
| memory_id* | string | The memory's UUID. |
| signature* | string | Your wallet's signature over memory_prepare's message_to_sign. |
| timestamp* | string | From memory_prepare. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"wallet",
"memory_id",
"timestamp",
"nonce",
"signature"
],
"properties": {
"nonce": {
"type": "string",
"description": "From memory_prepare (single use)."
},
"wallet": {
"type": "string",
"description": "Your agent's 0x wallet address."
},
"memory_id": {
"type": "string",
"description": "The memory's UUID."
},
"signature": {
"type": "string",
"description": "Your wallet's signature over memory_prepare's message_to_sign."
},
"timestamp": {
"type": "string",
"description": "From memory_prepare."
}
}
}[Wicked Memory] Full version chain for a memory, oldest first, with valid_from / valid_until / superseded_by. Works from any version's id.
| Argument | Type | Description |
|---|---|---|
| nonce* | string | From memory_prepare (single use). |
| wallet* | string | Your agent's 0x wallet address. |
| memory_id* | string | UUID of any version in the chain. |
| signature* | string | Your wallet's signature over memory_prepare's message_to_sign. |
| timestamp* | string | From memory_prepare. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"wallet",
"memory_id",
"timestamp",
"nonce",
"signature"
],
"properties": {
"nonce": {
"type": "string",
"description": "From memory_prepare (single use)."
},
"wallet": {
"type": "string",
"description": "Your agent's 0x wallet address."
},
"memory_id": {
"type": "string",
"description": "UUID of any version in the chain."
},
"signature": {
"type": "string",
"description": "Your wallet's signature over memory_prepare's message_to_sign."
},
"timestamp": {
"type": "string",
"description": "From memory_prepare."
}
}
}Wicked Memory step 1 of every call: returns the exact `message_to_sign`. Sign it with your own wallet (EIP-191 personal_sign), then call the matching memory_* tool with the SAME arguments plus the returned timestamp, nonce and your signature. Timestamp must be within 5 minutes; nonce is single-use, so prepare again for every call.
| Argument | Type | Description |
|---|---|---|
| params | object | The arguments you will pass to the tool, by name, e.g. {"content":"...","tags":["a"]} or {"memory_id":"<uuid>"}. |
| wallet* | string | Your agent's 0x wallet address (memories are scoped to it). |
| operation* | string | "store", "search", "get", "update", "history", "delete" or "deletions". |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"operation",
"wallet"
],
"properties": {
"params": {
"type": "object",
"description": "The arguments you will pass to the tool, by name, e.g. {\"content\":\"...\",\"tags\":[\"a\"]} or {\"memory_id\":\"<uuid>\"}.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"wallet": {
"type": "string",
"description": "Your agent's 0x wallet address (memories are scoped to it)."
},
"operation": {
"type": "string",
"description": "\"store\", \"search\", \"get\", \"update\", \"history\", \"delete\" or \"deletions\"."
}
}
}[Wicked Memory] Semantic search over YOUR memories only, ranked by real cosine similarity. The one metered call: free with MEMORY_API_KEY, otherwise http_status 402 with x402 v2 instructions under `payment_required` (0.001 USDC on Base) — pay, then call again with the SAME arguments (a 402 does not consume the nonce) plus payment_signature.
| Argument | Type | Description |
|---|---|---|
| q* | string | What to look for, in natural language. |
| tags | array | Only memories having ALL of these tags. |
| as_of | string | ISO-8601 instant; search memory as it stood then. |
| limit | number | 1-50, default 10. |
| nonce* | string | From memory_prepare (single use). |
| wallet* | string | Your agent's 0x wallet address. |
| signature* | string | Your wallet's signature over memory_prepare's message_to_sign. |
| timestamp* | string | From memory_prepare. |
| created_after |
[Wicked Memory] Store a memory (free, fair-use rate limited). A real embedding is computed at write time. Run memory_prepare with operation 'store' and these same arguments first.
| Argument | Type | Description |
|---|---|---|
| tags | array | Up to 20 short tags. |
| nonce* | string | From memory_prepare (single use). |
| source | string | Which agent/session wrote this. |
| wallet* | string | Your agent's 0x wallet address. |
| content* | string | Text to remember (max 16 KB). |
| metadata | object | Free-form JSON object (max 8 KB). |
| signature* | string | Your wallet's signature over memory_prepare's message_to_sign. |
| timestamp* | string | From memory_prepare. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"wallet",
"content",
"timestamp",
"nonce",
"signature"
],
"properties": {
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "Up to 20 short tags."
},
"nonce": {
"type": "string",
"description": "From memory_prepare (single use)."
},
"source": {
"type": "string",
"description": "Which agent/session wrote this."
},
"wallet": {
"type": "string",
"description": "Your agent's 0x wallet address."
},
"content": {
"type": "string",
"description": "Text to remember (max 16 KB)."
},
"metadata": {
"type": "object",
"description": "Free-form JSON object (max 8 KB).",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"signature": {
"type": "string",
"description": "Your wallet's signature over memory_prepare's message_to_sign."
},
"timestamp": {
"type": "string",
"description": "From memory_prepare."
}
}
}[Wicked Memory] Update without overwriting: creates a new version and closes the old one (valid_until / superseded_by). Omitted fields carry over; only the current version can be updated (409 otherwise).
| Argument | Type | Description |
|---|---|---|
| tags | array | Replacement tags. |
| nonce* | string | From memory_prepare (single use). |
| source | string | New source label. |
| wallet* | string | Your agent's 0x wallet address. |
| content | string | New text (re-embedded). Provide at least one of content/tags/metadata/source. |
| metadata | object | Replacement metadata object. |
| memory_id* | string | UUID of the CURRENT version to supersede. |
| signature* | string | Your wallet's signature over memory_prepare's message_to_sign. |
| timestamp* | string | From memory_prepare. |
[Trading Data API] Alias of /v1/verdict — Alias of /v1/verdict. Multi-asset momentum verdict (bias, confidence, thesis, entry/invalidation/targets, signal readings) from the oracle.py pipeline, run on a separate Python service. Scoped to 10 assets. **Example:** `/v1/momentum-score?symbol=BTC&timeframe=1h`
| Argument | Type | Description |
|---|---|---|
| symbol* | string | Required. One of: BTC, ETH, SOL, SUI, NVDA, IBIT, COIN, QQQ, TQQQ, DIA. |
| timeframe | string | Optional. 15m, 1h, 4h, 1D, 1W (default 1h). |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"symbol"
],
"properties": {
"symbol": {
"type": "string",
"description": "Required. One of: BTC, ETH, SOL, SUI, NVDA, IBIT, COIN, QQQ, TQQQ, DIA."
},
"timeframe": {
"type": "string",
"description": "Optional. 15m, 1h, 4h, 1D, 1W (default 1h)."
}
}
}[Trading Data API] OHLCV candles (oldest-first) for crypto or stocks — OHLCV candles (oldest-first) for crypto or stocks. Routes to Alpaca SIP / Alpaca-crypto / Coinbase. **Example:** `/v1/ohlcv?symbol=NVDA&timeframe=1h&limit=100`
| Argument | Type | Description |
|---|---|---|
| class | string | Optional. stock|crypto for non-curated symbols. |
| limit | number | Optional. Candles to return (default 100, max 300). |
| symbol* | string | Required. e.g. BTC, NVDA, SPY. |
| timeframe | string | Optional. 1m,5m,15m,30m,1h,2h,4h,6h,12h,1D,1W (default 1h). |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"symbol"
],
"properties": {
"class": {
"type": "string",
"description": "Optional. stock|crypto for non-curated symbols."
},
"limit": {
"type": "number",
"description": "Optional. Candles to return (default 100, max 300)."
},
"symbol": {
"type": "string",
"description": "Required. e.g. BTC, NVDA, SPY."
},
"timeframe": {
"type": "string",
"description": "Optional. 1m,5m,15m,30m,1h,2h,4h,6h,12h,1D,1W (default 1h)."
}
}
}[Trading Data API] Top-of-book depth + spread (bps) from Binance, Bybit, or Hyperliquid. — Top-of-book depth + spread (bps) from Binance, Bybit, or Hyperliquid. **Example:** `/v1/orderbook?symbol=BTC&exchange=binance&depth=10`
| Argument | Type | Description |
|---|---|---|
| depth | number | Optional. Levels per side (default 10, max 50). |
| symbol* | string | Required. Base crypto symbol (e.g. BTC). |
| exchange | string | Optional. binance (default), bybit, or hyperliquid. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"symbol"
],
"properties": {
"depth": {
"type": "number",
"description": "Optional. Levels per side (default 10, max 50)."
},
"symbol": {
"type": "string",
"description": "Required. Base crypto symbol (e.g. BTC)."
},
"exchange": {
"type": "string",
"description": "Optional. binance (default), bybit, or hyperliquid."
}
}
}[x402 Paywall] Paywall a new endpoint with x402 pay-per-call, settled in USDC straight to payTo. With upstreamUrl, paid requests are proxied to your backend. Applies live within ~20s (needs PAYWALL_API_KEY).
| Argument | Type | Description |
|---|---|---|
| path | string | Route path, e.g. "/weather". |
| asset | string | Payment token contract; defaults to USDC on the network. |
| payTo* | string | Your payout wallet (0x…). Settlement pays here directly; nothing is custodied. |
| price* | string | Decimal USD amount, e.g. "0.01" or "$0.01". |
| method | string | Default GET. |
| network* | string | CAIP-2 id: Base mainnet eip155:8453, Base Sepolia eip155:84532. |
| description | string | Up to 200 chars: letters, digits, space . _ - |
| upstreamUrl | string | Your https backend. Omit for the demo confirmation payload. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"price",
"network",
"payTo"
],
"properties": {
"path": {
"type": "string",
"description": "Route path, e.g. \"/weather\"."
},
"asset": {
"type": "string",
"description": "Payment token contract; defaults to USDC on the network."
},
"payTo": {
"type": "string",
"description": "Your payout wallet (0x…). Settlement pays here directly; nothing is custodied."
},
"price": {
"type": "string",
"description": "Decimal USD amount, e.g. \"0.01\" or \"$0.01\"."
},
"method": {
"enum": [
"GET",
"POST"
],
"type": "string",
"description": "Default GET."
},
"network": {
"type": "string",
"description": "CAIP-2 id: Base mainnet eip155:8453, Base Sepolia eip155:84532."
},
"description": {
"type": "string",
"description": "Up to 200 chars: letters, digits, space . _ -"
},
"upstreamUrl": {
"type": "string",
"description": "Your https backend. Omit for the demo confirmation payload."
}
}
}[x402 Paywall] Remove a paywalled route; applies within ~20s (needs PAYWALL_API_KEY).
| Argument | Type | Description |
|---|---|---|
| id* | string | Route id from paywall_list_routes. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Route id from paywall_list_routes."
}
}
}[x402 Paywall] Your tenant record (needs PAYWALL_API_KEY).
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}[x402 Paywall] Bulk upsert routes keyed on (method, path) — paywall a whole API in one call (needs PAYWALL_API_KEY).
| Argument | Type | Description |
|---|---|---|
| routes* | array | Route objects, same fields as paywall_create_route. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"routes"
],
"properties": {
"routes": {
"type": "array",
"items": {
"type": "object",
"required": [
"price",
"network",
"payTo"
],
"properties": {
"path": {
"type": "string",
"description": "Route path, e.g. \"/weather\"."
},
"asset": {
"type": "string",
"description": "Payment token contract; defaults to USDC on the network."
},
"payTo": {
"type": "string",
"description": "Your payout wallet (0x…). Settlement pays here directly; nothing is custodied."
},
"price": {
"type": "string",
"description": "Decimal USD amount, e.g. \"0.01\" or \"$0.01\"."
},
"method": {
"enum": [
"GET",
"POST"
],
"type": "string",
"description": "Default GET."
},
"network": {
"type": "string",
"description": "CAIP-2 id: Base mainnet eip155:8453, Base Sepolia eip155:84532."
},
"description": {
"type": "string",
"description": "Up to 200 chars: letters, digits, space . _ -"
},
"upstreamUrl": {
"type": "string",
"description": "Your https backend. Omit for the demo confirmation payload."
}
}
},
"minItems": 1,
"description": "Route objects, same fields as paywall_create_route."
}
}
}[x402 Paywall] List your paywalled routes (needs PAYWALL_API_KEY).
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}[x402 Paywall] Your real on-chain USDC settlements (earnings) (needs PAYWALL_API_KEY).
| Argument | Type | Description |
|---|---|---|
| limit | number | Default 50, max 200. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"limit": {
"type": "number",
"description": "Default 50, max 200."
}
}
}[x402 Paywall] Create a tenant account. Returns a Bearer apiKey ONCE — store it and set PAYWALL_API_KEY. Rate-limited to 5/hour per IP.
| Argument | Type | Description |
|---|---|---|
| name* | string | Letters, digits, space . _ - (max 100). |
| slug* | string | Lowercase a-z0-9 and hyphens, 2-40 chars; becomes your mount path prefix /{slug}. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"name",
"slug"
],
"properties": {
"name": {
"type": "string",
"description": "Letters, digits, space . _ - (max 100)."
},
"slug": {
"type": "string",
"description": "Lowercase a-z0-9 and hyphens, 2-40 chars; becomes your mount path prefix /{slug}."
}
}
}[x402 Paywall] Partial update of a route (e.g. change price or payout wallet); applies live within ~20s (needs PAYWALL_API_KEY).
| Argument | Type | Description |
|---|---|---|
| id* | string | Route id from paywall_list_routes. |
| path | string | Route path, e.g. "/weather". |
| asset | string | Payment token contract; defaults to USDC on the network. |
| payTo | string | Your payout wallet (0x…). Settlement pays here directly; nothing is custodied. |
| price | string | Decimal USD amount, e.g. "0.01" or "$0.01". |
| method | string | Default GET. |
| network | string | CAIP-2 id: Base mainnet eip155:8453, Base Sepolia eip155:84532. |
| description | string | Up to 200 chars: letters, digits, space . _ - |
| upstreamUrl | string | Your https backend. Omit for the demo confirmation payload. |
[Trading Data API] Polymarket prediction markets with live probabilities: question, per-outcome probability, 24h and total volume, liquidity, best bid/ask, one-day price change and end date — Polymarket prediction markets with live probabilities: question, per-outcome probability, 24h and total volume, liquidity, best bid/ask, one-day price change and end date. Top markets by volume, liquidity or soonest end, or free-text search. **Example:** `/v1/polymarket?q=bitcoin&limit=5`
| Argument | Type | Description |
|---|---|---|
| q | string | Optional. Free-text search, e.g. bitcoin, fed rate, election. |
| sort | string | Optional. volume (default), liquidity or ending. Ignored when q is set. |
| limit | number | Optional. 1-25 (default 10). |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"q": {
"type": "string",
"description": "Optional. Free-text search, e.g. bitcoin, fed rate, election."
},
"sort": {
"type": "string",
"description": "Optional. volume (default), liquidity or ending. Ignored when q is set."
},
"limit": {
"type": "number",
"description": "Optional. 1-25 (default 10)."
}
}
}[Trading Data API] Current spot price for crypto (Coinbase) or US equities/ETFs (Alpaca SIP), via the shared routing layer. — Current spot price for crypto (Coinbase) or US equities/ETFs (Alpaca SIP), via the shared routing layer. **Example:** `/v1/price?symbol=BTC`
| Argument | Type | Description |
|---|---|---|
| class* | string | Optional. stock|crypto — required for symbols outside the curated list. |
| symbol* | string | Required. e.g. BTC, ETH, SUI, NVDA, SPY. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"symbol",
"class"
],
"properties": {
"class": {
"type": "string",
"description": "Optional. stock|crypto — required for symbols outside the curated list."
},
"symbol": {
"type": "string",
"description": "Required. e.g. BTC, ETH, SUI, NVDA, SPY."
}
}
}[Protocol Health Oracle] All tracked protocols with their latest health score and verdict. — All tracked protocols with their latest health score and verdict.
| Argument | Type | Description |
|---|---|---|
| limit | number | Optional. Rows to return (default 100, max 2000). |
| offset | string | Optional. Pagination offset (default 0). |
| min_tvl | string | Optional. Only protocols with TVL >= this USD amount. |
| category | string | Optional. Filter by DefiLlama category. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"limit": {
"type": "number",
"description": "Optional. Rows to return (default 100, max 2000)."
},
"offset": {
"type": "string",
"description": "Optional. Pagination offset (default 0)."
},
"min_tvl": {
"type": "string",
"description": "Optional. Only protocols with TVL >= this USD amount."
},
"category": {
"type": "string",
"description": "Optional. Filter by DefiLlama category."
}
}
}[Protocol Health Oracle] Force an immediate live re-score of all tracked protocols. — Force an immediate live re-score of all tracked protocols.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}[Protocol Health Oracle] Latest health score for one protocol: components (GitHub activity, TVL trend, treasury), source details, and score history. — Latest health score for one protocol: components (GitHub activity, TVL trend, treasury), source details, and score history.
| Argument | Type | Description |
|---|---|---|
| slug* | string | Required (path). The protocol's defillama_slug, e.g. lido. |
| history | number | Optional. Number of historical scores to include (default 10, max 100). |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"description": "Required (path). The protocol's defillama_slug, e.g. lido."
},
"history": {
"type": "number",
"description": "Optional. Number of historical scores to include (default 10, max 100)."
}
}
}[Protocol Health Oracle] Public teaser: protocol name, score, and verdict only (no components/history) across the full tracked universe — auto-ingested from DefiLlama (TVL > $1M) plus curated protocols. — Public teaser: protocol name, score, and verdict only (no components/history) across the full tracked universe — auto-ingested from DefiLlama (TVL > $1M) plus curated protocols.
| Argument | Type | Description |
|---|---|---|
| limit | number | Optional. Rows to return (default 100, max 2000). |
| offset | string | Optional. Pagination offset (default 0). |
| min_tvl | string | Optional. Only protocols with TVL >= this USD amount. |
| category | string | Optional. Filter by DefiLlama category, e.g. "Liquid Staking". |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"limit": {
"type": "number",
"description": "Optional. Rows to return (default 100, max 2000)."
},
"offset": {
"type": "string",
"description": "Optional. Pagination offset (default 0)."
},
"min_tvl": {
"type": "string",
"description": "Optional. Only protocols with TVL >= this USD amount."
},
"category": {
"type": "string",
"description": "Optional. Filter by DefiLlama category, e.g. \"Liquid Staking\"."
}
}
}[Protocol Health Oracle] Force an immediate sync of the tracked-protocol universe from DefiLlama (TVL > $1M) — Force an immediate sync of the tracked-protocol universe from DefiLlama (TVL > $1M). Runs automatically once/day; use this to trigger it on demand.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}[Protocol Health Oracle] Track a new protocol — Track a new protocol. Scored immediately from live GitHub + DeFiLlama data.
| Argument | Type | Description |
|---|---|---|
| name* | string | Display name, e.g. "Lido". |
| chain | string | Optional. Default "ethereum". |
| github_repo* | string | owner/repo, e.g. lidofinance/core. |
| defillama_slug* | string | DeFiLlama protocol slug, e.g. lido. |
| treasury_address | string | Optional. On-chain treasury address to score (Etherscan balance). |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"name",
"github_repo",
"defillama_slug"
],
"properties": {
"name": {
"type": "string",
"description": "Display name, e.g. \"Lido\"."
},
"chain": {
"type": "string",
"description": "Optional. Default \"ethereum\"."
},
"github_repo": {
"type": "string",
"description": "owner/repo, e.g. lidofinance/core."
},
"defillama_slug": {
"type": "string",
"description": "DeFiLlama protocol slug, e.g. lido."
},
"treasury_address": {
"type": "string",
"description": "Optional. On-chain treasury address to score (Etherscan balance)."
}
}
}[Trading Data API] US Treasury yield curve (1M–30Y) + recession-indicator spreads (10y-2y, 10y-3m), from FRED. — US Treasury yield curve (1M–30Y) + recession-indicator spreads (10y-2y, 10y-3m), from FRED. **Example:** `/v1/rates`
| Argument | Type | Description |
|---|---|---|
| series | string | Optional. A specific FRED series id (e.g. DGS10) for a single value. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"series": {
"type": "string",
"description": "Optional. A specific FRED series id (e.g. DGS10) for a single value."
}
}
}[Wicked Registry] Step 2 of getting a free API key. Submit the wallet, the timestamp and YOUR signature over the message from registry_onboarding_message(action=api_key). The key (wr_...) is returned once - store it and pass it as api_key to registry_search_tools / registry_tool_detail. Up to 3 active keys per wallet; past the daily cap calls fall back to x402.
| Argument | Type | Description |
|---|---|---|
| label | string | Optional label for the key. |
| wallet* | string | 0x wallet that signed the message. |
| signature* | string | 0x-prefixed ECDSA signature over the message. |
| timestamp* | string | The timestamp returned with the message. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"wallet",
"timestamp",
"signature"
],
"properties": {
"label": {
"type": "string",
"description": "Optional label for the key."
},
"wallet": {
"type": "string",
"description": "0x wallet that signed the message."
},
"signature": {
"type": "string",
"description": "0x-prefixed ECDSA signature over the message."
},
"timestamp": {
"type": "string",
"description": "The timestamp returned with the message."
}
}
}[Wicked Registry] Top scored active tools. Public and free.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}[Wicked Registry] Metadata and usage for a Registry API key (wr_...): label, created time, call counts. Pass api_key, or set REGISTRY_API_KEY.
| Argument | Type | Description |
|---|---|---|
| api_key | string | Registry API key to inspect. Overrides REGISTRY_API_KEY. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"api_key": {
"type": "string",
"description": "Registry API key to inspect. Overrides REGISTRY_API_KEY."
}
}
}[Wicked Registry] Free lookup: find a tool's id and headline reliability score by name or URL fragment (q), exact endpoint URL (endpoint) or category. No key or payment. Use it to check a tool before your agent pays it; follow with registry_tool_badge or registry_tool_detail.
| Argument | Type | Description |
|---|---|---|
| q | string | Name or URL fragment, at least 2 characters. |
| limit | number | 1-25, default 10. |
| category | string | |
| endpoint | string | Exact endpoint URL of the tool you are about to call. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"q": {
"type": "string",
"description": "Name or URL fragment, at least 2 characters."
},
"limit": {
"type": "number",
"description": "1-25, default 10."
},
"category": {
"type": "string"
},
"endpoint": {
"type": "string",
"description": "Exact endpoint URL of the tool you are about to call."
}
}
}[Wicked Registry] Step 1 of self-onboarding. Returns the exact message YOU must sign (EIP-191 personal_sign) plus its timestamp, valid for about an hour. action=api_key (needs wallet) for a free API key, or action=register (needs name and endpoint_url) to list your own tool. This tool never signs anything.
| Argument | Type | Description |
|---|---|---|
| name | string | Tool name (required for register). |
| action* | string | |
| wallet | string | Your 0x wallet address (required for api_key). |
| endpoint_url | string | Tool endpoint URL (required for register). |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"action"
],
"properties": {
"name": {
"type": "string",
"description": "Tool name (required for register)."
},
"action": {
"enum": [
"api_key",
"register"
],
"type": "string"
},
"wallet": {
"type": "string",
"description": "Your 0x wallet address (required for api_key)."
},
"endpoint_url": {
"type": "string",
"description": "Tool endpoint URL (required for register)."
}
}
}[Wicked Registry] Register a tool you own so it gets real synthetic checks and a live score. Get the exact message to sign from registry_onboarding_message(action=register), sign it with owner_wallet, then call this. This tool never signs.
| Argument | Type | Description |
|---|---|---|
| name* | string | |
| category* | string | |
| protocol* | string | "x402", "mcp" or "rest". |
| signature* | string | 0x-prefixed ECDSA signature over the registration message. |
| timestamp* | string | ISO 8601 timestamp used in the signed message (within an hour of the call). |
| schema_url | string | Optional JSON Schema URL enabling the schema-conformance score. |
| description* | string | |
| endpoint_url* | string | Live, publicly reachable endpoint. |
| owner_wallet |
[Wicked Registry] File a complaint about a tool's reliability or behaviour. Public, rate-limited; reviewed manually, never auto-suspends.
| Argument | Type | Description |
|---|---|---|
| reason* | string | "downtime", "incorrect_response", "scam_or_abuse", "schema_violation" or "other". |
| tool_id* | string | The tool's Wicked Registry id. |
| evidence | string | Optional note or URL. |
| reporter* | string | Your wallet address or another best-effort identifier. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"tool_id",
"reporter",
"reason"
],
"properties": {
"reason": {
"type": "string",
"description": "\"downtime\", \"incorrect_response\", \"scam_or_abuse\", \"schema_violation\" or \"other\"."
},
"tool_id": {
"type": "string",
"description": "The tool's Wicked Registry id."
},
"evidence": {
"type": "string",
"description": "Optional note or URL."
},
"reporter": {
"type": "string",
"description": "Your wallet address or another best-effort identifier."
}
}
}[Wicked Registry] PERMANENTLY revoke a Registry API key (the one presented). Use if a key leaked. Pass api_key, or set REGISTRY_API_KEY.
| Argument | Type | Description |
|---|---|---|
| api_key | string | Registry API key to revoke. Overrides REGISTRY_API_KEY. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"api_key": {
"type": "string",
"description": "Registry API key to revoke. Overrides REGISTRY_API_KEY."
}
}
}[Wicked Registry] Search x402/MCP tools by real reliability data (uptime, latency, schema conformance). Works via x402 (402 carries payment instructions) or a free API key (pass api_key, or set REGISTRY_API_KEY). No key yet? Call registry_onboarding_message then registry_create_api_key to get one yourself. For a quick free check of a known tool, use registry_lookup.
| Argument | Type | Description |
|---|---|---|
| sort | string | "score" (default), "latency" or "recency". |
| limit | number | 1-200, default 50. |
| api_key | string | Free Wicked Registry API key (wr_...). Overrides REGISTRY_API_KEY. |
| category | string | e.g. "data", "crypto". |
| protocol | string | "x402", "mcp" or "rest". |
| min_score | number | Minimum composite score 0-100; unchecked tools are excluded once set. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"sort": {
"type": "string",
"description": "\"score\" (default), \"latency\" or \"recency\"."
},
"limit": {
"type": "number",
"description": "1-200, default 50."
},
"api_key": {
"type": "string",
"description": "Free Wicked Registry API key (wr_...). Overrides REGISTRY_API_KEY."
},
"category": {
"type": "string",
"description": "e.g. \"data\", \"crypto\"."
},
"protocol": {
"type": "string",
"description": "\"x402\", \"mcp\" or \"rest\"."
},
"min_score": {
"type": "number",
"description": "Minimum composite score 0-100; unchecked tools are excluded once set."
}
}
}[Wicked Registry] A tool's current composite reliability score. Public and free.
| Argument | Type | Description |
|---|---|---|
| tool_id* | string | The tool's Wicked Registry id. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"tool_id"
],
"properties": {
"tool_id": {
"type": "string",
"description": "The tool's Wicked Registry id."
}
}
}[Wicked Registry] One tool's full score breakdown, component history and recent real health checks. x402 or a free API key.
| Argument | Type | Description |
|---|---|---|
| api_key | string | Free Wicked Registry API key (wr_...). Overrides REGISTRY_API_KEY. |
| tool_id* | string | Registry id from registry_lookup / registry_search_tools / registry_featured_tools. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"tool_id"
],
"properties": {
"api_key": {
"type": "string",
"description": "Free Wicked Registry API key (wr_...). Overrides REGISTRY_API_KEY."
},
"tool_id": {
"type": "string",
"description": "Registry id from registry_lookup / registry_search_tools / registry_featured_tools."
}
}
}[Wicked Reputation] Cross-reference a wallet against the open ERC-8004 Identity and Reputation registries (read-only). Free.
| Argument | Type | Description |
|---|---|---|
| wallet* | string | The 0x wallet address. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"wallet"
],
"properties": {
"wallet": {
"type": "string",
"description": "The 0x wallet address."
}
}
}[Wicked Reputation] Step 1 of every signed Reputation call (register, stake, unstake, withdraw): a one-time nonce plus the exact message to sign. Each signed call needs a fresh nonce.
| Argument | Type | Description |
|---|---|---|
| wallet* | string | The 0x wallet address. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"wallet"
],
"properties": {
"wallet": {
"type": "string",
"description": "The 0x wallet address."
}
}
}[Wicked Reputation] An agent's history of reputation/tier changes over time. Free. 404 means the wallet never registered.
| Argument | Type | Description |
|---|---|---|
| wallet* | string | The 0x wallet address. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"wallet"
],
"properties": {
"wallet": {
"type": "string",
"description": "The 0x wallet address."
}
}
}[Wicked Reputation] Public leaderboard: every agent's current active stake, tier and slash count. Free.
| Argument | Type | Description |
|---|---|---|
| limit | number | Max rows (default set by the service). |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"limit": {
"type": "number",
"description": "Max rows (default set by the service)."
}
}
}[Wicked Reputation] Search/rank registered agents by tier, stake, reputation or slash history. Every filter is a typed query param.
| Argument | Type | Description |
|---|---|---|
| sort | string | stake_amount | reputation_score | slash_count | registered_at, prefixed "-" (desc, default) or "+" (asc). |
| tier | string | Exact tier name, e.g. "gold". |
| limit | number | 1-200, default 20. |
| max_stake | number | Maximum active stake (USDC). |
| min_stake | number | Minimum active stake (USDC). |
| min_reputation | number | Minimum reputation score. |
| founding_member | boolean | True to only show founding members. |
| min_slash_count | number | Minimum slash events (1 finds agents ever slashed). |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"sort": {
"type": "string",
"description": "stake_amount | reputation_score | slash_count | registered_at, prefixed \"-\" (desc, default) or \"+\" (asc)."
},
"tier": {
"type": "string",
"description": "Exact tier name, e.g. \"gold\"."
},
"limit": {
"type": "number",
"description": "1-200, default 20."
},
"max_stake": {
"type": "number",
"description": "Maximum active stake (USDC)."
},
"min_stake": {
"type": "number",
"description": "Minimum active stake (USDC)."
},
"min_reputation": {
"type": "number",
"description": "Minimum reputation score."
},
"founding_member": {
"type": "boolean",
"description": "True to only show founding members."
},
"min_slash_count": {
"type": "number",
"description": "Minimum slash events (1 finds agents ever slashed)."
}
}
}[Wicked Reputation] Register your wallet as an agent (no stake required). Needs your signature over reputation_get_nonce's message; this tool never signs.
| Argument | Type | Description |
|---|---|---|
| nonce* | string | Nonce from a FRESH reputation_get_nonce call. |
| wallet* | string | Your 0x wallet address on Base. |
| signature* | string | 0x-prefixed ECDSA signature (EIP-191) over that nonce's message, from YOUR wallet. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"wallet",
"nonce",
"signature"
],
"properties": {
"nonce": {
"type": "string",
"description": "Nonce from a FRESH reputation_get_nonce call."
},
"wallet": {
"type": "string",
"description": "Your 0x wallet address on Base."
},
"signature": {
"type": "string",
"description": "0x-prefixed ECDSA signature (EIP-191) over that nonce's message, from YOUR wallet."
}
}
}[Wicked Reputation] Record a USDC stake that YOU already sent on-chain to the treasury (see reputation_transparency for the address). Real funds: send the transfer from your own wallet first, then pass its tx_hash with a signed nonce. This tool never moves funds or signs.
| Argument | Type | Description |
|---|---|---|
| nonce* | string | Nonce from a FRESH reputation_get_nonce call. |
| amount* | number | USDC amount staked. |
| wallet* | string | Your 0x wallet address on Base. |
| tx_hash* | string | Hash of your on-chain USDC transfer to the treasury. |
| signature* | string | 0x-prefixed ECDSA signature (EIP-191) over that nonce's message, from YOUR wallet. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"wallet",
"nonce",
"signature",
"tx_hash",
"amount"
],
"properties": {
"nonce": {
"type": "string",
"description": "Nonce from a FRESH reputation_get_nonce call."
},
"amount": {
"type": "number",
"description": "USDC amount staked."
},
"wallet": {
"type": "string",
"description": "Your 0x wallet address on Base."
},
"tx_hash": {
"type": "string",
"description": "Hash of your on-chain USDC transfer to the treasury."
},
"signature": {
"type": "string",
"description": "0x-prefixed ECDSA signature (EIP-191) over that nonce's message, from YOUR wallet."
}
}
}[Wicked Reputation] An agent's full position plus real event ledger (stakes, unstakes, withdrawals, slashes). Does not include WickedAPI call volume or fees — see the `note` field.
| Argument | Type | Description |
|---|---|---|
| wallet* | string | The 0x wallet address. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"wallet"
],
"properties": {
"wallet": {
"type": "string",
"description": "The 0x wallet address."
}
}
}[Wicked Reputation] An agent's current reputation: tier, active/unbonding stake, score, slash count, founding-member badge. http_status 404 means the wallet never registered — treat as tier 'unranked'.
| Argument | Type | Description |
|---|---|---|
| wallet* | string | The 0x wallet address. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"wallet"
],
"properties": {
"wallet": {
"type": "string",
"description": "The 0x wallet address."
}
}
}[Wicked Reputation] Live tier thresholds and benefits (min stake, rate-limit multiplier, fee discount). Read at call time — thresholds are admin-configurable.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}[Wicked Reputation] Live transparency numbers: treasury address, custody model, unbonding cooldown, total stake, agents, slash events, founding-slot counts.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}[Wicked Reputation] Start the unbonding period for `amount` of your active stake. It stops counting toward tier/reputation immediately; withdraw after the cooldown (see reputation_transparency). Needs a signed nonce.
| Argument | Type | Description |
|---|---|---|
| nonce* | string | Nonce from a FRESH reputation_get_nonce call. |
| amount* | number | USDC amount to unbond. |
| wallet* | string | Your 0x wallet address on Base. |
| signature* | string | 0x-prefixed ECDSA signature (EIP-191) over that nonce's message, from YOUR wallet. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"wallet",
"nonce",
"signature",
"amount"
],
"properties": {
"nonce": {
"type": "string",
"description": "Nonce from a FRESH reputation_get_nonce call."
},
"amount": {
"type": "number",
"description": "USDC amount to unbond."
},
"wallet": {
"type": "string",
"description": "Your 0x wallet address on Base."
},
"signature": {
"type": "string",
"description": "0x-prefixed ECDSA signature (EIP-191) over that nonce's message, from YOUR wallet."
}
}
}[Wicked Reputation] Pay out every unbonding stake whose cooldown has elapsed, in one on-chain transfer to your wallet. Safe to retry if a payout fails. Needs a signed nonce.
| Argument | Type | Description |
|---|---|---|
| nonce* | string | Nonce from a FRESH reputation_get_nonce call. |
| wallet* | string | Your 0x wallet address on Base. |
| signature* | string | 0x-prefixed ECDSA signature (EIP-191) over that nonce's message, from YOUR wallet. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"wallet",
"nonce",
"signature"
],
"properties": {
"nonce": {
"type": "string",
"description": "Nonce from a FRESH reputation_get_nonce call."
},
"wallet": {
"type": "string",
"description": "Your 0x wallet address on Base."
},
"signature": {
"type": "string",
"description": "0x-prefixed ECDSA signature (EIP-191) over that nonce's message, from YOUR wallet."
}
}
}[Wicked Sanity] Verify one claim before acting on it. Verdicts: supported | contradicted | unsupported | insufficient_evidence (see `data`). confidence_score is raw consistency (a "contradicted" verdict scores near 0). Policy: act on supported; treat unsupported/insufficient_evidence as unverified; reject contradicted. x402 or SANITY_API_KEY; 429 means a rate limit — see retry_after.
| Argument | Type | Description |
|---|---|---|
| mode | string | "grounded" (default; check against context) or "open" (check against live web evidence — consistency with the web, not objective truth). |
| claim* | string | The single statement to verify (max 5,000 chars). |
| context | any | Source text the claim(s) must be faithful to. Required for mode "grounded". |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"claim"
],
"properties": {
"mode": {
"type": "string",
"description": "\"grounded\" (default; check against context) or \"open\" (check against live web evidence — consistency with the web, not objective truth)."
},
"claim": {
"type": "string",
"description": "The single statement to verify (max 5,000 chars)."
},
"context": {
"anyOf": [
{
"type": "string"
},
{
"type": "array",
"items": {
"type": "string"
}
}
],
"description": "Source text the claim(s) must be faithful to. Required for mode \"grounded\"."
}
}
}[Wicked Sanity] Verify up to 50 claims against one shared context in a single call — prefer this over one sanity_check per sentence. `data` is a list in the same order as `claims`.
| Argument | Type | Description |
|---|---|---|
| mode | string | "grounded" (default; check against context) or "open" (check against live web evidence — consistency with the web, not objective truth). |
| claims* | array | 1-50 statements, each up to 5,000 chars. |
| context | any | Source text the claim(s) must be faithful to. Required for mode "grounded". |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"claims"
],
"properties": {
"mode": {
"type": "string",
"description": "\"grounded\" (default; check against context) or \"open\" (check against live web evidence — consistency with the web, not objective truth)."
},
"claims": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 50,
"minItems": 1,
"description": "1-50 statements, each up to 5,000 chars."
},
"context": {
"anyOf": [
{
"type": "string"
},
{
"type": "array",
"items": {
"type": "string"
}
}
],
"description": "Source text the claim(s) must be faithful to. Required for mode \"grounded\"."
}
}
}[Wicked Sanity] Fetch a previously run check by its check_id (returned by sanity_check / sanity_check_batch). x402 or SANITY_API_KEY like the other Sanity calls.
| Argument | Type | Description |
|---|---|---|
| check_id* | string | The check_id from an earlier sanity_check result. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"check_id"
],
"properties": {
"check_id": {
"type": "string",
"description": "The check_id from an earlier sanity_check result."
}
}
}[Trading Data API] Free, no signup required — Free, no signup required. Crypto Fear & Greed Index (alternative.me), current reading + optional history. **Example:** `/v1/sentiment?limit=7`
| Argument | Type | Description |
|---|---|---|
| limit | number | Optional. Number of days of history (default 1, max 90). |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"limit": {
"type": "number",
"description": "Optional. Number of days of history (default 1, max 90)."
}
}
}[Token Risk Oracle] Free, public, no signup — Free, public, no signup. Aggregates real on-chain risk signals from GoPlus Security for a token contract — honeypot detection, mint/ownership authority, holder & LP concentration, buy/sell tax, trust-list status — into one transparent risk score. Never a bare safe/unsafe claim: every flag GoPlus didn't return data for stays null, and the raw source data ships alongside the score.
| Argument | Type | Description |
|---|---|---|
| chain* | string | Required. ethereum, bsc, base, polygon, arbitrum, optimism, avalanche, fantom, zksync, linea, scroll, or solana. A numeric EVM chain_id also works. |
| address* | string | Required. The token contract address (EVM) or mint address (Solana). |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"address",
"chain"
],
"properties": {
"chain": {
"type": "string",
"description": "Required. ethereum, bsc, base, polygon, arbitrum, optimism, avalanche, fantom, zksync, linea, scroll, or solana. A numeric EVM chain_id also works."
},
"address": {
"type": "string",
"description": "Required. The token contract address (EVM) or mint address (Solana)."
}
}
}[Trading Data API] One-call trading verdict for an asset: LONG, SHORT or NEUTRAL bias with a 0-10 confidence, a one-line thesis, entry, invalidation and two targets, and the trend / momentum / structure / liquidity readings behind it — One-call trading verdict for an asset: LONG, SHORT or NEUTRAL bias with a 0-10 confidence, a one-line thesis, entry, invalidation and two targets, and the trend / momentum / structure / liquidity readings behind it. Mechanical scoring from live candles on two timeframes (EMA stack, MACD, RSI, ADX, swing structure, liquidity sweeps, volume point of control), never a guess. BTC, ETH, SOL, SUI, NVDA, IBIT, COIN, QQQ, TQQQ, DIA. **Example:** `/v1/verdict?symbol=BTC&timeframe=1h`
| Argument | Type | Description |
|---|---|---|
| symbol* | string | Required. One of: BTC, ETH, SOL, SUI, NVDA, IBIT, COIN, QQQ, TQQQ, DIA. |
| timeframe | string | Optional. Execution timeframe: 15m, 1h, 4h, 1D, 1W (default 1h); the next timeframe up is used as context. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"symbol"
],
"properties": {
"symbol": {
"type": "string",
"description": "Required. One of: BTC, ETH, SOL, SUI, NVDA, IBIT, COIN, QQQ, TQQQ, DIA."
},
"timeframe": {
"type": "string",
"description": "Optional. Execution timeframe: 15m, 1h, 4h, 1D, 1W (default 1h); the next timeframe up is used as context."
}
}
}[Trading Data API] Deribit volatility: DVOL implied-vol index (30d forward) + latest realized volatility, for BTC or ETH. — Deribit volatility: DVOL implied-vol index (30d forward) + latest realized volatility, for BTC or ETH. **Example:** `/v1/volatility?currency=BTC`
| Argument | Type | Description |
|---|---|---|
| currency | string | Optional. BTC (default) or ETH. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"currency": {
"type": "string",
"description": "Optional. BTC (default) or ETH."
}
}
}[Wallet Oracle] Pre-transaction counterparty check for an EVM wallet or contract: OFAC SDN screening, GoPlus malicious-address flags (phishing, drainers, laundering, mixers ...), and a live on-chain profile (EOA / contract / EIP-7702, nonce, balance, ENS, first transaction, contract verification) — Pre-transaction counterparty check for an EVM wallet or contract: OFAC SDN screening, GoPlus malicious-address flags (phishing, drainers, laundering, mixers ...), and a live on-chain profile (EOA / contract / EIP-7702, nonce, balance, ENS, first transaction, contract verification). Returns risk_level, a plain recommendation (do_not_transact / review_before_transacting / no_red_flags_found), every reason with its source, and which sources were unavailable. **Example:** `/v1/wallet-check?address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045&chain=ethereum`
| Argument | Type | Description |
|---|---|---|
| chain | string | Optional. ethereum, base, arbitrum, optimism, polygon (default base). |
| address* | string | Required. A 0x address. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"address"
],
"properties": {
"chain": {
"type": "string",
"description": "Optional. ethereum, base, arbitrum, optimism, polygon (default base)."
},
"address": {
"type": "string",
"description": "Required. A 0x address."
}
}
}[Wallet Oracle] Is this address on the US Treasury OFAC SDN sanctions list? Exact match against every digital-currency address OFAC publishes (EVM, Tron, Bitcoin and others), with the sanctioned entity, program, and the list's publish date — Free. Is this address on the US Treasury OFAC SDN sanctions list? Exact match against every digital-currency address OFAC publishes (EVM, Tron, Bitcoin and others), with the sanctioned entity, program, and the list's publish date. Chain-agnostic. **Example:** `/v1/sanctions-check?address=0x8589427373D6D84E98730D7795D8f6f8731FDA16`
| Argument | Type | Description |
|---|---|---|
| address* | string | Required. Any wallet address (0x EVM, Tron T..., Bitcoin, Solana, ...). |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"address"
],
"properties": {
"address": {
"type": "string",
"description": "Required. Any wallet address (0x EVM, Tron T..., Bitcoin, Solana, ...)."
}
}
}[Trading Data API] Real-time web search for agents: ranked results with title, URL, snippet and score, plus an optional synthesized answer — Real-time web search for agents: ranked results with title, URL, snippet and score, plus an optional synthesized answer. Pay per search; general or news topic. **Example:** `/v1/web-search?q=latest+ethereum+upgrade&max_results=5&topic=news`
| Argument | Type | Description |
|---|---|---|
| q* | string | Required. The search query (max 400 characters). |
| topic | string | Optional. general (default) or news. |
| max_results | string | Optional. 1-10 (default 5). |
| include_answer | string | Optional. true (default) or false to skip the synthesized answer. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"q"
],
"properties": {
"q": {
"type": "string",
"description": "Required. The search query (max 400 characters)."
},
"topic": {
"type": "string",
"description": "Optional. general (default) or news."
},
"max_results": {
"type": "string",
"description": "Optional. 1-10 (default 5)."
},
"include_answer": {
"type": "string",
"description": "Optional. true (default) or false to skip the synthesized answer."
}
}
}| string |
| Optional. Issuer ticker symbol. |
| all_codes | string | Optional. true to include grants, option exercises, tax withholding and gifts (default false: open-market P and S only). |
| min_value | number | Optional. Minimum trade value in USD. |
| exclude_10b5_1 | string | Optional. true to drop trades made under a pre-arranged 10b5-1 plan. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"days": {
"type": "number",
"description": "Optional. Look back N days (default 7, max 90). Ignored when since is set."
},
"role": {
"type": "string",
"description": "Optional. director, officer or 10pct_owner."
},
"side": {
"type": "string",
"description": "Optional. buy or sell (open-market purchases / sales)."
},
"wait": {
"type": "number",
"description": "Optional. With since: long-poll up to N seconds (max 25)."
},
"limit": {
"type": "number",
"description": "Optional. Max rows (default 50, max 200)."
},
"owner": {
"type": "string",
"description": "Optional. Case-insensitive substring of the insider's name."
},
"since": {
"type": "number",
"description": "Optional. Cursor from meta.cursor of a previous response."
},
"ticker": {
"type": "string",
"description": "Optional. Issuer ticker symbol."
},
"all_codes": {
"type": "string",
"description": "Optional. true to include grants, option exercises, tax withholding and gifts (default false: open-market P and S only)."
},
"min_value": {
"type": "number",
"description": "Optional. Minimum trade value in USD."
},
"exclude_10b5_1": {
"type": "string",
"description": "Optional. true to drop trades made under a pre-arranged 10b5-1 plan."
}
}
}| Optional. Ticker symbol, e.g. NVDA. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"cik": {
"type": "string",
"description": "Optional. SEC CIK number."
},
"days": {
"type": "number",
"description": "Optional. Look back N days (default 2, max 90). Ignored when since is set."
},
"form": {
"type": "string",
"description": "Optional. Comma list: 8-K, 4, SCHEDULE 13D, SCHEDULE 13G, 10-K, 10-Q (amendments included). Default all."
},
"item": {
"type": "string",
"description": "Optional. 8-K item number, e.g. 5.02 (executive change) or 2.02 (earnings)."
},
"wait": {
"type": "number",
"description": "Optional. With since: hold the request up to N seconds (max 25) until a new filing arrives."
},
"limit": {
"type": "number",
"description": "Optional. Max rows (default 50, max 200)."
},
"since": {
"type": "number",
"description": "Optional. Cursor from a previous response (meta.cursor): returns only filings stored after it, oldest first."
},
"ticker": {
"type": "string",
"description": "Optional. Ticker symbol, e.g. NVDA."
}
}
}| string |
| ISO-8601 lower bound. |
| created_before | string | ISO-8601 upper bound. |
| payment_signature | string | x402 payment payload (base64) for the keyless path. |
| include_superseded | boolean | Also search old, superseded versions. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"wallet",
"q",
"timestamp",
"nonce",
"signature"
],
"properties": {
"q": {
"type": "string",
"description": "What to look for, in natural language."
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "Only memories having ALL of these tags."
},
"as_of": {
"type": "string",
"description": "ISO-8601 instant; search memory as it stood then."
},
"limit": {
"type": "number",
"description": "1-50, default 10."
},
"nonce": {
"type": "string",
"description": "From memory_prepare (single use)."
},
"wallet": {
"type": "string",
"description": "Your agent's 0x wallet address."
},
"signature": {
"type": "string",
"description": "Your wallet's signature over memory_prepare's message_to_sign."
},
"timestamp": {
"type": "string",
"description": "From memory_prepare."
},
"created_after": {
"type": "string",
"description": "ISO-8601 lower bound."
},
"created_before": {
"type": "string",
"description": "ISO-8601 upper bound."
},
"payment_signature": {
"type": "string",
"description": "x402 payment payload (base64) for the keyless path."
},
"include_superseded": {
"type": "boolean",
"description": "Also search old, superseded versions."
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"wallet",
"memory_id",
"timestamp",
"nonce",
"signature"
],
"properties": {
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "Replacement tags."
},
"nonce": {
"type": "string",
"description": "From memory_prepare (single use)."
},
"source": {
"type": "string",
"description": "New source label."
},
"wallet": {
"type": "string",
"description": "Your agent's 0x wallet address."
},
"content": {
"type": "string",
"description": "New text (re-embedded). Provide at least one of content/tags/metadata/source."
},
"metadata": {
"type": "object",
"description": "Replacement metadata object.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"memory_id": {
"type": "string",
"description": "UUID of the CURRENT version to supersede."
},
"signature": {
"type": "string",
"description": "Your wallet's signature over memory_prepare's message_to_sign."
},
"timestamp": {
"type": "string",
"description": "From memory_prepare."
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Route id from paywall_list_routes."
},
"path": {
"type": "string",
"description": "Route path, e.g. \"/weather\"."
},
"asset": {
"type": "string",
"description": "Payment token contract; defaults to USDC on the network."
},
"payTo": {
"type": "string",
"description": "Your payout wallet (0x…). Settlement pays here directly; nothing is custodied."
},
"price": {
"type": "string",
"description": "Decimal USD amount, e.g. \"0.01\" or \"$0.01\"."
},
"method": {
"enum": [
"GET",
"POST"
],
"type": "string",
"description": "Default GET."
},
"network": {
"type": "string",
"description": "CAIP-2 id: Base mainnet eip155:8453, Base Sepolia eip155:84532."
},
"description": {
"type": "string",
"description": "Up to 200 chars: letters, digits, space . _ -"
},
"upstreamUrl": {
"type": "string",
"description": "Your https backend. Omit for the demo confirmation payload."
}
}
}| string |
| 0x wallet that signed the registration message. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"name",
"endpoint_url",
"protocol",
"category",
"description",
"owner_wallet",
"signature",
"timestamp"
],
"properties": {
"name": {
"type": "string"
},
"category": {
"type": "string"
},
"protocol": {
"type": "string",
"description": "\"x402\", \"mcp\" or \"rest\"."
},
"signature": {
"type": "string",
"description": "0x-prefixed ECDSA signature over the registration message."
},
"timestamp": {
"type": "string",
"description": "ISO 8601 timestamp used in the signed message (within an hour of the call)."
},
"schema_url": {
"type": "string",
"description": "Optional JSON Schema URL enabling the schema-conformance score."
},
"description": {
"type": "string"
},
"endpoint_url": {
"type": "string",
"description": "Live, publicly reachable endpoint."
},
"owner_wallet": {
"type": "string",
"description": "0x wallet that signed the registration message."
}
}
}