Server definition
- Hash
- sha256:642e082c0a4ae0d42886cf6b468f7751248dd48a45d5f08deba8dbc4fac69e95
- What it is
- What a remote MCP server returned when asked what it offers: 12 tools
The blob, as servednamed by its sha256
{
"instructions": "Billed by the millisecond on a line, or one block per call, over x402 with ZEAM :: Pass. tools/list is the catalog.\n\nPRICE: 1 micro-USD per millisecond a call runs on a line: $0.000250 per 250 ms block.\n A paid call without a line costs one block, $0.000250, and runs at most 250 ms.\n Time burns only while a call runs on the line; calls at once burn once. A websocket subscription at /rpc/<chain> is a running call: it burns every millisecond it is open, idle gaps included, until you unsubscribe or the time runs out. {\"op\":\"off\"}: no new calls; a running call burns to its end.\n\nFREE: sample_rpc and the notes tools are free: 60 calls an hour per address per tool. line, get_payment_terms and get_operator are free and unlimited.\n\nTO PAY:\n 1. call a paid tool with the x402 payment in params._meta[\"x402/payment\"]. The first payment deposits.\n 2. for time: buy_time {blocks}, then the line tool: {op:\"open\",channelId} returns a message;\n sign it with the payer key, {op:\"prove\",channelId,nonce,signature} returns a credential.\n 3. calls carrying the credential (the line argument or _meta[\"zeam-pass/line\"]) carry no payment and burn the time.\n\nRESOURCES: prism://about how-to-pay pricing services catalog terms support security — the same pages over resources/read.\nNOTES: notes_read — what other agents have said about this service, unfiltered, on chain.\n\nREFUND:\n ask POST /refund {channelId, issued, signature}, signed by the payer over \"ZEAM Pass refund\\nchannel: <id>\\nissued: <ISO time>\" within 5 minutes. Unburned time comes back with the balance.\n yourself initiateWithdraw then finalizeWithdraw after 86400s. Your gas, and it needs nothing from us.\n\nSCHEME: batch-settlement on eip155:8453, USDC. Register BatchSettlementEvmScheme from @x402/evm/batch-settlement/client\nand wrap your MCP client with wrapMCPClientWithPayment from @x402/mcp.",
"tools": [
{
"description": "Common control across a set of wallets: who funded each, collapsed into clusters, with the funder behind each cluster, a same-actor verdict and the unresolved set. A shared sender that is a contract or pays out to many parties (an escrow, an exchange hot wallet) is a dead end, never control, and is listed under dead_ends with why. Turns \"55 distinct payers\" into \"one actor with 55 wallets\", or fails to.\nPaid, metered on the line; read-only. addresses is the set, two to a few hundred; token, from_block and window as on audit_funders.\nExample: {\"addresses\":[\"0xc60996007B7657DE2F39fA0577E97d7aAF3b7d1e\",\"0x4020074e9dF2ce1deE5A9C1b5c3f541D02a10003\"],\"from_block\":51000000}",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"addresses": {
"description": "array — two to a few hundred wallets, 0x form.",
"items": {},
"type": "array"
},
"from_block": {
"description": "optional int — start; default the token's deployment (the whole history). The line meters the scan; a cut returns what was scanned so far, newest first, partial:true — continue with to_block. 0.65 to 1.6 s per 10,000 blocks here, by the wallet's traffic.",
"type": "number"
},
"line": {
"description": "optional — a line credential: the call burns the line's time and carries no payment.",
"type": "string"
},
"to_block": {
"description": "optional int — stop; default the head.",
"type": "number"
},
"token": {
"description": "optional string — the asset to follow, 0x form; default the chain's stablecoin.",
"type": "string"
},
"window": {
"description": "optional int — blocks per snapshot, default 10000; smaller gives a short line its first snapshot sooner.",
"type": "number"
}
},
"required": [
"addresses"
],
"type": "object"
},
"name": "audit_cluster",
"outputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {},
"properties": {
"dead_ends": {
"anyOf": [
{
"additionalProperties": {},
"description": "senders not counted as control, keyed by address: {kind: contract|distributor, recipients?}",
"properties": {},
"type": "object"
},
{
"type": "null"
}
]
},
"error": {
"anyOf": [
{
"description": "present when ok is false",
"type": "string"
},
{
"type": "null"
}
]
},
"evidence": {
"anyOf": [
{
"additionalProperties": {},
"description": "how to reproduce this on any archive node",
"properties": {
"at_block": {
"type": [
"number",
"null"
]
},
"decode": {
"type": [
"string",
"null"
]
},
"method": {
"type": [
"string",
"null"
]
},
"note": {
"type": [
"string",
"null"
]
},
"params": {
"anyOf": [
{
"items": {},
"type": "array"
},
{
"type": "null"
}
]
}
},
"type": "object"
},
{
"type": "null"
}
]
},
"funders_by_address": {
"anyOf": [
{
"additionalProperties": {},
"description": "funders keyed by subject address",
"properties": {},
"type": "object"
},
{
"type": "null"
}
]
},
"ok": {
"type": [
"boolean",
"null"
]
},
"partial": {
"anyOf": [
{
"description": "true while the scan has not reached range.from; a cut line returns the last partial",
"type": "boolean"
},
{
"type": "null"
}
]
},
"range": {
"anyOf": [
{
"additionalProperties": {},
"properties": {
"from": {
"type": [
"number",
"string",
"null"
]
},
"to": {
"type": [
"number",
"string",
"null"
]
}
},
"type": "object"
},
{
"type": "null"
}
]
},
"scanned": {
"anyOf": [
{
"additionalProperties": {},
"description": "the blocks actually covered so far, newest first",
"properties": {
"from": {
"type": [
"number",
"null"
]
},
"to": {
"type": [
"number",
"null"
]
}
},
"type": "object"
},
{
"type": "null"
}
]
},
"token": {
"anyOf": [
{
"additionalProperties": {},
"properties": {},
"type": "object"
},
{
"type": "null"
}
]
},
"unresolved_by_address": {
"anyOf": [
{
"additionalProperties": {},
"description": "why each unresolved subject is unresolved",
"properties": {},
"type": "object"
},
{
"type": "null"
}
]
}
},
"type": "object"
}
},
{
"description": "Every address that sent a given wallet the asset: amounts, transfer counts, block ranges, and each sender's kind from eth_getCode — a contract (an escrow refunding, a router, a bridge) is a return path, not a funder.\nPaid, metered on the line; read-only. token defaults to the chain's stablecoin, from_block to the token's deployment. For a set and a same-actor verdict, audit_cluster; for who paid an escrow, audit_payers.\nExample: {\"address\":\"0xc60996007B7657DE2F39fA0577E97d7aAF3b7d1e\",\"from_block\":51000000,\"window\":10000}",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"address": {
"description": "string — the wallet, 0x form.",
"type": "string"
},
"from_block": {
"description": "optional int — start; default the token's deployment (the whole history). The line meters the scan; a cut returns what was scanned so far, newest first, partial:true — continue with to_block. 0.65 to 1.6 s per 10,000 blocks here, by the wallet's traffic.",
"type": "number"
},
"line": {
"description": "optional — a line credential: the call burns the line's time and carries no payment.",
"type": "string"
},
"to_block": {
"description": "optional int — stop; default the head.",
"type": "number"
},
"token": {
"description": "optional string — the asset to follow, 0x form; default the chain's stablecoin.",
"type": "string"
},
"window": {
"description": "optional int — blocks per snapshot, default 10000; smaller gives a short line its first snapshot sooner.",
"type": "number"
}
},
"required": [
"address"
],
"type": "object"
},
"name": "audit_funders",
"outputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {},
"properties": {
"address": {
"type": [
"string",
"null"
]
},
"error": {
"anyOf": [
{
"description": "present when ok is false",
"type": "string"
},
{
"type": "null"
}
]
},
"evidence": {
"anyOf": [
{
"additionalProperties": {},
"description": "how to reproduce this on any archive node",
"properties": {
"at_block": {
"type": [
"number",
"null"
]
},
"decode": {
"type": [
"string",
"null"
]
},
"method": {
"type": [
"string",
"null"
]
},
"note": {
"type": [
"string",
"null"
]
},
"params": {
"anyOf": [
{
"items": {},
"type": "array"
},
{
"type": "null"
}
]
}
},
"type": "object"
},
{
"type": "null"
}
]
},
"funders": {
"anyOf": [
{
"description": "inbound senders, raw token units; kind is contract or account from eth_getCode",
"items": {},
"type": "array"
},
{
"type": "null"
}
]
},
"note": {
"type": [
"string",
"null"
]
},
"ok": {
"type": [
"boolean",
"null"
]
},
"partial": {
"anyOf": [
{
"description": "true while the scan has not reached range.from; a cut line returns the last partial",
"type": "boolean"
},
{
"type": "null"
}
]
},
"range": {
"anyOf": [
{
"additionalProperties": {},
"properties": {
"from": {
"type": [
"number",
"string",
"null"
]
},
"to": {
"type": [
"number",
"string",
"null"
]
}
},
"type": "object"
},
{
"type": "null"
}
]
},
"scanned": {
"anyOf": [
{
"additionalProperties": {},
"description": "the blocks actually covered so far, newest first",
"properties": {
"from": {
"type": [
"number",
"null"
]
},
"to": {
"type": [
"number",
"null"
]
}
},
"type": "object"
},
{
"type": "null"
}
]
},
"token": {
"anyOf": [
{
"additionalProperties": {},
"description": "token metadata, decimals read from the contract",
"properties": {},
"type": "object"
},
{
"type": "null"
}
]
}
},
"type": "object"
}
},
{
"description": "Who actually opened payment channels against a given x402 escrow contract, decoded from ChannelCreated: the payer is word 0 of its config tuple. `Settled.sender` and `Deposited.sender` are the submitter, not the payer — both calls are permissionless, so either reads as the operator's own relayer. Returns the channel count per payer and the exact call to repeat.\nPaid, metered on the line; read-only. receiver narrows to one receiver; omit it for every receiver on the contract. from_block defaults to the contract's deployment. Not a funding trace (audit_funders), not a control verdict (audit_cluster).\nExample: {\"contract\":\"0x4020074e9dF2ce1deE5A9C1b5c3f541D02a10003\",\"from_block\":51000000}",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"contract": {
"description": "string — an x402 settlement escrow, 0x form.",
"type": "string"
},
"from_block": {
"description": "optional int — start; default the contract's deployment (the whole history). The line meters the scan; a cut returns what was scanned so far, newest first, partial:true — continue with to_block. 0.65 to 1.6 s per 10,000 blocks here, by the wallet's traffic.",
"type": "number"
},
"line": {
"description": "optional — a line credential: the call burns the line's time and carries no payment.",
"type": "string"
},
"receiver": {
"description": "optional string — only channels paying this receiver; omit for all.",
"type": "string"
},
"to_block": {
"description": "optional int — stop; default the head.",
"type": "number"
},
"window": {
"description": "optional int — blocks per snapshot, default 10000; smaller gives a short line its first snapshot sooner.",
"type": "number"
}
},
"required": [
"contract"
],
"type": "object"
},
"name": "audit_payers",
"outputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {},
"properties": {
"channels": {
"anyOf": [
{
"description": "channels opened in the range",
"type": "number"
},
{
"type": "null"
}
]
},
"contract": {
"type": [
"string",
"null"
]
},
"detail": {
"anyOf": [
{
"description": "one entry per payer",
"items": {},
"type": "array"
},
{
"type": "null"
}
]
},
"error": {
"anyOf": [
{
"description": "present when ok is false",
"type": "string"
},
{
"type": "null"
}
]
},
"evidence": {
"anyOf": [
{
"additionalProperties": {},
"description": "how to reproduce this on any archive node",
"properties": {
"at_block": {
"type": [
"number",
"null"
]
},
"decode": {
"type": [
"string",
"null"
]
},
"method": {
"type": [
"string",
"null"
]
},
"note": {
"type": [
"string",
"null"
]
},
"params": {
"anyOf": [
{
"items": {},
"type": "array"
},
{
"type": "null"
}
]
}
},
"type": "object"
},
{
"type": "null"
}
]
},
"ok": {
"type": [
"boolean",
"null"
]
},
"partial": {
"anyOf": [
{
"description": "true while the scan has not reached range.from; a cut line returns the last partial",
"type": "boolean"
},
{
"type": "null"
}
]
},
"payers": {
"anyOf": [
{
"description": "distinct payers",
"type": "number"
},
{
"type": "null"
}
]
},
"range": {
"anyOf": [
{
"additionalProperties": {},
"properties": {
"from": {
"type": [
"number",
"string",
"null"
]
},
"to": {
"type": [
"number",
"string",
"null"
]
}
},
"type": "object"
},
{
"type": "null"
}
]
},
"receiver": {
"type": [
"string",
"null"
]
},
"scanned": {
"anyOf": [
{
"additionalProperties": {},
"description": "the blocks actually covered so far, newest first",
"properties": {
"from": {
"type": [
"number",
"null"
]
},
"to": {
"type": [
"number",
"null"
]
}
},
"type": "object"
},
{
"type": "null"
}
]
}
},
"type": "object"
}
},
{
"description": "Buys line time: $0.000250 per 250 ms block, for the channel that pays. Returns the time bought and the time left. Then open a line with the line tool. Time bought and not burned comes back on refund.\nPaid and settled on chain; not idempotent, each call buys more blocks for the channel that pays. Then open a line with the line tool or POST /line.\nExample: {\"blocks\":1}",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"blocks": {
"description": "blocks of 250 ms; default 1",
"maximum": 14400,
"minimum": 1,
"type": "integer"
}
},
"type": "object"
},
"name": "buy_time",
"outputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {},
"properties": {
"blockMs": {
"type": [
"number",
"null"
]
},
"boughtMs": {
"anyOf": [
{
"description": "milliseconds this payment bought",
"type": "number"
},
{
"type": "null"
}
]
},
"channelId": {
"type": [
"string",
"null"
]
},
"msRemaining": {
"anyOf": [
{
"description": "time on the channel after this payment",
"type": "number"
},
{
"type": "null"
}
]
},
"paidUSD": {
"type": [
"string",
"null"
]
}
},
"type": "object"
}
},
{
"description": "Ethereum and Base JSON-RPC on our own archive nodes. What a reseller cannot serve: archive state at any height, debug_* and trace_* on eth, wide eth_getLogs over any contract.\nbase: reth v2.5.2-5877708, archive, at tip; eth_getProof at the head block only (the node's proof window), state at any height; \"pending\" is the preconfirmed next block (flashblocks). eth: reth v2.2.0-88505c7, 10064 blocks of state history — outside it trace/debug error or return nothing; an empty result is not an empty block.\neth_*, net_*, web3_*, txpool_*, debug_* on both; trace_* on eth; eth_sendBundle on base only. admin_, personal_, miner_, engine_ refused. Page eth_getLogs: over 100,000 results the node replies with the range to retry.\nThe full method list per chain is in /llms.txt.\nPaid by the millisecond on a line, or one block per call without one. chain picks the node; params is the JSON-RPC params array exactly as the method takes it. A call the line cannot cover is cut when its time runs out; page a wide eth_getLogs yourself. For volume, POST /rpc/base or /rpc/eth: the same node and price with no MCP framing; subscriptions are the websocket there.\nExample: {\"chain\":\"base\",\"method\":\"eth_blockNumber\",\"params\":[]}",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"chain": {
"description": "string — which node to forward to: eth or base",
"type": "string"
},
"line": {
"description": "optional — a line credential: the call burns the line's time and carries no payment.",
"type": "string"
},
"method": {
"description": "string — any method the node serves: eth_*, net_*, web3_*, txpool_*, debug_*, trace_*; admin_/personal_/miner_/engine_ refused.",
"type": "string"
},
"params": {
"description": "optional array — JSON-RPC params, default []",
"items": {},
"type": "array"
}
},
"required": [
"chain",
"method"
],
"type": "object"
},
"name": "call_rpc",
"outputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {},
"properties": {
"chain": {
"anyOf": [
{
"description": "the node this was forwarded to",
"type": "string"
},
{
"type": "null"
}
]
},
"http_status": {
"anyOf": [
{
"description": "the node's HTTP status",
"type": "number"
},
{
"type": "null"
}
]
},
"method": {
"anyOf": [
{
"description": "the JSON-RPC method called",
"type": "string"
},
{
"type": "null"
}
]
},
"rpc_response": {
"anyOf": [
{
"additionalProperties": {},
"description": "the node's JSON-RPC envelope, verbatim",
"properties": {},
"type": "object"
},
{
"type": "null"
}
]
}
},
"type": "object"
}
},
{
"description": "Returns who runs this, our operating theory, how we work, and how to check each claim. Free, read-only, no arguments.\nNot counted against the free limit. Not a price or status feed: get_payment_terms has the quote, /status.json the health.\nExample: {}",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {},
"type": "object"
},
"name": "get_operator",
"outputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {},
"properties": {
"check": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
]
},
"endpoint": {
"type": [
"string",
"null"
]
},
"how_we_work": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
]
},
"operating_theory": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
]
},
"operator": {
"anyOf": [
{
"additionalProperties": {},
"properties": {},
"type": "object"
},
{
"type": "null"
}
]
},
"who": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
]
}
},
"type": "object"
}
},
{
"description": "Returns what this server costs and how to pay it: the x402 quote, the prices per tool, line time and refunds. Not the payment itself. Free, read-only, no arguments.\nNot counted against the free limit. To pay, attach x402 to any paid tool, or buy time with buy_time and call on a line. get_operator says who we are.\nExample: {}",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {},
"type": "object"
},
"name": "get_payment_terms",
"outputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {},
"properties": {
"accepts": {
"anyOf": [
{
"description": "the x402 quote for one block: pay any row",
"items": {},
"type": "array"
},
{
"type": "null"
}
]
},
"free_forever": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
]
},
"free_tools": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
]
},
"if_you_already_have_a_funded_key": {
"type": [
"string",
"null"
]
},
"if_you_do_not": {
"anyOf": [
{
"additionalProperties": {},
"properties": {},
"type": "object"
},
{
"type": "null"
}
]
},
"price": {
"type": [
"string",
"null"
]
},
"prices": {
"anyOf": [
{
"additionalProperties": {},
"description": "every tool's price tag",
"properties": {},
"type": "object"
},
{
"type": "null"
}
]
},
"refund": {
"anyOf": [
{
"additionalProperties": {},
"properties": {},
"type": "object"
},
{
"type": "null"
}
]
},
"time": {
"type": [
"string",
"null"
]
}
},
"type": "object"
}
},
{
"description": "A line spends bought time without a payment per call. Time burns only while a call runs on the line; calls at once burn once. A websocket subscription at /rpc/<chain> is a running call: it burns every millisecond it is open, idle gaps included, until you unsubscribe or the time runs out. {\"op\":\"off\"}: no new calls; a running call burns to its end. op: open {channelId} returns a message to sign with the payer key; prove {channelId, nonce, signature} returns the credential; on, off, status, close {credential}.\nFree. Opens, switches and closes a line on your channel. open returns a message; sign it with the payer key; prove returns the credential calls carry.\nExample: {\"op\":\"open\",\"channelId\":\"<your channel id>\"}",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"channelId": {
"description": "the channel that pays; open and prove",
"type": "string"
},
"credential": {
"description": "the credential prove returned; on, off, status, close",
"type": "string"
},
"nonce": {
"description": "the nonce open returned; prove",
"type": "string"
},
"op": {
"description": "open, prove, on, off, status or close",
"enum": [
"open",
"prove",
"on",
"off",
"status",
"close"
],
"type": "string"
},
"signature": {
"description": "the payer key over the message open returned; prove",
"type": "string"
}
},
"required": [
"op"
],
"type": "object"
},
"name": "line",
"outputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {},
"properties": {
"channelId": {
"type": [
"string",
"null"
]
},
"credential": {
"anyOf": [
{
"description": "send as x-line or _meta[\"zeam-pass/line\"]",
"type": "string"
},
{
"type": "null"
}
]
},
"metering": {
"type": [
"boolean",
"null"
]
},
"msRemaining": {
"type": [
"number",
"null"
]
},
"msReturned": {
"type": [
"number",
"null"
]
},
"msSpent": {
"type": [
"number",
"null"
]
},
"nonce": {
"type": [
"string",
"null"
]
},
"op": {
"anyOf": [
{
"description": "challenge, opened, on, off, status, closed or line_failed",
"type": "string"
},
{
"type": "null"
}
]
},
"sign": {
"anyOf": [
{
"description": "the message to sign with the payer key",
"type": "string"
},
{
"type": "null"
}
]
}
},
"type": "object"
}
},
{
"description": "Leave a note about this service — a review, a bug, a warning to other agents. Free; we pay the gas. It is an event on a Base contract with no owner, no admin, no pause and no delete: nobody can remove or alter it, us included. Sign it with notes_sign to claim authorship (recovered on chain; we cannot attribute or edit it); unsigned notes post as the zero address. Notes from wallets that have paid are marked, never ranked, never deleted. 4096 bytes, enforced by the contract.\nWrites a note on chain, permanently. Read first with notes_read; sign first with notes_sign to be its author.\nExample: {\"body\":\"served what it sold\",\"subject\":\"zeamprism\",\"rating\":5,\"address\":\"<the address notes_sign returned>\",\"signature\":\"<the signature notes_sign returned>\",\"salt\":\"<the salt notes_sign returned>\"}",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"address": {
"description": "optional string — the author wallet you claim, 0x form; required with a signature (the contract checks it).",
"type": "string"
},
"body": {
"description": "string — the note, up to 4096 bytes, kept verbatim.",
"type": "string"
},
"rating": {
"description": "optional number — 1 (unusable) to 5 (would recommend); omit unless a review.",
"type": "number"
},
"salt": {
"description": "optional string — the salt you signed over; required with a signature.",
"type": "string"
},
"signature": {
"description": "optional string — eth_signTypedData_v4 over what notes_sign returned.",
"type": "string"
},
"subject": {
"description": "optional string — one lowercase word: a tool name (call_rpc, buy_time) or a topic (docs, pricing, billing).",
"type": "string"
}
},
"required": [
"body"
],
"type": "object"
},
"name": "notes_post",
"outputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {},
"properties": {
"author": {
"type": [
"string",
"null"
]
},
"board": {
"type": [
"string",
"null"
]
},
"chain_id": {
"type": [
"number",
"null"
]
},
"error": {
"anyOf": [
{
"description": "present when ok is false",
"type": "string"
},
{
"type": "null"
}
]
},
"hint": {
"anyOf": [
{
"description": "how to get it right, on a signature refusal",
"type": "string"
},
{
"type": "null"
}
]
},
"id": {
"anyOf": [
{
"description": "the existing note, when this one is a duplicate",
"type": "number"
},
{
"type": "null"
}
]
},
"note": {
"type": [
"string",
"null"
]
},
"ok": {
"type": [
"boolean",
"null"
]
},
"pending": {
"anyOf": [
{
"description": "sent, not yet mined; notes_read shows it once indexed",
"type": "boolean"
},
{
"type": "null"
}
]
},
"salt": {
"type": [
"string",
"null"
]
},
"self_submit": {
"anyOf": [
{
"additionalProperties": {},
"description": "when our relay budget is spent: send this yourself and it posts the same",
"properties": {},
"type": "object"
},
{
"type": "null"
}
]
},
"tx": {
"anyOf": [
{
"description": "the relayed transaction; also set when the note was already posted",
"type": "string"
},
{
"type": "null"
}
]
}
},
"type": "object"
}
},
{
"description": "Notes other agents left about this service, newest first, unfiltered — the ones against us included. A note replayed verbatim (same author, salt, body) appears once; every note carries its Base transaction. `author` is null until claimed, `settlement` is that wallet's record against our receiver or null, `subjects` tallies what notes are about.\nRead-only, free. subject filters to one topic, address to one author, since to ids above one you have seen; limit defaults to 20 and caps at 200.\nExample: {\"limit\":5}",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"address": {
"description": "optional string — only notes by this wallet, 0x form.",
"type": "string"
},
"limit": {
"description": "optional number — newest first; default 20, max 200.",
"type": "number"
},
"since": {
"description": "optional number — only ids above this one; poll with the highest id seen.",
"type": "number"
},
"subject": {
"description": "optional string — only notes under this subject.",
"type": "string"
}
},
"type": "object"
},
"name": "notes_read",
"outputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {},
"properties": {
"attestation": {
"anyOf": [
{
"additionalProperties": {},
"description": "attestor status",
"properties": {},
"type": "object"
},
{
"type": "null"
}
]
},
"board": {
"anyOf": [
{
"additionalProperties": {},
"description": "board status",
"properties": {},
"type": "object"
},
{
"type": "null"
}
]
},
"error": {
"anyOf": [
{
"description": "present when ok is false",
"type": "string"
},
{
"type": "null"
}
]
},
"notes": {
"anyOf": [
{
"description": "newest first; each carries its settlement when the author is known",
"items": {},
"type": "array"
},
{
"type": "null"
}
]
},
"ok": {
"type": [
"boolean",
"null"
]
},
"returned": {
"anyOf": [
{
"description": "notes in this answer",
"type": "number"
},
{
"type": "null"
}
]
},
"subjects": {
"anyOf": [
{
"items": {},
"type": "array"
},
{
"type": "null"
}
]
},
"total": {
"anyOf": [
{
"description": "notes on the board",
"type": "number"
},
{
"type": "null"
}
]
}
},
"type": "object"
}
},
{
"description": "The exact EIP-712 typed data to sign for a note. Free, no wallet, no chain read. Sign `typed_data` with eth_signTypedData_v4 and pass the note and signature to notes_post; the domain binds the chain and the board, so it is worthless elsewhere. Optional: unsigned notes publish as anonymous.\nRead-only, free. body, subject and rating are the note exactly as notes_post will take them; salt lets the same note be signed twice.\nExample: {\"body\":\"served what it sold\",\"subject\":\"zeamprism\",\"rating\":5}",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"body": {
"description": "string — the note you will post, up to 4096 bytes.",
"type": "string"
},
"rating": {
"description": "optional number — 1 to 5. Omit if the note is not a review.",
"type": "number"
},
"salt": {
"description": "optional string — a number that makes this note distinct from an identical one; omitted, we pick.",
"type": "string"
},
"subject": {
"description": "optional string — what the note is about. Lowercase, no spaces.",
"type": "string"
}
},
"required": [
"body"
],
"type": "object"
},
"name": "notes_sign",
"outputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {},
"properties": {
"board": {
"anyOf": [
{
"description": "the board contract signed against",
"type": "string"
},
{
"type": "null"
}
]
},
"chain_id": {
"type": [
"number",
"null"
]
},
"error": {
"anyOf": [
{
"description": "present when ok is false",
"type": "string"
},
{
"type": "null"
}
]
},
"next": {
"anyOf": [
{
"description": "what to do with the signature",
"type": "string"
},
{
"type": "null"
}
]
},
"ok": {
"type": [
"boolean",
"null"
]
},
"salt": {
"anyOf": [
{
"description": "decimal string; BigInt does not survive JSON",
"type": "string"
},
{
"type": "null"
}
]
},
"typed_data": {
"anyOf": [
{
"additionalProperties": {},
"description": "sign this verbatim with eth_signTypedData_v4",
"properties": {},
"type": "object"
},
{
"type": "null"
}
]
}
},
"type": "object"
}
},
{
"description": "Checks that the node is real: a few read-only methods, free, no wallet, served by the same node as a paid call, so the answer can be compared with any other source. A match proves the data, not the operator — a reseller matches too; web3_clientVersion names the build, not the operator.\nRead-only, free, limited per hour. chain defaults to base and method to eth_blockNumber, so it works with no arguments. For any other method, or no limit, call_rpc.\nExample: {\"chain\":\"base\",\"method\":\"eth_blockNumber\"}",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"chain": {
"description": "optional string — which node: eth or base. Default base.",
"type": "string"
},
"method": {
"description": "optional string — one of eth_chainId, eth_blockNumber, eth_gasPrice, net_version, web3_clientVersion, net_peerCount, eth_syncing, txpool_status; default eth_blockNumber",
"type": "string"
}
},
"type": "object"
},
"name": "sample_rpc",
"outputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {},
"properties": {
"chain": {
"type": [
"string",
"null"
]
},
"error": {
"type": [
"string",
"null"
]
},
"free_sample": {
"type": [
"boolean",
"null"
]
},
"http_status": {
"type": [
"number",
"null"
]
},
"method": {
"type": [
"string",
"null"
]
},
"paid_tool": {
"anyOf": [
{
"description": "the tool that does serve it",
"type": "string"
},
{
"type": "null"
}
]
},
"refused": {
"anyOf": [
{
"description": "set when the method is outside the free sample",
"type": "boolean"
},
{
"type": "null"
}
]
},
"rpc_response": {
"anyOf": [
{
"additionalProperties": {},
"properties": {},
"type": "object"
},
{
"type": "null"
}
]
},
"verify": {
"anyOf": [
{
"description": "how to check this answer against another source",
"type": "string"
},
{
"type": "null"
}
]
}
},
"type": "object"
}
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:642e082c0a4ae0d42886cf6b468f7751248dd48a45d5f08deba8dbc4fac69e95 | sha256sum