addrbookFor publishers
← The evidence ledger

Evidence row 264378

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint 438f3217-0c73-428a-8396-6acbf3dfe67a
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
3470e3116404049e5db856e43e35bf05c393f012d2b4dac881c725b8c71ab5a5
Leaf
0xf7a753ffba09d6d7787bb7e434da67be5c19af9375c0ccb240138609a664e1fc

What was observed

{
  "count": 2,
  "tools": [
    {
      "description": "Read one URL into clean Markdown with Litmus signals (source authority, freshness, structural trust). Price: $0.005 per page actually read, USDC on Base via x402. Free tier: 10 free parses a month, no account and no key. On a cloud host (where the anonymous allowance does not apply) pass wallet_address + wallet_signature once — a plain EIP-191 signature, no payment — to claim the same 10. A page we cannot read — bot wall, consent wall, paywall, PDF — is reported with a named reason and never charged. To read a whole site or a list: call this tool once per URL. Build your list first (GET https://<site>/sitemap.xml, or use URLs you already have), then loop. No minimum, no commitment, no balance to spend down: stop whenever you like. If you already know the price and the payTo address, pay on the first call and skip the 402 round trip. Otherwise, when the tool returns a payment_required error, sign the included payment_terms and retry with the payment_signature argument (works in every MCP client; no custom headers needed).",
      "inputSchema": {
        "properties": {
          "payment_signature": {
            "description": "x402 payment signature — base64-encoded JSON payment terms. Only needed after the free tier is exhausted: the payment_required error response includes the payment_terms to sign. Pass the signed terms here (or as a Payment-Signature header if your client supports headers).",
            "type": "string"
          },
          "url": {
            "description": "The URL to fetch and parse",
            "type": "string"
          },
          "wallet_address": {
            "description": "Your wallet address (0x...) to claim the free tier — no payment needed.",
            "type": "string"
          },
          "wallet_signature": {
            "description": "EIP-191 personal_sign signature (0x... hex, 65 bytes r||s||v) over the exact string \"nanoparse.app free tier: sign this message to claim 10 free parses (no payment).\". Proves you own wallet_address and unlocks 10 free parses per month.",
            "type": "string"
          }
        },
        "required": [
          "url"
        ],
        "type": "object"
      },
      "name": "nanoparse_fetch"
    },
    {
      "description": "Check wallet balance, USDC balance, quota state, and whether the next /fetch call will succeed without payment. Use before spending — tells the agent exactly how much to fund.",
      "inputSchema": {
        "properties": {
          "address": {
            "description": "The Ethereum wallet address to query (0x...).",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "nanoparse_status"
    }
  ]
}

What the leaf hashes

{"body":"3470e3116404049e5db856e43e35bf05c393f012d2b4dac881c725b8c71ab5a5","id":264378,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793034147440297,"prev":null,"subject":"438f3217-0c73-428a-8396-6acbf3dfe67a","subject_kind":"endpoint"}

Proof

Its day has not closed yet. A day closes ten minutes after midnight UTC; the proof appears here then.

How to check it · This row as JSON