← The evidence ledger
Evidence row 1039622
Observed , by sync.x402_bazaar/1.
- Kind
- listing
- About
- source_record x402_bazaar:https://api.fresh402.com/v1/check
- Recorded
- Previous row
- None: the first of its kind about this subject
- Body SHA-256
- 9f94a9bcf8f59e3e1749b4f93ab6190da73d05acad1ae31313cc818455bd26ab
- Leaf
- 0xf9b5d118cbedc176105f393b51e69490ef6bfa4a66d2d4c868919525a90d4bc4
What was observed
{
"endpoints": [
[
"x402",
"https://api.fresh402.com/v1/check"
]
],
"name": "Fresh402 Web Intelligence",
"owner_address": "0xfac492a8d7843c9afcca6a1691bccb5425ab14f3",
"raw": {
"accepts": [
{
"amount": "5000",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2"
},
"maxTimeoutSeconds": 300,
"network": "eip155:8453",
"payTo": "0xFAC492A8D7843C9aFCCa6A1691BCCB5425ab14F3",
"scheme": "exact"
}
],
"description": "Use Check for a changed/unchanged signal and optional compact text diff. Exactly one URL or existing watch ID; URL plus rules can create a watch, whereas watch_id reuses saved rules and forbids overrides. Use Smart Diff for structured changes. On-demand only; x402 $0.005 USDC on Base, including cache hits.",
"extensions": {
"bazaar": {
"info": {
"input": {
"body": {
"include_diff": true,
"url": "https://example.com/"
},
"bodyType": "json",
"method": "POST",
"type": "http"
},
"output": {
"example": {
"cached": false,
"changed": false,
"content_kind": "html",
"diff": {
"available": true,
"change_ratio": 0,
"changed": false
},
"hash": "1111111111111111111111111111111111111111111111111111111111111111",
"network_fetched": true,
"url": "https://example.com/",
"watch_id": "w_0123456789abcdef0123456789abcdef"
},
"type": "json"
}
},
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"additionalProperties": false,
"properties": {
"body": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"description": "Paid Check input: exactly one of url or watch_id is required. Content rules are allowed only on the url path; watch_id always reuses saved rules. Optional previous_hash overrides the reference hash; max_age_seconds controls cache reuse and include_diff controls text-diff output.",
"examples": [
{
"include_diff": true,
"max_age_seconds": 0,
"selector": "main",
"url": "https://example.com/docs"
}
],
"oneOf": [
{
"required": [
"url"
]
},
{
"required": [
"watch_id"
]
}
],
"properties": {
"html_attributes": {
"description": "Optional HTML-only watch rule: up to4 of href,title,alt,aria-label; default[] retains existing text-only normalization. Distinct names are sorted; nonempty rules create a separate version1 watch/baseline. Records bounded meaningful attributes within the saved selector or filtered page, including same-text link destination changes. Cannot be supplied with watch_id, even[]. Unsafe hrefs are hashed, never fetched. Limits:200 elements,2048 characters/value,32768 evidence bytes; excess fails, never clips silently.",
"items": {
"description": "One explicitly observed HTML attribute: href (a/area only),title,alt or aria-label. No class/style/event attributes; links are inert evidence and never fetched.",
"enum": [
"alt",
"aria-label",
"href",
"title"
],
"type": "string"
},
"maxItems": 4,
"type": "array"
},
"ignore_json_paths": {
"description": "Optional JSON-only exclusions, up to 20 paths of 1-256 characters starting with '/'; '~0'/'~1' escapes and '*' segments are supported. Example: ['/updated_at']. Accepted only with url; default []. With watch_id, omit entirely (including []): saved paths are reused.",
"items": {
"description": "JSON Pointer-style path, 1-256 characters, starting with '/'. Decode '~0' as '~' and '~1' as '/'; '*' matches all object keys or array elements. Example: '/items/*/updated_at'.",
"maxLength": 256,
"minLength": 1,
"pattern": "^\\/",
"type": "string"
},
"maxItems": 20,
"type": "array"
},
"ignore_selectors": {
"description": "Optional HTML-only exclusion array, up to 20 supported CSS selectors of 1-256 characters each, e.g. ['.timestamp']. Accepted only with url; default []. With watch_id, omit the field entirely (including []): saved exclusions are reused.",
"items": {
"description": "HTML element(s) to remove before normalization: a supported CSS selector, 1-256 characters, e.g. '.timestamp' or 'nav'.",
"maxLength": 256,
"minLength": 1,
"type": "string"
},
"maxItems": 20,
"type": "array"
},
"include_diff": {
"description": "Optional boolean; runtime default: true. Request a compact deterministic text diff when content changed and compatible prior text is retained. False omits the diff; true cannot recover unavailable old content and does not enable Smart Diff's structural analysis.",
"type": "boolean"
},
"max_age_seconds": {
"description": "Optional integer cache age in seconds, 0-86400; runtime default: 0. A positive value permits reuse of a sufficiently recent watch result without fetching. Zero contacts the source (conditional HTTP may return 304). Cached Checks still require payment; this does not schedule background polling.",
"maximum": 86400,
"minimum": 0,
"type": "integer"
},
"previous_hash": {
"description": "Optional previous Fresh402 content hash: exactly 64 hexadecimal characters, case-insensitive. Overrides comparison with the watch's current stored hash. Omit to use that stored hash; a new URL watch without a prior hash returns changed:null. Hash comparison does not require retained old text, but a text diff does; a hash cannot reconstruct missing content.",
"pattern": "^[a-fA-F0-9]{64}$",
"type": "string"
},
"selector": {
"description": "Optional HTML CSS scope, 1-256 characters, e.g. 'main'; accepted only with url. Omit for the page after built-in noise removal. No match returns 422; not supported for JSON/plain text. With watch_id, omit this field: the saved selector is reused.",
"maxLength": 256,
"minLength": 1,
"type": "string"
},
"url": {
"description": "Supply exactly one of url or watch_id. URL must be absolute public HTTPS on port 443, at most 4096 characters, with no credentials/private targets, e.g. 'https://example.com/docs'. Fresh402's own service URLs, including its discovery /openapi.json, cannot be targets; choose an external public document. With url, optional content rules identify the watch; an existing watch is reused or a new one is created by this paid Check. Separate registration is not required. No JavaScript rendering.",
"format": "uri",
"maxLength": 4096,
"pattern": "^[Hh][Tt][Tt][Pp][Ss]://",
"type": "string"
},
"watch_id": {
"description": "Supply exactly one of watch_id or url. An existing ID returned by fresh402_register (free), POST /v1/register, or a URL-based Check: 'w_' followed by 32 lowercase hexadecimal characters. Reuses that watch's stored URL and rules. When supplied, omit selector, ignore_selectors and ignore_json_paths entirely, even empty arrays. Do not invent an ID.",
"pattern": "^w_[a-f0-9]{32}$",
"type": "string"
}
},
"type": "object"
},
"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": {
"cache_status": {
"type": "string"
},
"cached": {
"type": "boolean"
},
"changed": {
"type": [
"boolean",
"null"
]
},
"checked_at": {
"type": "string"
},
"comparison_source": {
"type": "string"
},
"content_kind": {
"type": "string"
},
"diff": {
"properties": {
"added_excerpt": {
"type": "string"
},
"available": {
"type": "boolean"
},
"change_ratio": {
"type": "number"
},
"changed": {
"type": "boolean"
},
"content_truncated": {
"type": "boolean"
},
"excerpt_truncated": {
"description": "True when bounded contextual added/removed excerpts were clipped; independent of retained snapshot completeness.",
"type": "boolean"
},
"reason": {
"type": "string"
},
"removed_excerpt": {
"type": "string"
}
},
"type": "object"
},
"final_url": {
"type": "string"
},
"hash": {
"type": "string"
},
"html_attribute_rules_version": {
"const": 1
},
"html_attributes": {
"items": {
"enum": [
"href",
"title",
"alt",
"aria-label"
]
},
"type": "array"
},
"network_fetched": {
"type": "boolean"
},
"noise_detected": {
"type": "boolean"
},
"normalizer_version": {
"type": "integer"
},
"persistence_error": {
"type": "string"
},
"previous_hash": {
"type": [
"string",
"null"
]
},
"raw_changed": {
"type": [
"boolean",
"null"
]
},
"snapshot_saved": {
"type": "boolean"
},
"snapshot_truncated": {
"type": "boolean"
},
"url": {
"type": "string"
},
"watch_id": {
"type": "string"
}
},
"required": [
"watch_id",
"hash",
"changed",
"content_kind"
],
"type": "object"
},
"type": {
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
}
},
"required": [
"input"
],
"type": "object"
}
}
},
"lastUpdated": "2026-10-29T07:52:14.678Z",
"quality": {
"l30DaysTotalCalls": 1,
"l30DaysUniquePayers": 1,
"lastCalledAt": "2026-10-29T07:52:14.165Z"
},
"resource": "https://api.fresh402.com/v1/check",
"serviceName": "Fresh402 Web Intelligence",
"type": "http",
"x402Version": 2
},
"source": "x402_bazaar",
"summary": "Use Check for a changed/unchanged signal and optional compact text diff. Exactly one URL or existing watch ID; URL plus rules can create a watch, whereas watch_id reuses saved rules and forbids overrides. Use Smart Diff for structured changes. On-demand only; x402 $0.005 USDC on Base, including cache hits."
}What the leaf hashes
{"body":"9f94a9bcf8f59e3e1749b4f93ab6190da73d05acad1ae31313cc818455bd26ab","id":1039622,"kind":"listing","method":"sync.x402_bazaar/1","observed_us":1793298451214858,"prev":null,"subject":"x402_bazaar:https://api.fresh402.com/v1/check","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).
- 0xf9b5d6d353777908d4de524996a26f258f2bbbca7b7d08a307a4c09ad92b1586
- 0xe4ab1e80f0fdbaf43dbbe58db024b32b3ea7afb6cf879cead40bb8c3d28ae46b
- 0x8a005786359e1c1890832786c439b230611c6c01018cbc9d10d606f8b82b08d2
- 0x6d8c91137c64f75600a1967b3900f9884f3127166bf1d7c658a7ce5892cad20f
- 0xab2051bf94c836fe615475772e4368c905d5cd21054df266b27063d3e9f035db
- 0x9ee3c570697a6f7ac558e319c8332be3a74ea36f0b3d6d19b49a34abbd40dc09
- 0x4fd1b6f022a7fa3980b57090a3a6db091b8e5098e8abd33e257b033844119d2e
- 0xc89a20f0fa2f6d4ffc97dbce6f26bf55e834094c22683777d55da064600c7c75
- 0x48eb8edaef072e6aecd8130d2109d6f3ddc73615448aa720fb0905271c255050
- 0x31cc2ca2974597a54133fa581b2cc7ed7cab3b259fa9f231d3dded23df8fcc9b
- 0x7f23bfed1fdda31afa76b1c22ea7bed6e02d7596a82c39dfcea1212c92144f45
- 0xf082b147a7521613fbe9272eab89fe351bb2d36c32cae2135effcb786b6dc16c
- 0xa692280fe21039882d68ea89ab3cede099743aeaa4bda6812798278201af19f0
- 0xc7119ea806f683838e5f48055d7f1b7fded1f500c6064dabeb8b9a36bba8932f
- 0x1dd763930a8023065a24b676469b4f26d92a89cfe71226ced9df379f43ec0f0a
- 0x1597ec94933260048e5e583aff1ad0fd44cc49efcd0a994091ed5db4924d7b02
- 0xe01539ac4c9f9cdf265a9e5c6d99c8da11e70ff0c7175fb23e402d33b9d79785
- Day root
- 0xc050555c6b023f2aefb6536efb9f0760b92c30a0d06c572b7daf63db259ea17c
- Chained
- 0x4cde8bae2042512e1bec11650628f0293556311cc4ea74d99ffddf02b671a7d6
- Published
- On Arc Testnet, block 69753317: 0x9e85c340732f416e431b111fae72f7624870125f7f379af2732eb6c2ba8cf6a1