addrbookFor publishers
← The evidence ledger

Evidence row 2199931

Observed , by sync.x402_bazaar/1.

Kind
listing
About
source_record x402_bazaar:https://agents.avasis.ai/v1/eth/authorization-check
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
75cb21406450f1a3ce76b0e822c15e6f55bbb9ef6022586235c4400c9e608339
Leaf
0xacb62fe0a26443af99d39a7d83c7412b897bd48ca5f0369bfa4c0d6a1877f95c

What was observed

{
  "endpoints": [
    [
      "x402",
      "https://agents.avasis.ai/v1/eth/authorization-check"
    ]
  ],
  "name": "Avasis Agent Platform",
  "owner_address": "0x6264191d6dd5427435b5e829077842e130ef1fc8",
  "raw": {
    "accepts": [
      {
        "amount": "20000",
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "maxTimeoutSeconds": 120,
        "network": "eip155:8453",
        "payTo": "0x6264191D6dD5427435B5E829077842e130Ef1fc8",
        "scheme": "exact"
      }
    ],
    "description": "x402 authorization check on Ethereum (chain 1, $0.02): the EIP-3009 authorization you will sign (from, to, value, validAfter, validBefore, nonce) + its 402 quote (payTo, amount, asset, network) -> SIGN/CAUTION/BLOCK: payTo / amount / asset / chain match, nonce unused, not expired, EIP-712 domain verified on-chain, look-alike USDC, balance, decoy >= $1, the digest you sign. Phrases: should I sign this, x402 authorization check, eip-3009, decoy quote. GET or POST JSON. Never charged on 4xx/5xx.",
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "method": "GET",
            "queryParams": {
              "amount": "20000",
              "asset": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
              "chain": "ethereum",
              "from": "0x8ec901f7e2710163387d70950f680f1ea2269d15",
              "maxTimeout": 120,
              "network": "eip155:1",
              "nonce": "0xa1b2c3d4a1b2c3d4a1b2c3d4a1b2c3d4a1b2c3d4a1b2c3d4a1b2c3d4a1b2c3d4",
              "payTo": "0x6264191d6dd5427435b5e829077842e130ef1fc8",
              "to": "0x6264191d6dd5427435b5e829077842e130ef1fc8",
              "validBefore": "1793518925",
              "value": "20000"
            },
            "type": "http"
          },
          "output": {
            "example": {
              "authorization": {
                "from": "0x8ec901f7e2710163387d70950f680f1ea2269d15",
                "nonce": "0xa1b2c3d4a1b2c3d4a1b2c3d4a1b2c3d4a1b2c3d4a1b2c3d4a1b2c3d4a1b2c3d4",
                "nonce_used": false,
                "primary_type": "TransferWithAuthorization",
                "seconds_until_expiry": 110,
                "to": "0x6264191d6dd5427435b5e829077842e130ef1fc8",
                "valid_after": "0",
                "valid_before": "1793518925",
                "valid_now": true,
                "value_raw": "20000",
                "value_units": "0.02",
                "value_usd": 0.02,
                "window_s": 1793518925
              },
              "block_number": 53364734,
              "block_timestamp": 1793518815,
              "chain": "ethereum",
              "chain_id": 1,
              "digest": {
                "eip712_digest": "0xa5eb1a2bb1b6283c2e0b10f6fe4e68449fb7b157ae8956dc5fd00e35cfdcb420",
                "note": "eip712_digest = keccak256(0x1901 || domainSeparator || structHash): what eth_signTypedData_v4 signs; compare it with your wallet's prompt",
                "struct_hash": "0x242f86ef909386979cd3fc1238cf25ad012e338444e5917a2f4dd32c1e1f829a"
              },
              "domain": {
                "chain_id": 8453,
                "expected": {
                  "chain_id": 8453,
                  "name": "USD Coin",
                  "separator": "0x02fa7265e7c5d81118673727957699e4d68f74cd74b7db77da710fe8a2c7834f",
                  "version": "2"
                },
                "matches_onchain": true,
                "name": "USD Coin",
                "separator_computed": "0x02fa7265e7c5d81118673727957699e4d68f74cd74b7db77da710fe8a2c7834f",
                "verifying_contract": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
                "version": "2"
              },
              "headline": "SIGN on Base: payTo matches, amount matches, asset matches, network base matches, nonce unused, valid for 110 s, domain separator verified on-chain, canonical USDC, balance 16.71874 covers 0.02",
              "kind": "authorization-check",
              "pay_to": {
                "address": "0x6264191d6dd5427435b5e829077842e130ef1fc8",
                "is_contract": false
              },
              "payer": {
                "balance_raw": "16718740",
                "balance_units": "16.71874",
                "sufficient": true
              },
              "quote": {
                "amount_raw": "20000",
                "asset": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
                "given": true,
                "matches": {
                  "amount": true,
                  "asset": true,
                  "network": true,
                  "pay_to": true
                },
                "max_timeout_s": 120,
                "network": "base",
                "pay_to": "0x6264191d6dd5427435b5e829077842e130ef1fc8"
              },
              "rail": "x402-authorization-check-1",
              "reads": {
                "calls": 10,
                "elapsed_ms": 5,
                "rpc": "fixture"
              },
              "token": {
                "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
                "canonical_usdc": true,
                "decimals": 6,
                "domain_separator_onchain": "0x02fa7265e7c5d81118673727957699e4d68f74cd74b7db77da710fe8a2c7834f",
                "is_contract": true,
                "name": "USD Coin",
                "symbol": "USDC",
                "version": "2"
              },
              "typed_data": {
                "domain": {
                  "chainId": 8453,
                  "name": "USD Coin",
                  "verifyingContract": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
                  "version": "2"
                },
                "message": {
                  "from": "0x8ec901f7e2710163387d70950f680f1ea2269d15",
                  "nonce": "0xa1b2c3d4a1b2c3d4a1b2c3d4a1b2c3d4a1b2c3d4a1b2c3d4a1b2c3d4a1b2c3d4",
                  "to": "0x6264191d6dd5427435b5e829077842e130ef1fc8",
                  "validAfter": "0",
                  "validBefore": "1793518925",
                  "value": "20000"
                },
                "primaryType": "TransferWithAuthorization",
                "types": {
                  "EIP712Domain": [
                    {
                      "name": "name",
                      "type": "string"
                    },
                    {
                      "name": "version",
                      "type": "string"
                    },
                    {
                      "name": "chainId",
                      "type": "uint256"
                    },
                    {
                      "name": "verifyingContract",
                      "type": "address"
                    }
                  ],
                  "TransferWithAuthorization": [
                    {
                      "name": "from",
                      "type": "address"
                    },
                    {
                      "name": "to",
                      "type": "address"
                    },
                    {
                      "name": "value",
                      "type": "uint256"
                    },
                    {
                      "name": "validAfter",
                      "type": "uint256"
                    },
                    {
                      "name": "validBefore",
                      "type": "uint256"
                    },
                    {
                      "name": "nonce",
                      "type": "bytes32"
                    }
                  ]
                }
              },
              "verdict": {
                "checks_ok": [
                  "payTo matches",
                  "amount matches",
                  "asset matches",
                  "network base matches",
                  "nonce unused",
                  "valid for 110 s",
                  "domain separator verified on-chain",
                  "canonical USDC",
                  "balance 16.71874 covers 0.02"
                ],
                "level": "SIGN",
                "reasons": [],
                "sign": true
              }
            },
            "type": "json"
          }
        },
        "schema": {
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "properties": {
            "input": {
              "additionalProperties": false,
              "properties": {
                "method": {
                  "enum": [
                    "GET"
                  ],
                  "type": "string"
                },
                "queryParams": {
                  "additionalProperties": false,
                  "properties": {
                    "amount": {
                      "description": "the quote's accepts[].amount (v2) / maxAmountRequired (v1), atomic units: sets matches.amount",
                      "type": "string"
                    },
                    "asset": {
                      "description": "the quote's accepts[].asset (token contract)",
                      "type": "string"
                    },
                    "chain": {
                      "description": "optional; must be ethereum / 1 on this route",
                      "type": "string"
                    },
                    "domainChainId": {
                      "description": "optional domain.chainId of the typed data (must be this chain's)",
                      "minimum": 1,
                      "type": "integer"
                    },
                    "domainName": {
                      "description": "optional domain.name of the typed data (checked against the token's on-chain DOMAIN_SEPARATOR)",
                      "type": "string"
                    },
                    "domainVersion": {
                      "description": "optional domain.version of the typed data",
                      "type": "string"
                    },
                    "from": {
                      "description": "the payer: the wallet that signs (authorization.from) (0x + 40 hex)",
                      "type": "string"
                    },
                    "maxTimeout": {
                      "description": "the quote's accepts[].maxTimeoutSeconds: flags a validBefore longer than the seller asked for",
                      "minimum": 1,
                      "type": "integer"
                    },
                    "network": {
                      "description": "the quote's accepts[].network: base / eip155:8453 or ethereum / eip155:1",
                      "type": "string"
                    },
                    "nonce": {
                      "description": "authorization.nonce: 32 random bytes (0x + 64 hex), one per payment",
                      "type": "string"
                    },
                    "payTo": {
                      "description": "the quote's accepts[].payTo: sets matches.pay_to (BLOCK on mismatch)",
                      "type": "string"
                    },
                    "primaryType": {
                      "description": "TransferWithAuthorization or ReceiveWithAuthorization (default TransferWithAuthorization, the x402 exact scheme)",
                      "type": "string"
                    },
                    "to": {
                      "description": "the recipient (authorization.to; must equal the quote's payTo) (0x + 40 hex)",
                      "type": "string"
                    },
                    "validAfter": {
                      "description": "authorization.validAfter, unix seconds (default 0)",
                      "type": "string"
                    },
                    "validBefore": {
                      "description": "authorization.validBefore, unix seconds (x402 clients set now + maxTimeoutSeconds)",
                      "type": "string"
                    },
                    "value": {
                      "description": "authorization.value in atomic units (USDC has 6 decimals: 20000 = $0.02)",
                      "type": "string"
                    },
                    "verifyingContract": {
                      "description": "domain.verifyingContract: the token contract the typed data names (default USDC on this chain)",
                      "type": "string"
                    }
                  },
                  "required": [
                    "from",
                    "to",
                    "value",
                    "validBefore",
                    "nonce"
                  ],
                  "type": "object"
                },
                "type": {
                  "const": "http",
                  "type": "string"
                }
              },
              "required": [
                "type",
                "method"
              ],
              "type": "object"
            },
            "output": {
              "properties": {
                "example": {
                  "properties": {
                    "also_available": {
                      "type": "object"
                    },
                    "authorization": {
                      "type": "object"
                    },
                    "block_number": {
                      "type": "integer"
                    },
                    "block_timestamp": {
                      "type": "integer"
                    },
                    "chain": {
                      "type": "string"
                    },
                    "chain_id": {
                      "type": "integer"
                    },
                    "digest": {
                      "type": "object"
                    },
                    "domain": {
                      "type": "object"
                    },
                    "headline": {
                      "type": "string"
                    },
                    "kind": {
                      "type": "string"
                    },
                    "pay_to": {
                      "type": "object"
                    },
                    "payer": {
                      "type": "object"
                    },
                    "quote": {
                      "type": "object"
                    },
                    "rail": {
                      "type": "string"
                    },
                    "token": {
                      "type": "object"
                    },
                    "typed_data": {
                      "type": "object"
                    },
                    "verdict": {
                      "type": "object"
                    }
                  },
                  "required": [
                    "chain",
                    "verdict",
                    "authorization",
                    "quote",
                    "token",
                    "domain",
                    "typed_data",
                    "digest",
                    "headline"
                  ],
                  "type": "object"
                },
                "type": {
                  "type": "string"
                }
              },
              "required": [
                "type"
              ],
              "type": "object"
            }
          },
          "required": [
            "input"
          ],
          "type": "object"
        }
      },
      "builder-code": {
        "info": {
          "a": "bc_d5i1omim"
        },
        "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"
        }
      }
    },
    "lastUpdated": "2026-11-02T17:38:34.353Z",
    "quality": {
      "l30DaysTotalCalls": 1,
      "l30DaysUniquePayers": 1,
      "lastCalledAt": "2026-11-02T17:38:34.235Z"
    },
    "resource": "https://agents.avasis.ai/v1/eth/authorization-check",
    "serviceName": "Avasis Agent Platform",
    "tags": [
      "x402",
      "authorization-check",
      "eip-3009",
      "eip-712",
      "pre-sign"
    ],
    "type": "http",
    "x402Version": 2
  },
  "source": "x402_bazaar",
  "summary": "x402 authorization check on Ethereum (chain 1, $0.02): the EIP-3009 authorization you will sign (from, to, value, validAfter, validBefore, nonce) + its 402 quote (payTo, amount, asset, network) -> SIGN/CAUTION/BLOCK: payTo / amount / asset / chain match, nonce unused, not expired, EIP-712 domain verified on-chain, look-alike USDC, balance, decoy >= $1, the digest you sign. Phrases: should I sign this, x402 authorization check, eip-3009, decoy quote. GET or POST JSON. Never charged on 4xx/5xx."
}

