Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,558Letters: 14Defects: 1,336counted 3 min ago
teppi

Server definition

Hash
sha256:ae55a164212962531b0a155dd55b4237c97fdfae7be7034c676621e619436fc9
What it is
What a remote MCP server returned when asked what it offers: 18 tools

The blob, as servednamed by its sha256

{ "instructions": "You are about to act on a price or a rate and cannot tell how stale it is. Every figure here carries the date it was observed. 18 tools. TOOL CALLS ARE x402-PAID in USDC on Base: send the base64 X-PAYMENT header on this POST /mcp request, or params._meta['x402/payment'], or call the equivalent GET endpoint. An unpaid call answers with a valid x402 accepts array and settles nothing, and initialize, ping, tools/list and GET /health are free. WHAT IS LIVE AND WHAT IS A SNAPSHOT, because it changes what you should trust: crypto spot, Base gas, DeFi yields and prediction markets are read from upstream at request time. US macro and Treasury rates are DATED SNAPSHOTS refreshed daily from FRED — this Worker cannot reach FRED directly — and every response carries the date the figure was observed, not the date you asked. GET /health publishes, free and unprompted, the age of each snapshot and whether it is past the 48-hour staleness bar, so you can decide whether a call is worth making before you make it. Routes refuse and settle nothing rather than bill for an answer they cannot support; a refusal is not a failure and costs you nothing. CPI, core PCE and M2 are published as INDEX LEVELS, not as rates of change — compute your own deltas and do not read an index level as a percentage. Prediction-market prices are the venue's own last trade, not a calibrated probability.", "tools": [ { "description": "Current Base mainnet gas price read live from JSON-RPC, in both wei and gwei. Use this to estimate the cost of a Base transaction before submitting it. Costs $0.005 USDC per call via x402 on Base; an unpaid call returns the payment challenge instead of data, and a call that returns no data is never settled so it costs nothing. Equivalent HTTP route: GET /gas.", "inputSchema": { "additionalProperties": false, "properties": {}, "type": "object" }, "name": "base_gas_price", "outputSchema": null }, { "description": "Coinbase spot price in USD for up to ten crypto assets. Use this for a current crypto price. Returns an explicit per-symbol error rather than a guessed number when an asset is unavailable. Costs $0.005 USDC per call via x402 on Base; an unpaid call returns the payment challenge instead of data, and a call that returns no data is never settled so it costs nothing. Equivalent HTTP route: GET /crypto.", "inputSchema": { "additionalProperties": false, "properties": { "symbols": { "description": "Comma-separated asset symbols (default BTC,ETH,SOL) Example: 'BTC,ETH'.", "examples": [ "BTC,ETH" ], "type": "string" } }, "type": "object" }, "name": "crypto_spot_prices", "outputSchema": null }, { "description": "Total value locked per blockchain from DefiLlama, ranked high to low, with each chain's native token symbol and EVM chain id plus the summed cross-chain total. Use it to compare chains by capital deployed or to check where a chain sits. A chain with no published TVL keeps a null figure and is excluded from the total rather than counted as zero. Costs $0.005 USDC per call via x402 on Base; an unpaid call returns the payment challenge instead of data, and a call that returns no data is never settled so it costs nothing. Equivalent HTTP route: GET /defi/chains.", "inputSchema": { "additionalProperties": false, "properties": { "limit": { "description": "How many to return, 1-100 (default 25) Example: '25'.", "examples": [ 25 ], "type": "integer" }, "search": { "description": "Chain name substring Example: 'Base'.", "examples": [ "Base" ], "type": "string" } }, "type": "object" }, "name": "defi_chains", "outputSchema": null }, { "description": "Full DefiLlama detail for one protocol by slug: current TVL in USD with its observation time, per-chain TVL breakdown, category, token symbol, chain list, description and links. Use it after finding a slug with the protocols list. An unknown slug returns an honest not_found and is not billed. Costs $0.005 USDC per call via x402 on Base; an unpaid call returns the payment challenge instead of data, and a call that returns no data is never settled so it costs nothing. Equivalent HTTP route: GET /defi/protocol.", "inputSchema": { "additionalProperties": false, "properties": { "slug": { "description": "DefiLlama protocol slug (required) Example: 'aave-v3'.", "examples": [ "aave-v3" ], "type": "string" } }, "type": "object" }, "name": "defi_protocol", "outputSchema": null }, { "description": "Rank DeFi protocols by total value locked from DefiLlama, filtered by chain, category or name substring, with each protocol's slug, category, chain list, TVL in USD, 1d/7d TVL change and market cap. Use it to size a protocol, find the biggest venues on a chain, or resolve the slug the protocol-detail tool needs. A protocol DefiLlama publishes no TVL for keeps a null figure, never a zero. Read live at request time and held for 5 minutes. Costs $0.008 USDC per call via x402 on Base; an unpaid call returns the payment challenge instead of data, and a call that returns no data is never settled so it costs nothing. Equivalent HTTP route: GET /defi/protocols.", "inputSchema": { "additionalProperties": false, "properties": { "category": { "description": "Exact DefiLlama category Example: 'Lending'.", "examples": [ "Lending" ], "type": "string" }, "chain": { "description": "Only protocols deployed on this chain Example: 'Base'.", "examples": [ "Base" ], "type": "string" }, "limit": { "description": "How many to return, 1-100 (default 20) Example: '20'.", "examples": [ 20 ], "type": "integer" }, "search": { "description": "Name or slug substring Example: 'aave'.", "examples": [ "aave" ], "type": "string" } }, "type": "object" }, "name": "defi_protocols", "outputSchema": null }, { "description": "Price arbitrary on-chain tokens with DefiLlama's coins API, addressed as chain:address (or coingecko:id), returning price in USD, symbol, decimals, a confidence score and the pricing timestamp for each. Use it to value a DeFi position holding tokens no exchange lists. This is NOT the exchange spot-price tool: use the crypto spot tool for a plain price of a major asset. A token DefiLlama cannot price inside search_width returns null, never a substituted price. Costs $0.005 USDC per call via x402 on Base; an unpaid call returns the payment challenge instead of data, and a call that returns no data is never settled so it costs nothing. Equivalent HTTP route: GET /defi/token-prices.", "inputSchema": { "additionalProperties": false, "properties": { "coins": { "description": "Comma-separated DefiLlama coin ids as chain:address or coingecko:id, up to 20 (required) Example: 'base:0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913,coingecko:ethereum'.", "examples": [ "base:0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913,coingecko:ethereum" ], "type": "string" }, "search_width": { "description": "How far back a price may be taken from (default 6h) Example: '6h'.", "examples": [ "6h" ], "type": "string" } }, "type": "object" }, "name": "defi_token_prices", "outputSchema": null }, { "description": "Screen DefiLlama's yield-pool universe by chain, project, token symbol, minimum TVL and stablecoin-only, ranked by APY, returning each pool's stable pool_id, chain, project, symbol, TVL in USD, total/base/reward APY, 30-day mean APY, impermanent-loss risk and exposure. Use it to find where a given asset earns yield. An unpublished APY stays null, never zero. Costs $0.008 USDC per call via x402 on Base; an unpaid call returns the payment challenge instead of data, and a call that returns no data is never settled so it costs nothing. Equivalent HTTP route: GET /defi/yields.", "inputSchema": { "additionalProperties": false, "properties": { "chain": { "description": "Only pools on this chain Example: 'Base'.", "examples": [ "Base" ], "type": "string" }, "limit": { "description": "How many to return, 1-100 (default 20) Example: '20'.", "examples": [ 20 ], "type": "integer" }, "min_tvl_usd": { "description": "Minimum pool TVL in USD (default 1000000) Example: '1000000'.", "examples": [ 1000000 ], "type": "number" }, "project": { "description": "Only pools from this DefiLlama project Example: 'aave-v3'.", "examples": [ "aave-v3" ], "type": "string" }, "stablecoin_only": { "description": "Only stablecoin pools Example: 'true'.", "examples": [ true ], "type": "boolean" }, "symbol": { "description": "Token symbol substring Example: 'USDC'.", "examples": [ "USDC" ], "type": "string" } }, "type": "object" }, "name": "defi_yields", "outputSchema": null }, { "description": "European Central Bank reference foreign-exchange rates for a chosen base currency, with the ECB observation date. Refreshed automatically by a Worker cron from Frankfurter. These are daily reference rates, not live tradable quotes, and every response carries `snapshot.captured_at` and `snapshot.age_hours`. Costs $0.005 USDC per call via x402 on Base; an unpaid call returns the payment challenge instead of data, and a call that returns no data is never settled so it costs nothing. Equivalent HTTP route: GET /fx.", "inputSchema": { "additionalProperties": false, "properties": { "as_of": { "description": "Return the stored capture in effect at this UTC date or ISO timestamp instead of the latest one (append-only history; not subject to the freshness limit) Example: '2026-08-11'.", "examples": [ "2026-08-11" ], "type": "string" }, "base": { "description": "Base currency ISO-4217 (default USD) Example: 'USD'.", "examples": [ "USD" ], "type": "string" }, "symbols": { "description": "Comma-separated target currencies Example: 'EUR,GBP,JPY'.", "examples": [ "EUR,GBP,JPY" ], "type": "string" } }, "type": "object" }, "name": "fx_reference_rates", "outputSchema": null }, { "description": "Search or browse Manifold Markets questions, returning each one's probability, outcome type, volume, liquidity, unique bettor count, close time, creator and resolution state. Manifold is a PLAY-money venue denominated in MANA, so treat a probability as a crowd forecast rather than a real-money price; every response says so and reports the token. Costs $0.005 USDC per call via x402 on Base; an unpaid call returns the payment challenge instead of data, and a call that returns no data is never settled so it costs nothing. Equivalent HTTP route: GET /manifold/markets.", "inputSchema": { "additionalProperties": false, "properties": { "filter": { "description": "all, open, closed or resolved (default open) Example: 'open'.", "examples": [ "open" ], "type": "string" }, "limit": { "description": "How many markets, 1-50 (default 10) Example: '10'.", "examples": [ 10 ], "type": "integer" }, "search": { "description": "Question text to search for Example: 'bitcoin'.", "examples": [ "bitcoin" ], "type": "string" }, "sort": { "description": "score, newest, liquidity, close-date or most-popular Example: 'score'.", "examples": [ "score" ], "type": "string" } }, "type": "object" }, "name": "manifold_markets", "outputSchema": null }, { "description": "List Polymarket events — the grouped questions such as an election or a rate decision — ordered by volume, each with title, slug, end date, volume, 24h volume, liquidity, open interest, its full market count and the priced member markets themselves. Use it when a question has many candidate outcomes and you want them together rather than one at a time. Costs $0.005 USDC per call via x402 on Base; an unpaid call returns the payment challenge instead of data, and a call that returns no data is never settled so it costs nothing. Equivalent HTTP route: GET /polymarket/events.", "inputSchema": { "additionalProperties": false, "properties": { "ascending": { "description": "Sort ascending instead of descending Example: 'false'.", "examples": [ false ], "type": "boolean" }, "closed": { "description": "Return closed events instead of open ones Example: 'false'.", "examples": [ false ], "type": "boolean" }, "limit": { "description": "How many events, 1-25 (default 5) Example: '5'.", "examples": [ 5 ], "type": "integer" }, "markets_per_event": { "description": "Member markets per event, 1-25 (default 5) Example: '5'.", "examples": [ 5 ], "type": "integer" } }, "type": "object" }, "name": "polymarket_events", "outputSchema": null }, { "description": "Polymarket's public trader leaderboard by traded volume or realised profit over a 1d, 7d, 30d or all-time window, returning each trader's rank, published pseudonym and display name, wallet address and USDC amount. Use it to find who is moving size on the venue. A trader who publishes no name stays null; no name is inferred. Costs $0.005 USDC per call via x402 on Base; an unpaid call returns the payment challenge instead of data, and a call that returns no data is never settled so it costs nothing. Equivalent HTTP route: GET /polymarket/leaderboard.", "inputSchema": { "additionalProperties": false, "properties": { "limit": { "description": "How many traders, 1-50 (default 10) Example: '10'.", "examples": [ 10 ], "type": "integer" }, "metric": { "description": "volume or profit (default volume) Example: 'volume'.", "examples": [ "volume" ], "type": "string" }, "window": { "description": "1d, 7d, 30d or all (default 7d) Example: '7d'.", "examples": [ "7d" ], "type": "string" } }, "type": "object" }, "name": "polymarket_leaderboard", "outputSchema": null }, { "description": "One Polymarket market by Gamma id, slug or condition id, with its full outcome pricing and the LIVE CLOB order book for each outcome token: best bid, best ask, midpoint, spread and the top price levels with sizes. Use it before taking a position, to see real depth rather than only a last price. An outcome with no order book returns a null book rather than a fabricated price; an unknown identifier returns not_found and is not billed. Costs $0.008 USDC per call via x402 on Base; an unpaid call returns the payment challenge instead of data, and a call that returns no data is never settled so it costs nothing. Equivalent HTTP route: GET /polymarket/market.", "inputSchema": { "additionalProperties": false, "properties": { "condition_id": { "description": "Full 0x-prefixed 32-byte condition id (66 chars), as returned by the markets/events/search tools Example: '0xf708d6652a477c59d7da116df8ff3d393b993e7037367b96cc33aa519cb48354'.", "examples": [ "0xf708d6652a477c59d7da116df8ff3d393b993e7037367b96cc33aa519cb48354" ], "type": "string" }, "depth": { "description": "Order-book levels per side, 1-20 (default 5) Example: '5'.", "examples": [ 5 ], "type": "integer" }, "id": { "description": "Polymarket Gamma market id Example: '908713'.", "examples": [ "908713" ], "type": "string" }, "slug": { "description": "Market slug, if you have no id Example: 'fed-rate-hike-in-2026'.", "examples": [ "fed-rate-hike-in-2026" ], "type": "string" } }, "type": "object" }, "name": "polymarket_market", "outputSchema": null }, { "description": "List live Polymarket markets ordered by volume or liquidity, each with its question, Gamma id, condition id, every outcome with its USDC price and CLOB token id, best bid/ask, last trade price, volume, liquidity and end date. Use it to see what the largest real-money prediction markets are pricing right now. Prices are probabilities between 0 and 1. Costs $0.005 USDC per call via x402 on Base; an unpaid call returns the payment challenge instead of data, and a call that returns no data is never settled so it costs nothing. Equivalent HTTP route: GET /polymarket/markets.", "inputSchema": { "additionalProperties": false, "properties": { "ascending": { "description": "Sort ascending instead of descending Example: 'false'.", "examples": [ false ], "type": "boolean" }, "closed": { "description": "Return closed markets instead of open ones Example: 'false'.", "examples": [ false ], "type": "boolean" }, "limit": { "description": "How many markets, 1-50 (default 10) Example: '10'.", "examples": [ 10 ], "type": "integer" }, "order": { "description": "volumeNum, liquidityNum, startDate or endDate Example: 'volumeNum'.", "examples": [ "volumeNum" ], "type": "string" } }, "type": "object" }, "name": "polymarket_markets", "outputSchema": null }, { "description": "Recent public trade prints for one Polymarket market, addressed by its condition id: timestamp, side, outcome, price, size, notional in USD, the trader's published pseudonym and wallet, and the transaction hash. Use it to see whether a quoted price is actually trading and who is behind the flow. Costs $0.005 USDC per call via x402 on Base; an unpaid call returns the payment challenge instead of data, and a call that returns no data is never settled so it costs nothing. Equivalent HTTP route: GET /polymarket/trades.", "inputSchema": { "additionalProperties": false, "properties": { "limit": { "description": "How many trades, 1-100 (default 20) Example: '20'.", "examples": [ 20 ], "type": "integer" }, "market": { "description": "Full 0x-prefixed 32-byte condition id (66 chars) of the market, as returned by the markets/events/search tools (required) Example: '0xf708d6652a477c59d7da116df8ff3d393b993e7037367b96cc33aa519cb48354'.", "examples": [ "0xf708d6652a477c59d7da116df8ff3d393b993e7037367b96cc33aa519cb48354" ], "type": "string" } }, "type": "object" }, "name": "polymarket_trades", "outputSchema": null }, { "description": "Find a prediction market by question text across two venues at once — Polymarket (USDC, real money) and Manifold (MANA, play money) — returning a single normalised list with the venue, its currency, the question, the YES probability, volume, end date and a direct URL, plus a per-venue status so a venue that failed is visible rather than silently dropped. Use it when you know the question but not the venue or the id. Kalshi is deliberately not included: its API answers Cloudflare Workers with HTTP 429 on every attempt. Costs $0.008 USDC per call via x402 on Base; an unpaid call returns the payment challenge instead of data, and a call that returns no data is never settled so it costs nothing. Equivalent HTTP route: GET /prediction-markets/search.", "inputSchema": { "additionalProperties": false, "properties": { "limit_per_venue": { "description": "Results per venue, 1-20 (default 5) Example: '5'.", "examples": [ 5 ], "type": "integer" }, "q": { "description": "Question text to search for (required) Example: 'fed rate'.", "examples": [ "fed rate" ], "type": "string" }, "venues": { "description": "Comma-separated subset of polymarket,manifold Example: 'polymarket,manifold'.", "examples": [ "polymarket,manifold" ], "type": "string" } }, "type": "object" }, "name": "prediction_market_search", "outputSchema": null }, { "description": "USDC, USDT and DAI spot price against USD plus each one's peg deviation in basis points. Use this to check whether a stablecoin is holding its dollar peg before settling or holding value in it. Costs $0.005 USDC per call via x402 on Base; an unpaid call returns the payment challenge instead of data, and a call that returns no data is never settled so it costs nothing. Equivalent HTTP route: GET /stablecoin.", "inputSchema": { "additionalProperties": false, "properties": {}, "type": "object" }, "name": "stablecoin_peg_deviation", "outputSchema": null }, { "description": "US macroeconomic indicators from the St. Louis Fed (FRED): effective federal funds rate in percent, CPI and core PCE index levels, unemployment rate in percent, and M2 money stock, each with its own observation date. IMPORTANT: this is a STORED SNAPSHOT, not a live read of FRED at request time — fred.stlouisfed.org blocks Cloudflare Workers (HTTP 520), so the snapshot is refreshed out of band. Every response carries `snapshot.captured_at` and `snapshot.age_hours`; check them before relying on the figures, and read `as_of` for the underlying observation date. CPI/PCE/M2 are index levels, not year-over-year rates. Costs $0.01 USDC per call via x402 on Base; an unpaid call returns the payment challenge instead of data, and a call that returns no data is never settled so it costs nothing. Equivalent HTTP route: GET /macro.", "inputSchema": { "additionalProperties": false, "properties": { "as_of": { "description": "Return the stored capture in effect at this UTC date or ISO timestamp instead of the latest one (append-only history; not subject to the freshness limit) Example: '2026-08-11'.", "examples": [ "2026-08-11" ], "type": "string" } }, "type": "object" }, "name": "us_macro_indicators", "outputSchema": null }, { "description": "US Treasury constant-maturity yields for the 2, 10 and 30 year tenors in percent, the computed 10s2s curve spread with an explicit inverted flag, and the 30-year fixed mortgage rate. IMPORTANT: this is a STORED SNAPSHOT, not a live read — the FRED host blocks Cloudflare Workers (HTTP 520), so it is refreshed out of band. Every response carries `snapshot.captured_at` and `snapshot.age_hours`; check them before trading or quoting off these numbers. Costs $0.01 USDC per call via x402 on Base; an unpaid call returns the payment challenge instead of data, and a call that returns no data is never settled so it costs nothing. Equivalent HTTP route: GET /rates.", "inputSchema": { "additionalProperties": false, "properties": { "as_of": { "description": "Return the stored capture in effect at this UTC date or ISO timestamp instead of the latest one (append-only history; not subject to the freshness limit) Example: '2026-08-11'.", "examples": [ "2026-08-11" ], "type": "string" } }, "type": "object" }, "name": "us_treasury_yields", "outputSchema": null } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:ae55a164212962531b0a155dd55b4237c97fdfae7be7034c676621e619436fc9 | sha256sum