addrbookFor publishers
← The evidence ledger

Evidence row 1037238

Observed , by sync.x402_bazaar/1.

Kind
listing
About
source_record x402_bazaar:https://url2md.io/v1/md
Recorded
Previous row
#406909
Body SHA-256
9f4c07a97534aab7e11f6373210ac7d0e04de862c805706afecbdbafa5acdb5f
Leaf
0x86bf9670d4635e60a17dd52ac018368952de584fb7eb7b829185dcc189159248

What was observed

{
  "endpoints": [
    [
      "x402",
      "https://url2md.io/v1/md"
    ]
  ],
  "name": "url2md",
  "owner_address": "0xa09ae66ec8664475697ffc0eb45aa3fe52aa6030",
  "raw": {
    "accepts": [
      {
        "amount": "5000",
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "maxTimeoutSeconds": 120,
        "network": "eip155:8453",
        "payTo": "0xa09aE66Ec8664475697FfC0eb45aa3Fe52Aa6030",
        "scheme": "exact"
      }
    ],
    "description": "PDFs, JavaScript pages and ordinary HTML as clean Markdown. Pays a page's x402 toll for you. Follows robots.txt.",
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "body": {
              "format": "json",
              "render": "auto",
              "url": "https://example.com"
            },
            "bodyType": "json",
            "method": "POST",
            "type": "http"
          },
          "output": {
            "example": {
              "canonical": null,
              "charset": "utf-8",
              "contentSignal": null,
              "contentType": "text/html",
              "description": null,
              "fetchedAt": "2026-09-06T03:45:14.033Z",
              "finalUrl": "https://example.com/",
              "lang": null,
              "markdown": "# Example Domain\n\nThis domain is for use in documentation examples without needing permission. Avoid use in operations.\n\n[Learn more](https://iana.org/domains/example)",
              "redirects": [],
              "render": {
                "escalated": false,
                "mode": "auto",
                "reasons": []
              },
              "source": "static",
              "timing": {
                "browserMsUsed": null,
                "convertMs": 3,
                "fetchMs": 268,
                "renderMs": null,
                "totalMs": 412
              },
              "title": "Example Domain",
              "tokensEstimate": 42,
              "url": "https://example.com",
              "warnings": [],
              "words": 24
            },
            "type": "json"
          }
        },
        "schema": {
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "properties": {
            "input": {
              "additionalProperties": false,
              "properties": {
                "body": {
                  "properties": {
                    "format": {
                      "description": "json: the whole result object. markdown: the markdown body alone, sent as text/markdown. Omit it and the format follows the Accept header (text/markdown → markdown), else json.",
                      "enum": [
                        "json",
                        "markdown"
                      ],
                      "type": "string"
                    },
                    "render": {
                      "default": "auto",
                      "description": "auto: static first, browser only when the page looks client-rendered. static: never use a browser. browser: always render in a headless browser.",
                      "enum": [
                        "auto",
                        "static",
                        "browser"
                      ],
                      "type": "string"
                    },
                    "url": {
                      "description": "Absolute http(s) URL to convert; percent-encode it in the query string. http and https only, no credentials in the URL, no private, loopback or internal hosts, and the port must be one Cloudflare proxies (80, 443, 8080, 8443, 8880, 2052/2053/2082/2083/2086/2087/2095/2096). robots.txt is honoured for the user-agent token url2md.",
                      "format": "uri",
                      "maxLength": 2048,
                      "type": "string"
                    }
                  },
                  "required": [
                    "url"
                  ]
                },
                "bodyType": {
                  "enum": [
                    "json",
                    "form-data",
                    "text"
                  ],
                  "type": "string"
                },
                "method": {
                  "enum": [
                    "POST"
                  ],
                  "type": "string"
                },
                "type": {
                  "const": "http",
                  "type": "string"
                }
              },
              "required": [
                "type",
                "method",
                "bodyType",
                "body"
              ],
              "type": "object"
            },
            "output": {
              "properties": {
                "example": {
                  "description": "The conversion result. The same metadata always travels in response headers as well, so a caller that asked for text/markdown still gets it: X-Url2md-Source (static | browser | pdf | origin-markdown | text), X-Url2md-Final-Url, X-Url2md-Title (percent-encoded), X-Url2md-Words, X-Url2md-Tokens-Estimate, X-Url2md-Ledger-Id (the ledger row for the settled payment), and X-Url2md-Upstream-Toll (USD paid to the origin when the page itself charged an x402 toll, absent otherwise). The x402 settlement receipt is in PAYMENT-RESPONSE. Errors are JSON with a stable error.code, and any error after a charge carries error.details.callerCharged with the ledger id.",
                  "properties": {
                    "blockSuspected": {
                      "description": "set when what came back looks like a bot challenge or block page rather than the page: the origin answered 200 and the call was charged, but the content is probably not what was asked for. Also sent as X-Url2md-Block-Suspected, and named in warnings[].",
                      "properties": {
                        "markers": {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        }
                      },
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "canonical": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "charset": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "contentSignal": {
                      "description": "Upstream Content-Signal header, passed through untouched",
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "contentType": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "description": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "fetchedAt": {
                      "format": "date-time",
                      "type": "string"
                    },
                    "finalUrl": {
                      "description": "the URL after redirects; also sent as X-Url2md-Final-Url",
                      "type": "string"
                    },
                    "lang": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "markdown": {
                      "description": "the converted page",
                      "type": "string"
                    },
                    "redirects": {
                      "items": {
                        "properties": {
                          "from": {
                            "type": "string"
                          },
                          "status": {
                            "type": "integer"
                          },
                          "to": {
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "type": "array"
                    },
                    "render": {
                      "properties": {
                        "escalated": {
                          "type": "boolean"
                        },
                        "mode": {
                          "enum": [
                            "auto",
                            "static",
                            "browser"
                          ],
                          "type": "string"
                        },
                        "reasons": {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        }
                      },
                      "type": "object"
                    },
                    "source": {
                      "description": "how the markdown was produced; also sent as X-Url2md-Source",
                      "enum": [
                        "static",
                        "browser",
                        "pdf",
                        "origin-markdown",
                        "text"
                      ],
                      "type": "string"
                    },
                    "timing": {
                      "properties": {
                        "browserMsUsed": {
                          "type": [
                            "integer",
                            "null"
                          ]
                        },
                        "convertMs": {
                          "type": "integer"
                        },
                        "fetchMs": {
                          "type": "integer"
                        },
                        "renderMs": {
                          "type": [
                            "integer",
                            "null"
                          ]
                        },
                        "totalMs": {
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "title": {
                      "description": "also sent percent-encoded as X-Url2md-Title",
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "tokensEstimate": {
                      "description": "also sent as X-Url2md-Tokens-Estimate",
                      "type": "integer"
                    },
                    "url": {
                      "description": "the URL as asked for",
                      "type": "string"
                    },
                    "warnings": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "words": {
                      "description": "also sent as X-Url2md-Words",
                      "type": "integer"
                    }
                  },
                  "required": [
                    "url",
                    "finalUrl",
                    "source",
                    "markdown",
                    "words",
                    "tokensEstimate",
                    "fetchedAt",
                    "timing",
                    "render",
                    "warnings"
                  ],
                  "type": "object"
                },
                "type": {
                  "type": "string"
                }
              },
              "required": [
                "type"
              ],
              "type": "object"
            }
          },
          "required": [
            "input"
          ],
          "type": "object"
        }
      }
    },
    "iconUrl": "https://res.cloudinary.com/bdb-prod/image/upload/c_fill,ar_1:1,w_256,h_256,f_auto,q_auto/v1788758385/bazaar-icons/15f099e9360c95e5.png",
    "lastUpdated": "2026-10-28T22:21:38.058Z",
    "quality": {
      "l30DaysTotalCalls": 3,
      "l30DaysUniquePayers": 3,
      "lastCalledAt": "2026-10-28T22:21:36.852Z"
    },
    "resource": "https://url2md.io/v1/md",
    "serviceName": "url2md",
    "tags": [
      "markdown",
      "url-to-markdown",
      "scraping",
      "pdf",
      "llm-context"
    ],
    "type": "http",
    "x402Version": 2
  },
  "source": "x402_bazaar",
  "summary": "PDFs, JavaScript pages and ordinary HTML as clean Markdown. Pays a page's x402 toll for you. Follows robots.txt."
}

What the leaf hashes

{"body":"9f4c07a97534aab7e11f6373210ac7d0e04de862c805706afecbdbafa5acdb5f","id":1037238,"kind":"listing","method":"sync.x402_bazaar/1","observed_us":1793298232410384,"prev":406909,"subject":"x402_bazaar:https://url2md.io/v1/md","subject_kind":"source_record"}

Proof

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

  1. 0x86bfb3b356e861b6a7c0428aaf593566908a285c7dacb02fe2cd6a9fce121727
  2. 0x2966449868e79f247e512c37069a2731a458badb58c141cfffd43473baf381d9
  3. 0x733c2ac0bf6a2c5f6dc73cdb25022da021ec0649bd6e061570bd99f30ca33c03
  4. 0x7b1d0faaf639222e708221f4462b8168414b31310c7833d434fae41ed9b6322a
  5. 0x5ec2d39d6e2bf032c9739e1fd590d69fe3a16799e821c6145e71fc51b10508fe
  6. 0x6267827c9379c94c86fe90fe297c0e0bedfe7ae6a2546e8fc0888f9aa0ef6f3f
  7. 0xf319237a3da9a3cc1dafd1cd807965917e04ee5ab5b19c3c775053f2aca1c00c
  8. 0x1cb76ff2cda4aebfaffd3ccf85c9c0d01e448b56e20d95872ce71c967ccb81d5
  9. 0xeea938663fe884bcb716b2a0c5391177f23142a84c1075ad55ec0fe46d320ae3
  10. 0xfc392de845cff74a4ba4520f04cee65a3fae08e52729f156587a3e6254076b1e
  11. 0x21f0ed0e59a93c9331151d45c01b40a898fe001c40d9e3ba5d0a37a98401887c
  12. 0xee87ba3aa1570a6bf3bf7538e8dcf1acc602f6db922abcd9444e22cc2db6ec3d
  13. 0xd519d8cdd088f59ea3d3ee0d8729b8119c50d1c5b73da014b21e94026cb1006c
  14. 0x738c5bd29ff2d2f8d7fd631baca705f1f09ba7c5f714efb8c3ec3626affb304a
  15. 0xcf94ad18fb19d78b9bda4e21e2e80e6fbf3504f3f83fee3273c11933743525c4
  16. 0xe2d603cd6f987214550319ad4fa39952b6098bc5c1b20893b6b80e8d82a79934
  17. 0x91f12a2db1e2c1be07cbe4de3981a37a33051a36d3c3eee5a260804add6d1d75
  18. 0xd56e61af23709ed9f460471e3c08400c0142ee83e1fd9057e46350d12edf9c07
Day root
0xc050555c6b023f2aefb6536efb9f0760b92c30a0d06c572b7daf63db259ea17c
Chained
0x4cde8bae2042512e1bec11650628f0293556311cc4ea74d99ffddf02b671a7d6
Published
On Arc Testnet, block 69753317: 0x9e85c340732f416e431b111fae72f7624870125f7f379af2732eb6c2ba8cf6a1

How to check it · This row as JSON