← The evidence ledger
Evidence row 120990
Observed , by baseline/1.
- Kind
- listing
- About
- source_record x402_bazaar:https://scrapecheck.fly.dev/verify-xml
- Recorded
- Previous row
- None: the first of its kind about this subject
- Body SHA-256
- 2e29e3f4c4a67bf6aac31c79f87fd841f681e60e8c7e7c429a54b95cba5f3e27
- Leaf
- 0x1851254c74863e45c08b686cb8abf3dcfc6a8385056f6744284b401edfe1cd73
What was observed
{
"endpoints": [
[
"x402",
"https://scrapecheck.fly.dev/verify-xml"
]
],
"name": "ScrapeCheck",
"owner_address": "0x455f20ec147477cafcd6d77c1604529f3c4ff665",
"raw": {
"accepts": [
{
"amount": "2000",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2"
},
"maxTimeoutSeconds": 300,
"network": "eip155:8453",
"payTo": "0x455F20eC147477CAFcd6D77C1604529f3c4Ff665",
"scheme": "exact"
},
{
"amount": "2000",
"asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
"extra": {
"name": "USD Coin",
"version": "2"
},
"maxTimeoutSeconds": 300,
"network": "eip155:137",
"payTo": "0x455F20eC147477CAFcd6D77C1604529f3c4Ff665",
"scheme": "exact"
},
{
"amount": "2000",
"asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"extra": {
"feePayer": "BENrLoUbndxoNMUS5JXApGMtNykLjFXXixMtpDwDR9SP"
},
"maxTimeoutSeconds": 300,
"network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
"payTo": "4HuSbgqgKkeUM5jEzAzLGpxtivCGda9eEtYc2Sp1fLpM",
"scheme": "exact"
}
],
"description": "XML tier (deterministic, no LLM): verifies a claimed value lives at a named path in a public XML document, by independent double re-fetch. Use it for feeds and sitemaps; for JSON use /verify-json, for HTML use /verify. Paths address elements and @attributes (urlset.url[0].loc). String-exact; ambiguous or volatile values return unverifiable, never a guess. First 100 checks per client are free: resend with header X-Use-Free-Allowance: yes and no payment to use them.",
"extensions": {
"bazaar": {
"info": {
"input": {
"body": {
"claim": {
"urlset.url[0].loc": "https://scrapecheck.fly.dev/"
},
"url": "https://scrapecheck.fly.dev/sitemap.xml"
},
"bodyType": "json",
"method": "POST",
"type": "http"
},
"output": {
"example": {
"check_type": "xml_field_v1",
"confidence": 0.95,
"engine": "web_field_v1/0.3.2+17e21204a029",
"evidence": {
"lens_votes": {},
"refetch_excerpt": "{\"urlset.url[0].loc\":\"https://scrapecheck.fly.dev/\"}",
"refetched_at": "2026-08-28T00:00:00.000Z",
"second_fetch_at": "2026-08-28T00:00:01.000Z"
},
"key_id": "k2",
"reasons": [
"claimed value found at path \"urlset.url[0].loc\" (matched element: url)"
],
"signature": "ed25519:…",
"source_hash": "sha256:…",
"verdict": "pass",
"verdict_id": "00000000-0000-0000-0000-000000000000",
"verifier_url": "https://scrapecheck.fly.dev"
},
"type": "json"
}
},
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"additionalProperties": false,
"properties": {
"body": {
"properties": {
"claim": {
"description": "see the route description; there is no asked field - this tier adjudicates exactly what it accepts",
"type": "object"
},
"url": {
"description": "public HTTPS URL",
"type": "string"
}
},
"required": [
"url",
"claim"
]
},
"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": {
"properties": {
"check_type": {
"description": "The check contract used, e.g. web_field_v1.",
"type": "string"
},
"confidence": {
"description": "The engine's confidence in the verdict, 0 to 1.",
"type": "number"
},
"engine": {
"description": "Engine name and version digest that produced the verdict.",
"type": "string"
},
"evidence": {
"description": "What the re-fetch observed.",
"properties": {
"lens_votes": {
"description": "Boolean votes is_real, is_current, does_answer from the judging lenses.",
"properties": {
"does_answer": {
"type": "boolean"
},
"is_current": {
"type": "boolean"
},
"is_real": {
"type": "boolean"
}
},
"type": "object"
},
"refetch_excerpt": {
"description": "Excerpt of the re-fetched page content the verdict was judged against.",
"type": "string"
},
"refetched_at": {
"description": "UTC timestamp of the engine's own fetch of the page.",
"type": "string"
}
},
"type": "object"
},
"key_id": {
"description": "Identifier of the signing key; resolve against GET /pubkey.",
"type": "string"
},
"reasons": {
"description": "The stated reasons for the verdict.",
"items": {
"type": "string"
},
"type": "array"
},
"signature": {
"description": "ed25519 signature over canonical sorted-key JSON of every field except signature.",
"type": "string"
},
"source_hash": {
"description": "sha256 of the normalized page text the verdict judged; null when no anchor text was obtained.",
"type": [
"string",
"null"
]
},
"verdict": {
"description": "One of pass, fail, unverifiable.",
"enum": [
"pass",
"fail",
"unverifiable"
],
"type": "string"
},
"verdict_id": {
"description": "Unique identifier for this verdict; its issuance is confirmable at GET /verdicts/{verdict_id}.",
"type": "string"
},
"verifier_url": {
"description": "The issuing service's URL; display only, never a trust root.",
"type": "string"
}
},
"required": [
"verdict_id",
"verdict",
"confidence",
"reasons",
"evidence",
"check_type",
"engine",
"key_id",
"verifier_url",
"source_hash",
"signature"
],
"type": "object"
},
"type": {
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
}
},
"required": [
"input"
],
"type": "object"
}
},
"errorNote": "A page that cannot be verified is NOT an error: unverifiable (or fail on /verify-presence) is a signed 200 verdict. 4xx means the request never reached the engine.",
"errors": [
{
"body": {},
"name": "Payment Required",
"note": "the x402 v2 challenge is not in the body; it is base64-encoded JSON in the PAYMENT-REQUIRED response header",
"status": 402,
"when": "any request without valid payment, a free-allowance header, or a service key — including requests with malformed bodies: payment is checked before input validation"
},
{
"body": {
"details": [
"url: Invalid url",
"claim: Required",
"asked: Required"
],
"error": "invalid input contract"
},
"name": "Bad Request",
"note": "details lists one entry per failing field, in the form \"<field>: <problem>\"",
"status": 400,
"when": "payment or allowance has cleared but the body does not match the input contract"
},
{
"body": {
"error": "rate limit exceeded — try again shortly"
},
"name": "Too Many Requests",
"status": 429,
"when": "requests exceed the per-minute rate limit, paid or not"
}
]
},
"lastUpdated": "2026-10-26T00:13:23.804Z",
"quality": {
"l30DaysTotalCalls": 6,
"l30DaysUniquePayers": 5,
"lastCalledAt": "2026-10-26T00:13:23.711Z"
},
"resource": "https://scrapecheck.fly.dev/verify-xml",
"serviceName": "ScrapeCheck",
"tags": [
"verification",
"xml",
"feeds",
"data-quality"
],
"type": "http",
"x402Version": 2
},
"source": "x402_bazaar",
"summary": "XML tier (deterministic, no LLM): verifies a claimed value lives at a named path in a public XML document, by independent double re-fetch. Use it for feeds and sitemaps; for JSON use /verify-json, for HTML use /verify. Paths address elements and @attributes (urlset.url[0].loc). String-exact; ambiguous or volatile values return unverifiable, never a guess. First 100 checks per client are free: resend with header X-Use-Free-Allowance: yes and no payment to use them."
}What the leaf hashes
{"body":"2e29e3f4c4a67bf6aac31c79f87fd841f681e60e8c7e7c429a54b95cba5f3e27","id":120990,"kind":"listing","method":"baseline/1","observed_us":1793025619089806,"prev":null,"subject":"x402_bazaar:https://scrapecheck.fly.dev/verify-xml","subject_kind":"source_record"}Proof
Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (296695 rows).
- 0x1850accc587d155ec9db18cccb922dc45df484f5fe9a160647b0980c7764691d
- 0xd13739bbeab5152a806d7b9737895c01f6c5770839e3e3efb6fc483cb3f1394b
- 0xbf0335558bd331a308fe948a22b8df536cb75cf0b71a3855573deeb7eb71f4df
- 0x067743981a0509ef829862f3ed3797456c8d4c9089b13832ec76827c181a8e4c
- 0xb350683f7529ccc0c0dfe19d1b6dc596bbcabb6f314700277a3b66d285fffcd1
- 0x09454f69a7cb62bcdaad399706abd756b47b9488765be683fd62f942d9173266
- 0xe900ed51657b99b788b19184d8f3b61d59bb2466eb7458158232ea1c8cb0a925
- 0x4c89538cd3e8cfeaf4dad7d22f8aa469b3fc9dd1f32ad87602b8f12570fa9195
- 0x80aa64ce2bf6e31f5f88981fac2430f8954888b7e21f1f1f5064efe964f540b0
- 0x4b181a898f514ff9cb15440f5fc1c2a2f938b6e95da8f6b6ddad9ea761c0d44a
- 0x04d98d8716f171bd2264c6c49606521f410107287c5094c713f72cdf2fe1e1ed
- 0x15eab8feed5b3f08165d63b9f1aed508c0624966a05349e051f86f0c188707b5
- 0x32f46c5f73ecbfd4f770f7f760a79bee2afed4b3e7572fa882b3e7dce8df4356
- 0x770e4376196188c7fc9ec40f8e218dc0d1cb92bba5fe0425a0edce27ca9a997f
- 0x60582ab4b41e72eb70eb0bce07fbf0fb4d2b62a8bad5be50f5d16d511adc746c
- 0xc6a4d7899a0f442958e26505011190b7cff2483611c1b94eba9043e0ba9ac36e
- 0x8c756542e482157df0c36464d75c937b845e4423dbbcfad08f0cf8d5a16b9a13
- 0x20704208aa6923d6b2450ef74ede87a6e0265d46447926038fe9506e9e154b2d
- 0x9b9ce5b74b9bab5121612ef6b64920a8d453cbf311096a423eef9702747e868a
- Day root
- 0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
- Chained
- 0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
- Published
- On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae