addrbookFor publishers
← The evidence ledger

Evidence row 1261564

Observed , by sync.x402_bazaar/1.

Kind
listing
About
source_record x402_bazaar:https://readfetch.com/v1/map
Recorded
Previous row
#1038731
Body SHA-256
78114e568322072501187e6673dd0e78acf70b24b59286199a23556668a11371
Leaf
0xab58898689cca059b321252edd709480e30f53646abfe5b9d2ad0c8e9a6d263e

What was observed

{
  "endpoints": [
    [
      "x402",
      "https://readfetch.com/v1/map"
    ]
  ],
  "name": "readfetch.com",
  "owner_address": "0x26c2308adc8fe5ffe6d4183588dd2dd22ed86071",
  "raw": {
    "accepts": [
      {
        "amount": "5000",
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "description": "Discover a site's crawlable surface without crawling it: parse robots.txt allow/disallow rules, collect URLs from sitemap.xml and sitemap indexes, find RSS, Atom and JSON feeds, and count internal and external links on the homepage. Use the returned URLs to plan a /v1/scrape or /v1/crawl.",
        "extra": {
          "name": "USD Coin",
          "paymentFlow": "authorization",
          "version": "2"
        },
        "maxAmountRequired": "5000",
        "maxTimeoutSeconds": 60,
        "mimeType": "application/json",
        "network": "eip155:8453",
        "payTo": "0x26C2308aDC8fe5FFE6d4183588DD2DD22ed86071",
        "resource": "https://readfetch.com/v1/map",
        "scheme": "exact"
      }
    ],
    "description": "Discover a site's crawlable surface without crawling it: parse robots.txt allow/disallow rules, collect URLs from sitemap.xml and sitemap indexes, find RSS, Atom and JSON feeds, and count internal and external links on the homepage. Use the returned URLs to plan a /v1/scrape or /v1/crawl.",
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "body": {
              "limit": 200,
              "max_bytes": 5000000,
              "timeout_s": 60,
              "url": "https://example.com"
            },
            "bodyType": "json",
            "description": "Sitemaps, robots rules, feeds and link counts for a whole site, in one call. Plan a crawl before paying for it.",
            "method": "POST",
            "type": "http"
          },
          "output": {
            "description": "Discover a site's crawlable surface without crawling it: parse robots.txt allow/disallow rules, collect URLs from sitemap.xml and sitemap indexes, find RSS, Atom and JSON feeds, and count internal and external links on the homepage. Use the returned URLs to plan a /v1/scrape or /v1/crawl.",
            "example": {
              "feeds": [
                "https://example.com/feed.xml"
              ],
              "host": "example.com",
              "links": {
                "external": 6,
                "internal": 34
              },
              "robots": {
                "allow": [],
                "crawl_delay": null,
                "disallow": [
                  "/admin"
                ],
                "sitemaps": [
                  "https://example.com/sitemap.xml"
                ]
              },
              "sitemaps": [
                "https://example.com/sitemap.xml"
              ],
              "status": "success",
              "status_code": 200,
              "total_found": 2,
              "url": "https://example.com",
              "url_count": 2,
              "urls": [
                "https://example.com/",
                "https://example.com/blog/post"
              ]
            },
            "format": "application/json",
            "type": "json"
          }
        },
        "schema": {
          "$defs": {},
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "properties": {
            "input": {
              "properties": {
                "body": {
                  "properties": {
                    "egress": {
                      "description": "Exit to leave through: `direct` (this service's own datacentre egress) or `residential` (a residential address pool, for targets that refuse datacentre addresses). Omit to use the default route.",
                      "title": "Egress",
                      "type": "string"
                    },
                    "egress_fallback": {
                      "description": "Pool to retry through once when the first attempt is refused (bot check, wall, empty extraction, origin 403/429/5xx); must differ from `egress`. Absent keeps one exit for the whole call.",
                      "title": "Egress Fallback",
                      "type": "string"
                    },
                    "limit": {
                      "default": 200,
                      "description": "Maximum number of URLs to return (1-1000).",
                      "maximum": 1000,
                      "minimum": 1,
                      "title": "Limit",
                      "type": "integer"
                    },
                    "max_bytes": {
                      "default": 5000000,
                      "description": "Abort if any single document exceeds this many bytes.",
                      "maximum": 20000000,
                      "minimum": 1024,
                      "title": "Max Bytes",
                      "type": "integer"
                    },
                    "timeout_s": {
                      "default": 60,
                      "description": "Total budget for the whole call in seconds; every sitemap fetch and the browser fallback share it. 95 s is the edge ceiling (Cloudflare closes at 100 s).",
                      "maximum": 95,
                      "minimum": 1,
                      "title": "Timeout S",
                      "type": "number"
                    },
                    "url": {
                      "description": "Public http(s) URL of the site to map.",
                      "format": "uri",
                      "maxLength": 2083,
                      "minLength": 1,
                      "title": "Url",
                      "type": "string"
                    }
                  },
                  "required": [
                    "url"
                  ],
                  "title": "MapRequest",
                  "type": "object"
                },
                "bodyType": {
                  "const": "json"
                },
                "method": {
                  "enum": [
                    "POST"
                  ]
                },
                "type": {
                  "const": "http"
                }
              },
              "required": [
                "type",
                "method",
                "body"
              ],
              "type": "object"
            },
            "output": {
              "properties": {
                "feeds": {
                  "items": {
                    "format": "uri",
                    "type": "string"
                  },
                  "type": "array"
                },
                "host": {
                  "type": "string"
                },
                "links": {
                  "properties": {
                    "external": {
                      "type": "integer"
                    },
                    "internal": {
                      "type": "integer"
                    }
                  },
                  "type": "object"
                },
                "robots": {
                  "properties": {
                    "allow": {
                      "items": {},
                      "type": "array"
                    },
                    "crawl_delay": {
                      "type": "null"
                    },
                    "disallow": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "sitemaps": {
                      "items": {
                        "format": "uri",
                        "type": "string"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                },
                "sitemaps": {
                  "items": {
                    "format": "uri",
                    "type": "string"
                  },
                  "type": "array"
                },
                "status": {
                  "type": "string"
                },
                "status_code": {
                  "type": "integer"
                },
                "total_found": {
                  "type": "integer"
                },
                "url": {
                  "format": "uri",
                  "type": "string"
                },
                "url_count": {
                  "type": "integer"
                },
                "urls": {
                  "items": {
                    "format": "uri",
                    "type": "string"
                  },
                  "type": "array"
                }
              },
              "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": {
          "method": "POST",
          "note": "Free ~400-character preview for the same URL before paying",
          "path": "/v1/probe",
          "price_usd": 0
        },
        "related_endpoints": [
          {
            "path": "/v1/probe"
          },
          {
            "path": "/v1/crawl"
          },
          {
            "path": "/v1/scrape"
          }
        ],
        "service_manifest": "https://readfetch.com/.well-known/service.json",
        "skill": "https://readfetch.com/SKILL.md",
        "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-10-30T15:51:16.464Z",
    "quality": {
      "l30DaysTotalCalls": 4,
      "l30DaysUniquePayers": 2,
      "lastCalledAt": "2026-10-30T15:51:15.901Z"
    },
    "resource": "https://readfetch.com/v1/map",
    "serviceName": "readfetch.com",
    "tags": [
      "ai agents",
      "atom",
      "feed discovery",
      "robots.txt",
      "rss"
    ],
    "type": "http",
    "x402Version": 2
  },
  "source": "x402_bazaar",
  "summary": "Discover a site's crawlable surface without crawling it: parse robots.txt allow/disallow rules, collect URLs from sitemap.xml and sitemap indexes, find RSS, Atom and JSON feeds, and count internal and external links on the homepage. Use the returned URLs to plan a /v1/scrape or /v1/crawl."
}

What the leaf hashes

{"body":"78114e568322072501187e6673dd0e78acf70b24b59286199a23556668a11371","id":1261564,"kind":"listing","method":"sync.x402_bazaar/1","observed_us":1793385513282014,"prev":1038731,"subject":"x402_bazaar:https://readfetch.com/v1/map","subject_kind":"source_record"}

Proof

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

  1. 0xab58291cce6c59482a5f7eb7fee0466c5d61c75acd03a460f312363d1236dcde
  2. 0x91349ec5b44679c98b60b02d93365fda631ff00c189720d65de10659cab19ef2
  3. 0x57bcfdc4df7ba7f22d1c208099cf367da97711b6d3e71733b8c89f084da66089
  4. 0xc99c99a5270470c57757b13c7c2a751ce7de3d4f3176bb751bfeded5e9b049a8
  5. 0x9a58ea932e7007d6ae845215ec1d08ba4b838e6db7749919dc05cd8c97385338
  6. 0x3e243546ac42a5c2b50aed0e43c3945b985bceb94ba646c1de03ee2951d208e9
  7. 0xc749387c42d8aef84f2d44f58123e962c6ba6ced2f83037c4a2acde0a50fe186
  8. 0x61bc37836c6f9ab7a9d60032bc8d3048ab1d36d63ff3995334654b7576cf85fd
  9. 0x5ab63407d16202cd6aa2469f592214646725196d3c5058008bf60a1f377cb8f5
  10. 0x02779f84ad8fd46b10e31c31747cb72632ef2f23daf8e93bce5743d08fdab4e8
  11. 0xb3bb958e6a6e739f135cc668ae011c38524a65814b00f11a837d521bd40fabe3
  12. 0x76e57d82df41a8444f66943c853bf0ce1a262f9c2e19695e3f9c368cff55d095
  13. 0x9889bd73e5603fc0045beeec785a4e7b83076b3dca643ee2497b1d068fa8e3fc
  14. 0xe11a711cdcc033b4d3ff4f10f0568bda761703429a7ddfbf68a7fbd1d22911ff
  15. 0x11b43ed362a2fd4976e11eceb94ee4b7edbaf6823474ee1c36489f8f0a0496c4
  16. 0x835211170e79bdce1a823ec914e3532e128f77751e9074286da35091b0200284
  17. 0x61ef83255d34604cb052882568ca1d1386ac3cfb8284509715bc1734cff77831
  18. 0x0c43c73b62a5d49ee1444b5dc4195fc5b16b141d3f4458e2e9fbd5fd6ecb367d
Day root
0x0826c7ad6039e06a2360ca0a4a3a4fe7f2626c6dc19f71a37599386f78b39875
Chained
0x36b4c8a1063758f0b8765fa1bdf75fa92fb543cc183add3e261880ee2bd1f822
Published
On Arc Testnet, block 69923247: 0x8704744146c6967c8abc9e9a99de4db7283b29e840922ea83a69b6fe776e6861

How to check it · This row as JSON