← The evidence ledger
Evidence row 122322
Observed , by baseline/1.
- Kind
- listing
- About
- source_record x402_bazaar:https://tanod.dev/v1/pdf/ocr
- Recorded
- Previous row
- None: the first of its kind about this subject
- Body SHA-256
- bba22211f94e83e2bcb638ee7c1d959e4dd4c5480985b226f1ea935f08eff327
- Leaf
- 0xaa01b8e233f79fb8b79983c32c322c52e227c6d01c06cf2c944a588650ca10fe
What was observed
{
"endpoints": [
[
"x402",
"https://tanod.dev/v1/pdf/ocr"
]
],
"name": "Tanod pdfpeek",
"owner_address": "0x593857a4a4f619543ea12394137c3004ce841720",
"raw": {
"accepts": [
{
"amount": "10000",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2"
},
"maxTimeoutSeconds": 300,
"network": "eip155:8453",
"payTo": "0x593857A4a4F619543ea12394137C3004ce841720",
"scheme": "exact"
},
{
"amount": "10000",
"asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
"extra": {
"name": "USD Coin",
"version": "2"
},
"maxTimeoutSeconds": 300,
"network": "eip155:137",
"payTo": "0x593857A4a4F619543ea12394137C3004ce841720",
"scheme": "exact"
},
{
"amount": "10000",
"asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"extra": {
"feePayer": "CjNFTjvBhbJJd2B5ePPMHRLx1ELZpa8dwQgGL727eKww"
},
"maxTimeoutSeconds": 300,
"network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
"payTo": "RMk9k3VC8dr4hhjgFh88rGhjAbzfBzHxJJ5n2fTcqus",
"scheme": "exact"
},
{
"amount": "10000000000000000",
"asset": "0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d",
"extra": {
"assetTransferMethod": "permit2",
"name": "USD Coin",
"version": "2"
},
"maxTimeoutSeconds": 300,
"network": "eip155:56",
"payTo": "0x593857A4a4F619543ea12394137C3004ce841720",
"scheme": "exact"
},
{
"amount": "10000",
"asset": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
"extra": {
"name": "USD Coin",
"version": "2"
},
"maxTimeoutSeconds": 300,
"network": "eip155:42161",
"payTo": "0x593857A4a4F619543ea12394137C3004ce841720",
"scheme": "exact"
},
{
"amount": "10000",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "GatewayWalletBatched",
"verifyingContract": "0x77777777dcc4d5a8b6e418fd04d8997ef11000ee",
"version": "1"
},
"maxTimeoutSeconds": 604900,
"network": "eip155:8453",
"payTo": "0x593857A4a4F619543ea12394137C3004ce841720",
"scheme": "exact"
},
{
"amount": "10000",
"asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
"extra": {
"name": "GatewayWalletBatched",
"verifyingContract": "0x77777777dcc4d5a8b6e418fd04d8997ef11000ee",
"version": "1"
},
"maxTimeoutSeconds": 604900,
"network": "eip155:137",
"payTo": "0x593857A4a4F619543ea12394137C3004ce841720",
"scheme": "exact"
},
{
"amount": "10000",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"assetTransferMethod": "permit2",
"facilitatorAddress": "0x8F5cB67B49555E614892b7233CFdDEBFB746E531",
"name": "USD Coin",
"version": "2"
},
"maxTimeoutSeconds": 300,
"network": "eip155:8453",
"payTo": "0x593857A4a4F619543ea12394137C3004ce841720",
"scheme": "upto"
}
],
"description": "pdfpeek (Tanod) PDF OCR: make a scanned PDF searchable, a text layer on up to 5 pages, with the text. Use when a scanned PDF has no text layer and needs OCR so its text can be searched or read. Add output=url for a 24 h link.",
"extensions": {
"bazaar": {
"info": {
"input": {
"body": {
"pages": "1",
"skip_text": false,
"url": "https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf"
},
"bodyType": "json",
"method": "POST",
"type": "http"
},
"output": {
"example": {
"active_content_removed": {},
"dpi": 200,
"file": {
"bytes": 15472,
"content_type": "application/pdf",
"data_base64": "JVBERi0xLjQKJb/3... (trimmed: 20,632 base64 characters in the reply)",
"name": "searchable.pdf",
"pages": 1
},
"input_bytes": 13264,
"input_pages": 1,
"lang": "eng",
"ocr_pages": [
1
],
"operation": "ocr",
"output_bytes": 15472,
"skipped_has_text": [],
"text": "Dummy PDF file",
"text_truncated": false,
"untrusted_content": true
},
"type": "json"
}
},
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"additionalProperties": false,
"properties": {
"body": {
"additionalProperties": false,
"properties": {
"dpi": {
"default": 200,
"description": "100-300 (default 200); at most 200 for more than 5 pages.",
"maximum": 300,
"minimum": 100,
"type": "integer"
},
"lang": {
"default": "eng",
"description": "Installed tesseract languages only, '+'-joined (eng today).",
"maxLength": 50,
"minLength": 3,
"pattern": "^[a-z][a-z_]{1,15}(\\+[a-z][a-z_]{1,15}){0,2}$",
"type": "string"
},
"output": {
"default": "base64",
"description": "base64 (default): the file comes back inline as base64. url: the file is stored for 24 hours and the reply carries a download link (url, expires_at, bytes, content_type, sha256) instead of the base64, which keeps the file out of your context window.",
"enum": [
"base64",
"url"
],
"type": "string"
},
"pages": {
"description": "Pages to OCR, at most 10, each part N, N-M, -M or last (no open N- ranges), e.g. 1-3,7. At most 5 pages is the lower price.",
"maxLength": 200,
"minLength": 1,
"pattern": "^[0-9a-zA-Z ,\\-]+$",
"type": "string"
},
"pdf_base64": {
"anyOf": [
{
"maxLength": 13398872,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The PDF as base64 (at most 10 MB decoded per request); or use url."
},
"skip_text": {
"default": true,
"description": "Leave pages that already have text alone.",
"type": "boolean"
},
"url": {
"anyOf": [
{
"maxLength": 2048,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Public http(s) URL of the PDF (at most 20 MB; private, internal and IP-literal hosts are refused); or use pdf_base64."
}
},
"required": [
"pages"
],
"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": {
"description": "Abridged to fit the header. Full example: the 402 JSON body. Full schema: https://tanod.dev/openapi.json POST /v1/pdf/ocr",
"properties": {
"active_content_removed": {
"type": "object"
},
"dpi": {
"type": "integer"
},
"file": {
"type": "object"
},
"file_count": {
"type": "integer"
},
"files": {
"type": "array"
},
"input_bytes": {
"type": "integer"
},
"input_pages": {
"type": "integer"
},
"lang": {
"type": "string"
},
"ocr_pages": {
"type": "array"
},
"operation": {
"type": "string"
},
"output_bytes": {
"type": "integer"
},
"skipped_has_text": {
"type": "array"
},
"text": {
"type": "string"
},
"text_truncated": {
"type": "boolean"
},
"untrusted_content": {
"type": "boolean"
}
},
"required": [
"operation",
"output_bytes",
"untrusted_content",
"file"
],
"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-13T20:27:29.387Z",
"quality": {
"l30DaysTotalCalls": 4,
"l30DaysUniquePayers": 3,
"lastCalledAt": "2026-10-13T20:27:28.678Z"
},
"resource": "https://tanod.dev/v1/pdf/ocr",
"serviceName": "Tanod pdfpeek",
"tags": [
"pdfpeek",
"pdf",
"ocr",
"pdf-tools",
"documents"
],
"type": "http",
"x402Version": 2
},
"source": "x402_bazaar",
"summary": "pdfpeek (Tanod) PDF OCR: make a scanned PDF searchable, a text layer on up to 5 pages, with the text. Use when a scanned PDF has no text layer and needs OCR so its text can be searched or read. Add output=url for a 24 h link."
}What the leaf hashes
{"body":"bba22211f94e83e2bcb638ee7c1d959e4dd4c5480985b226f1ea935f08eff327","id":122322,"kind":"listing","method":"baseline/1","observed_us":1793025621452326,"prev":null,"subject":"x402_bazaar:https://tanod.dev/v1/pdf/ocr","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).
- 0xaa01962e4b9459dbf6c955f827e69448676aad9646f4e761c687af56b38550c5
- 0x7408bfa5830234f53540058565ff4b090f8b1651ded741aea51a2f4044da4593
- 0xdb9d79a4501d2ffa2ce36e93260df234d62e6837dd123e47a9454ff44a0701e9
- 0x0ccb1322528be9a3c40215380900475ba97a8818d469cb2a0cb50f4895795d5b
- 0xf244030b451f0e548f9c0afd068f687da7f528949b855261e761a19bf2f3f567
- 0x5ed90bd25943b68389935d0fb6d739db67f3a0970cdc62cf4e1887bf808e7063
- 0xae96117e15f8a00a862b86ec9ceb3a753c8a59d172433f53c8e120247c458782
- 0x58b15397c7959021d625410ce18d828acee75953f32e8a5b26bf7f27097e2b15
- 0xc580924a5a23f25de4357c17fc84cd3fafa3d3afccfd4e18ea2cb141221341eb
- 0x382774117c6a99ced4320ca176d4e72cc7226f2fa6e3d8ac0173511fe55d6919
- 0x55ba80743bf45624f0b04651dfd0a37e2a85f91f45e334ff14efbb74a49dd361
- 0x09a19b8d31a6e948e5051cb72b98b1d2b2bfe053f62d6d24d61c22b3ed1c3f24
- 0x4700d6dfdb40e52e2ceb8ffe62c75f3f708d23452f828255fd003d795f5d9d66
- 0x3b4dba7d874fc323b0a364140a9c60f37bf547fe671897653118a9873fe03420
- 0x1a74ed3b3756b9cd946da49701bcec120ec88645013da99fa9eea60b39e1a570
- 0x123ec8bee20ddc55223eeef5a4f4d6c4b6416515adbb911c56759f5cde56e452
- 0xd0651cb9bc8155eb52b5247d506e74b8a935057dc190ba52091702ac25ed3a40
- 0x9a9024edb5069d88a324facb310a5ce8e495214bbaa968f077bede437390194f
- 0x9b9ce5b74b9bab5121612ef6b64920a8d453cbf311096a423eef9702747e868a
- Day root
- 0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
- Chained
- 0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
- Published
- On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae