Koskamo

Femtos MCP

A hosted MCP server providing access to Hyperliquid data across HyperCore, HyperEVM, and Elysium layers. It exposes tools for retrieving balances, prices, trades, token security information, and bridge data, enabling AI agents to interact with decentralized exchange and blockchain data.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

Femtos MCP logo, by FemtosVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-01Operated by Femtos
MCP endpoint (Streamable HTTP)
https://api.femtos.xyz/mcp
Vendor documentation

What you can do with it

  • Retrieve market prices and balances
  • Access trade history and order book data
  • Check token security and holder information
  • Monitor bridge transactions and launches

Source and maintenance

Vendor evidenceRegistry 1.2.0

Protocol and capabilities

Server
femtos 1.0.0
MCP protocol
2025-06-18
Tools
93 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": true
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

Femtos: Hyperliquid data across its three layers. HyperCore = the exchange (perps, spot, HIP-3, order flow), HyperEVM = its EVM chain (DEX pools, tokens, LiquidLaunch), Elysium = Kinetiq's Orbit L2 on HyperEVM (Ascend launchpad, PancakeSwap Infinity pools). Decimals are exact strings (on-chain amounts every digit; USD figures 15 significant digits, what a double holds), times Unix ms, addresses lowercase 0x; a named wallet's address is its handle <entityId>.<hex> everywhere, accepted as an address. Find a market with list_markets or search_coins (its id is the market of get_candles / get_trades), USD prices of many tokens with get_prices / get_price_history, a token across all its pools with get_token_overview, metadata in batch with get_tokens, a launch with list_launches, every new token or pool of an EVM layer with list_new_tokens / list_new_pools, what an address holds (flat list with USD, past blocks, verify on the node) with get_balances / get_token_balance, a wallet's whole picture (positions, NFTs, bridges, latest events) with get_wallet, its swap and ERC-20 transfer history with get_trades (trader) / get_erc20_transfers (address), one pool with get_pool, one transaction with get_transaction, whether a token is safe to trade (honeypot, taxes, owner powers) with get_token_security. HyperCore: get_book (live order book), get_positions and get_liquidations / get_liquidation_stats, stop-loss / take-profit orders with get_stop_map, get_triggered_stops and get_wallet_stops, liquidation prices of open positions with get_liquidation_map, both on one grid with get_forced_flow; NFTs on the EVM layers: list_nft_collections, get_nft_collection, get_nft_tokens, get_nfts_owned, get_nft_transfers; HyperCore <> HyperEVM <> Elysium bridge movements: get_bridges; named wallets: search_entities, kol_leaderboard, kol_activity. Answers carry the REST request they ran (same data on https://api.femtos.xyz/v1). A list tool answers `next_cursor` (null on the last page): pass it as `cursor` for the next page. A layer still syncing answers with what is indexed (syncing: true, dataUntil). Elysium tools read Elysium mainnet; `network: "testnet"` reads the Elysium testnet (same answers, USD values null). Push instead of polling: create_webhook (bridges, a wallet's activity, liquidations, large position changes, launches) POSTs them to your HTTPS URL, signed; list_webhooks, get_webhook, update_webhook, enable_webhook, rotate_webhook_secret, get_webhook_deliveries, test_webhook, replay_webhook and delete_webhook manage them. Your account, all from here: get_account (tier, limits, balance, debt, month to date, plan, how to pay), get_usage, get_ledger (payments and charges), get_plans, then get_deposit_address / get_deposits (USDC credited 1:1), get_payment_options, or quote_wallet_payment + pay_with_wallet (USDC from your wallet, no gas), subscribe_plan / cancel_plan, set_spending_cap, rotate_key, freeze_key, delete_account (rotate and delete take your management_secret). Tool calls need an API key (Authorization: Bearer <key>), but get_signup_challenge and signup (a free key with no browser: a proof of work, then the key and its management secret), get_recovery_challenge and recover_account (a lost key of an account an x402 payment created: the paying wallet's signature) and get_plans, which run without one. Each tool call counts like that REST call on your key; heavy calls: get_candles, get_price_history and get_open_interest over 30 days; get_wallet_stops with history; medium calls: get_holders, get_launch_timeline, get_token_lifecycle, get_token_security, get_token_traders, get_bridges, get_wallet, get_liquidation_stats, get_position_changes, kol_leaderboard, get_builder_fills.

Tools

93 advertised

get_status — Layer status
Advertised by the server during the last successful anonymous check.
Advertised read-only

State of each layer (HyperCore, HyperEVM, Elysium): indexed head block and time, lag behind the chain, live or syncing, Elysium network (mainnet), HyperCore <> HyperEVM bridge matching coverage. Check it when an answer looks stale. Free.

get_status input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "network": {
      "enum": [
        "mainnet",
        "testnet"
      ],
      "type": "string",
      "description": "Elysium network: mainnet or testnet, same answers (testnet USD values null). HyperCore and HyperEVM are always mainnet (default mainnet)"
    }
  }
}
get_status annotations
{
  "title": "Layer status",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
list_markets — Markets and pools
Advertised by the server during the last successful anonymous check.
Advertised read-only

Tradable markets of a layer, most traded first (24 h USD volume). hypercore: perps, spot, HIP-3 dex perps (dex:COIN), outcome markets; `id` is the coin to pass to get_candles / get_trades (BTC, @107, xyz:TSLA). hyperevm / elysium: DEX pools with price, priceUsd, 24 h volume, mcapUsd (Elysium); `id` is the pool key to pass to get_candles / get_trades / get_pool. `total` = markets matching. Next page: pass `next_cursor` as cursor.

list_markets input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "layer"
  ],
  "properties": {
    "q": {
      "type": "string",
      "maxLength": 64,
      "description": "Substring of the symbol, base, quote, addresses or protocol"
    },
    "kind": {
      "enum": [
        "perp",
        "spot",
        "hip3",
        "outcome"
      ],
      "type": "string",
      "description": "hypercore only: one kind of market"
    },
    "layer": {
      "enum": [
        "hypercore",
        "hyperevm",
        "elysium"
      ],
      "type": "string",
      "description": "Layer"
    },
    "limit": {
      "type": "integer",
      "maximum": 200,
      "minimum": 1,
      "description": "Rows (default 50, max 200)"
    },
    "cursor": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]{2,160}$",
      "description": "Next page: `next_cursor` of the previous answer"
    },
    "network": {
      "enum": [
        "mainnet",
        "testnet"
      ],
      "type": "string",
      "description": "Elysium network: mainnet or testnet, same answers (testnet USD values null). HyperCore and HyperEVM are always mainnet (default mainnet)"
    }
  }
}
list_markets annotations
{
  "title": "Markets and pools",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
list_top_tokens — Token screener (trending, gainers, new…)
Advertised by the server during the last successful anonymous check.
Advertised read-only

The tokens of HyperEVM or Elysium, one row per token over all its pools (not one per pool like list_markets): price, 1 h / 24 h change, 1 h / 24 h volume, trades, buys / sells, distinct wallets of the hour, liquidity, market cap, FDV, holders, first pool time, pool count, the most traded pool (topPool: the market for get_candles / get_trades), launchpad, a 24 h hourly spark. sort: trending (default), volume, gainers, losers, new, mcap, liquidity. Stablecoins and WHYPE left out unless includeStables, spam unless includeSpam, liquidity under minLiquidityUsd (default 1000) always. Trending = last-hour volume (capped at 10 × liquidity) × its acceleration over the 24 h hourly average × √distinct wallets. Next page: pass next_cursor as cursor.

list_top_tokens input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "layer"
  ],
  "properties": {
    "q": {
      "type": "string",
      "maxLength": 64,
      "description": "Substring of the symbol, name or address"
    },
    "sort": {
      "enum": [
        "trending",
        "volume",
        "gainers",
        "losers",
        "new",
        "mcap",
        "liquidity"
      ],
      "type": "string",
      "description": "trending: trendScore; volume: volume24hUsd; gainers / losers: change24h (rows without one left out); new: createdAt, newest first; mcap: mcapUsd; liquidity: liquidityUsd. Ties: volume24hUsd, then address (default trending)"
    },
    "layer": {
      "enum": [
        "hyperevm",
        "elysium"
      ],
      "type": "string",
      "description": "EVM layer"
    },
    "limit": {
      "type": "integer",
      "maximum": 200,
      "minimum": 1,
      "description": "Rows (default 20)"
    },
    "cursor": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]{2,160}$",
      "description": "Next page: `next_cursor` of the previous answer"
    },
    "network": {
      "enum": [
        "mainnet",
        "testnet"
      ],
      "type": "string",
      "description": "Elysium network: mainnet or testnet, same answers (testnet USD values null). HyperCore and HyperEVM are always mainnet (default mainnet)"
    },
    "includeSpam": {
      "type": "boolean",
      "description": "Show spam tokens (tokens.spam: homoglyph, impostor, phishing name, fake transfers…) flagged spam / spamReason; left out of the list by default"
    },
    "includeStables": {
      "type": "boolean",
      "description": "USD stablecoins and the native / wrapped native quote assets (HYPE, WHYPE, backed wrappers), flagged `stable`; left out by default"
    },
    "minLiquidityUsd": {
      "type": "number",
      "minimum": 0,
      "description": "Minimum USD liquidity over its pools (default 1000)"
    }
  }
}
list_top_tokens annotations
{
  "title": "Token screener (trending, gainers, new…)",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
get_candles — OHLCV candles
Advertised by the server during the last successful anonymous check.
Advertised read-only

OHLCV candles of one market, ascending, UTC-aligned. hypercore: market = coin (BTC, HYPE, @107 spot, xyz:TSLA), down to 1 s. hyperevm / elysium: market = pool key from list_markets; prices in quote plus `usd` and `mcap` OHLC (USD price and market cap). Or token instead of market: a token's candles in USD through its reference pool (most liquid; the answer names it), HyperCore: its USDC market. Without from: the `limit` candles ending now. Windows over 30 days are billed as heavy calls.

get_candles input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "layer",
    "tf"
  ],
  "properties": {
    "tf": {
      "enum": [
        "1s",
        "15s",
        "1m",
        "5m",
        "15m",
        "1h",
        "4h",
        "1d"
      ],
      "type": "string",
      "description": "Candle unit"
    },
    "to": {
      "type": "integer",
      "maximum": 1000000000000000,
      "minimum": 0,
      "description": "End, Unix ms (exclusive; default now)"
    },
    "from": {
      "type": "integer",
      "maximum": 1000000000000000,
      "minimum": 0,
      "description": "Start, Unix ms (inclusive)"
    },
    "layer": {
      "enum": [
        "hypercore",
        "hyperevm",
        "elysium"
      ],
      "type": "string",
      "description": "Layer"
    },
    "limit": {
      "type": "integer",
      "maximum": 1000,
      "minimum": 1,
      "description": "Candles (default 50, 30 for 1d; max 1000)"
    },
    "token": {
      "type": "string",
      "maxLength": 66,
      "minLength": 1,
      "description": "Instead of market: a token (0x address; hypercore: name HYPE, PURR)"
    },
    "market": {
      "type": "string",
      "maxLength": 160,
      "minLength": 1,
      "description": "hypercore: coin; hyperevm / elysium: pool key (or give token)"
    },
    "network": {
      "enum": [
        "mainnet",
        "testnet"
      ],
      "type": "string",
      "description": "Elysium network: mainnet or testnet, same answers (testnet USD values null). HyperCore and HyperEVM are always mainnet (default mainnet)"
    }
  }
}
get_candles annotations
{
  "title": "OHLCV candles",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
get_trades — Trades / swaps, and swap history of a wallet, pool or token
Advertised by the server during the last successful anonymous check.
Advertised read-only

Latest trades of a market, newest first. hypercore: fills of a coin (px, sz, side B = buyer aggressor / A, block time). hyperevm / elysium: DEX swaps of a pool (sender, amounts, px = pool price after the swap, USD value). History (hyperevm / elysium): pass trader (a wallet: every swap it sent), pool or token (more than 20 pools: its priced swaps only, `coverage: priced`), optionally side, minUsd (USD at the swap), from / to (Unix ms): newest first, each row with its pool and symbols; filtered pages may hold fewer rows than limit, keep paging with `next_cursor` (null = no more).

get_trades input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "to": {
      "anyOf": [
        {
          "type": "integer",
          "maximum": 999999999999999,
          "minimum": 0
        },
        {
          "type": "string",
          "pattern": "^\\d{1,15}$"
        }
      ],
      "description": "Window end, Unix ms (exclusive)"
    },
    "from": {
      "anyOf": [
        {
          "type": "integer",
          "maximum": 999999999999999,
          "minimum": 0
        },
        {
          "type": "string",
          "pattern": "^\\d{1,15}$"
        }
      ],
      "description": "Window start, Unix ms (inclusive)"
    },
    "pool": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}(:0x[0-9a-fA-F]{64})?$",
      "description": "History of a pool (alias: market)"
    },
    "side": {
      "enum": [
        "buy",
        "sell"
      ],
      "type": "string",
      "description": "Buys or sells of the base"
    },
    "layer": {
      "enum": [
        "elysium",
        "hyperevm",
        "hypercore"
      ],
      "type": "string",
      "description": "Layer (default hypercore)"
    },
    "limit": {
      "type": "integer",
      "maximum": 1000,
      "minimum": 1,
      "description": "Rows (default 50)"
    },
    "token": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}$",
      "description": "Swaps where this token is base or quote"
    },
    "cursor": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]{2,160}$",
      "description": "Next page: `next_cursor` of the previous answer"
    },
    "market": {
      "type": "string",
      "description": "Pair address (pool key) or coin; required without trader / pool / token"
    },
    "minUsd": {
      "anyOf": [
        {
          "type": "number",
          "minimum": 0
        },
        {
          "type": "string",
          "pattern": "^\\d{1,15}(\\.\\d{1,6})?$"
        }
      ],
      "description": "Smallest USD value (the indexer's, at the swap)"
    },
    "trader": {
      "type": "string",
      "pattern": "^(0x[0-9a-fA-F]{40}|[A-Za-z0-9][A-Za-z0-9_.-]{0,63}\\.[0-9a-fA-F]{8,64})$",
      "description": "History of a wallet (tx.from of the swaps); a named wallet's handle works too"
    },
    "network": {
      "enum": [
        "mainnet",
        "testnet"
      ],
      "type": "string",
      "description": "Elysium network: mainnet or testnet, same answers (testnet USD values null). HyperCore and HyperEVM are always mainnet (default mainnet)"
    },
    "includeSpam": {
      "type": "boolean",
      "description": "Swaps of spam tokens too (flagged)"
    }
  }
}
get_trades annotations
{
  "title": "Trades / swaps, and swap history of a wallet, pool or token",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
search_coins — Find tokens
Advertised by the server during the last successful anonymous check.
Advertised read-only

Tokens by symbol, name or address, with their links across layers (Elysium <-> HyperEVM <-> HyperCore), decimals, supply and USD price. Without layer: every layer. An exact address always answers its token (spam flagged).

search_coins input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "q"
  ],
  "properties": {
    "q": {
      "type": "string",
      "maxLength": 64,
      "minLength": 1,
      "description": "Symbol, name or address"
    },
    "layer": {
      "enum": [
        "hypercore",
        "hyperevm",
        "elysium"
      ],
      "type": "string",
      "description": "One layer (default all)"
    },
    "limit": {
      "type": "integer",
      "maximum": 200,
      "minimum": 1,
      "description": "Rows (default 20, max 200)"
    },
    "network": {
      "enum": [
        "mainnet",
        "testnet"
      ],
      "type": "string",
      "description": "Elysium network: mainnet or testnet, same answers (testnet USD values null). HyperCore and HyperEVM are always mainnet (default mainnet)"
    }
  }
}
search_coins annotations
{
  "title": "Find tokens",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
get_coin — One token
Advertised by the server during the last successful anonymous check.
Advertised read-only

One token: its links across layers, the markets it trades on (most traded first) and its 5 largest holders. hypercore: id = token name (HYPE), index or token id; hyperevm / elysium: id = 0x address. Price, FDV, liquidity and 5m–24h windows over all its pools: get_token_overview.

get_coin input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "layer",
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "maxLength": 80,
      "minLength": 1,
      "description": "HyperCore name / index / token id, or 0x address"
    },
    "layer": {
      "enum": [
        "hypercore",
        "hyperevm",
        "elysium"
      ],
      "type": "string",
      "description": "Layer"
    },
    "network": {
      "enum": [
        "mainnet",
        "testnet"
      ],
      "type": "string",
      "description": "Elysium network: mainnet or testnet, same answers (testnet USD values null). HyperCore and HyperEVM are always mainnet (default mainnet)"
    }
  }
}
get_coin annotations
{
  "title": "One token",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
get_holders — Token holders
Advertised by the server during the last successful anonymous check.
Advertised read-only

Largest holders of a token and its concentration (top-10 share…); system addresses (pools, bridges, launchpad, zero/dead) counted apart. hypercore: token = name (HYPE), kind = balances (spot) or positions (perp open interest of a coin); hyperevm / elysium: token = 0x address. Named wallets carry `entity`; EVM rows say what each address is (label, labelKind: pool, bridge, protocol, token, creator, multisig, contract, wallet; contract: has code).

get_holders input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "token"
  ],
  "properties": {
    "kind": {
      "enum": [
        "balances",
        "positions",
        "spot",
        "perp"
      ],
      "type": "string",
      "description": "HyperCore: spot balances of a token, or perp positions (open interest by account) of a coin (spot / perp: the same). Default: positions for a perp coin, else balances"
    },
    "layer": {
      "enum": [
        "hypercore",
        "hyperevm",
        "elysium"
      ],
      "type": "string",
      "description": "Layer (default hypercore)"
    },
    "limit": {
      "type": "integer",
      "maximum": 1000,
      "minimum": 1,
      "description": "Rows (default 50)"
    },
    "token": {
      "type": "string",
      "pattern": "^([A-Za-z0-9@#:/._+-]{1,64}|0x[0-9a-fA-F]{40}(:0x[0-9a-fA-F]{64})?)$",
      "description": "Token address (Elysium, HyperEVM), token name or perp coin (HyperCore)"
    },
    "network": {
      "enum": [
        "mainnet",
        "testnet"
      ],
      "type": "string",
      "description": "Elysium network: mainnet or testnet, same answers (testnet USD values null). HyperCore and HyperEVM are always mainnet (default mainnet)"
    },
    "excludeSystem": {
      "type": "boolean",
      "description": "1 / true: pools, PoolManager, hooks, gateways, bridge system addresses, LiquidLaunch curve, zero/dead counted apart; 0 / false: counted with the others (default true)"
    }
  }
}
get_holders annotations
{
  "title": "Token holders",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
get_holders_history — Holder count history
Advertised by the server during the last successful anonymous check.
Advertised read-only

How the number of holders of a HyperEVM or Elysium ERC-20 evolved: one point a UTC day (holders at the indexed head just after 00:00 UTC, system addresses such as pools, bridges and zero / dead left out, as get_holders totalHolders) and the count now. History from the layer's first snapshot (`since`) on, up to 365 days.

get_holders_history input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "token"
  ],
  "properties": {
    "days": {
      "type": "integer",
      "maximum": 365,
      "minimum": 1,
      "description": "UTC days, today included (default 90)"
    },
    "layer": {
      "enum": [
        "hyperevm",
        "elysium"
      ],
      "type": "string",
      "description": "EVM layer (default hyperevm)"
    },
    "token": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}$",
      "description": "Token address"
    },
    "network": {
      "enum": [
        "mainnet",
        "testnet"
      ],
      "type": "string",
      "description": "Elysium network: mainnet or testnet, same answers (testnet USD values null). HyperCore and HyperEVM are always mainnet (default mainnet)"
    }
  }
}
get_holders_history annotations
{
  "title": "Holder count history",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
list_launches — Token launches
Advertised by the server during the last successful anonymous check.
Advertised read-only

Latest token launches, newest first: Elysium launchpad Ascend (default) or HyperEVM LiquidLaunch (launchpad = liquidlaunch). Each: token, pool (pair), creator, priceUsd, mcapUsd, 24 h volume, holders, top-10 / dev share, dev sold, Ascend progress (Elysium). Next page (Elysium): pass `next_cursor` as cursor.

list_launches input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "q": {
      "type": "string",
      "maxLength": 64,
      "description": "Elysium: symbol or name contains (case ignored)"
    },
    "layer": {
      "enum": [
        "elysium",
        "hyperevm"
      ],
      "type": "string",
      "description": "hyperevm = LiquidLaunch"
    },
    "limit": {
      "type": "integer",
      "maximum": 200,
      "minimum": 1,
      "description": "Rows (default 20)"
    },
    "quote": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}$",
      "description": "Elysium: quote token of the pool (USDC, an RWA token…)"
    },
    "since": {
      "type": "integer",
      "maximum": 999999999999999,
      "minimum": 0,
      "description": "Elysium: launched at or after (ms)"
    },
    "until": {
      "type": "integer",
      "maximum": 999999999999999,
      "minimum": 0,
      "description": "Elysium: launched before (ms)"
    },
    "cursor": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]{2,160}$",
      "description": "Next page: `next_cursor` of the previous answer"
    },
    "creator": {
      "type": "string",
      "pattern": "^(0x[0-9a-fA-F]{40}|[A-Za-z0-9][A-Za-z0-9_.-]{0,63}\\.[0-9a-fA-F]{8,64})$",
      "description": "Elysium: launched by this wallet (creator at launch or current creator)"
    },
    "network": {
      "enum": [
        "mainnet",
        "testnet"
      ],
      "type": "string",
      "description": "Elysium network: mainnet or testnet, same answers (testnet USD values null). HyperCore and HyperEVM are always mainnet (default mainnet)"
    },
    "launchpad": {
      "type": "string",
      "description": "Launchpad name: ascend (Elysium), liquidlaunch (HyperEVM)"
    },
    "minHolders": {
      "type": "integer",
      "maximum": 999999999,
      "minimum": 1,
      "description": "Ascended criterion: minimum unique holders (system excluded)"
    },
    "minMcapUsd": {
      "type": "string",
      "description": "Ascended criterion: minimum market cap, USD (decimal string)"
    },
    "includeSpam": {
      "type": "boolean",
      "description": "Show spam tokens (tokens.spam: homoglyph, impostor, phishing name, fake transfers…) flagged spam / spamReason; left out of the list by default"
    },
    "minVolumeUsd": {
      "type": "string",
      "description": "Ascended criterion: minimum volume since launch, USD"
    },
    "maxTop10Share": {
      "type": "number",
      "maximum": 1,
      "description": "Ascended criterion: maximum top-10 share of the supply",
      "exclusiveMinimum": 0
    }
  }
}
list_launches annotations
{
  "title": "Token launches",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
list_new_tokens — New tokens (chain-wide)
Advertised by the server during the last successful anonymous check.
Advertised read-only

Every ERC-20 created on HyperEVM or Elysium, newest first (not only launchpad launches): creation block / tx / time, creator, the contract it was deployed through, launchpad (ascend, liquidlaunch… or null = direct), first pool (dex, quote, initial liquidity) and, once a pool exists, priceUsd, mcapUsd, liquidityUsd, 24 h volume, holders. Spam tokens left out. Filters: launchpad (name, none, any, 0x), hasPool, minLiquidityUsd, minHolders, creator, since (ms); security=summary adds the cached get_token_security verdict to each row. Filtered pages may hold fewer rows than limit: keep paging with `next_cursor` (null = no more). Live: WS <layer>.tokens.new.

list_new_tokens input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "layer"
  ],
  "properties": {
    "layer": {
      "enum": [
        "hyperevm",
        "elysium"
      ],
      "type": "string",
      "description": "EVM layer"
    },
    "limit": {
      "type": "integer",
      "maximum": 100,
      "minimum": 1,
      "description": "Rows (default 20)"
    },
    "since": {
      "type": "integer",
      "maximum": 999999999999999,
      "minimum": 0,
      "description": "Created at or after (Unix ms)"
    },
    "cursor": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]{2,160}$",
      "description": "Next page: `next_cursor` of the previous answer"
    },
    "creator": {
      "type": "string",
      "pattern": "^(0x[0-9a-fA-F]{40}|[A-Za-z0-9][A-Za-z0-9_.-]{0,63}\\.[0-9a-fA-F]{8,64})$",
      "description": "Created by this wallet (0x)"
    },
    "hasPool": {
      "type": "boolean",
      "description": "true: tokens with a pool; false: without"
    },
    "network": {
      "enum": [
        "mainnet",
        "testnet"
      ],
      "type": "string",
      "description": "Elysium network: mainnet or testnet, same answers (testnet USD values null). HyperCore and HyperEVM are always mainnet (default mainnet)"
    },
    "security": {
      "enum": [
        "summary"
      ],
      "type": "string",
      "description": "summary: each row gets `security` = {verdict, reasons (3), asOf, height} of GET /api/tokens/{address}/security when a report is cached (< 10 min), else null (then computed in the background: ask again)"
    },
    "launchpad": {
      "type": "string",
      "pattern": "^([A-Za-z0-9_.-]{1,40}|0x[0-9a-fA-F]{40})$",
      "description": "ascend, liquidlaunch (a launchpad name), none (no launchpad), any (a launchpad), or a launchpad 0x address"
    },
    "minHolders": {
      "type": "integer",
      "maximum": 1000000,
      "minimum": 0,
      "description": "Minimum holders"
    },
    "sinceBlock": {
      "type": "integer",
      "maximum": 2147483647,
      "minimum": 0,
      "description": "Created at or after this block"
    },
    "includeSpam": {
      "type": "boolean",
      "description": "Show spam tokens (tokens.spam: homoglyph, impostor, phishing name, fake transfers…) flagged spam / spamReason; left out of the list by default"
    },
    "minLiquidityUsd": {
      "type": "number",
      "minimum": 0,
      "description": "Minimum USD liquidity of its pools (twice the smaller side)"
    }
  }
}
list_new_tokens annotations
{
  "title": "New tokens (chain-wide)",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
list_new_pools — New pools (chain-wide)
Advertised by the server during the last successful anonymous check.
Advertised read-only

Every new pair / pool of every DEX on HyperEVM or Elysium (V2, V3, V4, PancakeSwap Infinity, LiquidLaunch curves…), newest first: dex, factory, fee tier, hooks, both tokens with symbols and whether each was just created (newToken), creation block / tx / time, initial liquidity, current liquidity (V2 / V3 pools: token balances; V4 / Infinity: virtual reserves; USD = twice the smaller side), price, 24 h volume. Pools of a spam token left out. Filters: dex, token (either side), quote, minLiquidityUsd, newTokenOnly, since (ms). Filtered pages may hold fewer rows than limit: keep paging with `next_cursor` (null = no more). Live: WS <layer>.pools.new.

list_new_pools input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "layer"
  ],
  "properties": {
    "dex": {
      "type": "string",
      "pattern": "^[a-z0-9_]{1,40}$",
      "description": "Protocol (hyperswap_v3, projectx_v3, uniswap_v4, pancake_infinity_cl, liquidlaunch…)"
    },
    "layer": {
      "enum": [
        "hyperevm",
        "elysium"
      ],
      "type": "string",
      "description": "EVM layer"
    },
    "limit": {
      "type": "integer",
      "maximum": 100,
      "minimum": 1,
      "description": "Rows (default 20)"
    },
    "quote": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}$",
      "description": "Pools quoted in this token (0x), e.g. WHYPE"
    },
    "since": {
      "type": "integer",
      "maximum": 999999999999999,
      "minimum": 0,
      "description": "Created at or after (Unix ms)"
    },
    "token": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}$",
      "description": "Pools of this token, either side (0x)"
    },
    "cursor": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]{2,160}$",
      "description": "Next page: `next_cursor` of the previous answer"
    },
    "network": {
      "enum": [
        "mainnet",
        "testnet"
      ],
      "type": "string",
      "description": "Elysium network: mainnet or testnet, same answers (testnet USD values null). HyperCore and HyperEVM are always mainnet (default mainnet)"
    },
    "sinceBlock": {
      "type": "integer",
      "maximum": 2147483647,
      "minimum": 0,
      "description": "Created at or after this block"
    },
    "includeSpam": {
      "type": "boolean",
      "description": "Show spam tokens (tokens.spam: homoglyph, impostor, phishing name, fake transfers…) flagged spam / spamReason; left out of the list by default"
    },
    "newTokenOnly": {
      "type": "boolean",
      "description": "Only pools with a new token (newToken not null)"
    },
    "newWithinMin": {
      "type": "integer",
      "maximum": 10080,
      "minimum": 1,
      "description": "A side is new when created at most this many minutes before the pool (default 60)"
    },
    "minLiquidityUsd": {
      "type": "number",
      "minimum": 0,
      "description": "Minimum current USD liquidity"
    }
  }
}
list_new_pools annotations
{
  "title": "New pools (chain-wide)",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
get_launch — One launch
Advertised by the server during the last successful anonymous check.
Advertised read-only

The story of one launched token: launch event, market cap, volume, holders, dev wallet and its funding, early buyers with flags, coordination signals, fees (exact from the launchpad ledger when indexed), lifecycle stage across layers and, for Ascend, progress toward the "Ascended" criteria. Elysium first, then HyperEVM LiquidLaunch.

get_launch input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "token"
  ],
  "properties": {
    "layer": {
      "enum": [
        "elysium",
        "hyperevm"
      ],
      "type": "string",
      "description": "Default: Elysium, then HyperEVM LiquidLaunch when Elysium has no launch for the token"
    },
    "token": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}$",
      "description": "Launched token address"
    },
    "network": {
      "enum": [
        "mainnet",
        "testnet"
      ],
      "type": "string",
      "description": "Elysium network: mainnet or testnet, same answers (testnet USD values null). HyperCore and HyperEVM are always mainnet (default mainnet)"
    },
    "minHolders": {
      "type": "integer",
      "maximum": 999999999,
      "minimum": 1,
      "description": "Ascended criterion: minimum unique holders (system excluded)"
    },
    "minMcapUsd": {
      "type": "string",
      "description": "Ascended criterion: minimum market cap, USD (decimal string)"
    },
    "minVolumeUsd": {
      "type": "string",
      "description": "Ascended criterion: minimum volume since launch, USD"
    },
    "maxTop10Share": {
      "type": "number",
      "maximum": 1,
      "description": "Ascended criterion: maximum top-10 share of the supply",
      "exclusiveMinimum": 0
    },
    "earlyWindowSec": {
      "type": "integer",
      "maximum": 3600,
      "minimum": 1,
      "description": "Early-buyer window after the launch block (default 60)"
    },
    "fundingLookbackSec": {
      "type": "integer",
      "maximum": 604800,
      "minimum": 1,
      "description": "Funding lookback before the launch (default 86400)"
    }
  }
}
get_launch annotations
{
  "title": "One launch",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
get_launch_timeline — Launch timeline
Advertised by the server during the last successful anonymous check.
Advertised read-only

Replayable life of a launch, oldest first: launch, swaps and transfers with the running holder count and market cap, graduation links (bridge to HyperEVM, HyperCore listing). Long histories are cut to fit (see `truncated`).

get_launch_timeline input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "token"
  ],
  "properties": {
    "layer": {
      "enum": [
        "elysium",
        "hyperevm"
      ],
      "type": "string",
      "description": "Default: Elysium, then HyperEVM"
    },
    "token": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}$",
      "description": "Launched token address"
    },
    "network": {
      "enum": [
        "mainnet",
        "testnet"
      ],
      "type": "string",
      "description": "Elysium network: mainnet or testnet, same answers (testnet USD values null). HyperCore and HyperEVM are always mainnet (default mainnet)"
    }
  }
}
get_launch_timeline annotations
{
  "title": "Launch timeline",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
get_token_lifecycle — Token across the 3 layers
Advertised by the server during the last successful anonymous check.
Advertised read-only

One token from launch to perp across Elysium, HyperEVM and HyperCore: its address on each layer, the stages reached (Elysium launch, listing desk, HyperEVM mirror, HyperCore spot, perps) with chain evidence, and the links between them, each exact or inferred. address: an Elysium / HyperEVM address, core:<index>, a HyperCore token id or name, or a perp coin (dex:COIN).

get_token_lifecycle input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "address"
  ],
  "properties": {
    "address": {
      "type": "string",
      "description": "Elysium / HyperEVM address, core:<index>, HyperCore token id, name or perp coin"
    },
    "network": {
      "enum": [
        "mainnet",
        "testnet"
      ],
      "type": "string",
      "description": "Elysium network: mainnet or testnet, same answers (testnet USD values null). HyperCore and HyperEVM are always mainnet (default mainnet)"
    },
    "minHolders": {
      "type": "integer",
      "maximum": 999999999,
      "minimum": 1,
      "description": "Ascended criterion: minimum unique holders (system excluded)"
    },
    "minMcapUsd": {
      "type": "string",
      "description": "Ascended criterion: minimum market cap, USD (decimal string)"
    },
    "minVolumeUsd": {
      "type": "string",
      "description": "Ascended criterion: minimum volume since launch, USD"
    },
    "maxTop10Share": {
      "type": "number",
      "maximum": 1,
      "description": "Ascended criterion: maximum top-10 share of the supply",
      "exclusiveMinimum": 0
    }
  }
}
get_token_lifecycle annotations
{
  "title": "Token across the 3 layers",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
get_token_security — Token security / honeypot check
Advertised by the server during the last successful anonymous check.
Advertised read-only

Is this HyperEVM or Elysium ERC-20 safe to trade: a buy, a transfer and a sell simulated on our node through its most liquid pool (state overrides, nothing sent): canBuy, canSell, buy / sell / transfer tax, gas, revert reason; static checks of its code (owner and renounced, mintable, pausable, blacklist, max tx / wallet, cooldown, tax setters, upgradeable proxy, selfdestruct, ownership reclaim, verified source on Sourcify or the Blockscout bytecode database, of the implementation behind a proxy); holders (top 10 share and its part in EOAs, creator / owner share), liquidity and who holds it (LP burned / locked with the unlock time / free / in contracts, V2 LP tokens and V3 / V4 positions). Verdict ok / caution / danger / honeypot with reasons; each check has a severity (info, warn, danger). Cached 60 s per token. Medium call.

get_token_security input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "token"
  ],
  "properties": {
    "layer": {
      "enum": [
        "hyperevm",
        "elysium"
      ],
      "type": "string",
      "description": "EVM layer (default hyperevm)"
    },
    "token": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}$",
      "description": "Token address"
    },
    "network": {
      "enum": [
        "mainnet",
        "testnet"
      ],
      "type": "string",
      "description": "Elysium network: mainnet or testnet, same answers (testnet USD values null). HyperCore and HyperEVM are always mainnet (default mainnet)"
    }
  }
}
get_token_security annotations
{
  "title": "Token security / honeypot check",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
get_prices — Token prices (batch)
Advertised by the server during the last successful anonymous check.
Advertised read-only

Current USD price of up to 100 tokens in one call, each with its source and provenance: hl_mid (HYPE / WHYPE: HyperCore spot mid; hl_oracle when no mid is recorded), hl_spot (HyperCore tokens and HyperEVM tokens linked to one: last trade of its USDC market), hl_perp, unit (USDC), pool (HyperEVM / Elysium: last swap of the token's reference pool, the most liquid one, with block / tx / logIndex). hypercore: tokens = names (HYPE, PURR) or perp coins (BTC).

get_prices input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "tokens"
  ],
  "properties": {
    "layer": {
      "enum": [
        "hyperevm",
        "elysium",
        "hypercore"
      ],
      "type": "string",
      "description": "Layer: hyperevm / elysium (0x token addresses) or hypercore (token names HYPE, PURR, token ids, perp coins BTC). Absent: hypercore when every token is a name, else hyperevm"
    },
    "tokens": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 66,
        "minLength": 1
      },
      "maxItems": 100,
      "minItems": 1,
      "description": "0x addresses (hyperevm, elysium) or HyperCore names / perp coins"
    },
    "network": {
      "enum": [
        "mainnet",
        "testnet"
      ],
      "type": "string",
      "description": "Elysium network: mainnet or testnet, same answers (testnet USD values null). HyperCore and HyperEVM are always mainnet (default mainnet)"
    }
  }
}
get_prices annotations
{
  "title": "Token prices (batch)",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
get_price_history — Token price history (batch)
Advertised by the server during the last successful anonymous check.
Advertised read-only

USD prices in the past. With at (Unix ms): the price of up to 100 tokens at that time (last observation at or before it). With from / to / interval: USD closes per unit (1m 5m 15m 1h 4h 1d) of up to 25 tokens, gap-filled. Same sources as get_prices. Windows over 30 days are billed as heavy calls.

get_price_history input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "tokens"
  ],
  "properties": {
    "at": {
      "type": "integer",
      "maximum": 999999999999999,
      "minimum": 0,
      "description": "Time (Unix ms): price at or before it"
    },
    "to": {
      "type": "integer",
      "maximum": 999999999999999,
      "minimum": 0,
      "description": "Series end (Unix ms, exclusive; default now)"
    },
    "from": {
      "type": "integer",
      "maximum": 999999999999999,
      "minimum": 0,
      "description": "Series start (Unix ms, inclusive, aligned down to the unit)"
    },
    "layer": {
      "enum": [
        "hyperevm",
        "elysium",
        "hypercore"
      ],
      "type": "string",
      "description": "Layer: hyperevm / elysium (0x token addresses) or hypercore (token names HYPE, PURR, token ids, perp coins BTC). Absent: hypercore when every token is a name, else hyperevm"
    },
    "limit": {
      "type": "integer",
      "maximum": 1000,
      "minimum": 1,
      "description": "Units per token at most (default 200)"
    },
    "tokens": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 66,
        "minLength": 1
      },
      "maxItems": 100,
      "minItems": 1,
      "description": "0x addresses or HyperCore names"
    },
    "network": {
      "enum": [
        "mainnet",
        "testnet"
      ],
      "type": "string",
      "description": "Elysium network: mainnet or testnet, same answers (testnet USD values null). HyperCore and HyperEVM are always mainnet (default mainnet)"
    },
    "interval": {
      "enum": [
        "1m",
        "5m",
        "15m",
        "1h",
        "4h",
        "1d"
      ],
      "type": "string",
      "description": "Series unit"
    }
  }
}
get_price_history annotations
{
  "title": "Token price history (batch)",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
get_tokens — Token metadata (batch)
Advertised by the server during the last successful anonymous check.
Advertised read-only

Metadata of up to 100 tokens: symbol, name, decimals, total supply, creator and creation time, logo / description / socials when indexed (launchpad metadata), token family, cross-layer links, spam flag. Unknown addresses come back in `missing`.

get_tokens input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "addresses"
  ],
  "properties": {
    "layer": {
      "enum": [
        "hyperevm",
        "elysium",
        "hypercore"
      ],
      "type": "string",
      "description": "Layer: hyperevm / elysium (0x token addresses) or hypercore (token names HYPE, PURR, token ids, perp coins BTC). Absent: hypercore when every token is a name, else hyperevm"
    },
    "network": {
      "enum": [
        "mainnet",
        "testnet"
      ],
      "type": "string",
      "description": "Elysium network: mainnet or testnet, same answers (testnet USD values null). HyperCore and HyperEVM are always mainnet (default mainnet)"
    },
    "addresses": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 66,
        "minLength": 1
      },
      "maxItems": 100,
      "minItems": 1,
      "description": "0x addresses (hypercore: names / token ids)"
    }
  }
}
get_tokens annotations
{
  "title": "Token metadata (batch)",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
get_token_overview — Token overview (all pools)
Advertised by the server during the last successful anonymous check.
Advertised read-only

One token across all its pools on HyperEVM or Elysium (DexScreener style): USD price and source, FDV, market cap, liquidity, volume / trades / buys / sells / unique buyers, sellers and traders / price change over 5m, 1h, 6h, 24h, holders and top-10 share, pool count, the 5 best pools and the reference one, creator and creation time.

get_token_overview input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "address"
  ],
  "properties": {
    "layer": {
      "enum": [
        "hyperevm",
        "elysium"
      ],
      "type": "string",
      "description": "EVM layer (default hyperevm)"
    },
    "address": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}$",
      "description": "Token address"
    },
    "network": {
      "enum": [
        "mainnet",
        "testnet"
      ],
      "type": "string",
      "description": "Elysium network: mainnet or testnet, same answers (testnet USD values null). HyperCore and HyperEVM are always mainnet (default mainnet)"
    }
  }
}
get_token_overview annotations
{
  "title": "Token overview (all pools)",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
get_token_traders — Top traders of a token (PnL)
Advertised by the server during the last successful anonymous check.
Advertised read-only

Who traded a HyperEVM or Elysium token over 1h, 6h or 24h and how they did: per wallet buys / sells, amounts and USD bought / sold, average buy and sell price, current balance, realized, unrealized and total PnL (average cost over the window: realized = min(bought, sold) × (avg sell − avg buy); unrealized = what it still holds of its net buy × (current price − avg buy)), first / last swap, named wallets with entity. sort = pnl, realized or volume; totals of the window (traders, buyers, sellers, swaps, volume). Priced swaps only, the token on either side of any pool; trader = tx.from. Medium call.

get_token_traders input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "token"
  ],
  "properties": {
    "sort": {
      "enum": [
        "pnl",
        "realized",
        "volume"
      ],
      "type": "string",
      "description": "pnl (total, highest first), realized (realized PnL) or volume (USD bought + sold) (default pnl)"
    },
    "layer": {
      "enum": [
        "hyperevm",
        "elysium"
      ],
      "type": "string",
      "description": "EVM layer (default hyperevm)"
    },
    "limit": {
      "type": "integer",
      "maximum": 100,
      "minimum": 1,
      "description": "Traders (default 20)"
    },
    "token": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}$",
      "description": "Token address"
    },
    "window": {
      "enum": [
        "1h",
        "6h",
        "24h"
      ],
      "type": "string",
      "description": "Window ending at the indexed head: 1h, 6h or 24h (default 24h)"
    },
    "network": {
      "enum": [
        "mainnet",
        "testnet"
      ],
      "type": "string",
      "description": "Elysium network: mainnet or testnet, same answers (testnet USD values null). HyperCore and HyperEVM are always mainnet (default mainnet)"
    }
  }
}
get_token_traders annotations
{
  "title": "Top traders of a token (PnL)",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
get_bridges — Bridge movements
Advertised by the server during the last successful anonymous check.
Advertised read-only

Bridge movements, newest first, with 24 h stats. route core_evm: HyperCore <> HyperEVM transfers, both legs matched (status, latency, how they were paired); route evm_elysium: HyperEVM <> Elysium (Orbit) deposits and withdrawals. Filter by account to follow one wallet across layers. Medium call.

get_bridges input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "limit": {
      "type": "integer",
      "maximum": 1000,
      "minimum": 1,
      "description": "Rows (default 50)"
    },
    "route": {
      "enum": [
        "evm_elysium",
        "core_evm"
      ],
      "type": "string",
      "description": "Bridge (default core_evm)"
    },
    "token": {
      "type": "string",
      "pattern": "^[A-Za-z0-9._:-]{1,64}$",
      "description": "Token address (`hype` for native HYPE)"
    },
    "system": {
      "enum": [
        "exclude",
        "include",
        "only"
      ],
      "type": "string",
      "description": "Kinetiq system retryables (evm_elysium) (default exclude)"
    },
    "account": {
      "type": "string",
      "pattern": "^(0x[0-9a-fA-F]{40}|[A-Za-z0-9][A-Za-z0-9_.-]{0,63}\\.[0-9a-fA-F]{8,64})$",
      "description": "Sender or recipient"
    },
    "network": {
      "enum": [
        "mainnet",
        "testnet"
      ],
      "type": "string",
      "description": "Elysium network: mainnet or testnet, same answers (testnet USD values null). HyperCore and HyperEVM are always mainnet (default mainnet)"
    },
    "direction": {
      "enum": [
        "to_child",
        "to_parent",
        "evm_to_core",
        "core_to_evm"
      ],
      "type": "string",
      "description": "Direction"
    },
    "includeSpam": {
      "type": "boolean",
      "description": "evm_elysium: rows of spam parent tokens (HyperEVM tokens.spam), left out by default"
    }
  }
}
get_bridges annotations
{
  "title": "Bridge movements",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
get_wallet — Cross-layer wallet
Advertised by the server during the last successful anonymous check.
Advertised read-only

One address on HyperCore, HyperEVM and Elysium at once: HyperCore perp account (value, positions with liquidation price) and spot balances, HyperEVM and Elysium token balances and NFTs with USD values, bridge legs in flight and journeys across the layers, latest events (fills, ledger, swaps, transfers, bridges), each section with its freshness. Medium call; balances alone: get_balances (a REST call).

get_wallet input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "address"
  ],
  "properties": {
    "address": {
      "type": "string",
      "pattern": "^(0x[0-9a-fA-F]{40}|[A-Za-z0-9][A-Za-z0-9_.-]{0,63}\\.[0-9a-fA-F]{8,64})$",
      "description": "0x address, or a named wallet's handle <entityId>.<hex>"
    },
    "network": {
      "enum": [
        "mainnet",
        "testnet"
      ],
      "type": "string",
      "description": "Elysium network: mainnet or testnet, same answers (testnet USD values null). HyperCore and HyperEVM are always mainnet (default mainnet)"
    },
    "includeSpam": {
      "type": "boolean",
      "description": "Show spam tokens (tokens.spam: homoglyph, impostor, fake transfers…), flagged spam / spamReason; hidden from lists and USD totals by default"
    }
  }
}
get_wallet annotations
{
  "title": "Cross-layer wallet",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
get_balances — Token balances
Advertised by the server during the last successful anonymous check.
Advertised read-only

What an address holds, one flat list: HyperCore spot tokens (live), HyperEVM and Elysium ERC-20s and native HYPE (indexed head), each with raw units, amount, USD price and value, largest first; spam tokens left out; HyperCore perp accounts (account value, withdrawable) apart in `perp`; totals per layer and overall, each layer with its source, height and asOf. Past balances: block or at (Unix ms) on one layer (EVM: needs tokens, read on our archive node; HyperCore: the holder snapshot at or before it, 7 days kept). verify: EVM rows read again on the node at the same block (indexer drift shows as onchain.match false).

get_balances input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "address"
  ],
  "properties": {
    "at": {
      "type": "integer",
      "maximum": 9007199254740991,
      "minimum": 0,
      "description": "Past balances at this time (Unix ms): the last block at or before it"
    },
    "sort": {
      "enum": [
        "usd",
        "amount"
      ],
      "type": "string",
      "description": "Order (default usd)"
    },
    "block": {
      "type": "integer",
      "maximum": 9007199254740991,
      "minimum": 0,
      "description": "Past balances at this block (one layer; EVM: tokens= required; HyperCore: the snapshot at or before this height)"
    },
    "layer": {
      "enum": [
        "hypercore",
        "hyperevm",
        "elysium",
        "all"
      ],
      "type": "string",
      "description": "Layer(s) read (default all)"
    },
    "limit": {
      "type": "integer",
      "maximum": 1000,
      "minimum": 1,
      "description": "Rows (default 50)"
    },
    "minUsd": {
      "type": "number",
      "minimum": 0,
      "description": "Leave out holdings worth less (and unpriced ones)"
    },
    "tokens": {
      "type": "string",
      "description": "Comma list (at most 50; 20 with block / at): EVM token addresses (`native` = HYPE) and HyperCore coin names; every token asked is listed, held or not (0)"
    },
    "verify": {
      "type": "boolean",
      "description": "EVM layers: read the rows answered (at most 50 per layer) again on the node at the same block"
    },
    "address": {
      "type": "string",
      "pattern": "^(0x[0-9a-fA-F]{40}|[A-Za-z0-9][A-Za-z0-9_.-]{0,63}\\.[0-9a-fA-F]{8,64})$",
      "description": "0x address, or a named wallet's handle `<entityId>.<hex>`"
    },
    "network": {
      "enum": [
        "mainnet",
        "testnet"
      ],
      "type": "string",
      "description": "Elysium network: mainnet or testnet, same answers (testnet USD values null). HyperCore and HyperEVM are always mainnet (default mainnet)"
    },
    "includeSpam": {
      "type": "boolean",
      "description": "List spam tokens (flagged spam / spamReason); never in the totals"
    }
  }
}
get_balances annotations
{
  "title": "Token balances",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
get_token_balance — One token balance
Advertised by the server during the last successful anonymous check.
Advertised read-only

The balance of one token for one address: HyperCore coin name (USDC, HYPE…), or a HyperEVM / Elysium token address (`native` = HYPE; layer hyperevm unless elysium is given). 0 when not held. block / at for a past balance, verify to compare with the node.

get_token_balance input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "address",
    "token"
  ],
  "properties": {
    "at": {
      "type": "integer",
      "maximum": 9007199254740991,
      "minimum": 0,
      "description": "Past balance at this time (Unix ms)"
    },
    "block": {
      "type": "integer",
      "maximum": 9007199254740991,
      "minimum": 0,
      "description": "Past balance at this block"
    },
    "layer": {
      "enum": [
        "hypercore",
        "hyperevm",
        "elysium"
      ],
      "type": "string",
      "description": "Default: hypercore for a coin name, hyperevm for an address"
    },
    "token": {
      "type": "string",
      "pattern": "^(0x[0-9a-fA-F]{40}|[A-Za-z0-9][A-Za-z0-9._-]{0,19})$",
      "description": "EVM token address, `native` (HYPE), or a HyperCore coin name"
    },
    "verify": {
      "type": "boolean",
      "description": "EVM layers: read it again on the node at the same block"
    },
    "address": {
      "type": "string",
      "pattern": "^(0x[0-9a-fA-F]{40}|[A-Za-z0-9][A-Za-z0-9_.-]{0,63}\\.[0-9a-fA-F]{8,64})$",
      "description": "0x address, or a named wallet's handle `<entityId>.<hex>`"
    },
    "network": {
      "enum": [
        "mainnet",
        "testnet"
      ],
      "type": "string",
      "description": "Elysium network: mainnet or testnet, same answers (testnet USD values null). HyperCore and HyperEVM are always mainnet (default mainnet)"
    }
  }
}
get_token_balance annotations
{
  "title": "One token balance",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
get_token_volume — Daily token volume
Advertised by the server during the last successful anonymous check.
Advertised read-only

Daily USD swap volume of an EVM token (both sides of every priced swap), oldest first, up to the indexed head (the last day is partial).

get_token_volume input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "layer",
    "token"
  ],
  "properties": {
    "days": {
      "type": "integer",
      "maximum": 365,
      "minimum": 1,
      "description": "Days (default 30)"
    },
    "layer": {
      "enum": [
        "hyperevm",
        "elysium"
      ],
      "type": "string",
      "description": "EVM layer"
    },
    "token": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}$",
      "description": "Token address"
    },
    "network": {
      "enum": [
        "mainnet",
        "testnet"
      ],
      "type": "string",
      "description": "Elysium network: mainnet or testnet, same answers (testnet USD values null). HyperCore and HyperEVM are always mainnet (default mainnet)"
    }
  }
}
get_token_volume annotations
{
  "title": "Daily token volume",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
get_erc20_transfers — ERC-20 transfers (of a token, or from / to an address)
Advertised by the server during the last successful anonymous check.
Advertised read-only

ERC-20 Transfer events, newest first (from, to, amount, block, tx). address: the transfers sent / received by a wallet (direction in, out or any), optionally of one token, in a window (from / to, Unix ms) or above minUsd (amount × current token price); each row with token, symbol, direction and USD value. Without address: the transfers of one token. Filtered pages may hold fewer rows than limit: keep paging with `next_cursor` (null = no more).

get_erc20_transfers input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "layer"
  ],
  "properties": {
    "to": {
      "anyOf": [
        {
          "type": "integer",
          "maximum": 999999999999999,
          "minimum": 0
        },
        {
          "type": "string",
          "pattern": "^\\d{1,15}$"
        }
      ],
      "description": "With address: window end, Unix ms (exclusive)"
    },
    "from": {
      "anyOf": [
        {
          "type": "integer",
          "maximum": 999999999999999,
          "minimum": 0
        },
        {
          "type": "string",
          "pattern": "^\\d{1,15}$"
        }
      ],
      "description": "With address: window start, Unix ms (inclusive)"
    },
    "layer": {
      "enum": [
        "hyperevm",
        "elysium"
      ],
      "type": "string",
      "description": "EVM layer"
    },
    "limit": {
      "type": "integer",
      "maximum": 500,
      "minimum": 1,
      "description": "Rows (default 50)"
    },
    "token": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}$",
      "description": "Token address (required without address)"
    },
    "cursor": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]{2,160}$",
      "description": "Next page: `next_cursor` of the previous answer"
    },
    "minUsd": {
      "anyOf": [
        {
          "type": "number",
          "minimum": 0
        },
        {
          "type": "string",
          "pattern": "^\\d{1,15}(\\.\\d{1,6})?$"
        }
      ],
      "description": "With address: smallest amount × current token price, USD"
    },
    "address": {
      "type": "string",
      "pattern": "^(0x[0-9a-fA-F]{40}|[A-Za-z0-9][A-Za-z0-9_.-]{0,63}\\.[0-9a-fA-F]{8,64})$",
      "description": "Transfers from / to this address (a named wallet's handle works too); token then optional"
    },
    "network": {
      "enum": [
        "mainnet",
        "testnet"
      ],
      "type": "string",
      "description": "Elysium network: mainnet or testnet, same answers (testnet USD values null). HyperCore and HyperEVM are always mainnet (default mainnet)"
    },
    "direction": {
      "enum": [
        "in",
        "out",
        "any"
      ],
      "type": "string",
      "description": "With address: received, sent or both (default any)"
    },
    "includeSpam": {
      "type": "boolean",
      "description": "With address: transfers of spam tokens too (flagged)"
    }
  }
}
get_erc20_transfers annotations
{
  "title": "ERC-20 transfers (of a token, or from / to an address)",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
get_pool — One pool
Advertised by the server during the last successful anonymous check.
Advertised read-only

One DEX pool of HyperEVM or Elysium: dex, factory, fee tier, hooks, tokens with USD prices, creation block / tx, price, liquidity with its USD value and how it is measured (pool balances for V2 / V3; virtual reserves of the in-range liquidity for V4 / Infinity pools: not TVL), depth to ±2 %, trades / buys / sells / USD volume / price change over 5m, 1h, 6h, 24h, for V2-style pools the largest LP holders, and how much of its liquidity is burned, locked (until when), free or in contracts.

get_pool input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "address",
    "layer"
  ],
  "properties": {
    "layer": {
      "enum": [
        "hyperevm",
        "elysium"
      ],
      "type": "string",
      "description": "EVM layer"
    },
    "address": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}(:0x[0-9a-fA-F]{64})?$",
      "description": "Pool address, or <PoolManager>:<PoolId>"
    },
    "network": {
      "enum": [
        "mainnet",
        "testnet"
      ],
      "type": "string",
      "description": "Elysium network: mainnet or testnet, same answers (testnet USD values null). HyperCore and HyperEVM are always mainnet (default mainnet)"
    }
  }
}
get_pool annotations
{
  "title": "One pool",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
get_transaction — One transaction
Advertised by the server during the last successful anonymous check.
Advertised read-only

One transaction by hash, HyperEVM then Elysium (or layer): status, block, from / to, value, gas and fee (HYPE and USD), decoded ERC-20 transfers, swaps, liquidity events, pools created and NFT transfers, the raw logs we do not decode (from our node), and when it is a bridge leg its legs, matched bridge rows and the cross-layer journey it belongs to. A transaction not indexed yet comes from the node (source: rpc, nothing decoded).

get_transaction input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "hash"
  ],
  "properties": {
    "hash": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{64}$",
      "description": "Transaction hash (0x + 64 hex)"
    },
    "layer": {
      "enum": [
        "hyperevm",
        "elysium"
      ],
      "type": "string",
      "description": "Only this layer (default: HyperEVM, then Elysium)"
    },
    "network": {
      "enum": [
        "mainnet",
        "testnet"
      ],
      "type": "string",
      "description": "Elysium network: mainnet or testnet, same answers (testnet USD values null). HyperCore and HyperEVM are always mainnet (default mainnet)"
    }
  }
}
get_transaction annotations
{
  "title": "One transaction",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
get_gas — Gas tracker
Advertised by the server during the last successful anonymous check.
Advertised read-only

HyperEVM or Elysium gas over 1h, 6h, 24h or 7d: each block's base fee, gas used and limit, transactions and priority fees (p50 / p90 tips), HyperEVM small and big blocks as two series (each has its own base fee). Stats per series (base fee min / median / p90 / p99 / max / mean, typical tips, utilization) and the latest block. Points are every block up to 25000 per series, else buckets with min / mean / max base fee; ask a coarse resolution (5m, 15m, 1h) for a short answer. Values in wei.

get_gas input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "layer": {
      "enum": [
        "hyperevm",
        "elysium"
      ],
      "type": "string",
      "description": "EVM layer (default hyperevm)"
    },
    "window": {
      "enum": [
        "1h",
        "6h",
        "24h",
        "7d"
      ],
      "type": "string",
      "description": "Window ending now: 1h, 6h, 24h or 7d (default 1h)"
    },
    "network": {
      "enum": [
        "mainnet",
        "testnet"
      ],
      "type": "string",
      "description": "Elysium network: mainnet or testnet, same answers (testnet USD values null). HyperCore and HyperEVM are always mainnet (default mainnet)"
    },
    "resolution": {
      "enum": [
        "block",
        "10s",
        "1m",
        "5m",
        "15m",
        "1h"
      ],
      "type": "string",
      "description": "block, 10s, 1m, 5m, 15m or 1h; default auto (every block up to 25000 per series) (default 15m)"
    }
  }
}
get_gas annotations
{
  "title": "Gas tracker",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
get_block — One block
Advertised by the server during the last successful anonymous check.
Advertised read-only

One HyperEVM or Elysium block (a number, or latest): hash, time, small or big block (HyperEVM), gas, base fee, tips, HYPE burnt and fees, and every transaction in order with sender, recipient (named wallets tagged), HYPE sent, function called, status, gas, tip, fee and its decoded swaps, transfers and liquidity changes.

get_block input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "number"
  ],
  "properties": {
    "layer": {
      "enum": [
        "hyperevm",
        "elysium"
      ],
      "type": "string",
      "description": "EVM layer (default hyperevm)"
    },
    "number": {
      "anyOf": [
        {
          "type": "string",
          "const": "latest"
        },
        {
          "type": "integer",
          "maximum": 9007199254740991,
          "minimum": 0
        }
      ],
      "description": "Block number, or latest"
    },
    "network": {
      "enum": [
        "mainnet",
        "testnet"
      ],
      "type": "string",
      "description": "Elysium network: mainnet or testnet, same answers (testnet USD values null). HyperCore and HyperEVM are always mainnet (default mainnet)"
    }
  }
}
get_block annotations
{
  "title": "One block",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
elysium_rpc — Elysium JSON-RPC (read only)
Advertised by the server during the last successful anonymous check.
Advertised read-only

One read-only JSON-RPC call on our Elysium mainnet (chain 99901) node, free: eth_chainId, eth_blockNumber, net_version, net_listening, web3_clientVersion, eth_syncing, eth_getBlockByNumber, eth_getBlockByHash, eth_getBlockTransactionCountByNumber, eth_getBlockTransactionCountByHash, eth_getTransactionByHash, eth_getTransactionByBlockNumberAndIndex, eth_getTransactionByBlockHashAndIndex, eth_getTransactionReceipt, eth_getBlockReceipts, eth_getBalance, eth_getCode, eth_getStorageAt, eth_getTransactionCount, eth_call, eth_estimateGas, eth_gasPrice, eth_maxPriorityFeePerGas, eth_feeHistory, eth_getLogs, eth_getProof. The answer is the node's {jsonrpc, id, result} or {error}. eth_getLogs over at most 1000 blocks; state (eth_call, eth_getBalance…) of the last 128 blocks only. No transaction sending. Limited per IP (5/s, 60/min): use the indexed tools for history.

elysium_rpc input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "method"
  ],
  "properties": {
    "method": {
      "type": "string",
      "description": "A method served: eth_chainId, eth_blockNumber, net_version, net_listening, web3_clientVersion, eth_syncing, eth_getBlockByNumber, eth_getBlockByHash, eth_getBlockTransactionCountByNumber, eth_getBlockTransactionCountByHash, eth_getTransactionByHash, eth_getTransactionByBlockNumberAndIndex, eth_getTransactionByBlockHashAndIndex, eth_getTransactionReceipt, eth_getBlockReceipts, eth_getBalance, eth_getCode, eth_getStorageAt, eth_getTransactionCount, eth_call, eth_estimateGas, eth_gasPrice, eth_maxPriorityFeePerGas, eth_feeHistory, eth_getLogs, eth_getProof (not available: eth_sendRawTransaction / eth_sendTransaction, eth_subscribe, filters, debug_*, trace_*)"
    },
    "params": {
      "type": "array",
      "items": {},
      "description": "Its parameters, as the method takes them (absent: none)"
    },
    "network": {
      "enum": [
        "mainnet",
        "testnet"
      ],
      "type": "string",
      "description": "Elysium network: mainnet or testnet, same answers (testnet USD values null). HyperCore and HyperEVM are always mainnet (default mainnet)"
    }
  }
}
elysium_rpc annotations
{
  "title": "Elysium JSON-RPC (read only)",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_book — Order book
Advertised by the server during the last successful anonymous check.
Advertised read-only

Live L2 order book of one HyperCore market from our own node: bids and asks best first as [px, sz, n] (price, size, order count), and the block it was read at. coin: perp name (BTC), spot @index (@107) or HIP-3 dex:COIN.

get_book input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "coin"
  ],
  "properties": {
    "coin": {
      "type": "string",
      "pattern": "^[A-Za-z0-9@#:/._+-]{1,64}$",
      "description": "HyperCore coin: BTC, @107, xyz:TSLA"
    },
    "depth": {
      "type": "integer",
      "maximum": 100,
      "minimum": 1,
      "description": "Levels per side (default 20, max 100)"
    }
  }
}
get_book annotations
{
  "title": "Order book",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
get_walls — Order book wall reliability
Advertised by the server during the last successful anonymous check.
Advertised read-only

Which HyperCore accounts' order book walls hold: per account, its large resting orders placed away from the price (≥ $25k, ≥ 20 bps away), how many the price came to, how many held (filled) and how many were pulled as the price came, with the hold rate. A low hold rate over many tested walls is liquidity that leaves as the price comes: requoting ladders, or spoofing (a record, not a verdict). Filter by market, account, side, wall size tier; window 24h, 7d or all (since 2026-10-13 15:50 UTC).

get_walls input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "coin": {
      "type": "string",
      "pattern": "^[A-Za-z0-9@#:/._+-]{1,64}$",
      "description": "Market (perp name, spot @index, HIP-3 dex:COIN); every market when absent"
    },
    "side": {
      "enum": [
        "B",
        "A"
      ],
      "type": "string",
      "description": "B bids only, A asks only; both when absent"
    },
    "sort": {
      "enum": [
        "tested",
        "pulled",
        "held",
        "walls",
        "pulledUsd",
        "holdRate"
      ],
      "type": "string",
      "description": "Order, largest first (holdRate: lowest first) (default pulled)"
    },
    "tier": {
      "type": "integer",
      "maximum": 3,
      "minimum": 1,
      "description": "Smallest wall counted: 1 = $25k and more, 2 = $100k and more, 3 = $1M and more (default 1)"
    },
    "user": {
      "type": "string",
      "pattern": "^(0x[0-9a-fA-F]{40}|[A-Za-z0-9][A-Za-z0-9_.-]{0,63}\\.[0-9a-fA-F]{8,64})$",
      "description": "Only this account"
    },
    "limit": {
      "type": "integer",
      "maximum": 1000,
      "minimum": 1,
      "description": "Accounts (default 25)"
    },
    "window": {
      "enum": [
        "24h",
        "7d",
        "all"
      ],
      "type": "string",
      "description": "Window, whole hours ending with the current one: 24h, 7d, or all (since 2026-10-13 15:50 UTC) (default 7d)"
    },
    "minTested": {
      "type": "integer",
      "maximum": 100000,
      "minimum": 1,
      "description": "Accounts with at least this many tested walls (default 5)"
    }
  }
}
get_walls annotations
{
  "title": "Order book wall reliability",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
get_wall_events — Walls held or pulled on a market
Advertised by the server during the last successful anonymous check.
Advertised read-only

One HyperCore market's large resting orders that the price came to, one by one, newest first: held (filled) or pulled (cancelled as the price came), with time, price, size, value, life and owner. A wall: a resting limit order (Gtc or Alo, not a trigger) worth at least $25k, placed on its passive side at least 20 bps from the last trade (a bid below, an ask above), resting 24 h at most. Tested: the price came to it before it ended. It held when it traded (a fill of the order), wholly or in part, however it ended; it was pulled when its owner cancelled it unfilled (a cancel or a scheduled cancel) with a trade within 10 bps of it, or through it, in the 60 s from its cancel on: as the price came, or just ahead of it (ladders that requote large orders a few seconds ahead of the price are pulled walls, the commonest kind). Up to 24 h per call.

get_wall_events input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "coin"
  ],
  "properties": {
    "to": {
      "type": "integer",
      "maximum": 999999999999999,
      "minimum": 0,
      "description": "To (Unix ms); default now"
    },
    "coin": {
      "type": "string",
      "pattern": "^[A-Za-z0-9@#:/._+-]{1,64}$",
      "description": "Market (perp name, spot @index, HIP-3 dex:COIN)"
    },
    "from": {
      "type": "integer",
      "maximum": 999999999999999,
      "minimum": 0,
      "description": "From (Unix ms); default `to` − 24 h"
    },
    "tier": {
      "type": "integer",
      "maximum": 3,
      "minimum": 1,
      "description": "Smallest wall: 1 = $25k and more, 2 = $100k and more, 3 = $1M and more (default 2)"
    },
    "limit": {
      "type": "integer",
      "maximum": 2000,
      "minimum": 1,
      "description": "Events (default 100)"
    }
  }
}
get_wall_events annotations
{
  "title": "Walls held or pulled on a market",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
get_open_interest — Open interest history of a perp
Advertised by the server during the last successful anonymous check.
Advertised read-only

Open interest of a HyperCore perp over time (1m to 1d bars since 2023-05-20): open / high / low / close of the open interest (size, Σ |position| of longs and shorts), its value at the last price, longs and shorts opened and closed in each bar, the part opened by aggressors, the size liquidated, accounts long and short, the hourly funding rate settled. Exact after every block since 2025-03-22 10:49 UTC, from every trade and Hyperliquid's own per-minute values (anchored on every hourly funding since 2025-09-28, where accounts start); before, Hyperliquid's per-minute values alone, moves and trades null. Hyperliquid's API serves only the current open interest.

get_open_interest input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "coin",
    "tf"
  ],
  "properties": {
    "tf": {
      "enum": [
        "1m",
        "5m",
        "15m",
        "1h",
        "4h",
        "1d"
      ],
      "type": "string",
      "description": "Bar unit"
    },
    "to": {
      "type": "integer",
      "maximum": 999999999999999,
      "minimum": 0,
      "description": "End (ms, exclusive; default now)"
    },
    "coin": {
      "type": "string",
      "pattern": "^[A-Za-z0-9@#:/._+-]{1,64}$",
      "description": "Perp market: BTC, xyz:TSLA (HIP-3: dex:COIN)"
    },
    "from": {
      "type": "integer",
      "maximum": 999999999999999,
      "minimum": 0,
      "description": "Start (ms, inclusive; aligned down to the unit). Without it: the `limit` bars ending at `to`"
    },
    "limit": {
      "type": "integer",
      "maximum": 5000,
      "minimum": 1,
      "description": "Bars (default 100)"
    }
  }
}
get_open_interest annotations
{
  "title": "Open interest history of a perp",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
list_open_interest — Open interest of every perp
Advertised by the server during the last successful anonymous check.
Advertised read-only

Open interest of every HyperCore perp now (main dex and HIP-3): size and USD value, accounts long and short, change over 1 h, 24 h and 7 d, totals per perp dex. Sort by value, size, 24 h change or accounts. Exact, from every fill and hourly funding.

list_open_interest input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "dex": {
      "type": "string",
      "pattern": "^[a-z0-9]{0,16}$",
      "description": "Only this perp dex (\"\" = the main one); every dex when absent"
    },
    "sort": {
      "enum": [
        "usd",
        "oi",
        "pct24h",
        "accounts"
      ],
      "type": "string",
      "description": "Order, largest first (pct24h: largest increase first) (default usd)"
    },
    "limit": {
      "type": "integer",
      "maximum": 1000,
      "minimum": 1,
      "description": "Markets (default 25)"
    }
  }
}
list_open_interest annotations
{
  "title": "Open interest of every perp",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
get_open_interest_cohorts — Open interest by position size
Advertised by the server during the last successful anonymous check.
Advertised read-only

Who holds a HyperCore perp's open interest, every hour since 2025-09-28: long and short size and accounts by position size tier (0 = no trade price known, 1 = under $10k, 2 = $10k–100k, 3 = $100k–1M, 4 = $1M–10M, 5 = $10M and more), and the share of the 10 largest longs and shorts. Read whale vs retail positioning over time.

get_open_interest_cohorts input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "coin"
  ],
  "properties": {
    "to": {
      "type": "integer",
      "maximum": 999999999999999,
      "minimum": 0,
      "description": "End (ms, exclusive; default now)"
    },
    "coin": {
      "type": "string",
      "pattern": "^[A-Za-z0-9@#:/._+-]{1,64}$",
      "description": "Perp market: BTC, xyz:TSLA"
    },
    "from": {
      "type": "integer",
      "maximum": 999999999999999,
      "minimum": 0,
      "description": "Start (ms, inclusive). Without it: the `limit` points ending at `to`"
    },
    "every": {
      "enum": [
        "1h",
        "1d"
      ],
      "type": "string",
      "description": "1h: every hourly funding; 1d: the first of each day (default 1h)"
    },
    "limit": {
      "type": "integer",
      "maximum": 744,
      "minimum": 1,
      "description": "Points (744: a month of hours) (default 48)"
    }
  }
}
get_open_interest_cohorts annotations
{
  "title": "Open interest by position size",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
get_open_interest_opens — Largest orders that opened positions
Advertised by the server during the last successful anonymous check.
Advertised read-only

Who opened positions on a HyperCore perp in a window of up to a day (since 2025-03-22 10:49 UTC): the orders that opened longs or shorts, largest value first, with the account and its named wallet, size and value opened, average price, taker or resting, position before and after; plus the window's longs / shorts opened in total and by aggressors. Use it to explain an open interest jump.

get_open_interest_opens input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "coin",
    "from",
    "to"
  ],
  "properties": {
    "to": {
      "type": "integer",
      "maximum": 999999999999999,
      "minimum": 0,
      "description": "End (ms, exclusive; aligned up to the minute; at most a day after `from`)"
    },
    "coin": {
      "type": "string",
      "pattern": "^[A-Za-z0-9@#:/._+-]{1,64}$",
      "description": "Perp market: BTC, xyz:TSLA"
    },
    "from": {
      "type": "integer",
      "maximum": 999999999999999,
      "minimum": 0,
      "description": "Start (ms, inclusive; aligned down to the minute)"
    },
    "side": {
      "enum": [
        "long",
        "short"
      ],
      "type": "string",
      "description": "Only the orders that opened longs, or shorts"
    },
    "limit": {
      "type": "integer",
      "maximum": 100,
      "minimum": 1,
      "description": "Orders (default 20)"
    }
  }
}
get_open_interest_opens annotations
{
  "title": "Largest orders that opened positions",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
get_liquidations — Liquidations
Advertised by the server during the last successful anonymous check.
Advertised read-only

HyperCore perp liquidations, newest first: one row per account, coin and block (side of the liquidated position, market or backstop, size, notional, average and mark price). Default window: the last 24 h; `from` older than 7 days (30 with a coin) is clamped, the answer's `from` says where it starts. Named wallets carry `entity`.

get_liquidations input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "to": {
      "type": "integer",
      "maximum": 9007199254740991,
      "minimum": -9007199254740991,
      "description": "Window end (ms, exclusive)"
    },
    "coin": {
      "type": "string",
      "pattern": "^[A-Za-z0-9@#:/._+-]{1,64}$",
      "description": "One coin"
    },
    "from": {
      "type": "integer",
      "maximum": 9007199254740991,
      "minimum": -9007199254740991,
      "description": "Window start (ms)"
    },
    "user": {
      "type": "string",
      "pattern": "^(0x[0-9a-fA-F]{40}|[A-Za-z0-9][A-Za-z0-9_.-]{0,63}\\.[0-9a-fA-F]{8,64})$",
      "description": "One liquidated account (0x)"
    },
    "limit": {
      "type": "integer",
      "maximum": 1000,
      "minimum": 1,
      "description": "Rows (default 50)"
    },
    "minNotional": {
      "type": "number",
      "maximum": 1000000000000,
      "minimum": 0,
      "description": "Smallest notional, USD"
    }
  }
}
get_liquidations annotations
{
  "title": "Liquidations",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
get_liquidation_stats — Liquidation stats
Advertised by the server during the last successful anonymous check.
Advertised read-only

HyperCore liquidations over a window (1h, 24h, 7d, 30d), every perp or one coin: totals (notional, count, accounts, long / short, market / backstop), per coin, per time bucket, the most liquidated accounts and the largest events.

get_liquidation_stats input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "coin": {
      "type": "string",
      "pattern": "^[A-Za-z0-9@#:/._+-]{1,64}$",
      "description": "One coin"
    },
    "window": {
      "enum": [
        "1h",
        "24h",
        "7d",
        "30d"
      ],
      "type": "string",
      "description": "Window (default 24h)"
    }
  }
}
get_liquidation_stats annotations
{
  "title": "Liquidation stats",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
get_positions — Open positions
Advertised by the server during the last successful anonymous check.
Advertised read-only

Open positions of one HyperCore perp, current to a few seconds (the node state rolled forward with every fill, funding payment and ledger update): account, size, side, entry price, notional, unrealized PnL at the mark, leverage, margin mode and liquidation price when known. Sort by notional (default), upnl or liqDistance (closest to liquidation first). Named wallets carry `entity`.

get_positions input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "coin"
  ],
  "properties": {
    "coin": {
      "type": "string",
      "pattern": "^[A-Za-z0-9@#:/._+-]{1,64}$",
      "description": "Perp coin (BTC, xyz:TSLA)"
    },
    "side": {
      "enum": [
        "long",
        "short"
      ],
      "type": "string",
      "description": "One side"
    },
    "sort": {
      "enum": [
        "notional",
        "upnl",
        "liqDistance"
      ],
      "type": "string",
      "description": "Sort (default notional)"
    },
    "limit": {
      "type": "integer",
      "maximum": 1000,
      "minimum": 1,
      "description": "Rows (default 50)"
    },
    "order": {
      "enum": [
        "asc",
        "desc"
      ],
      "type": "string",
      "description": "Order (default: desc, liqDistance asc)"
    }
  }
}
get_positions annotations
{
  "title": "Open positions",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
get_position_changes — Large position changes
Advertised by the server during the last successful anonymous check.
Advertised read-only

Past HyperCore perp position changes of one coin over a notional, one row per account and block (opens, closes, increases, reductions, flips, with size, average price and whether a liquidation moved it): the history of the WS hc.positions channel. Default window: the last 24 h; `from` older than 30 days is clamped. sort=notional for the largest of the window. Named wallets carry `entity`.

get_position_changes input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "coin"
  ],
  "properties": {
    "to": {
      "type": "integer",
      "maximum": 9007199254740991,
      "minimum": -9007199254740991,
      "description": "Window end (ms, exclusive)"
    },
    "coin": {
      "type": "string",
      "pattern": "^[A-Za-z0-9@#:/._+-]{1,64}$",
      "description": "Perp coin (BTC, xyz:TSLA)"
    },
    "from": {
      "type": "integer",
      "maximum": 9007199254740991,
      "minimum": -9007199254740991,
      "description": "Window start (ms)"
    },
    "sort": {
      "enum": [
        "time",
        "notional"
      ],
      "type": "string",
      "description": "Newest first, or largest first (default time)"
    },
    "limit": {
      "type": "integer",
      "maximum": 1000,
      "minimum": 1,
      "description": "Rows (default 50)"
    },
    "minNotional": {
      "type": "number",
      "maximum": 1000000000000,
      "minimum": 0,
      "description": "Smallest notional, USD (default 100000)"
    }
  }
}
get_position_changes annotations
{
  "title": "Large position changes",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
get_stop_map — Stop-loss / take-profit map
Advertised by the server during the last successful anonymous check.
Advertised read-only

Open trigger orders (stop-loss and take-profit) of one HyperCore market bucketed by trigger price around the mark (default ±10 %, 20 round-width buckets): per bucket the count, size and notional (size × trigger price) of stops and take-profits, sell (closes longs) and buy (closes shorts), market and limit. Each order counts at what it would execute: a reduce-only order closes at most what is left of its wallet's position when it fires (positions a few seconds old); the size past it (wallets with no position, oversized or duplicate stops) is apart under `unbacked`. Position TP/SL that close the whole position (size 0) are counted apart under `whole`, sized the same way. `totals` cover every open trigger order of the coin, `below` / `above` those outside the grid. Cut at `height` (block) / `asOf`.

get_stop_map input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "coin"
  ],
  "properties": {
    "coin": {
      "type": "string",
      "pattern": "^[A-Za-z0-9@#:/._+-]{1,64}$",
      "description": "HyperCore coin: BTC, ETH, xyz:TSLA"
    },
    "step": {
      "type": "string",
      "pattern": "^\\d{1,30}(\\.\\d{1,18})?$",
      "description": "Bucket width in price units, instead of buckets (at most 400 buckets)"
    },
    "buckets": {
      "type": "integer",
      "maximum": 400,
      "minimum": 1,
      "description": "Most buckets (default 20; the width is rounded up to 1, 2, 2.5 or 5 × 10^k)"
    },
    "rangePct": {
      "type": "number",
      "maximum": 100,
      "description": "Half-width of the grid around the mark, percent (default 10)",
      "exclusiveMinimum": 0
    }
  }
}
get_stop_map annotations
{
  "title": "Stop-loss / take-profit map",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
get_liquidation_map — Liquidation price map
Advertised by the server during the last successful anonymous check.
Advertised read-only

Liquidation prices of the open perp positions of one HyperCore market, bucketed by price around the mark: per bucket the longs (liquidated by a forced sell as price falls to them) and the shorts (forced buy), count, |size| and |size| × liquidation price. Real per-position prices: every account's positions a few seconds old (the node state rolled forward with every fill, funding payment and ledger update), each liquidation price from Hyperliquid's formula on the account state, not a leverage model; `coverage` gives the share of open interest that has one (portfolio-margin cross accounts have none). Same grid parameters as get_stop_map: the buckets line up.

get_liquidation_map input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "coin"
  ],
  "properties": {
    "coin": {
      "type": "string",
      "pattern": "^[A-Za-z0-9@#:/._+-]{1,64}$",
      "description": "Perp coin: BTC, ETH, xyz:TSLA"
    },
    "step": {
      "type": "string",
      "pattern": "^\\d{1,30}(\\.\\d{1,18})?$",
      "description": "Bucket width in price units, instead of buckets (at most 400 buckets)"
    },
    "buckets": {
      "type": "integer",
      "maximum": 400,
      "minimum": 1,
      "description": "Most buckets (default 20; the width is rounded up to 1, 2, 2.5 or 5 × 10^k)"
    },
    "rangePct": {
      "type": "number",
      "maximum": 100,
      "description": "Half-width of the grid around the mark, percent (default 10)",
      "exclusiveMinimum": 0
    }
  }
}
get_liquidation_map annotations
{
  "title": "Liquidation price map",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
get_forced_flow — Forced flow map (stops + liquidations)
Advertised by the server during the last successful anonymous check.
Advertised read-only

Open stop-loss / take-profit orders and the liquidation prices of open positions of one HyperCore market on the same price buckets: per bucket the stops by kind and side (each at what it would execute: a reduce-only order at most what is left of its wallet's position, the rest under stops.unbacked), the liquidations by side, the cascade (what fires with the move: sell = sell stop-losses + long liquidations, buy = buy stop-losses + short liquidations) and forced = cascade + take-profits (which fire against the move: sell ones above the mark, buy ones below), each with its running total from the mark outward (cumCascadeSell / cumSell downward, cumCascadeBuy / cumBuy upward); summary = cascade selling under the mark and buying over it, take-profits on the far side, and the forced totals, inside the grid. Same grid parameters as get_stop_map.

get_forced_flow input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "coin"
  ],
  "properties": {
    "coin": {
      "type": "string",
      "pattern": "^[A-Za-z0-9@#:/._+-]{1,64}$",
      "description": "Perp coin: BTC, ETH, xyz:TSLA"
    },
    "step": {
      "type": "string",
      "pattern": "^\\d{1,30}(\\.\\d{1,18})?$",
      "description": "Bucket width in price units, instead of buckets (at most 400 buckets)"
    },
    "buckets": {
      "type": "integer",
      "maximum": 400,
      "minimum": 1,
      "description": "Most buckets (default 20; the width is rounded up to 1, 2, 2.5 or 5 × 10^k)"
    },
    "rangePct": {
      "type": "number",
      "maximum": 100,
      "description": "Half-width of the grid around the mark, percent (default 10)",
      "exclusiveMinimum": 0
    }
  }
}
get_forced_flow annotations
{
  "title": "Forced flow map (stops + liquidations)",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
get_triggered_stops — Triggered stops
Advertised by the server during the last successful anonymous check.
Advertised read-only

Stop-loss and take-profit orders of one HyperCore market that fired, newest first: wallet, side, trigger and limit price, size (0 = whole position), the order the trigger placed (its status in the trigger block) and its fills there (size, average price, notional). Window: since / until, default the last hour, at most 24 h per call and 7 days back. Named wallets carry `entity`. Next page: pass `next_cursor` as cursor.

get_triggered_stops input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "coin"
  ],
  "properties": {
    "coin": {
      "type": "string",
      "pattern": "^[A-Za-z0-9@#:/._+-]{1,64}$",
      "description": "HyperCore coin: BTC, ETH, xyz:TSLA"
    },
    "limit": {
      "type": "integer",
      "maximum": 1000,
      "minimum": 1,
      "description": "Rows (default 50)"
    },
    "since": {
      "type": "integer",
      "maximum": 999999999999999,
      "minimum": 0,
      "description": "Window start (Unix ms, default until − 1 h)"
    },
    "until": {
      "type": "integer",
      "maximum": 999999999999999,
      "minimum": 0,
      "description": "Window end (Unix ms, exclusive, default now)"
    },
    "cursor": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]{2,160}$",
      "description": "Next page: `next_cursor` of the previous answer"
    }
  }
}
get_triggered_stops annotations
{
  "title": "Triggered stops",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
get_wallet_stops — A wallet's stops
Advertised by the server during the last successful anonymous check.
Advertised read-only

A wallet's open HyperCore trigger orders (stop-loss / take-profit): coin, side, trigger and limit price, size (0 = whole position), reduce-only, placed at. history: true lists instead every status event of its trigger orders over the last 3 days at most (placed, triggered, canceled, rejected, and the fill or cancel of the order a trigger placed, `triggered: true`), newest first (a heavy call; next page: pass `next_cursor` as cursor).

get_wallet_stops input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "address"
  ],
  "properties": {
    "limit": {
      "type": "integer",
      "maximum": 1000,
      "minimum": 1,
      "description": "history: events (default 100, max 1000)"
    },
    "since": {
      "type": "integer",
      "maximum": 999999999999999,
      "minimum": 0,
      "description": "history: window start (Unix ms, default until − 24 h, 3 days back at most)"
    },
    "until": {
      "type": "integer",
      "maximum": 999999999999999,
      "minimum": 0,
      "description": "history: window end (Unix ms, exclusive, default now)"
    },
    "cursor": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]{2,160}$",
      "description": "Next page: `next_cursor` of the previous answer"
    },
    "status": {
      "type": "string",
      "pattern": "^[A-Za-z]{1,40}$",
      "description": "history: one status (open, triggered, canceled, filled…)"
    },
    "address": {
      "type": "string",
      "pattern": "^(0x[0-9a-fA-F]{40}|[A-Za-z0-9][A-Za-z0-9_.-]{0,63}\\.[0-9a-fA-F]{8,64})$",
      "description": "0x address, or a named wallet's handle <entityId>.<hex>"
    },
    "history": {
      "type": "boolean",
      "description": "Past status events instead of the open orders (heavy call)"
    }
  }
}
get_wallet_stops annotations
{
  "title": "A wallet's stops",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
get_price_level — Who sits at a price level
Advertised by the server during the last successful anonymous check.
Advertised read-only

The wallets behind one price band of a HyperCore market (a bucket of get_forced_flow / get_stop_map / get_liquidation_map: px_lo = its pxLo, px_hi = its pxHi): the open stop-loss / take-profit orders triggering in it, each with what it would execute (a reduce-only order at most what is left of its wallet's position; the rest as unbackedSz) and the wallet's position, and the open positions liquidated in it (size, entry, leverage, liquidation price). Largest first. Named wallets carry `entity`.

get_price_level input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "coin",
    "px_lo",
    "px_hi"
  ],
  "properties": {
    "coin": {
      "type": "string",
      "pattern": "^[A-Za-z0-9@#:/._+-]{1,64}$",
      "description": "HyperCore perp coin: BTC, xyz:TSLA"
    },
    "limit": {
      "type": "integer",
      "maximum": 1000,
      "minimum": 1,
      "description": "Orders, and positions, listed (largest first) (default 50)"
    },
    "px_hi": {
      "type": "string",
      "pattern": "^\\d{1,30}(\\.\\d{1,18})?$",
      "description": "Band high edge (exclusive), price, over px_lo"
    },
    "px_lo": {
      "type": "string",
      "pattern": "^\\d{1,30}(\\.\\d{1,18})?$",
      "description": "Band low edge (inclusive), price"
    }
  }
}
get_price_level annotations
{
  "title": "Who sits at a price level",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
list_nft_collections — NFT collections
Advertised by the server during the last successful anonymous check.
Advertised read-only

Most active NFT collections of an EVM layer over the last 1 h or 24 h before the indexed head: transfers, mints, burns, with each collection's name, symbol, standard and logo.

list_nft_collections input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "layer"
  ],
  "properties": {
    "layer": {
      "enum": [
        "hyperevm",
        "elysium"
      ],
      "type": "string",
      "description": "EVM layer"
    },
    "limit": {
      "type": "integer",
      "maximum": 200,
      "minimum": 1,
      "description": "Rows (default 50)"
    },
    "window": {
      "enum": [
        "1h",
        "24h"
      ],
      "type": "string",
      "description": "Window (default 24h)"
    },
    "network": {
      "enum": [
        "mainnet",
        "testnet"
      ],
      "type": "string",
      "description": "Elysium network: mainnet or testnet, same answers (testnet USD values null). HyperCore and HyperEVM are always mainnet (default mainnet)"
    }
  }
}
list_nft_collections annotations
{
  "title": "NFT collections",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
get_nft_collection — One NFT collection
Advertised by the server during the last successful anonymous check.
Advertised read-only

One NFT collection of an EVM layer: metadata, standards, token ids seen (counted up to 1,000), transfers / mints / burns over the 24 h before the indexed head.

get_nft_collection input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "address",
    "layer"
  ],
  "properties": {
    "layer": {
      "enum": [
        "hyperevm",
        "elysium"
      ],
      "type": "string",
      "description": "EVM layer"
    },
    "address": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}$",
      "description": "Collection contract"
    },
    "network": {
      "enum": [
        "mainnet",
        "testnet"
      ],
      "type": "string",
      "description": "Elysium network: mainnet or testnet, same answers (testnet USD values null). HyperCore and HyperEVM are always mainnet (default mainnet)"
    }
  }
}
get_nft_collection annotations
{
  "title": "One NFT collection",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
get_nft_tokens — NFT tokens
Advertised by the server during the last successful anonymous check.
Advertised read-only

Tokens of one collection by token id, ascending: current ERC-721 owner (null for ERC-1155), metadata URI, image URL. Next page: pass `next_cursor` as cursor.

get_nft_tokens input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "layer",
    "collection"
  ],
  "properties": {
    "layer": {
      "enum": [
        "hyperevm",
        "elysium"
      ],
      "type": "string",
      "description": "EVM layer"
    },
    "limit": {
      "type": "integer",
      "maximum": 200,
      "minimum": 1,
      "description": "Rows (default 50)"
    },
    "cursor": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]{2,160}$",
      "description": "Next page: `next_cursor` of the previous answer"
    },
    "network": {
      "enum": [
        "mainnet",
        "testnet"
      ],
      "type": "string",
      "description": "Elysium network: mainnet or testnet, same answers (testnet USD values null). HyperCore and HyperEVM are always mainnet (default mainnet)"
    },
    "collection": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}$",
      "description": "Collection contract"
    }
  }
}
get_nft_tokens annotations
{
  "title": "NFT tokens",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
get_nfts_owned — NFTs of a wallet
Advertised by the server during the last successful anonymous check.
Advertised read-only

NFTs an address holds on an EVM layer at the indexed head: ERC-721 tokens and ERC-1155 balances, counted per collection, the tokens listed up to limit.

get_nfts_owned input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "layer",
    "owner"
  ],
  "properties": {
    "layer": {
      "enum": [
        "hyperevm",
        "elysium"
      ],
      "type": "string",
      "description": "EVM layer"
    },
    "limit": {
      "type": "integer",
      "maximum": 200,
      "minimum": 1,
      "description": "Tokens listed (default 50)"
    },
    "owner": {
      "type": "string",
      "pattern": "^(0x[0-9a-fA-F]{40}|[A-Za-z0-9][A-Za-z0-9_.-]{0,63}\\.[0-9a-fA-F]{8,64})$",
      "description": "Holder address"
    },
    "network": {
      "enum": [
        "mainnet",
        "testnet"
      ],
      "type": "string",
      "description": "Elysium network: mainnet or testnet, same answers (testnet USD values null). HyperCore and HyperEVM are always mainnet (default mainnet)"
    }
  }
}
get_nfts_owned annotations
{
  "title": "NFTs of a wallet",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
get_nft_transfers — NFT transfers
Advertised by the server during the last successful anonymous check.
Advertised read-only

Transfers (mints and burns included) of one collection or one of its tokens, newest first: from, to, token id, amount, block, tx. Next page: pass `next_cursor` as cursor.

get_nft_transfers input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "layer",
    "collection"
  ],
  "properties": {
    "layer": {
      "enum": [
        "hyperevm",
        "elysium"
      ],
      "type": "string",
      "description": "EVM layer"
    },
    "limit": {
      "type": "integer",
      "maximum": 500,
      "minimum": 1,
      "description": "Rows (default 50)"
    },
    "cursor": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]{2,160}$",
      "description": "Next page: `next_cursor` of the previous answer"
    },
    "window": {
      "enum": [
        "24h",
        "7d"
      ],
      "type": "string",
      "description": "Window when scope is not all (default 24h)"
    },
    "network": {
      "enum": [
        "mainnet",
        "testnet"
      ],
      "type": "string",
      "description": "Elysium network: mainnet or testnet, same answers (testnet USD values null). HyperCore and HyperEVM are always mainnet (default mainnet)"
    },
    "tokenId": {
      "type": "string",
      "pattern": "^\\d{1,78}$",
      "description": "One token"
    },
    "collection": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}$",
      "description": "Collection contract"
    }
  }
}
get_nft_transfers annotations
{
  "title": "NFT transfers",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
search_entities — Named wallets
Advertised by the server during the last successful anonymous check.
Advertised read-only

Named wallets (KOLs, traders, funds, market makers) and their wallets, from public attribution lists (not verified identities). A named wallet's address is given as its handle <entityId>.<hex>, usable as an address in every tool. Use the entity id with kol_activity. Next page: pass `next_cursor` as cursor.

search_entities input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "q": {
      "type": "string",
      "maxLength": 64,
      "description": "Name, X handle, alias, wallet address or handle"
    },
    "via": {
      "enum": [
        "list",
        "bridge",
        "subaccount",
        "transfer",
        "vault-leader",
        "self-declared",
        "smart-money",
        "smart-money-link"
      ],
      "type": "string",
      "description": "Entities with at least one wallet found this way (`via` of the wallets)"
    },
    "kind": {
      "type": "string",
      "maxLength": 64,
      "description": "Entities: named (people, funds, pseudonyms from public sources), cluster (anonymous smart-money clusters: HyperCore traders selected on their results), all, or a kind it contains (whale, market maker…). Default: all"
    },
    "sort": {
      "enum": [
        "default",
        "wallets",
        "name",
        "pnl"
      ],
      "type": "string",
      "description": "default: the registry order (our research first); wallets: most wallets first; name; pnl: smart-money net PnL first (default default)"
    },
    "limit": {
      "type": "integer",
      "maximum": 1000,
      "minimum": 1,
      "description": "Entities (default 20)"
    },
    "cursor": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]{2,160}$",
      "description": "Next page: `next_cursor` of the previous answer"
    },
    "network": {
      "enum": [
        "mainnet",
        "testnet"
      ],
      "type": "string",
      "description": "Elysium network: mainnet or testnet, same answers (testnet USD values null). HyperCore and HyperEVM are always mainnet (default mainnet)"
    },
    "confidence": {
      "enum": [
        "high",
        "medium",
        "low",
        "unrated"
      ],
      "type": "string",
      "description": "Entities with at least one wallet of this confidence"
    }
  }
}
search_entities annotations
{
  "title": "Named wallets",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
get_entity_graph — How a named wallet was found
Advertised by the server during the last successful anonymous check.
Advertised read-only

How each wallet of a named entity was attributed: the links (bridges, HyperCore sub-accounts, sends both ways, Farcaster self-declarations) back to the public source, with their proofs (source, time, USD value, chains), and the HyperCore metrics of smart-money wallets. Use it to judge an attribution before relying on it.

get_entity_graph input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^[A-Za-z0-9][A-Za-z0-9_.-]{0,63}$",
      "description": "Entity id"
    },
    "network": {
      "enum": [
        "mainnet",
        "testnet"
      ],
      "type": "string",
      "description": "Elysium network: mainnet or testnet, same answers (testnet USD values null). HyperCore and HyperEVM are always mainnet (default mainnet)"
    }
  }
}
get_entity_graph annotations
{
  "title": "How a named wallet was found",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
get_entity_pnl — A named wallet's PnL curve
Advertised by the server during the last successful anonymous check.
Advertised read-only

The HyperCore PnL curve of a named entity (id from search_entities): per hour or day, realized PnL, fees, funding, net and cumulative net, over 7d, 30d, 90d or all history. Realized only: open positions' unrealized PnL is in get_entity's answer.

get_entity_pnl input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^[A-Za-z0-9][A-Za-z0-9_.-]{0,63}$",
      "description": "Entity id"
    },
    "bucket": {
      "enum": [
        "1h",
        "1d"
      ],
      "type": "string",
      "description": "Bucket: 1h (window 7d or 30d) or 1d. Default 1d (default 1d)"
    },
    "window": {
      "enum": [
        "7d",
        "30d",
        "90d",
        "all"
      ],
      "type": "string",
      "description": "UTC days ending today: 7d, 30d, 90d, or all (since `dataStart`). Default 30d (default 30d)"
    }
  }
}
get_entity_pnl annotations
{
  "title": "A named wallet's PnL curve",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
kol_leaderboard — Named-wallet leaderboard
Advertised by the server during the last successful anonymous check.
Advertised read-only

Named wallets ranked by their trading on a layer. hypercore: PnL, volume, fills, win rate, open notional (default 7d, sort netPnl). hyperevm / elysium: swaps, transfers, net buy, holdings, bridge legs (default 24h, sort volume).

kol_leaderboard input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "kind": {
      "type": "string",
      "pattern": "^[\\w /&.-]{0,40}$",
      "description": "Entities: named (people, funds, pseudonyms from public sources), cluster (anonymous smart-money clusters: HyperCore traders selected on their results), all, or a kind it contains (whale, market maker…). Default: named"
    },
    "sort": {
      "enum": [
        "netPnl",
        "realizedPnl",
        "volume",
        "fills",
        "winRate",
        "openNotional",
        "swaps",
        "transfers",
        "netBuy",
        "holdings",
        "bridges",
        "lastActivity"
      ],
      "type": "string",
      "description": "Sort (per layer, see above; default netPnl / volume)"
    },
    "layer": {
      "enum": [
        "hypercore",
        "hyperevm",
        "elysium"
      ],
      "type": "string",
      "description": "Layer (default hypercore)"
    },
    "limit": {
      "type": "integer",
      "maximum": 500,
      "minimum": 1,
      "description": "Rows (default 25)"
    },
    "window": {
      "enum": [
        "24h",
        "7d",
        "30d"
      ],
      "type": "string",
      "description": "Window (hypercore: 7d by default, EVM layers: 24h)"
    },
    "network": {
      "enum": [
        "mainnet",
        "testnet"
      ],
      "type": "string",
      "description": "Elysium network: mainnet or testnet, same answers (testnet USD values null). HyperCore and HyperEVM are always mainnet (default mainnet)"
    }
  }
}
kol_leaderboard annotations
{
  "title": "Named-wallet leaderboard",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
kol_positioning — Named-wallet positioning per market
Advertised by the server during the last successful anonymous check.
Advertised read-only

How named wallets (KOLs, funds, market makers; or smart-money clusters with kind=cluster) are positioned on each HyperCore perp: long vs short notional and entity counts, net, average entry and unrealized PnL per side, the named position closest to liquidation, the largest entities per side, and the net change over 1 h and 24 h. One market with coin.

kol_positioning input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "top": {
      "type": "integer",
      "maximum": 20,
      "minimum": 0,
      "description": "Largest entities listed per side (default 3)"
    },
    "coin": {
      "type": "string",
      "pattern": "^[A-Za-z0-9@#:/._+-]{1,64}$",
      "description": "One perp market only"
    },
    "kind": {
      "enum": [
        "named",
        "cluster",
        "all"
      ],
      "type": "string",
      "description": "Entities: named (people, funds, pseudonyms from public sources), cluster (anonymous smart-money clusters), all. Default: named (default named)"
    },
    "limit": {
      "type": "integer",
      "maximum": 500,
      "minimum": 1,
      "description": "Markets, largest gross notional first (default 20)"
    }
  }
}
kol_positioning annotations
{
  "title": "Named-wallet positioning per market",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
kol_activity — Named-wallet moves
Advertised by the server during the last successful anonymous check.
Advertised read-only

Latest moves of named wallets, newest first: HyperCore fills (minNotional USD, default 1000), HyperEVM / Elysium swaps and transfers. Optionally one entity (id from search_entities). Next page: pass `next_cursor` as cursor.

kol_activity input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "layer": {
      "enum": [
        "hypercore",
        "hyperevm",
        "elysium"
      ],
      "type": "string",
      "description": "Layer (default hypercore)"
    },
    "limit": {
      "type": "integer",
      "maximum": 500,
      "minimum": 1,
      "description": "Rows (default 50)"
    },
    "cursor": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]{2,160}$",
      "description": "Next page: `next_cursor` of the previous answer"
    },
    "entity": {
      "type": "string",
      "pattern": "^[A-Za-z0-9][A-Za-z0-9_.-]{0,63}$",
      "description": "One entity only"
    },
    "network": {
      "enum": [
        "mainnet",
        "testnet"
      ],
      "type": "string",
      "description": "Elysium network: mainnet or testnet, same answers (testnet USD values null). HyperCore and HyperEVM are always mainnet (default mainnet)"
    },
    "minNotional": {
      "type": "string",
      "pattern": "^\\d{1,15}(\\.\\d{1,6})?$",
      "description": "Smallest USD value (hypercore: px × sz, default 1000; EVM: none by default)"
    }
  }
}
kol_activity annotations
{
  "title": "Named-wallet moves",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
get_builders — Builder codes ranked
Advertised by the server during the last successful anonymous check.
Advertised read-only

HyperCore builder codes ranked over a window (24h, 7d, 30d, 90d, all since 2025-07-19): builder fees earned (USD stablecoins at par, exact per token), volume, fills, distinct users, share of all builder fees, and order outcomes (distinct orders, filled, canceled, rejected; from 2026-10-13 15:50 UTC), and the app behind each code (Phantom, MetaMask…) when known. Sort by fees, volume, fills, users or orders.

get_builders input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "sort": {
      "enum": [
        "fees",
        "volume",
        "fills",
        "users",
        "orders"
      ],
      "type": "string",
      "description": "Order, largest first (default fees)"
    },
    "limit": {
      "type": "integer",
      "maximum": 1000,
      "minimum": 1,
      "description": "Builders (default 25)"
    },
    "window": {
      "enum": [
        "24h",
        "7d",
        "30d",
        "90d",
        "all"
      ],
      "type": "string",
      "description": "Window, whole hours ending with the current one: 24h, 7d, 30d, 90d, or all (since 2025-07-19) (default 30d)"
    }
  }
}
get_builders annotations
{
  "title": "Builder codes ranked",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
get_builder — One builder code
Advertised by the server during the last successful anonymous check.
Advertised read-only

One HyperCore builder code over a window (24h to all since 2025-07-19): fees (USD stablecoins at par, exact per token), volume, fills, users, rank; one row per day; its markets; its orders from 2026-10-13 15:50 UTC by status (fills, cancels, each rejection reason) and the fee rates they charged.

get_builder input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "builder"
  ],
  "properties": {
    "window": {
      "enum": [
        "24h",
        "7d",
        "30d",
        "90d",
        "all"
      ],
      "type": "string",
      "description": "Window, whole hours ending with the current one: 24h, 7d, 30d, 90d, or all (since 2025-07-19) (default 30d)"
    },
    "builder": {
      "type": "string",
      "pattern": "^(0x[0-9a-fA-F]{40}|[A-Za-z0-9][A-Za-z0-9_.-]{0,63}\\.[0-9a-fA-F]{8,64})$",
      "description": "Builder address (0x), as orders name it in `builder.b`"
    }
  }
}
get_builder annotations
{
  "title": "One builder code",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
get_builder_orders — Builder orders
Advertised by the server during the last successful anonymous check.
Advertised read-only

Order statuses of one HyperCore builder code, newest first: open, filled, canceled, triggered and every rejection reason, with market, side, type, prices, sizes, account and the fee rate charged. From 2026-10-13 15:50 UTC; window from / to, default 24 h, at most 7 days per call. Next page: pass `next_cursor` as cursor.

get_builder_orders input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "builder"
  ],
  "properties": {
    "to": {
      "type": "integer",
      "maximum": 999999999999999,
      "minimum": 0,
      "description": "Window end (Unix ms, exclusive, default now)"
    },
    "coin": {
      "type": "string",
      "pattern": "^[A-Za-z0-9@#:/._+-]{1,64}$",
      "description": "One market"
    },
    "from": {
      "type": "integer",
      "maximum": 999999999999999,
      "minimum": 0,
      "description": "Window start (Unix ms, default to − 24 h)"
    },
    "user": {
      "type": "string",
      "pattern": "^(0x[0-9a-fA-F]{40}|[A-Za-z0-9][A-Za-z0-9_.-]{0,63}\\.[0-9a-fA-F]{8,64})$",
      "description": "One account"
    },
    "limit": {
      "type": "integer",
      "maximum": 1000,
      "minimum": 1,
      "description": "Rows (default 50)"
    },
    "cursor": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]{2,160}$",
      "description": "Next page: `next_cursor` of the previous answer"
    },
    "status": {
      "type": "string",
      "pattern": "^[A-Za-z]{2,40}$",
      "description": "One status"
    },
    "builder": {
      "type": "string",
      "pattern": "^(0x[0-9a-fA-F]{40}|[A-Za-z0-9][A-Za-z0-9_.-]{0,63}\\.[0-9a-fA-F]{8,64})$",
      "description": "Builder address (0x), as orders name it in `builder.b`"
    }
  }
}
get_builder_orders annotations
{
  "title": "Builder orders",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
get_builder_fills — Builder fills
Advertised by the server during the last successful anonymous check.
Advertised read-only

Fills of one HyperCore builder code, newest first, with the builder fee of each, account, market, price, size, direction, PnL, oid, tid and hash. From 2025-07-19; window from / to, default the last 24 h, at most 24 h per call. Next page: pass `next_cursor` as cursor.

get_builder_fills input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "builder"
  ],
  "properties": {
    "to": {
      "type": "integer",
      "maximum": 999999999999999,
      "minimum": 0,
      "description": "Window end (Unix ms, exclusive, default now)"
    },
    "coin": {
      "type": "string",
      "pattern": "^[A-Za-z0-9@#:/._+-]{1,64}$",
      "description": "One market"
    },
    "from": {
      "type": "integer",
      "maximum": 999999999999999,
      "minimum": 0,
      "description": "Window start (Unix ms, default to − 24 h)"
    },
    "user": {
      "type": "string",
      "pattern": "^(0x[0-9a-fA-F]{40}|[A-Za-z0-9][A-Za-z0-9_.-]{0,63}\\.[0-9a-fA-F]{8,64})$",
      "description": "One account"
    },
    "limit": {
      "type": "integer",
      "maximum": 1000,
      "minimum": 1,
      "description": "Rows (default 50)"
    },
    "cursor": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]{2,160}$",
      "description": "Next page: `next_cursor` of the previous answer"
    },
    "builder": {
      "type": "string",
      "pattern": "^(0x[0-9a-fA-F]{40}|[A-Za-z0-9][A-Za-z0-9_.-]{0,63}\\.[0-9a-fA-F]{8,64})$",
      "description": "Builder address (0x), as orders name it in `builder.b`"
    }
  }
}
get_builder_fills annotations
{
  "title": "Builder fills",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
create_webhook — Create a webhook
Advertised by the server during the last successful anonymous check.
Open-world

Create an outgoing webhook: we POST the events of its subscriptions to your HTTPS URL (port 443 or 8443, public address), signed (Standard Webhooks: webhook-id, webhook-timestamp, webhook-signature = v1,<base64 HMAC-SHA256 of "id.timestamp.body" with the secret>). Channels (WebSocket vocabulary): bridge.transfers and elysium.bridge (matched bridge legs), wallet (filter.address: up to 100 addresses, filter.channel: event kinds), hc.liquidations and hc.positions (filter.min_notional; positions >= 10000), elysium.launches, hyperevm.launches. Your URL first gets a webhook.verification POST: answer {"challenge": "<data.challenge>"} within 10 s, nothing else is sent before. The answer carries the secret once. Free tier: 2 webhooks, 5 subscriptions, 10k deliveries a day.

create_webhook input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "url",
    "subscriptions"
  ],
  "properties": {
    "url": {
      "type": "string",
      "example": "https://example.com/femtos",
      "description": "https, port 443 or 8443, a public address"
    },
    "description": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 200
        },
        {
          "type": "null"
        }
      ],
      "description": "Your label (<= 200 characters)"
    },
    "subscriptions": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "channel"
        ],
        "properties": {
          "batch": {
            "enum": [
              "block",
              "none"
            ],
            "type": "string",
            "default": "block",
            "description": "block: the events of one source block per delivery; none: one event per delivery"
          },
          "filter": {
            "anyOf": [
              {
                "type": "object",
                "propertyNames": {
                  "type": "string"
                },
                "additionalProperties": {}
              },
              {
                "type": "null"
              }
            ],
            "description": "The WebSocket filter of the channel. wallet: {address: one, a comma list or an array of up to 100 (0x or named-wallet handles), channel?: event kinds}; hc.positions: min_notional >= 10000 (default 100000)",
            "additionalProperties": true
          },
          "channel": {
            "enum": [
              "bridge.transfers",
              "elysium.bridge",
              "wallet",
              "hc.liquidations",
              "hc.positions",
              "elysium.launches",
              "hyperevm.launches"
            ],
            "type": "string"
          },
          "network": {
            "enum": [
              "mainnet",
              "testnet"
            ],
            "type": "string",
            "description": "Elysium network of the subscription: testnet for the Elysium testnet (elysium.bridge, elysium.launches, the Elysium events of wallet); absent: mainnet. Other channels are always mainnet"
          }
        },
        "description": "A channel and its filter, as on the WebSocket"
      },
      "maxItems": 50,
      "minItems": 1,
      "description": "What to deliver"
    }
  }
}
create_webhook annotations
{
  "title": "Create a webhook",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": false
}
list_webhooks — Your webhooks
Advertised by the server during the last successful anonymous check.
Advertised read-only

Your account's webhooks: URL, state (pending_verification, active, disabled with the reason and how to enable), failures in a row, subscriptions. A rotated key sees the same webhooks. Next page: pass `next_cursor` as cursor.

list_webhooks input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "limit": {
      "type": "integer",
      "maximum": 200,
      "minimum": 1,
      "description": "Webhooks (default 50)"
    },
    "cursor": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]{2,160}$",
      "description": "Next page: `next_cursor` of the previous answer"
    }
  }
}
list_webhooks annotations
{
  "title": "Your webhooks",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
get_webhook — One webhook
Advertised by the server during the last successful anonymous check.
Advertised read-only

One of your webhooks: state (pending_verification, active, or disabled with the reason and how to turn it on), failures in a row, subscriptions with their seq, today's deliveries against your tier's daily limit.

get_webhook input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "example": "wh_3fJ9xQ2mV8kLp0aZ",
      "pattern": "^wh_[A-Za-z0-9_-]{16}$",
      "description": "Webhook id"
    }
  }
}
get_webhook annotations
{
  "title": "One webhook",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
update_webhook — Change a webhook
Advertised by the server during the last successful anonymous check.
Open-world

Change a webhook: url (verified again by a webhook.verification challenge before anything else is sent), description, or subscriptions (the whole list: unchanged ones keep their seq).

update_webhook input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "example": "wh_3fJ9xQ2mV8kLp0aZ",
      "pattern": "^wh_[A-Za-z0-9_-]{16}$",
      "description": "Webhook id"
    },
    "url": {
      "type": "string",
      "example": "https://example.com/femtos",
      "description": "https, port 443 or 8443, a public address"
    },
    "description": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 200
        },
        {
          "type": "null"
        }
      ],
      "description": "Your label (<= 200 characters)"
    },
    "subscriptions": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "channel"
        ],
        "properties": {
          "batch": {
            "enum": [
              "block",
              "none"
            ],
            "type": "string",
            "default": "block",
            "description": "block: the events of one source block per delivery; none: one event per delivery"
          },
          "filter": {
            "anyOf": [
              {
                "type": "object",
                "propertyNames": {
                  "type": "string"
                },
                "additionalProperties": {}
              },
              {
                "type": "null"
              }
            ],
            "description": "The WebSocket filter of the channel. wallet: {address: one, a comma list or an array of up to 100 (0x or named-wallet handles), channel?: event kinds}; hc.positions: min_notional >= 10000 (default 100000)",
            "additionalProperties": true
          },
          "channel": {
            "enum": [
              "bridge.transfers",
              "elysium.bridge",
              "wallet",
              "hc.liquidations",
              "hc.positions",
              "elysium.launches",
              "hyperevm.launches"
            ],
            "type": "string"
          },
          "network": {
            "enum": [
              "mainnet",
              "testnet"
            ],
            "type": "string",
            "description": "Elysium network of the subscription: testnet for the Elysium testnet (elysium.bridge, elysium.launches, the Elysium events of wallet); absent: mainnet. Other channels are always mainnet"
          }
        },
        "description": "A channel and its filter, as on the WebSocket"
      },
      "maxItems": 50,
      "minItems": 1,
      "description": "What to deliver"
    }
  }
}
update_webhook annotations
{
  "title": "Change a webhook",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
enable_webhook — Turn a webhook on again
Advertised by the server during the last successful anonymous check.
Open-world

Turn a disabled webhook (410 Gone, or failing for 24 h) on again: your URL gets a new webhook.verification challenge, deliveries resume once it is answered; pending ones are kept 7 days.

enable_webhook input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "example": "wh_3fJ9xQ2mV8kLp0aZ",
      "pattern": "^wh_[A-Za-z0-9_-]{16}$",
      "description": "Webhook id"
    }
  }
}
enable_webhook annotations
{
  "title": "Turn a webhook on again",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": false
}
rotate_webhook_secret — Rotate a webhook secret
Advertised by the server during the last successful anonymous check.
Open-world

A new whsec_ signing secret, answered once; for 24 h every delivery carries two signatures (the new and the previous secret): accept either while you switch.

rotate_webhook_secret input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "example": "wh_3fJ9xQ2mV8kLp0aZ",
      "pattern": "^wh_[A-Za-z0-9_-]{16}$",
      "description": "Webhook id"
    }
  }
}
rotate_webhook_secret annotations
{
  "title": "Rotate a webhook secret",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": false
}
delete_webhook — Delete a webhook
Advertised by the server during the last successful anonymous check.
Advertised destructive

Delete one of your webhooks and its pending deliveries. Cannot be undone.

delete_webhook input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "example": "wh_3fJ9xQ2mV8kLp0aZ",
      "pattern": "^wh_[A-Za-z0-9_-]{16}$",
      "description": "Webhook id"
    }
  }
}
delete_webhook annotations
{
  "title": "Delete a webhook",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": true
}
test_webhook — Test a webhook
Advertised by the server during the last successful anonymous check.
Open-world

Queue a webhook.test delivery to a verified webhook (not billed); its result shows in get_webhook_deliveries within seconds.

test_webhook input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "example": "wh_3fJ9xQ2mV8kLp0aZ",
      "pattern": "^wh_[A-Za-z0-9_-]{16}$",
      "description": "Webhook id"
    }
  }
}
test_webhook annotations
{
  "title": "Test a webhook",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": false
}
get_webhook_deliveries — Webhook deliveries
Advertised by the server during the last successful anonymous check.
Advertised read-only

Deliveries of one webhook, newest first (kept 7 days): msgId (the webhook-id header), type, status pending / delivered / dead, and each attempt with its HTTP status, latency, error and the first 4 KiB of your answer. Next page: pass `next_cursor` as cursor.

get_webhook_deliveries input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "example": "wh_3fJ9xQ2mV8kLp0aZ",
      "pattern": "^wh_[A-Za-z0-9_-]{16}$",
      "description": "Webhook id"
    },
    "limit": {
      "type": "integer",
      "maximum": 100,
      "minimum": 1,
      "description": "Deliveries (default 20)"
    },
    "cursor": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]{2,160}$",
      "description": "Next page: `next_cursor` of the previous answer"
    },
    "status": {
      "enum": [
        "pending",
        "delivered",
        "dead"
      ],
      "type": "string",
      "description": "Only these"
    }
  }
}
get_webhook_deliveries annotations
{
  "title": "Webhook deliveries",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
replay_webhook — Replay webhook deliveries
Advertised by the server during the last successful anonymous check.
Open-world

Send deliveries again, same webhook-id (dedupe on it): one (msgId, delivered or dead), or every dead one since a time (since, Unix ms within 7 days; status all: delivered ones too).

replay_webhook input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "example": "wh_3fJ9xQ2mV8kLp0aZ",
      "pattern": "^wh_[A-Za-z0-9_-]{16}$",
      "description": "Webhook id"
    },
    "msgId": {
      "type": "string",
      "pattern": "^msg_[A-Za-z0-9_-]{27}$",
      "description": "One delivery (its msgId)"
    },
    "since": {
      "type": "integer",
      "maximum": 9007199254740991,
      "minimum": 0,
      "description": "Unix ms, within the last 7 days"
    },
    "status": {
      "enum": [
        "dead",
        "all"
      ],
      "type": "string",
      "description": "dead: the dead deliveries; all: the delivered ones too (default dead)"
    }
  }
}
replay_webhook annotations
{
  "title": "Replay webhook deliveries",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": false
}
get_account — Your account
Advertised by the server during the last successful anonymous check.
Advertised read-only