What the leaf hashes

{"body":"75cb21406450f1a3ce76b0e822c15e6f55bbb9ef6022586235c4400c9e608339","id":2199931,"kind":"listing","method":"sync.x402_bazaar/1","observed_us":1793646793605871,"prev":null,"subject":"x402_bazaar:https://agents.avasis.ai/v1/eth/authorization-check","subject_kind":"source_record"}

Proof

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

  1. 0xacb646af448848b526cce78e3f958e6ae211c9c0d3916fa57ad537e41a0c33e4
  2. 0x190381e455f0127c22461661ec891605e12abfea3bc9f6030487a17868b44157
  3. 0x9ba51d0179b3ae2e1fe09268158192f80a5b06f0bb08bd0421dc268193cae610
  4. 0xede46e2f06f6334758ba2461694a9b04635eb19b34ec7da98e895414ff004792
  5. 0x4e0c4c5947842a6064e4438806ccd1838c7fc4101b23ef57c135f1556b5bd134
  6. 0x251d37b2f8fd9ac15fa6bc9457c9df4c6c38d885ae05a7a9a98d08f59bb315bd
  7. 0xd4dc51648e13e05a4788ee1a9fd79454c814c76fbc73a8eba8bc8f2326a797f5
  8. 0xfd3dcef5b6837324267af1e5b9ca221c5ed5447cd4a5472c1e2b3b1957fb7e7f
  9. 0xdec67f582e547bbf0dbf931f50d46b47e7cc5f193bdc94d82af02c106501c2c6
  10. 0x4c70ec0fb1392a7753630a2cb0b6008e4f889e6ea880dd6cb3847043b8aa08f9
  11. 0x2ccda8c18ff07f00c8bb027f9f15ae0c0d5b653ed69ac4ac66f46fa53a11ad61
  12. 0xba75ac8fae3b7769dc511d447c671590cf9f4572510e81111cdc037d6738de1d
  13. 0x30482ffd581ea067af14f15cf3c17e7dcb174f749e858ecded170a1f5f75cc59
  14. 0x27deeb1ef1692b4773e73c16b6d8d0cdf4251fe2660821e5336f57539770fd2f
  15. 0x793184605629cd36ba80a07cbe115ca35e8923297bf024260c6f5c06b255f638
  16. 0x2922573a524a0694086782ac45fa3083d3fc3f6a2a479b2105e1e2f06b2916f7
  17. 0x07ad80c0c234ecea379a2f4450dfd0804db049dbc62abe77af6306049ca6b6c2
  18. 0x98cbbf2c68ab4c0b4db782aeb88bea1f30b02178cf8b5d3d24a931d19492ea6d
  19. 0x252cce55f1a3d5391c16f82d7f62494429a5f69b03486d4cfcfb7b2c96d6c884
Day root
0x78fecaabbe319e56f5c4b80fc02e2052e198ad24781da8832a475ff65f2002d1
Chained
0xdc35957db5d1371ca382b9152878ffece28ec7c5cb4f98fd71ddb367f8b999b2
Published
On Arc Testnet, block 70432815: 0x56b814612eb2e3e544153df3e91e1f7199106d1e430c7d8c6b653feeb9ebe9af

How to check it · This row as JSON