addrbookFor publishers
← The evidence ledger

Evidence row 2200226

Observed , by sync.x402_bazaar/1.

Kind
listing
About
source_record x402_bazaar:https://readfetch.com/v1/crawl
Recorded
Previous row
#1261538
Body SHA-256
5418a9ca02c62ea9547131054829127a2faeff9d6a15a6d1877790da72814418
Leaf
0xcf1998e1e74d11c4b3f9a6c1cae2e9e70f792884bfa99caa1501d4db8062b6bd

What was observed

{
  "endpoints": [
    [
      "x402",
      "https://readfetch.com/v1/crawl"
    ]
  ],
  "name": "readfetch.com",
  "owner_address": "0x26c2308adc8fe5ffe6d4183588dd2dd22ed86071",
  "raw": {
    "accepts": [
      {
        "amount": "3000",
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "description": "Start a bounded async crawl from one seed URL. Returns job_id, status (queued), pages_quoted, and price_usd — then poll readfetch_crawl_status with that id until status is completed or failed. Completed jobs include per-page url and Markdown in the status payload. Cap scope with max_pages (default 20, max 100) and max_depth (default 2, max 3); include/exclude filter paths by prefix (* suffix on include). Prefer readfetch_batch for a fixed URL list; readfetch_map to list URLs ",
        "extra": {
          "name": "USD Coin",
          "paymentFlow": "authorization",
          "version": "2"
        },
        "maxAmountRequired": "3000",
        "maxTimeoutSeconds": 60,
        "mimeType": "application/json",
        "network": "eip155:8453",
        "payTo": "0x26C2308aDC8fe5FFE6d4183588DD2DD22ed86071",
        "resource": "https://readfetch.com/v1/crawl",
        "scheme": "exact"
      }
    ],
    "description": "Start a bounded async crawl from one seed URL. Returns job_id, status (queued), pages_quoted, and price_usd — then poll readfetch_crawl_status with that id until status is completed or failed. Completed jobs include per-page url and Markdown in the status payload. Cap scope with max_pages (default 20, max 100) and max_depth (default 2, max 3); include/exclude filter paths by prefix (* suffix on include). Prefer readfetch_batch for a fixed URL list; readfetch_map to list URLs ",
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "body": {
              "max_depth": 2,
              "max_pages": 20,
              "url": "https://example.com"
            },
            "bodyType": "json",
            "description": "Bounded async crawl with a job id, a page cap quoted up front, and per-page Markdown.",
            "method": "POST",
            "type": "http"
          },
          "output": {
            "description": "Start a bounded async crawl from one seed URL. Returns job_id, status (queued), pages_quoted, and price_usd — then poll readfetch_crawl_status with that id until status is completed or failed. Completed jobs include per-page url and Markdown in the status payload. Cap scope with max_pages (default 20, max 100) and max_depth (default 2, max 3); include/exclude filter paths by prefix (* suffix on include). Prefer readfetch_batch for a fixed URL list; readfetch_map to list URLs without fetching bodies; readfetch_text for a single page.",
            "example": {
              "hint": "GET /v1/crawl/{id} for progress",
              "job_id": "job_ab12",
              "pages_quoted": 20,
              "price_usd": 0.06,
              "status": "queued"
            },
            "format": "application/json",
            "type": "json"
          }
        },
        "schema": {
          "$defs": {},
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "properties": {
            "input": {
              "properties": {
                "body": {
                  "properties": {
                    "exclude": {
                      "description": "Path prefixes to skip during the crawl.",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "include": {
                      "description": "Path prefixes to allow; * suffix wildcard.",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "max_depth": {
                      "default": 2,
                      "description": "Link depth from the seed URL (default 2).",
                      "maximum": 3,
                      "minimum": 1,
                      "type": "number"
                    },
                    "max_pages": {
                      "default": 20,
                      "description": "Maximum pages to fetch in this job (quoted up front for payment).",
                      "maximum": 100,
                      "minimum": 1,
                      "type": "number"
                    },
                    "url": {
                      "description": "Seed URL; crawl stays on the same registrable domain.",
                      "format": "uri",
                      "type": "string"
                    }
                  },
                  "required": [
                    "url"
                  ],
                  "type": "object"
                },
                "bodyType": {
                  "const": "json"
                },
                "method": {
                  "enum": [
                    "POST"
                  ]
                },
                "type": {
                  "const": "http"
                }
              },
              "required": [
                "type",
                "method",
                "body"
              ],
              "type": "object"
            },
            "output": {
              "properties": {
                "hint": {
                  "type": "string"
                },
                "job_id": {
                  "type": "string"
                },
                "pages_quoted": {
                  "type": "integer"
                },
                "price_usd": {
                  "type": "number"
                },
                "status": {
                  "type": "string"
                }
              },
              "type": "object"
            }
          }
        }
      },
      "readfetch": {
        "llms_txt": "https://readfetch.com/llms.txt",
        "mcp": "https://readfetch.com/mcp",
        "mcp_manifest": "https://readfetch.com/.well-known/mcp.json",
        "openapi": "https://readfetch.com/openapi.json",
        "payment_status": "live",
        "probe": {
          "free": true,
          "method": "POST",
          "note": "The only free POST — no wallet, no 402, no x402. Metadata plus optional ~400-character preview for the same URL before paying.",
          "path": "/v1/probe",
          "price_usd": 0
        },
        "related_endpoints": [
          {
            "path": "/v1/map"
          },
          {
            "path": "/v1/probe"
          }
        ],
        "service_manifest": "https://readfetch.com/.well-known/service.json",
        "skill": "https://readfetch.com/SKILL.md",
        "support": {
          "claims": {
            "method": "POST",
            "path": "/v1/claims",
            "url": "https://readfetch.com/v1/claims",
            "when": "paid delivery dispute; needs RECEIPT + EIP-191 signature"
          },
          "feedback": {
            "body": {
              "category": "integration|docs|site|other",
              "message": "≤500 chars",
              "request_id": "<from X-Request-Id>"
            },
            "free": true,
            "mcp_tool": "readfetch_feedback",
            "method": "POST",
            "path": "/v1/feedback",
            "url": "https://readfetch.com/v1/feedback"
          },
          "request_id_header": "X-Request-Id"
        },
        "x402_resources": "https://readfetch.com/.well-known/x402-resources.json"
      }
    },
    "iconUrl": "https://res.cloudinary.com/bdb-prod/image/upload/c_fill,ar_1:1,w_256,h_256,f_auto,q_auto/v1793278990/bazaar-icons/a51ede90f06a90b8.png",
    "lastUpdated": "2026-11-02T12:25:06.83Z",
    "quality": {
      "l30DaysTotalCalls": 4,
      "l30DaysUniquePayers": 1,
      "lastCalledAt": "2026-11-02T12:25:06.617Z"
    },
    "resource": "https://readfetch.com/v1/crawl",
    "serviceName": "readfetch.com",
    "tags": [
      "async",
      "crawl",
      "job",
      "markdown",
      "search"
    ],
    "type": "http",
    "x402Version": 2
  },
  "source": "x402_bazaar",
  "summary": "Start a bounded async crawl from one seed URL. Returns job_id, status (queued), pages_quoted, and price_usd — then poll readfetch_crawl_status with that id until status is completed or failed. Completed jobs include per-page url and Markdown in the status payload. Cap scope with max_pages (default 20, max 100) and max_depth (default 2, max 3); include/exclude filter paths by prefix (* suffix on include). Prefer readfetch_batch for a fixed URL list; readfetch_map to list URLs"
}