Your Femtos account: name, tier and limits in force, balance and debt (USD), credits used this month and free credits left, monthly cap, plan and renewal, how to pay (USDC deposit address, card, x402), how rotate/delete are confirmed (manageWith). Start here to manage the account. Free.

get_account input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {}
}
get_account annotations
{
  "title": "Your account",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_usage — Your usage
Advertised by the server during the last successful anonymous check.
Advertised read-only

Your usage per UTC day and call class (rest, medium, heavy, hl, ws_bytes, webhook): calls or bytes, credits, USD charged. Free.

get_usage input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "days": {
      "type": "integer",
      "maximum": 400,
      "minimum": 1,
      "description": "Days back (default 30)"
    }
  }
}
get_usage annotations
{
  "title": "Your usage",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_ledger — Your payments and charges
Advertised by the server during the last successful anonymous check.
Advertised read-only

Your money movements, newest first: USDC deposits and x402 packs (with tx), card payments, credits by Femtos, plans paid from the balance, refunds; usage debits with usage=true. With the balance now. Next page: pass `next_cursor` as cursor. Free.

get_ledger input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "limit": {
      "type": "integer",
      "maximum": 200,
      "minimum": 1,
      "description": "Entries (default 50)"
    },
    "usage": {
      "type": "boolean",
      "description": "Include the usage debits"
    },
    "cursor": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]{2,160}$",
      "description": "Next page: `next_cursor` of the previous answer"
    }
  }
}
get_ledger annotations
{
  "title": "Your payments and charges",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_deposits — Your USDC deposits
Advertised by the server during the last successful anonymous check.
Advertised read-only

Your USDC deposit address on each chain (HyperCore, HyperEVM, Base, Arbitrum One), amounts waiting to reach the minimum, and its latest deposits: amount, tx, pending / credited / ignored with the reason. Free.

get_deposits input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {}
}
get_deposits annotations
{
  "title": "Your USDC deposits",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_deposit_address — Your USDC deposit address
Advertised by the server during the last successful anonymous check.

Your USDC deposit address (created on the first call, then the same): send USDC on HyperCore (usdSend), HyperEVM, Base or Arbitrum One (ERC-20 transfer) and it is credited 1:1 to your balance. Answers how to pay on each chain. Free.

get_deposit_address input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {}
}
get_deposit_address annotations
{
  "title": "Your USDC deposit address",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_payment_options — How to add credit
Advertised by the server during the last successful anonymous check.
Open-world

How to pay your account now: your USDC deposit address on each chain with exact instructions, x402 credit packs, a card checkout URL when cards are offered (give usd), and the credits an amount buys. Free.

get_payment_options input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "usd": {
      "type": "number",
      "maximum": 10000,
      "minimum": 0,
      "description": "Amount to add (USD): a card session for it, the credits it buys"
    }
  }
}
get_payment_options annotations
{
  "title": "How to add credit",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": false
}
get_plans — Plans and prices
Advertised by the server during the last successful anonymous check.
Advertised read-only

The price list: credits per call class (and which calls are medium / heavy), pay-as-you-go bands, plans with their monthly and annual price and included credits, payment methods. Use it before subscribe_plan. Free.

get_plans input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {}
}
get_plans annotations
{
  "title": "Plans and prices",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
subscribe_plan — Subscribe to a plan
Advertised by the server during the last successful anonymous check.
Open-world

Subscribe to a plan (get_plans lists them): paid from your USDC balance now (interval month, or year = 12 months prepaid at a discount) and renewed from it, or by card (checkout URL). Spends money. 402 insufficient_balance says how much to deposit. Free.

subscribe_plan input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "planId"
  ],
  "properties": {
    "planId": {
      "type": "string",
      "example": "starter",
      "description": "Plan id (GET /v1/account/plans `plans.list[].id`)"
    },
    "payWith": {
      "enum": [
        "balance",
        "card"
      ],
      "type": "string",
      "description": "Default: card when cards are offered and monthly, else balance"
    },
    "interval": {
      "enum": [
        "month",
        "year"
      ],
      "type": "string",
      "description": "month (default) or year (12 months prepaid from the balance)"
    }
  }
}
subscribe_plan annotations
{
  "title": "Subscribe to a plan",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": false
}
cancel_plan — Cancel your plan
Advertised by the server during the last successful anonymous check.

Stop your plan from renewing: it runs to its period end (no refund), then the key is back on pay as you go. subscribe_plan before then resumes it. Free.

cancel_plan input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {}
}
cancel_plan annotations
{
  "title": "Cancel your plan",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
quote_wallet_payment — Pay from your wallet: quote
Advertised by the server during the last successful anonymous check.
Open-world

Step 1 of paying from an EVM wallet with USDC (Base, Arbitrum One or HyperEVM), no gas: the EIP-712 typed data of a USDC TransferWithAuthorization to sign with eth_signTypedData_v4, for a plan (planId, interval: what the balance lacks) or a top-up (usd). Then pay_with_wallet with the signature. Free.

quote_wallet_payment input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "chain",
    "payer"
  ],
  "properties": {
    "usd": {
      "type": "number",
      "maximum": 10000,
      "minimum": 1,
      "description": "A top-up: the amount (USD)"
    },
    "chain": {
      "enum": [
        "base",
        "arbitrum",
        "hyperevm"
      ],
      "type": "string",
      "description": "Network the USDC is paid on: base, arbitrum (Arbitrum One) or hyperevm"
    },
    "payer": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}$",
      "description": "The wallet that signs and pays"
    },
    "planId": {
      "type": "string",
      "example": "starter",
      "description": "A plan to buy (GET /v1/account/plans `plans.list[].id`): the quote is what the balance lacks for it"
    },
    "interval": {
      "enum": [
        "month",
        "year"
      ],
      "type": "string",
      "description": "With planId: month (default) or year"
    }
  }
}
quote_wallet_payment annotations
{
  "title": "Pay from your wallet: quote",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": false
}
pay_with_wallet — Pay from your wallet
Advertised by the server during the last successful anonymous check.
Open-world

