addrbookFor publishers
← The evidence ledger

Evidence row 1261440

Observed , by sync.x402_bazaar/1.

Kind
listing
About
source_record x402_bazaar:https://apiwitchcraft.duckdns.org/fx
Recorded
Previous row
#1038628
Body SHA-256
46d92a0ef944a346f6a2c6900b7524774b8caa8e9a3108960988bf4038a23db3
Leaf
0x5a09af250264b8341797a56025a594c726d6dcc8c9b0b6a664fd99715418ff99

What was observed

{
  "endpoints": [
    [
      "x402",
      "https://apiwitchcraft.duckdns.org/fx"
    ]
  ],
  "name": "apiwitchcraft.duckdns.org/fx",
  "owner_address": "0x604e856c94d6dd6088ce3f9752b2538f70383f03",
  "raw": {
    "accepts": [
      {
        "amount": "2000",
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "maxTimeoutSeconds": 300,
        "network": "eip155:8453",
        "payTo": "0x604e856C94D6dD6088Ce3F9752B2538F70383f03",
        "scheme": "exact"
      }
    ],
    "description": "Live foreign-exchange spot rate between any two supported currencies via CoinGecko exchange_rates (e.g. USD/EUR, BTC/JPY). Returns cross rate computed from CoinGecko's BTC-denominated rates. x402 pay-per-call on Base USDC — no API key, no subscription. Not historical rates; single spot snapshot per call. Returns 400 on unsupported pair.",
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "method": "GET",
            "queryParams": {
              "from": "USD",
              "to": "EUR"
            },
            "type": "http"
          },
          "output": {
            "example": {
              "from": "USD",
              "rate": 0.91,
              "to": "EUR"
            },
            "type": "json"
          }
        },
        "schema": {
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "properties": {
            "input": {
              "additionalProperties": false,
              "properties": {
                "method": {
                  "enum": [
                    "GET"
                  ],
                  "type": "string"
                },
                "queryParams": {
                  "properties": {
                    "from": {
                      "type": "string"
                    },
                    "to": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "from",
                    "to"
                  ],
                  "type": "object"
                },
                "type": {
                  "const": "http",
                  "type": "string"
                }
              },
              "required": [
                "type",
                "method"
              ],
              "type": "object"
            },
            "output": {
              "properties": {
                "example": {
                  "type": "object"
                },
                "type": {
                  "type": "string"
                }
              },
              "required": [
                "type"
              ],
              "type": "object"
            }
          },
          "required": [
            "input"
          ],
          "type": "object"
        }
      }
    },
    "lastUpdated": "2026-10-30T18:34:05.195Z",
    "quality": {
      "l30DaysTotalCalls": 5,
      "l30DaysUniquePayers": 5,
      "lastCalledAt": "2026-10-30T12:50:12.619Z"
    },
    "resource": "https://apiwitchcraft.duckdns.org/fx",
    "tags": [
      "fx",
      "forex",
      "market-data"
    ],
    "type": "http",
    "x402Version": 2
  },
  "source": "x402_bazaar",
  "summary": "Live foreign-exchange spot rate between any two supported currencies via CoinGecko exchange_rates (e.g. USD/EUR, BTC/JPY). Returns cross rate computed from CoinGecko's BTC-denominated rates. x402 pay-per-call on Base USDC — no API key, no subscription. Not historical rates; single spot snapshot per call. Returns 400 on unsupported pair."
}

What the leaf hashes

{"body":"46d92a0ef944a346f6a2c6900b7524774b8caa8e9a3108960988bf4038a23db3","id":1261440,"kind":"listing","method":"sync.x402_bazaar/1","observed_us":1793385511277858,"prev":1038628,"subject":"x402_bazaar:https://apiwitchcraft.duckdns.org/fx","subject_kind":"source_record"}

Proof

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

  1. 0x5a09bb71dd9d0baf26e216077e9f2501eaca54020918713a71988e335ba71b99
  2. 0x46d451767a3d11a08893b06a6b83ec95ba698c32e3976e7bb229b0a680cd08d2
  3. 0x84126d2dfb51121acc1cb26ca6192c587cda732dcd3d8bf24457e591e539ebb7
  4. 0x5584a7c665db800f3751d02fd8327791f857ec75aae5bcdadbc8e6cc43519dd3
  5. 0x11bd98129a0b6c16da3337bb165f8dd1d34ac5ba0e9dedbc8f97ade76eb60037
  6. 0x616af2f1296a1e1a5de535fe87a3fc05de338edd2555ed931e2c2d0649f27526
  7. 0x42e445c5d89e702281eb8e3de7de432de2ebcbe1359d80c0ea88332daa93bee1
  8. 0x3ecbcca00f97c0243ad3b098dc680764000355fca248407bc94333d0e3ac9f5d
  9. 0xcb078f1949d1a68f71a77c010ecf9d4f0a003c1a17b75766eb5c79b277c3f849
  10. 0xc25489674f3dd3d08b5012c019e31f44cb02543f1c7f0b09b627d5ea3d2d6112
  11. 0x903361bd8b3971da6ca5f753c5215165181617b94c6f0d29538d5761a68f1a1e
  12. 0x54ec80395857c9719ea9c92c5ed7e57a962472bbc13e8619615a1c4817119b2c
  13. 0x2ec0a6d79ff828ec3f4a33d6574863da0ead3c7bbeae5ac9a5f800d4be6a010b
  14. 0xd036f65644c5bb700403844636b74b07a0ecb42fea108fce98c04207855ccb3e
  15. 0x7ecc532de10b728de98de2eb2a81fbd8da2254ff32b38b6ffde14af9964fc470
  16. 0x910a91495535ac1a9e959d27d607e185616d2d41b45bc7071c6357f426f372d8
  17. 0xffe660edb9e5c6e3449a49454634c3e7b2f9fe703e5697f723b021735647ab7e
  18. 0x30a81d8fcef4e8f9e2877c62796cfc5612fc1b251127d531dee28f8dbd5c5147
Day root
0x0826c7ad6039e06a2360ca0a4a3a4fe7f2626c6dc19f71a37599386f78b39875
Chained
0x36b4c8a1063758f0b8765fa1bdf75fa92fb543cc183add3e261880ee2bd1f822
Published
On Arc Testnet, block 69923247: 0x8704744146c6967c8abc9e9a99de4db7283b29e840922ea83a69b6fe776e6861

How to check it · This row as JSON