Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,533Letters: 13Defects: 1,322counted just now
teppi

Server definition

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

The blob, as servednamed by its sha256

{ "instructions": "Spot market for AI inference tokens — NON-CUSTODIAL and SELLER-HOSTED: the platform never vaults a key, never proxies inference, and never holds money; it matches, verifies on-chain payments, prices, and tracks reputation. Delivery is always seller-hosted (tier:\"direct\"): the seller runs THEIR OWN relay pointed at an upstream they control, and buyers pay bounded draws in USDC on Base. Each draw goes through the MtokDripLedger contract (get_config.dripContractAddress) and the relay requires the DrawPaid event before upstream delivery; the canonical delivered tape is GET /api/chain/draws. Every live draw is paid in USDC, and every participant needs a funded EVM wallet on Base (there is no no-wallet path). register to get an agent key, then send it as the x-api-key header on EVERY subsequent request (this transport is stateless — the key is not remembered between calls). BUY flow: register -> fund a wallet on Base (USDC + a little ETH for gas; only a human can) -> place_bid -> read routes[] OR get_book -> get_config -> pay each draw on-chain through MtokDripLedger and draw through the seller relay (it verifies DrawPaid and serves report-free) -> affirmDraw on-chain when good (disputeDraw + STOP on a bad draw, max loss one draw). The mtok SDK's drawFromSeller implements the loop. SELL flow: register -> set up your inference upstream -> run mtok-relay over public HTTPS -> place_offer with tier:\"direct\" + relayEndpoint + settlementPubkey; your relay serves report-free. See buying_guide / selling_guide for detail. Full manual: https://mtok.market/llms.txt", "tools": [ { "description": "Turnkey, executable steps to get a human cheap AI tokens and run their prompts on mtok.market: bid (read routes[]) or read the book for a tier:direct offer, then draw paid chunks from the seller's relay (pay each draw on-chain through MtokDripLedger, POST <relayEndpoint>/chunk, the relay verifies DrawPaid and serves). You need a funded wallet on Base.", "inputSchema": { "properties": {}, "type": "object" }, "name": "buying_guide", "outputSchema": null }, { "description": "Cancel one of your open orders. side: offer|bid.", "inputSchema": { "properties": { "id": { "type": "string" }, "side": { "enum": [ "offer", "bid" ], "type": "string" } }, "required": [ "side", "id" ], "type": "object" }, "name": "cancel_order", "outputSchema": null }, { "description": "Open offers (asks) and bids for a model. sort=input|output ranks by that dimension.", "inputSchema": { "properties": { "model": { "type": "string" }, "sort": { "enum": [ "input", "output" ], "type": "string" } }, "type": "object" }, "name": "get_book", "outputSchema": null }, { "description": "Chain config a SELLER-HOSTED buyer needs to build the on-chain draw payment: { feeAddress, feeBps, dustThresholdUsd, chainId, usdcAddress, dripContractAddress }. Pay each draw through the MtokDripLedger contract at dripContractAddress (payDraw), then affirmDraw/disputeDraw on-chain; the seller relay verifies the DrawPaid event before delivery.", "inputSchema": { "properties": {}, "type": "object" }, "name": "get_config", "outputSchema": null }, { "description": "The chain-derived draw tape: contract-paid draws indexed from MtokDripLedger events on Base. status=inProcess (DrawPaid with no terminal yet) | settled (closed by DrawAffirmed or DrawDisputed). This is the canonical delivered/receipt surface; the platform records nothing off-chain.", "inputSchema": { "properties": { "limit": { "type": "integer" }, "status": { "enum": [ "inProcess", "settled" ], "type": "string" } }, "type": "object" }, "name": "get_draws", "outputSchema": null }, { "description": "Your agent state: open orders (offers + bids). Non-custodial — there is no platform wallet, grant, or credential vault in /me; money moves peer-to-peer on-chain, and your delivered draws are the on-chain tape (get_draws).", "inputSchema": { "properties": {}, "type": "object" }, "name": "get_me", "outputSchema": null }, { "description": "A seller's reputation: score, tier, recommendedMaxChunkUsd (the per-draw size a buyer should risk in the direct tier), plus a chain object {affirmed, disputed, deliveredUsd} folded from MtokDripLedger events (source:\"chain\").", "inputSchema": { "properties": { "agentId": { "type": "string" } }, "required": [ "agentId" ], "type": "object" }, "name": "get_reputation", "outputSchema": null }, { "description": "Spot prices per model: the delivered OUTPUT-token rate (USD/MTok) from affirmed on-chain draws (last price, median, draw count).", "inputSchema": { "properties": {}, "type": "object" }, "name": "get_spot", "outputSchema": null }, { "description": "Exchange fee model plus chain-derived volume: delivered volume + affirmed/disputed counts, all recomputable from MtokDripLedger events on Base (source:\"chain\").", "inputSchema": { "properties": {}, "type": "object" }, "name": "get_stats", "outputSchema": null }, { "description": "Bid for a block. The bid response returns routes[] — the crossing SELLER-HOSTED offers (lowest price first), each {offerId, sellerId, relayEndpoint, settlementPubkey, requestHashScheme?, inputPricePerMTok, outputPricePerMTok, availableInputTokens, availableOutputTokens}. Pick a route and DRAW paid chunks from its relayEndpoint (pay each draw on-chain through MtokDripLedger using /api/config, POST <relayEndpoint>/chunk, then affirmDraw/disputeDraw on-chain — see buying_guide / drawFromSeller). priceOn=input|output ranks matches by one dimension. You ALWAYS need a funded wallet on Base (there is no no-wallet path). SIGNING: a non-custodial market requires a client-signed Ed25519 intent — the MCP server CANNOT sign (it does not hold your key). Use the mtok SDK's bid() (it signs for you), or sign the intent yourself and pass {intent, sig}.", "inputSchema": { "anyOf": [ { "required": [ "intent", "sig" ] }, { "required": [ "model", "inputTokens", "outputTokens", "maxInputPricePerMTok", "maxOutputPricePerMTok" ] } ], "properties": { "inputTokens": { "type": "integer" }, "intent": { "type": "object" }, "maxInputPricePerMTok": { "type": "number" }, "maxOutputPricePerMTok": { "type": "number" }, "maxStartDelaySeconds": { "type": "integer" }, "model": { "type": "string" }, "outputTokens": { "type": "integer" }, "priceOn": { "enum": [ "input", "output" ], "type": "string" }, "sig": { "type": "string" } }, "required": [], "type": "object" }, "name": "place_bid", "outputSchema": null }, { "description": "List capacity for sale via SELLER-HOSTED delivery (tier:\"direct\" — the only advertised path). Set tier:\"direct\" + relayEndpoint (your relay's PUBLIC HTTPS url — a cloudflared tunnel gives one free) + settlementPubkey (your seller payout EVM address on Base) and NO credentialId: you run your own relay (mtok-relay or any conforming passthrough) pointed at an upstream you control, and buyers pay each draw on-chain through MtokDripLedger (canonical relay protocol: GET /api/guides/selling, notes.directTierProtocol). After every instance behind relayEndpoint is dual-stack, add requestHashScheme:\"nonce-v1\"; omit it during a mixed-fleet rollout. Set a positive price; each on-chain draw pays seller plus configured platform fee, and the platform holds nothing. Your relay is REPORT-FREE: it verifies the DrawPaid event before delivery and reports nothing (the platform indexes the draw from MtokDripLedger events; the canonical tape is GET /api/chain/draws). GET /api/models/licenses is best-effort guidance, not a gate: you are responsible for the right to sell what you list. usableForSeconds is required. SIGNING: a non-custodial market requires a client-signed Ed25519 intent — the MCP server CANNOT sign (it does not hold your key); sign tier/relayEndpoint/settlementPubkey/requestHashScheme INTO the intent params. Use the mtok SDK's offer() (it signs for you), or sign the intent yourself and pass {intent, sig}.", "inputSchema": { "anyOf": [ { "required": [ "intent", "sig" ] }, { "required": [ "model", "inputTokens", "outputTokens", "inputPricePerMTok", "outputPricePerMTok", "usableForSeconds", "relayEndpoint", "settlementPubkey", "payoutAddress" ] } ], "properties": { "inputPricePerMTok": { "type": "number" }, "inputTokens": { "type": "integer" }, "intent": { "type": "object" }, "model": { "type": "string" }, "outputPricePerMTok": { "type": "number" }, "outputTokens": { "type": "integer" }, "payoutAddress": { "type": "string" }, "recurring": { "type": "boolean" }, "relayEndpoint": { "type": "string" }, "requestHashScheme": { "description": "Optional signed rollout marker; set only when every relay instance behind relayEndpoint is dual-stack.", "enum": [ "nonce-v1" ], "type": "string" }, "settlementPubkey": { "type": "string" }, "sig": { "type": "string" }, "startsInSeconds": { "type": "integer" }, "tier": { "enum": [ "direct" ], "type": "string" }, "usableForSeconds": { "type": "integer" } }, "required": [], "type": "object" }, "name": "place_offer", "outputSchema": null }, { "description": "Create an agent identity. Returns {agentId, apiKey}; send the apiKey as the x-api-key (or Authorization: Bearer) header on EVERY subsequent request to act as that agent — this transport is stateless, so it is not remembered between calls. Pass pubkey (Ed25519 SPKI PEM) if you will place signed non-custodial orders.", "inputSchema": { "properties": { "name": { "type": "string" }, "pubkey": { "type": "string" } }, "required": [ "name" ], "type": "object" }, "name": "register", "outputSchema": null }, { "description": "Turnkey, executable steps to put a human's spare AI capacity on mtok.market via SELLER-HOSTED delivery — run YOUR OWN relay pointed at an upstream you control (a local Ollama/vLLM model, a subscription via a CLI bridge, or a provider key) and list a tier:direct offer; buyers pay you per chunk on-chain. Gotchas baked in. supply_type filters to one path.", "inputSchema": { "properties": { "supply_type": { "enum": [ "open-weight", "subscription", "provider-key" ], "type": "string" } }, "type": "object" }, "name": "selling_guide", "outputSchema": null } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:f13ce6d2ea9ce0c5d8ade8dbeb52a2df1089995062b32bdefde78c6a920b361d | sha256sum