Step 2: send chain, authorization (the quote typedData.message), signature, and the planId / interval or usd of the quote. Femtos settles it on chain (no gas for you) and credits the account or buys the plan. state pending: call again with the same body after retryAfter (never charged twice). Spends money. Free.

pay_with_wallet input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "chain",
    "authorization",
    "signature"
  ],
  "properties": {
    "usd": {
      "type": "number",
      "maximum": 10000,
      "minimum": 1,
      "description": "A top-up: the amount quoted"
    },
    "chain": {
      "enum": [
        "base",
        "arbitrum",
        "hyperevm"
      ],
      "type": "string",
      "description": "Network the USDC is paid on: base, arbitrum (Arbitrum One) or hyperevm"
    },
    "planId": {
      "type": "string",
      "example": "starter",
      "description": "A plan to buy (GET /v1/account/plans `plans.list[].id`): the quote is what the balance lacks for it"
    },
    "interval": {
      "enum": [
        "month",
        "year"
      ],
      "type": "string",
      "description": "With planId: month (default) or year"
    },
    "signature": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{130}$",
      "description": "The wallet signature of `typedData` (65 bytes, EOA)"
    },
    "authorization": {
      "type": "object",
      "description": "`typedData.message` of the quote: {from, to, value, validAfter, validBefore, nonce}",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    }
  }
}
pay_with_wallet annotations
{
  "title": "Pay from your wallet",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": false
}
set_spending_cap — Set your spending cap
Advertised by the server during the last successful anonymous check.

Set your monthly spending cap in USD (null lifts it). Past it, heavy and medium calls answer 402 until next month. Answers the billing view. Free.

set_spending_cap input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "capUsd"
  ],
  "properties": {
    "capUsd": {
      "anyOf": [
        {
          "type": "number",
          "maximum": 1000000,
          "minimum": 0
        },
        {
          "type": "null"
        }
      ],
      "description": "Monthly cap in USD (at most 6 decimals); null: no cap"
    }
  }
}
set_spending_cap annotations
{
  "title": "Set your spending cap",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
rotate_key — Rotate your key
Advertised by the server during the last successful anonymous check.
Advertised destructive

Replace your API key: the new one is answered once, the current one (the one this MCP connection uses) stops working at once: reconnect with the new key. Needs management_secret (agents); an account with an email gets a confirmation link instead. Free.

rotate_key input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "management_secret": {
      "type": "string",
      "pattern": "^fms_[0-9a-f]{64}$",
      "description": "Your management secret (fms_…, answered once at signup): runs the action at once. Also read from the X-Management-Secret header. An account with an email gets a confirmation link by email instead (202)"
    }
  }
}
rotate_key annotations
{
  "title": "Rotate your key",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
freeze_key — Freeze your key
Advertised by the server during the last successful anonymous check.
Advertised destructive

Emergency stop for a leaked key: it is refused everywhere at once, this MCP connection included. Unfreeze or rotate it after with your management secret (POST /v1/account/unfreeze, /v1/account/rotate). Free.

freeze_key input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {}
}
freeze_key annotations
{
  "title": "Freeze your key",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": true
}
delete_account — Delete your account
Advertised by the server during the last successful anonymous check.
Advertised destructive

Delete your account: the key stops working for good. Refused while a plan runs or overage is due; a positive balance is lost only with forfeit_balance=true. Needs management_secret (agents); an account with an email gets a confirmation link. Cannot be undone.

delete_account input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "forfeit_balance": {
      "type": "boolean",
      "description": "Agree to lose the balance left (no refund)"
    },
    "management_secret": {
      "type": "string",
      "pattern": "^fms_[0-9a-f]{64}$",
      "description": "Your management secret (fms_…, answered once at signup): runs the action at once. Also read from the X-Management-Secret header. An account with an email gets a confirmation link by email instead (202)"
    }
  }
}
delete_account annotations
{
  "title": "Delete your account",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": true
}
get_signup_challenge — Get a key: challenge
Advertised by the server during the last successful anonymous check.
Advertised read-only

No key needed. Step 1 of a free API key for an agent: a proof-of-work challenge. Find a nonce of 1-32 characters [0-9a-zA-Z] such that SHA-256 of "<salt>:<nonce>" starts with `difficulty` zero bits (run code: about 0.5 M hashes), then call signup.

get_signup_challenge input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {}
}
get_signup_challenge annotations
{
  "title": "Get a key: challenge",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
signup — Get a key
Advertised by the server during the last successful anonymous check.
Open-world

No key needed. Step 2: send agent_name with the solved salt and nonce; answers a free API key and a management secret, each once: save both (the secret rotates, unfreezes and deletes the account). Then connect with Authorization: Bearer <key>.

signup input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "agent_name",
    "salt",
    "nonce"
  ],
  "properties": {
    "salt": {
      "type": "string",
      "maxLength": 256,
      "minLength": 1,
      "description": "`salt` of GET /v1/account/signup"
    },
    "nonce": {
      "type": "string",
      "pattern": "^[0-9a-zA-Z]{1,32}$",
      "description": "1-32 characters [0-9a-zA-Z] such that SHA-256(\"<salt>:<nonce>\") starts with `difficulty` zero bits"
    },
    "agent_name": {
      "type": "string",
      "maxLength": 64,
      "minLength": 1,
      "description": "Your agent name (1-64 printable characters, not unique)"
    },
    "owner_email": {
      "type": "string",
      "maxLength": 254,
      "description": "Its operator, for our records (never an account address, never written to)"
    }
  }
}
signup annotations
{
  "title": "Get a key",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": false
}
get_recovery_challenge — Recover an x402 account: message
Advertised by the server during the last successful anonymous check.
Advertised read-only

No key needed. Lost the key of an account created by an x402 payment? Get the message its paying wallet must sign (personal_sign), then call recover_account. EOA wallets only.

get_recovery_challenge input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "wallet"
  ],
  "properties": {
    "wallet": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}$",
      "description": "The wallet that paid with x402"
    }
  }
}
get_recovery_challenge annotations
{
  "title": "Recover an x402 account: message",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
recover_account — Recover an x402 account
Advertised by the server during the last successful anonymous check.
Advertised destructive

No key needed. Send wallet, nonce and the signature of the recovery message: answers a new key and management secret (save both), the old ones stop working.

recover_account input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "wallet",
    "nonce",
    "signature"
  ],
  "properties": {
    "nonce": {
      "type": "string",
      "maxLength": 200,
      "minLength": 1,
      "description": "`nonce` of step 1"
    },
    "wallet": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}$",
      "description": "The wallet that paid with x402"
    },
    "signature": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{130}$",
      "description": "personal_sign of `message` (65 bytes)"
    }
  }
}
recover_account annotations
{
  "title": "Recover an x402 account",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
756 ms
95th percentile latency
756 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 756 ms · metadata changed · 93 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http femtos-mcp https://api.femtos.xyz/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add femtos-mcp --url https://api.femtos.xyz/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable femtos-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "femtos-mcp": {
      "url": "https://api.femtos.xyz/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "femtos-mcp": {
      "type": "streamableHttp",
      "url": "https://api.femtos.xyz/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start femtos-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "femtos-mcp": {
      "type": "http",
      "url": "https://api.femtos.xyz/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http femtos-mcp https://api.femtos.xyz/mcp

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "femtos-mcp": {
      "url": "https://api.femtos.xyz/mcp"
    }
  }
}

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "femtos-mcp": {
      "serverUrl": "https://api.femtos.xyz/mcp"
    }
  }
}

Let your agent find its tools

Find servers like Femtos MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run Femtos MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing