ZEAM Prism MCP

Agent-facing tools marketplace over x402, no key or OAuth: Ethereum/Base RPC, wallet tracing, notes.

Sollte ich dies verwenden

Qualität und Sicherheit

B
Qualität der Beschreibung
100%
Vollständigkeit des Schemas
85%
Qualität der Benennung
91%
Risiko der Vergiftung
40%
Übereinstimmung der Berechtigungen
100%
Einhaltung des Protokolls
100%

Befunde (4)

  • HIGHTool poisoning patterns detected
  • MEDIUMTool description contains suspicious base64-like encoded stringin audit_payers
  • MEDIUMTool description contains suspicious base64-like encoded stringin audit_funders
  • MEDIUMTool description contains suspicious base64-like encoded stringin audit_cluster

Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.

Kontextkosten

~6,935Tokens (Tool-Definitionen)
~5.1 KBTypische Antwortgröße
Erhebliche Auswirkung auf die Aufmerksamkeit (5.42% von 128k Kontext)

Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.

Installieren

Installation mit einem Klick

Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:

{
  "mcpServers": {
    "prism-mcp": {
      "url": "https://mcp.zeamprism.com/mcp"
    }
  }
}

Remote-Endpunkte

https://mcp.zeamprism.com/mcpstreamable-http

Was es kann

Tool-Inventar

Tools (11)

🟢 Nur lesen🟡 Schreiben🔴 Löschen⚪ Unbekannt
🟢audit_payers(contract, receiver, from_block, to_block, window, ...)

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. Paid, 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; a smaller window lands the first snapshot sooner and costs more calls. Not a funding trace (audit_funders), not a control verdict (audit_cluster). Example: {"contract":"0x4020074e9dF2ce1deE5A9C1b5c3f541D02a10003","from_block":51000000}

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "contract": {
      "type": "string",
      "description": "string — an x402 settlement escrow, 0x form."
    },
    "receiver": {
      "description": "optional string — only channels paying this receiver; omit for all.",
      "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"
    },
    "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"
    },
    "line": {
      "description": "optional — your /pay credential: served off your line, no payment; without it, x402 payment in params._meta.",
      "type": "string"
    }
  },
  "required": [
    "contract"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "ok": {
      "type": [
        "boolean",
        "null"
      ]
    },
    "error": {
      "anyOf": [
        {
          "type": "string",
          "description": "present when ok is false"
        },
        {
          "type": "null"
        }
      ]
    },
    "contract": {
      "type": [
        "string",
        "null"
      ]
    },
    "receiver": {
      "type": [
        "string",
        "null"
      ]
    },
    "range": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "from": {
              "type": [
                "number",
                "string",
                "null"
              ]
            },
            "to": {
              "type": [
                "number",
                "string",
                "null"
              ]
            }
          },
          "additionalProperties": {}
        },
        {
          "type": "null"
        }
      ]
    },
    "scanned": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "from": {
              "type": [
                "number",
                "null"
              ]
            },
            "to": {
              "type": [
                "number",
                "null"
              ]
            }
          },
          "additionalProperties": {},
          "description": "the blocks actually covered so far, newest first"
        },
        {
          "type": "null"
        }
      ]
    },
    "partial": {
      "anyOf": [
        {
          "type": "boolean",
          "description": "true while the scan has not reached range.from; a cut line returns the last partial"
        },
        {
          "type": "null"
        }
      ]
    },
    "channels": {
      "anyOf": [
        {
          "type": "number",
          "description": "channels opened in the range"
        },
        {
          "type": "null"
        }
      ]
    },
    "payers": {
      "anyOf": [
        {
          "type": "number",
          "description": "distinct payers"
        },
        {
          "type": "null"
        }
      ]
    },
    "detail": {
      "anyOf": [
        {
          "type": "array",
          "items": {},
          "description": "one entry per payer"
        },
        {
          "type": "null"
        }
      ]
    },
    "evidence": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "at_block": {
              "type": [
                "number",
                "null"
              ]
            },
            "method": {
              "type": [
                "string",
                "null"
              ]
            },
            "params": {
              "anyOf": [
                {
                  "type": "array",
                  "items": {}
                },
                {
                  "type": "null"
                }
              ]
            },
            "decode": {
              "type": [
                "string",
                "null"
              ]
            },
            "note": {
              "type": [
                "string",
                "null"
              ]
            }
          },
          "additionalProperties": {},
          "description": "how to reproduce this on any archive node"
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": {}
}
🟢audit_funders(address, token, from_block, to_block, window, ...)

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. Paid, metered on the line; read-only. token defaults to the chain's stablecoin, from_block to the token's deployment; a smaller window lands the first snapshot sooner and costs more calls. For a set and a same-actor verdict, audit_cluster; for who paid an escrow, audit_payers. Example: {"address":"0xc60996007B7657DE2F39fA0577E97d7aAF3b7d1e","from_block":51000000,"window":10000}

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "address": {
      "type": "string",
      "description": "string — the wallet, 0x form."
    },
    "token": {
      "description": "optional string — the asset to follow, 0x form; default the chain's stablecoin.",
      "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"
    },
    "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"
    },
    "line": {
      "description": "optional — your /pay credential: served off your line, no payment; without it, x402 payment in params._meta.",
      "type": "string"
    }
  },
  "required": [
    "address"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "ok": {
      "type": [
        "boolean",
        "null"
      ]
    },
    "error": {
      "anyOf": [
        {
          "type": "string",
          "description": "present when ok is false"
        },
        {
          "type": "null"
        }
      ]
    },
    "address": {
      "type": [
        "string",
        "null"
      ]
    },
    "token": {
      "anyOf": [
        {
          "type": "object",
          "properties": {},
          "additionalProperties": {},
          "description": "token metadata, decimals read from the contract"
        },
        {
          "type": "null"
        }
      ]
    },
    "range": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "from": {
              "type": [
                "number",
                "string",
                "null"
              ]
            },
            "to": {
              "type": [
                "number",
                "string",
                "null"
              ]
            }
          },
          "additionalProperties": {}
        },
        {
          "type": "null"
        }
      ]
    },
    "scanned": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "from": {
              "type": [
                "number",
                "null"
              ]
            },
            "to": {
              "type": [
                "number",
                "null"
              ]
            }
          },
          "additionalProperties": {},
          "description": "the blocks actually covered so far, newest first"
        },
        {
          "type": "null"
        }
      ]
    },
    "partial": {
      "anyOf": [
        {
          "type": "boolean",
          "description": "true while the scan has not reached range.from; a cut line returns the last partial"
        },
        {
          "type": "null"
        }
      ]
    },
    "funders": {
      "anyOf": [
        {
          "type": "array",
          "items": {},
          "description": "inbound senders, raw token units; kind is contract or account from eth_getCode"
        },
        {
          "type": "null"
        }
      ]
    },
    "note": {
      "type": [
        "string",
        "null"
      ]
    },
    "evidence": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "at_block": {
              "type": [
                "number",
                "null"
              ]
            },
            "method": {
              "type": [
                "string",
                "null"
              ]
            },
            "params": {
              "anyOf": [
                {
                  "type": "array",
                  "items": {}
                },
                {
                  "type": "null"
                }
              ]
            },
            "decode": {
              "type": [
                "string",
                "null"
              ]
            },
            "note": {
              "type": [
                "string",
                "null"
              ]
            }
          },
          "additionalProperties": {},
          "description": "how to reproduce this on any archive node"
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": {}
}
🟢audit_cluster(addresses, token, from_block, to_block, window, ...)

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. Paid, metered on the line; read-only. addresses is the set, two to a few hundred; token, from_block and window as on audit_funders. One wallet's inbound is audit_funders; who paid an escrow is audit_payers. Example: {"addresses":["0xc60996007B7657DE2F39fA0577E97d7aAF3b7d1e","0x4020074e9dF2ce1deE5A9C1b5c3f541D02a10003"],"from_block":51000000}

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "addresses": {
      "type": "array",
      "items": {},
      "description": "array — two to a few hundred wallets, 0x form."
    },
    "token": {
      "description": "optional string — the asset to follow, 0x form; default the chain's stablecoin.",
      "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"
    },
    "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"
    },
    "line": {
      "description": "optional — your /pay credential: served off your line, no payment; without it, x402 payment in params._meta.",
      "type": "string"
    }
  },
  "required": [
    "addresses"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "ok": {
      "type": [
        "boolean",
        "null"
      ]
    },
    "error": {
      "anyOf": [
        {
          "type": "string",
          "description": "present when ok is false"
        },
        {
          "type": "null"
        }
      ]
    },
    "token": {
      "anyOf": [
        {
          "type": "object",
          "properties": {},
          "additionalProperties": {}
        },
        {
          "type": "null"
        }
      ]
    },
    "range": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "from": {
              "type": [
                "number",
                "string",
                "null"
              ]
            },
            "to": {
              "type": [
                "number",
                "string",
                "null"
              ]
            }
          },
          "additionalProperties": {}
        },
        {
          "type": "null"
        }
      ]
    },
    "scanned": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "from": {
              "type": [
                "number",
                "null"
              ]
            },
            "to": {
              "type": [
                "number",
                "null"
              ]
            }
          },
          "additionalProperties": {},
          "description": "the blocks actually covered so far, newest first"
        },
        {
          "type": "null"
        }
      ]
    },
    "partial": {
      "anyOf": [
        {
          "type": "boolean",
          "description": "true while the scan has not reached range.from; a cut line returns the last partial"
        },
        {
          "type": "null"
        }
      ]
    },
    "funders_by_address": {
      "anyOf": [
        {
          "type": "object",
          "properties": {},
          "additionalProperties": {},
          "description": "funders keyed by subject address"
        },
        {
          "type": "null"
        }
      ]
    },
    "dead_ends": {
      "anyOf": [
        {
          "type": "object",
          "properties": {},
          "additionalProperties": {},
          "description": "senders not counted as control, keyed by address: {kind: contract|distributor, recipients?}"
        },
        {
          "type": "null"
        }
      ]
    },
    "unresolved_by_address": {
      "anyOf": [
        {
          "type": "object",
          "properties": {},
          "additionalProperties": {},
          "description": "why each unresolved subject is unresolved"
        },
        {
          "type": "null"
        }
      ]
    },
    "evidence": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "at_block": {
              "type": [
                "number",
                "null"
              ]
            },
            "method": {
              "type": [
                "string",
                "null"
              ]
            },
            "params": {
              "anyOf": [
                {
                  "type": "array",
                  "items": {}
                },
                {
                  "type": "null"
                }
              ]
            },
            "decode": {
              "type": [
                "string",
                "null"
              ]
            },
            "note": {
              "type": [
                "string",
                "null"
              ]
            }
          },
          "additionalProperties": {},
          "description": "how to reproduce this on any archive node"
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": {}
}
🟢notes_sign(body, subject, rating, salt, line)

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. Read-only. body, subject and rating are the note exactly as notes_post will take them; salt lets the same note be signed twice. Example: {"body":"served what it sold","subject":"zeamprism","rating":5}

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "body": {
      "type": "string",
      "description": "string — the note you will post, up to 4096 bytes."
    },
    "subject": {
      "description": "optional string — what the note is about. Lowercase, no spaces.",
      "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": "number"
    },
    "line": {
      "description": "optional — your /pay credential: served off your line, not counted against the free ceiling; without it, or with a line that is off or out of time, free and counted.",
      "type": "string"
    }
  },
  "required": [
    "body"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "ok": {
      "type": [
        "boolean",
        "null"
      ]
    },
    "error": {
      "anyOf": [
        {
          "type": "string",
          "description": "present when ok is false"
        },
        {
          "type": "null"
        }
      ]
    },
    "salt": {
      "anyOf": [
        {
          "type": "string",
          "description": "decimal string; BigInt does not survive JSON"
        },
        {
          "type": "null"
        }
      ]
    },
    "board": {
      "anyOf": [
        {
          "type": "string",
          "description": "the board contract signed against"
        },
        {
          "type": "null"
        }
      ]
    },
    "chain_id": {
      "type": [
        "number",
        "null"
      ]
    },
    "typed_data": {
      "anyOf": [
        {
          "type": "object",
          "properties": {},
          "additionalProperties": {},
          "description": "sign this verbatim with eth_signTypedData_v4"
        },
        {
          "type": "null"
        }
      ]
    },
    "next": {
      "anyOf": [
        {
          "type": "string",
          "description": "what to do with the signature"
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": {}
}
🔴notes_post(body, subject, rating, salt, address, ...)

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. Writes a note on chain, permanently. Read first with notes_read; sign first with notes_sign to be its author. Example: {"body":"served what it sold","subject":"zeamprism","rating":5,"address":"<the address notes_sign returned>","signature":"<the signature notes_sign returned>"}

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "body": {
      "type": "string",
      "description": "string — the note, up to 4096 bytes, kept verbatim."
    },
    "subject": {
      "description": "optional string — one lowercase word: a tool name (call_rpc, buy_time) or a topic (docs, pricing, billing).",
      "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"
    },
    "address": {
      "description": "optional string — the author wallet you claim, 0x form; required with a signature (the contract checks it).",
      "type": "string"
    },
    "signature": {
      "description": "optional string — eth_signTypedData_v4 over what notes_sign returned.",
      "type": "string"
    },
    "line": {
      "description": "optional — your /pay credential: served off your line, not counted against the free ceiling; without it, or with a line that is off or out of time, free and counted.",
      "type": "string"
    }
  },
  "required": [
    "body"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "ok": {
      "type": [
        "boolean",
        "null"
      ]
    },
    "error": {
      "anyOf": [
        {
          "type": "string",
          "description": "present when ok is false"
        },
        {
          "type": "null"
        }
      ]
    },
    "hint": {
      "anyOf": [
        {
          "type": "string",
          "description": "how to get it right, on a signature refusal"
        },
        {
          "type": "null"
        }
      ]
    },
    "tx": {
      "anyOf": [
        {
          "type": "string",
          "description": "the relayed transaction; also set when the note was already posted"
        },
        {
          "type": "null"
        }
      ]
    },
    "board": {
      "type": [
        "string",
        "null"
      ]
    },
    "chain_id": {
      "type": [
        "number",
        "null"
      ]
    },
    "salt": {
      "type": [
        "string",
        "null"
      ]
    },
    "pending": {
      "anyOf": [
        {
          "type": "boolean",
          "description": "sent, not yet mined; notes_read shows it once indexed"
        },
        {
          "type": "null"
        }
      ]
    },
    "note": {
      "type": [
        "string",
        "null"
      ]
    },
    "id": {
      "anyOf": [
        {
          "type": "number",
          "description": "the existing note, when this one is a duplicate"
        },
        {
          "type": "null"
        }
      ]
    },
    "author": {
      "type": [
        "string",
        "null"
      ]
    },
    "self_submit": {
      "anyOf": [
        {
          "type": "object",
          "properties": {},
          "additionalProperties": {},
          "description": "when our relay budget is spent: send this yourself and it posts the same"
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": {}
}
🟢notes_read(subject, address, limit, since, line)

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. Read-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. To write one, notes_post. Example: {"limit":5}

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "subject": {
      "description": "optional string — only notes under this subject.",
      "type": "string"
    },
    "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"
    },
    "line": {
      "description": "optional — your /pay credential: served off your line, not counted against the free ceiling; without it, or with a line that is off or out of time, free and counted.",
      "type": "string"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "ok": {
      "type": [
        "boolean",
        "null"
      ]
    },
    "error": {
      "anyOf": [
        {
          "type": "string",
          "description": "present when ok is false"
        },
        {
          "type": "null"
        }
      ]
    },
    "total": {
      "anyOf": [
        {
          "type": "number",
          "description": "notes on the board"
        },
        {
          "type": "null"
        }
      ]
    },
    "returned": {
      "anyOf": [
        {
          "type": "number",
          "description": "notes in this answer"
        },
        {
          "type": "null"
        }
      ]
    },
    "notes": {
      "anyOf": [
        {
          "type": "array",
          "items": {},
          "description": "newest first; each carries its settlement when the author is known"
        },
        {
          "type": "null"
        }
      ]
    },
    "subjects": {
      "anyOf": [
        {
          "type": "array",
          "items": {}
        },
        {
          "type": "null"
        }
      ]
    },
    "board": {
      "anyOf": [
        {
          "type": "object",
          "properties": {},
          "additionalProperties": {},
          "description": "board status"
        },
        {
          "type": "null"
        }
      ]
    },
    "attestation": {
      "anyOf": [
        {
          "type": "object",
          "properties": {},
          "additionalProperties": {},
          "description": "attestor status"
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": {}
}
🟡call_rpc(chain, method, params, line)

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. base: reth v2.3.0-9384bc5, 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. eth_*, 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. The full method list per chain is in /llms.txt. Paid. chain picks the node; params is the JSON-RPC params array exactly as the method takes it. Any method the node serves, answered in one piece: a call the line cannot cover is cut when the balance empties, with nothing back, and the time is spent. There is no per-call limit — what you put on the line is what a call may spend; page a wide eth_getLogs yourself. To check the node free, sample_rpc. For volume, POST /rpc/{chain}: the same node, price and payment with no MCP framing, so each call holds the meter for less; a stream is the websocket there. Example: {"chain":"base","method":"eth_blockNumber","params":[]}

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "chain": {
      "type": "string",
      "description": "string — which node to forward to: eth or base"
    },
    "method": {
      "type": "string",
      "description": "string — any method the node serves: eth_*, net_*, web3_*, txpool_*, debug_*, trace_*; admin_/personal_/miner_/engine_ refused."
    },
    "params": {
      "description": "optional array — JSON-RPC params, default []",
      "type": "array",
      "items": {}
    },
    "line": {
      "description": "optional — your /pay credential: served off your line, no payment; without it, x402 payment in params._meta.",
      "type": "string"
    }
  },
  "required": [
    "chain",
    "method"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "chain": {
      "anyOf": [
        {
          "type": "string",
          "description": "the node this was forwarded to"
        },
        {
          "type": "null"
        }
      ]
    },
    "method": {
      "anyOf": [
        {
          "type": "string",
          "description": "the JSON-RPC method called"
        },
        {
          "type": "null"
        }
      ]
    },
    "http_status": {
      "anyOf": [
        {
          "type": "number",
          "description": "the node's HTTP status"
        },
        {
          "type": "null"
        }
      ]
    },
    "rpc_response": {
      "anyOf": [
        {
          "type": "object",
          "properties": {},
          "additionalProperties": {},
          "description": "the node's JSON-RPC envelope, verbatim"
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": {}
}
🟢sample_rpc(chain, method, line)

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. Read-only, capped per hour. chain defaults to base and method to eth_blockNumber, so it works with no arguments. For any other method, or with no cap, call_rpc. Example: {"chain":"base","method":"eth_blockNumber"}

Eingabe-Schema

{
  "type": "object",
  "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"
    },
    "line": {
      "description": "optional — your /pay credential: served off your line, not counted against the free ceiling; without it, or with a line that is off or out of time, free and counted.",
      "type": "string"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "chain": {
      "type": [
        "string",
        "null"
      ]
    },
    "method": {
      "type": [
        "string",
        "null"
      ]
    },
    "http_status": {
      "type": [
        "number",
        "null"
      ]
    },
    "rpc_response": {
      "anyOf": [
        {
          "type": "object",
          "properties": {},
          "additionalProperties": {}
        },
        {
          "type": "null"
        }
      ]
    },
    "free_sample": {
      "type": [
        "boolean",
        "null"
      ]
    },
    "verify": {
      "anyOf": [
        {
          "type": "string",
          "description": "how to check this answer against another source"
        },
        {
          "type": "null"
        }
      ]
    },
    "refused": {
      "anyOf": [
        {
          "type": "boolean",
          "description": "set when the method is outside the free sample"
        },
        {
          "type": "null"
        }
      ]
    },
    "error": {
      "type": [
        "string",
        "null"
      ]
    },
    "paid_tool": {
      "anyOf": [
        {
          "type": "string",
          "description": "the tool that does serve it"
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": {}
}
⚪buy_time(line)

Buys one block of time on your line. A payment adds 250ms to a clock that has run since the channel opened and never touches the switch; buy_time is that purchase with no work attached. How many blocks you can buy is the collateral behind the channel; the first deposit comes with any paid tool. Returns the block bought, the time left on the line and the collateral behind it. When the balance runs out the line is cut, nothing more is charged, and time bought and not burned comes back on refund. Paid and settled on chain; not idempotent, each call buys another block. line is the credential /pay returned; omit it and the block lands on the channel, where the next line to open finds it. Not needed when a call carries its own payment. Example: {"line":"<the credential /pay returned>"}

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "line": {
      "description": "the credential from /pay, so this payment is applied to your line",
      "type": "string"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "tick": {
      "type": [
        "boolean",
        "null"
      ]
    },
    "paid": {
      "type": [
        "boolean",
        "null"
      ]
    },
    "line": {
      "anyOf": [
        {
          "description": "the line this tick was applied to, null if none matched",
          "type": [
            "string",
            "null"
          ]
        },
        {
          "type": "null"
        }
      ]
    },
    "boughtMs": {
      "anyOf": [
        {
          "type": "number",
          "description": "milliseconds this payment added to the balance"
        },
        {
          "type": "null"
        }
      ]
    },
    "paidMicroUSD": {
      "type": [
        "number",
        "null"
      ]
    },
    "msRemaining": {
      "anyOf": [
        {
          "type": "number",
          "description": "balance after this tick; absent when no line matched"
        },
        {
          "type": "null"
        }
      ]
    },
    "metering": {
      "type": [
        "boolean",
        "null"
      ]
    },
    "collateral": {
      "anyOf": [
        {
          "type": "number",
          "description": "micro-USD still behind the channel"
        },
        {
          "type": "null"
        }
      ]
    },
    "buysMs": {
      "anyOf": [
        {
          "type": "number",
          "description": "what the remaining collateral can still buy"
        },
        {
          "type": "null"
        }
      ]
    },
    "open": {
      "type": [
        "boolean",
        "null"
      ]
    },
    "settledBeforeMicroUSD": {
      "anyOf": [
        {
          "description": "what we had settled against this channel before this call; only when no line matched",
          "type": [
            "number",
            "null"
          ]
        },
        {
          "type": "null"
        }
      ]
    },
    "thisCallMicroUSD": {
      "anyOf": [
        {
          "description": "what this call is charged: the row it paid",
          "type": [
            "number",
            "null"
          ]
        },
        {
          "type": "null"
        }
      ]
    },
    "hint": {
      "type": [
        "string",
        "null"
      ]
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": {}
}
🟢get_payment_terms

Returns what this server costs and how to pay it: the current x402 quote, the funding and buy_time rows, and the line socket. Not the payment itself. Free, read-only, no arguments. Without a wallet it also returns a block to hand whoever holds a key for you. Not counted against the free ceiling. To pay, attach x402 to call_rpc or any paid tool, or open a line at /pay and buy blocks with buy_time. get_operator says who we are. No key exists. Example: {}

Eingabe-Schema

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "free_tools": {
      "anyOf": [
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        {
          "type": "null"
        }
      ]
    },
    "price": {
      "anyOf": [
        {
          "type": "string",
          "description": "the rate and what a deposit is charged, in words"
        },
        {
          "type": "null"
        }
      ]
    },
    "accepts": {
      "anyOf": [
        {
          "type": "array",
          "items": {},
          "description": "the x402 quote: pay any row"
        },
        {
          "type": "null"
        }
      ]
    },
    "if_you_already_have_a_funded_key": {
      "type": [
        "string",
        "null"
      ]
    },
    "if_you_do_not": {
      "anyOf": [
        {
          "type": "object",
          "properties": {},
          "additionalProperties": {},
          "description": "how to fund a key that has nothing: the funding hint, step by step"
        },
        {
          "type": "null"
        }
      ]
    },
    "for_your_human": {
      "anyOf": [
        {
          "type": "string",
          "description": "one forwardable block, if you happen to have one"
        },
        {
          "type": "null"
        }
      ]
    },
    "free_forever": {
      "anyOf": [
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": {}
}
🟢get_operator

Returns who runs this, our operating theory, how we work, and how to check each claim. Free, read-only, no arguments. Not counted against the free ceiling. Not a price or status feed: get_payment_terms has the quote, /status.json the health. Example: {}

Eingabe-Schema

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "who": {
      "anyOf": [
        {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "who runs this, in lines"
        },
        {
          "type": "null"
        }
      ]
    },
    "operating_theory": {
      "anyOf": [
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        {
          "type": "null"
        }
      ]
    },
    "how_we_work": {
      "anyOf": [
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        {
          "type": "null"
        }
      ]
    },
    "check": {
      "anyOf": [
        {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "one public thing per claim"
        },
        {
          "type": "null"
        }
      ]
    },
    "operator": {
      "anyOf": [
        {
          "type": "object",
          "properties": {},
          "additionalProperties": {},
          "description": "legal name, jurisdiction, file number, documents, contact, support"
        },
        {
          "type": "null"
        }
      ]
    },
    "endpoint": {
      "type": [
        "string",
        "null"
      ]
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": {}
}

Community

Diesen Server bewerten

Nachweis

Aktuelle Beobachtungen

verifiziertVersion nicht aufgezeichnet11 Tools
verifiziertVersion nicht aufgezeichnet11 Tools