What the leaf hashes

{"body":"5418a9ca02c62ea9547131054829127a2faeff9d6a15a6d1877790da72814418","id":2200226,"kind":"listing","method":"sync.x402_bazaar/1","observed_us":1793646796805244,"prev":1261538,"subject":"x402_bazaar:https://readfetch.com/v1/crawl","subject_kind":"source_record"}

Proof

Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (444186 rows).

  1. 0xcf199158bba42f280ca9dd472b0c61ee969a3d57c465c1eacfa4c4129c98dbf4
  2. 0x720ed907ddfc13791ee65e758e76e6e9041feffc10d8f67e6ccfc1b3288b1b92
  3. 0xb95043d9e1b305f778503412fa68e2d1bd6dd3bdf63e14fb6f03261bf91183d4
  4. 0x3d8838ff5a56c5c9788ad49f70de9a3ae0b0a34d1b5da8999f646ffbc444ae4e
  5. 0x4d7b244d7148c29d14135395b257e887cbfb7e1fcbbe7111b953abc09f993286
  6. 0xf8e957681fc6b92855159063236f6d211b676395ee9adcc27e736998e2d9b232
  7. 0x6bda1099a1b89b00cc9de53870e1d00204d1ee2744711391c149ff2ff8463358
  8. 0x46765e0aaa6d8398030bd44a2176f9993b5ed89917947409d971f8702d22a83a
  9. 0x69e7727ff80179981dcc2e0bc3f3c3cdc253ed02ab82d42d991a74ae9c5dbab2
  10. 0xf6d6f7d0830ac98279cb74494d34be827d26f7129f65285cf0be75e3ca1f17ad
  11. 0x72ab42f3c5a6ef5a4044ef2fdc6891273b02682b594ac6044b122a6461ad0992
  12. 0xdd70b02ace47c3d130058a43d9d07b1c248c91e80e9c82aa580d25929a652bb8
  13. 0x072f2f6577fd7448e35dd54b73d821e24c8d625a3295181aa05e7da8bcdbf170
  14. 0x4f21464039902a4044b17c93873adb5a93eecc8e977b4e039acb8cd5f4210b4b
  15. 0x5b456020389d8e0ef67f16a492c600b5b88189e59398bba308734db7e873e7e4
  16. 0x37d31d28d0bd3743650d57e9fbf999efa4592cac831267f83aa125335b35a16b
  17. 0xdb8bd933619a267f9790faac9839143d202be46af284371cc369cdf683f897ba
  18. 0x98cbbf2c68ab4c0b4db782aeb88bea1f30b02178cf8b5d3d24a931d19492ea6d
  19. 0x252cce55f1a3d5391c16f82d7f62494429a5f69b03486d4cfcfb7b2c96d6c884
Day root
0x78fecaabbe319e56f5c4b80fc02e2052e198ad24781da8832a475ff65f2002d1
Chained
0xdc35957db5d1371ca382b9152878ffece28ec7c5cb4f98fd71ddb367f8b999b2
Published
On Arc Testnet, block 70432815: 0x56b814612eb2e3e544153df3e91e1f7199106d1e430c7d8c6b653feeb9ebe9af

How to check it · This row as JSON