addrbookFor publishers
← The evidence ledger

Evidence row 785596

Observed , by sync.x402_bazaar/1.

Kind
listing
About
source_record x402_bazaar:https://apiwitchcraft.duckdns.org/fx
Recorded
Previous row
#548075
Body SHA-256
1ad26da36efcb3b33b1477d79c7307df8acc5ce3790b847175079d3f1e50b928
Leaf
0x79b49e16a929d41f17a020999a1acbabfa78eae49dceb10a01f3692374d6fda7

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-28T09:34:02.665Z",
    "quality": {
      "l30DaysTotalCalls": 2,
      "l30DaysUniquePayers": 2,
      "lastCalledAt": "2026-10-28T09:34:01.625Z"
    },
    "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":"1ad26da36efcb3b33b1477d79c7307df8acc5ce3790b847175079d3f1e50b928","id":785596,"kind":"listing","method":"sync.x402_bazaar/1","observed_us":1793211226045167,"prev":548075,"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 (231336 rows).

  1. 0x79b4b6d129525fe0f514fba791d863d69445a743ed35dac36dccb6bc0e5e092a
  2. 0x005ef06b736063e2ecfbf610b2896cc65e191cea7d18b4a4fbdf9e3d6edfeb32
  3. 0xbb4b4118df167f478c487b2ab5d2fb7c859ceb3ac3ea80935121b542570d13e9
  4. 0x30d3924ea7c5c85fa4007153fcbf6a1a61143074053814153679fe815c327b54
  5. 0x199faefef99f2eadb337f923a661a73a30191a1467168ee8bf0fed7193641603
  6. 0xba05fd73c9bcae6ea81b076e8d0f013181640171207901b674386fd2759dc4e1
  7. 0x274c5987085a4fef38e17f17fa0ccb13f22114dbe5067bdce4e1ae6ab0bfe591
  8. 0x763eb6243db8092dd05df16d4d61dea1ea9e0d9c8f54cba86ed819322756f903
  9. 0x703e697535b7a29deeb031f726731f991d19e44bd2fe84824b5696a4a7650b23
  10. 0xd6e611b3b7733bf46b7366291661346a628e816d6840f9f5b29bb8970cdeb094
  11. 0xd7b6f3791d679b5e1ec9209128252cc85037c888c183b65a574fb24c9f62ed05
  12. 0x14bc09b6df5a608be5eb21fd732d89ed12cec17a5315a631f36ba8d1ba314ab3
  13. 0x95d7bc27dc9ea43e607251bd7e1cdfa9e00b59b71051b5db78fe06bf25becc5b
  14. 0x40581185279a8bf075dca3a4c3a5648ec6f62098ba7402cbc097d5cc707e0840
  15. 0xab4e84d781dccd579dcf5c47a356a4a2e6cac58a2aefdf3543a3fa15238fa4db
  16. 0x74cf00e07b52415c2184cf20be69d195ed2725497a6892c2f3e449497c17d0ec
  17. 0x7a743a0a09057bae687051274e1d45bf973bd36a1a4ba16a191b5d29e3bdfa2a
  18. 0xe027395fafb7fc41921c42ca0542524ea22204cbd5908b70b27f3d5fb26f5d0f
Day root
0x2c19037464cc4c493624565f01775d6446fc78eaa118fc6865bfe2bfca9ff78e
Chained
0xd1d7dee8322ceff8f4c8d83aa1fe4a4466825c2af1c97dbde3d35db61234f7be
Published
On Arc Testnet, block 69584042: 0x8bae2b1d097834c8b458513862d70d29ee807e98dc2e863b27250131c15b35ae

How to check it · This row as JSON