← The evidence ledger
Evidence row 122280
Observed , by baseline/1.
- Kind
- listing
- About
- source_record x402_bazaar:https://tanod.dev/v1/image/hash
- Recorded
- Previous row
- None: the first of its kind about this subject
- Body SHA-256
- ebaf9ef7e849ed84bd986e2381bdbd96c11b69cdc78ecfb86fe28f28b0313582
- Leaf
- 0xcbef1230a63e28031b473f2e64ad058449ab3c89711ebf6a4335152191ba8397
What was observed
{
"endpoints": [
[
"x402",
"https://tanod.dev/v1/image/hash"
]
],
"name": "Tanod imagepeek",
"owner_address": "0x593857a4a4f619543ea12394137c3004ce841720",
"raw": {
"accepts": [
{
"amount": "2000",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2"
},
"maxTimeoutSeconds": 300,
"network": "eip155:8453",
"payTo": "0x593857A4a4F619543ea12394137C3004ce841720",
"scheme": "exact"
},
{
"amount": "2000",
"asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
"extra": {
"name": "USD Coin",
"version": "2"
},
"maxTimeoutSeconds": 300,
"network": "eip155:137",
"payTo": "0x593857A4a4F619543ea12394137C3004ce841720",
"scheme": "exact"
},
{
"amount": "2000",
"asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"extra": {
"feePayer": "CjNFTjvBhbJJd2B5ePPMHRLx1ELZpa8dwQgGL727eKww"
},
"maxTimeoutSeconds": 300,
"network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
"payTo": "RMk9k3VC8dr4hhjgFh88rGhjAbzfBzHxJJ5n2fTcqus",
"scheme": "exact"
},
{
"amount": "2000000000000000",
"asset": "0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d",
"extra": {
"assetTransferMethod": "permit2",
"name": "USD Coin",
"version": "2"
},
"maxTimeoutSeconds": 300,
"network": "eip155:56",
"payTo": "0x593857A4a4F619543ea12394137C3004ce841720",
"scheme": "exact"
},
{
"amount": "2000",
"asset": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
"extra": {
"name": "USD Coin",
"version": "2"
},
"maxTimeoutSeconds": 300,
"network": "eip155:42161",
"payTo": "0x593857A4a4F619543ea12394137C3004ce841720",
"scheme": "exact"
},
{
"amount": "2000",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "GatewayWalletBatched",
"verifyingContract": "0x77777777dcc4d5a8b6e418fd04d8997ef11000ee",
"version": "1"
},
"maxTimeoutSeconds": 604900,
"network": "eip155:8453",
"payTo": "0x593857A4a4F619543ea12394137C3004ce841720",
"scheme": "exact"
},
{
"amount": "2000",
"asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
"extra": {
"name": "GatewayWalletBatched",
"verifyingContract": "0x77777777dcc4d5a8b6e418fd04d8997ef11000ee",
"version": "1"
},
"maxTimeoutSeconds": 604900,
"network": "eip155:137",
"payTo": "0x593857A4a4F619543ea12394137C3004ce841720",
"scheme": "exact"
}
],
"description": "imagepeek (Tanod) perceptual hashes: aHash, dHash, pHash, wHash, optionally compared. Use when images must be compared for near-duplicates with perceptual hashes.",
"extensions": {
"bazaar": {
"info": {
"input": {
"body": {
"compare_url": "https://raw.githubusercontent.com/ianare/exif-samples/master/jpg/gps/DSCN0012.jpg",
"url": "https://raw.githubusercontent.com/ianare/exif-samples/master/jpg/gps/DSCN0010.jpg"
},
"bodyType": "json",
"method": "POST",
"type": "http"
},
"output": {
"example": {
"bits": 64,
"compare": {
"distance": {
"ahash": 19,
"dhash": 34,
"phash": 34,
"whash": 20
},
"final_url": "https://raw.githubusercontent.com/ianare/exif-samples/master/jpg/gps/DSCN0012.jpg",
"hashes": {
"ahash": "e4fae8c01e0e0000",
"dhash": "0c168a9174dce2be",
"phash": "f1f136161a62d393",
"whash": "eefaf8d03e1e1202"
},
"input": {
"animated": false,
"bytes": 159137,
"format": "jpeg",
"frames": 1,
"has_alpha": false,
"height": 480,
"width": 640
},
"likely_same": false,
"similarity": {
"ahash": 0.7031,
"dhash": 0.4688,
"phash": 0.4688,
"whash": 0.6875
},
"source_url": "https://raw.githubusercontent.com/ianare/exif-samples/master/jpg/gps/DSCN0012.jpg"
},
"final_url": "https://raw.githubusercontent.com/ianare/exif-samples/master/jpg/gps/DSCN0010.jpg",
"hashes": {
"ahash": "fcffffb310160040",
"dhash": "313c1d66e2e4e595",
"phash": "cedbd88c49eaf808",
"whash": "fcfffff310340000"
},
"input": {
"animated": false,
"bytes": 161713,
"format": "jpeg",
"frames": 1,
"has_alpha": false,
"height": 480,
"width": 640
},
"notes": [],
"operation": "hash",
"source": {
"library": "Pillow",
"license": "MIT-CMU (HPND)",
"url": "https://python-pillow.org"
},
"source_url": "https://raw.githubusercontent.com/ianare/exif-samples/master/jpg/gps/DSCN0010.jpg"
},
"type": "json"
}
},
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"additionalProperties": false,
"properties": {
"body": {
"additionalProperties": false,
"properties": {
"algorithms": {
"anyOf": [
{
"items": {
"enum": [
"ahash",
"dhash",
"phash",
"whash"
],
"type": "string"
},
"maxItems": 4,
"minItems": 1,
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Default: all four."
},
"auto_orient": {
"default": true,
"description": "Apply the EXIF orientation first (default true).",
"type": "boolean"
},
"compare_base64": {
"anyOf": [
{
"maxLength": 13333464,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A second image as base64 (at most 10 MB decoded; or compare_url)."
},
"compare_url": {
"anyOf": [
{
"maxLength": 2048,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A second image to compare (or compare_base64)."
},
"hash_size": {
"default": 8,
"description": "Hash grid: 8 (64-bit hashes, default) or 16 (256-bit).",
"enum": [
8,
16
],
"type": "integer"
},
"image_base64": {
"anyOf": [
{
"maxLength": 13333464,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The image as standard or url-safe base64 (at most 10 MB decoded; a data:image/...;base64, prefix is fine); or use url."
},
"url": {
"anyOf": [
{
"maxLength": 2048,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Public http(s) URL of the image (at most 10 MB; private, internal and IP-literal hosts are refused); or use image_base64."
}
},
"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": {
"bits": {
"type": "integer"
},
"compare": {
"properties": {
"distance": {
"type": "object"
},
"likely_same": {
"type": "boolean"
},
"similarity": {
"type": "object"
}
},
"type": "object"
},
"final_url": {
"type": "string"
},
"hashes": {
"type": "object"
},
"input": {
"properties": {
"animated": {
"type": "boolean"
},
"bytes": {
"type": "integer"
},
"format": {
"type": "string"
},
"frames": {
"type": "integer"
},
"has_alpha": {
"type": "boolean"
},
"height": {
"type": "integer"
},
"width": {
"type": "integer"
}
},
"type": "object"
},
"notes": {
"items": {
"type": "string"
},
"type": "array"
},
"operation": {
"type": "string"
},
"source": {
"type": "object"
},
"source_url": {
"type": "string"
}
},
"required": [
"operation",
"input",
"notes",
"bits",
"hashes"
],
"type": "object"
},
"type": {
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
}
},
"required": [
"input"
],
"type": "object"
}
},
"builder-code": {
"info": {
"a": "bc_h7pxv14u"
},
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"a": {
"description": "App builder code",
"pattern": "^[a-z0-9_]{1,32}$",
"type": "string"
},
"s": {
"description": "Service builder codes",
"items": {
"pattern": "^[a-z0-9_]{1,32}$",
"type": "string"
},
"maxItems": 11,
"type": "array"
},
"w": {
"description": "Wallet builder code",
"pattern": "^[a-z0-9_]{1,32}$",
"type": "string"
}
},
"type": "object"
}
},
"erc20ApprovalGasSponsoring": {
"info": {
"description": "The facilitator accepts a raw signed approval transaction and will sponsor the gas fees.",
"version": "1"
},
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"amount": {
"description": "Approval amount (uint256).",
"pattern": "^[0-9]+$",
"type": "string"
},
"asset": {
"description": "The ERC-20 token contract address to approve.",
"pattern": "^0x[a-fA-F0-9]{40}$",
"type": "string"
},
"from": {
"description": "The address of the sender.",
"pattern": "^0x[a-fA-F0-9]{40}$",
"type": "string"
},
"signedTransaction": {
"description": "RLP-encoded signed transaction calling ERC20.approve().",
"pattern": "^0x[a-fA-F0-9]+$",
"type": "string"
},
"spender": {
"description": "The address of the spender (Canonical Permit2).",
"pattern": "^0x[a-fA-F0-9]{40}$",
"type": "string"
},
"version": {
"description": "Schema version identifier.",
"pattern": "^[0-9]+(\\.[0-9]+)*$",
"type": "string"
}
},
"required": [
"from",
"asset",
"spender",
"amount",
"signedTransaction",
"version"
],
"type": "object"
}
},
"payment-identifier": {
"info": {
"required": false
},
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"id": {
"maxLength": 128,
"minLength": 16,
"pattern": "^[a-zA-Z0-9_-]+$",
"type": "string"
},
"required": {
"type": "boolean"
}
},
"required": [
"required"
],
"type": "object"
}
}
},
"iconUrl": "https://res.cloudinary.com/bdb-prod/image/upload/c_fill,ar_1:1,w_256,h_256,f_auto,q_auto/v1791364949/bazaar-icons/d8143c9bc952f5cd.png",
"lastUpdated": "2026-10-15T07:30:49.799Z",
"quality": {
"l30DaysTotalCalls": 4,
"l30DaysUniquePayers": 4,
"lastCalledAt": "2026-10-15T07:30:48.074Z"
},
"resource": "https://tanod.dev/v1/image/hash",
"serviceName": "Tanod imagepeek",
"tags": [
"imagepeek",
"image",
"hash",
"image-resize",
"exif"
],
"type": "http",
"x402Version": 2
},
"source": "x402_bazaar",
"summary": "imagepeek (Tanod) perceptual hashes: aHash, dHash, pHash, wHash, optionally compared. Use when images must be compared for near-duplicates with perceptual hashes."
}What the leaf hashes
{"body":"ebaf9ef7e849ed84bd986e2381bdbd96c11b69cdc78ecfb86fe28f28b0313582","id":122280,"kind":"listing","method":"baseline/1","observed_us":1793025621372960,"prev":null,"subject":"x402_bazaar:https://tanod.dev/v1/image/hash","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).
- 0xcbeeb8761864831c9460da596e08f1813e7ec0087b9936d079a9b094e5761c77
- 0x63fd001eb1295142b5d177080e201244f2c85853665b3e63bdffd1d531af79e1
- 0xc2c9af9895683654c34bb9a36b1077b8b0183e311de3ccb264db9f8ba0def58c
- 0xd019de5a1c56d832740790182e48c6139a1a94ff69c4fdccfc98318bcbddcfd0
- 0x85a7d47c86c338bfe32667a90a8a29b9fd41407b83d2d2be3b8355943d667e6c
- 0x5fdd2d57811b2d236a2449c6770931c94f01c0476fa9071eea942b738676906b
- 0xba08a6ae5d6a056c2074584a0d7abc6a730451eecd82a84334164d3694a2656f
- 0x50097f72f9019614fa93d776bdc340db88d44c142495ec0a6c2e661adb5593e2
- 0x726a778fce960a500e0adbf8806224f8f312af0012d5eb4d9f9c196fb4aadd2e
- 0x271656ddeb4ac114157823f5b692e3080e2fc3456a434600ab85e26da37fbbb5
- 0x351a777a477836c8c26972f993b4d53df3d67c6acea7cef50b5038df678d6a3f
- 0x85ea84dc356483b05e7ec8ed6e303988684070a1512dc756c8e64a7e3604feaf
- 0x985acd37cc044d5aa6ad959194da8e91c81045df83517891ed92f1763a9ab825
- 0x5b20d8aab05225a3497eadcce89d2e2a586a510fb31334793d3f46f88f0157c5
- 0xe94ca5b798e9899ad611e57835af42266e20f53f44977e487d81365e30972beb
- 0x703f95866af09c5e5d6ead7411e9a10f964a41a2aff64d4a55ff0053c023a023
- 0xd0651cb9bc8155eb52b5247d506e74b8a935057dc190ba52091702ac25ed3a40
- 0x9a9024edb5069d88a324facb310a5ce8e495214bbaa968f077bede437390194f
- 0x9b9ce5b74b9bab5121612ef6b64920a8d453cbf311096a423eef9702747e868a
- Day root
- 0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
- Chained
- 0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
- Published
- On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae