Prism MCP

Agent-facing tools marketplace: Ethereum/Base RPC, wallet tracing, attestations, notes. x402, USDC.

¿Debería usar esto?

Calidad y seguridad

B
Calidad de la descripción
100%
Integridad del esquema
86%
Calidad de los nombres
90%
Riesgo de envenenamiento
40%
Coincidencia de permisos
100%
Cumplimiento del protocolo
100%

Hallazgos (4)

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

Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.

Costo de contexto

~6,837Tokens (definiciones de herramientas)
~4.5 KBTamaño de respuesta típico
Impacto significativo en la atención (5.34% del contexto de 128k)

Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.

Instalar

Instalación con un clic

Agrega esto a tu archivo `claude_desktop_config.json`:

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

Puntos de conexión remotos

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

Qué puede hacer

Inventario de herramientas

Herramientas (12)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🟢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. Not a funding trace (audit_funders), not a control verdict (audit_cluster). Example: {"contract":"0x4020074e9dF2ce1deE5A9C1b5c3f541D02a10003","from_block":51000000}

Esquema de entrada

{
  "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 — a line credential: the call burns the line's time and carries no payment.",
      "type": "string"
    }
  },
  "required": [
    "contract"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Esquema de salida

{
  "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. 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}

Esquema de entrada

{
  "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 — a line credential: the call burns the line's time and carries no payment.",
      "type": "string"
    }
  },
  "required": [
    "address"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Esquema de salida

{
  "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. Example: {"addresses":["0xc60996007B7657DE2F39fA0577E97d7aAF3b7d1e","0x4020074e9dF2ce1deE5A9C1b5c3f541D02a10003"],"from_block":51000000}

Esquema de entrada

{
  "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 — a line credential: the call burns the line's time and carries no payment.",
      "type": "string"
    }
  },
  "required": [
    "addresses"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Esquema de salida

{
  "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)

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, free. 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}

Esquema de entrada

{
  "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": "string"
    }
  },
  "required": [
    "body"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Esquema de salida

{
  "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>","salt":"<the salt notes_sign returned>"}

Esquema de entrada

{
  "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"
    }
  },
  "required": [
    "body"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Esquema de salida

{
  "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)

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. Example: {"limit":5}

Esquema de entrada

{
  "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"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Esquema de salida

{
  "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.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. 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 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. Example: {"chain":"base","method":"eth_blockNumber","params":[]}

Esquema de entrada

{
  "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 — a line credential: the call burns the line's time and carries no payment.",
      "type": "string"
    }
  },
  "required": [
    "chain",
    "method"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Esquema de salida

{
  "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)

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, 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. Example: {"chain":"base","method":"eth_blockNumber"}

Esquema de entrada

{
  "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"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Esquema de salida

{
  "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(blocks)

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. Paid 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. Example: {"blocks":1}

Esquema de entrada

{
  "type": "object",
  "properties": {
    "blocks": {
      "description": "blocks of 250 ms; default 1",
      "type": "integer",
      "minimum": 1,
      "maximum": 14400
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "channelId": {
      "type": [
        "string",
        "null"
      ]
    },
    "boughtMs": {
      "anyOf": [
        {
          "type": "number",
          "description": "milliseconds this payment bought"
        },
        {
          "type": "null"
        }
      ]
    },
    "msRemaining": {
      "anyOf": [
        {
          "type": "number",
          "description": "time on the channel after this payment"
        },
        {
          "type": "null"
        }
      ]
    },
    "blockMs": {
      "type": [
        "number",
        "null"
      ]
    },
    "paidUSD": {
      "type": [
        "string",
        "null"
      ]
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": {}
}
⚪line(op, channelId, nonce, signature, credential)

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}. Free. 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. Example: {"op":"open","channelId":"<your channel id>"}

Esquema de entrada

{
  "type": "object",
  "properties": {
    "op": {
      "type": "string",
      "enum": [
        "open",
        "prove",
        "on",
        "off",
        "status",
        "close"
      ],
      "description": "open, prove, on, off, status or close"
    },
    "channelId": {
      "description": "the channel that pays; open and prove",
      "type": "string"
    },
    "nonce": {
      "description": "the nonce open returned; prove",
      "type": "string"
    },
    "signature": {
      "description": "the payer key over the message open returned; prove",
      "type": "string"
    },
    "credential": {
      "description": "the credential prove returned; on, off, status, close",
      "type": "string"
    }
  },
  "required": [
    "op"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "op": {
      "anyOf": [
        {
          "type": "string",
          "description": "challenge, opened, on, off, status, closed or line_failed"
        },
        {
          "type": "null"
        }
      ]
    },
    "channelId": {
      "type": [
        "string",
        "null"
      ]
    },
    "nonce": {
      "type": [
        "string",
        "null"
      ]
    },
    "sign": {
      "anyOf": [
        {
          "type": "string",
          "description": "the message to sign with the payer key"
        },
        {
          "type": "null"
        }
      ]
    },
    "credential": {
      "anyOf": [
        {
          "type": "string",
          "description": "send as x-line or _meta[\"zeam-pass/line\"]"
        },
        {
          "type": "null"
        }
      ]
    },
    "msRemaining": {
      "type": [
        "number",
        "null"
      ]
    },
    "msSpent": {
      "type": [
        "number",
        "null"
      ]
    },
    "msReturned": {
      "type": [
        "number",
        "null"
      ]
    },
    "metering": {
      "type": [
        "boolean",
        "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 x402 quote, the prices per tool, line time and refunds. Not the payment itself. Free, read-only, no arguments. Not 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. Example: {}

Esquema de entrada

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

Esquema de salida

{
  "type": "object",
  "properties": {
    "free_tools": {
      "anyOf": [
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        {
          "type": "null"
        }
      ]
    },
    "price": {
      "type": [
        "string",
        "null"
      ]
    },
    "accepts": {
      "anyOf": [
        {
          "type": "array",
          "items": {},
          "description": "the x402 quote for one block: pay any row"
        },
        {
          "type": "null"
        }
      ]
    },
    "prices": {
      "anyOf": [
        {
          "type": "object",
          "properties": {},
          "additionalProperties": {},
          "description": "every tool's price tag"
        },
        {
          "type": "null"
        }
      ]
    },
    "time": {
      "type": [
        "string",
        "null"
      ]
    },
    "refund": {
      "anyOf": [
        {
          "type": "object",
          "properties": {},
          "additionalProperties": {}
        },
        {
          "type": "null"
        }
      ]
    },
    "if_you_already_have_a_funded_key": {
      "type": [
        "string",
        "null"
      ]
    },
    "if_you_do_not": {
      "anyOf": [
        {
          "type": "object",
          "properties": {},
          "additionalProperties": {}
        },
        {
          "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 limit. Not a price or status feed: get_payment_terms has the quote, /status.json the health. Example: {}

Esquema de entrada

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

Esquema de salida

{
  "type": "object",
  "properties": {
    "who": {
      "anyOf": [
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        {
          "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"
          }
        },
        {
          "type": "null"
        }
      ]
    },
    "operator": {
      "anyOf": [
        {
          "type": "object",
          "properties": {},
          "additionalProperties": {}
        },
        {
          "type": "null"
        }
      ]
    },
    "endpoint": {
      "type": [
        "string",
        "null"
      ]
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": {}
}

Comunidad

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada12 herramientas
verificadoversión no registrada11 herramientas
verificadoversión no registrada11 herramientas