addrbookFor publishers
← The evidence ledger

Evidence row 2201289

Observed , by sync.x402_bazaar/1.

Kind
listing
About
source_record x402_bazaar:https://fx-ecb.x402tookit.com/fx-change
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
8a7d3c63d56df41372bf180b58c25b1719bb8b51ec7fd82eae6f17755e8ee38c
Leaf
0x62959f487caac1203c57542c954213fea41d7ed37919bfa2010da6e48ddca096

What was observed

{
  "endpoints": [
    [
      "x402",
      "https://fx-ecb.x402tookit.com/fx-change"
    ]
  ],
  "name": "FX Rates ECB",
  "owner_address": "0xb531320805c5bed1d46aeadcf4f008fdf172dbda",
  "raw": {
    "accepts": [
      {
        "amount": "20000",
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "maxTimeoutSeconds": 300,
        "network": "eip155:8453",
        "payTo": "0xb531320805C5BED1D46AEaDcF4F008FDF172DBDa",
        "scheme": "exact"
      },
      {
        "amount": "20000",
        "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
        "extra": {
          "feePayer": "D6ZhtNQ5nT9ZnTHUbqXZsTx5MH2rPFiBBggX4hY1WePM",
          "transactionVersions": [
            0
          ]
        },
        "maxTimeoutSeconds": 300,
        "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
        "payTo": "DUPiupXtuox38dcGoXUKer5mAydCzmaHjrbQ66qeEm8s",
        "scheme": "exact"
      },
      {
        "amount": "20000",
        "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "maxTimeoutSeconds": 300,
        "network": "eip155:137",
        "payTo": "0xb531320805C5BED1D46AEaDcF4F008FDF172DBDa",
        "scheme": "exact"
      },
      {
        "amount": "20000",
        "asset": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "maxTimeoutSeconds": 300,
        "network": "eip155:42161",
        "payTo": "0xb531320805C5BED1D46AEaDcF4F008FDF172DBDa",
        "scheme": "exact"
      }
    ],
    "description": "Currency pair move over 7-365 days: percent change, high, low, annualized volatility and where today sits in the range.",
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "method": "GET",
            "queryParams": {
              "base": "USD",
              "days": 90,
              "quote": "EUR"
            },
            "type": "http"
          },
          "output": {
            "example": {
              "annualizedVolatilityPct": 4.79,
              "asOf": "2026-10-11T03:53:19.228Z",
              "attribution": "Source: European Central Bank reference rates via Frankfurter.",
              "base": "USD",
              "changePct": 1.946,
              "degraded": false,
              "disclaimer": "Screening signal computed from the named public source. Not financial, legal or investment advice; provided as is. Verify at the source before acting.",
              "fixings": 65,
              "high": {
                "date": "2026-10-07",
                "rate": 0.89469
              },
              "latestRate": 0.89238,
              "low": {
                "date": "2026-08-21",
                "rate": 0.85477
              },
              "notChecked": [
                "intraday swings",
                "causes of the move"
              ],
              "positionInRange": 0.942,
              "quote": "EUR",
              "reasons": [
                "Today sits at 94% of the window's range.",
                "Source: European Central Bank reference rates via Frankfurter."
              ],
              "source": "ECB reference rates via Frankfurter",
              "sourceUrl": "https://api.frankfurter.dev",
              "startRate": 0.87535,
              "summary": "USD/EUR +1.946% over 90 days (0.87535 to 0.89238); range 0.85477 to 0.89469; annualized volatility 4.79%.",
              "thresholds": {
                "highVolAnnualPct": 15,
                "moveAbsPct": 3
              },
              "verdict": "RANGE_BOUND",
              "windowDays": 90
            },
            "type": "json"
          }
        },
        "schema": {
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "properties": {
            "input": {
              "additionalProperties": false,
              "properties": {
                "method": {
                  "enum": [
                    "GET"
                  ],
                  "type": "string"
                },
                "queryParams": {
                  "properties": {
                    "base": {
                      "description": "Base currency",
                      "type": "string"
                    },
                    "days": {
                      "description": "Window in days, 7 to 365, default 30",
                      "type": "integer"
                    },
                    "quote": {
                      "description": "Quote currency",
                      "type": "string"
                    }
                  },
                  "required": [
                    "base",
                    "quote"
                  ],
                  "type": "object"
                },
                "type": {
                  "const": "http",
                  "type": "string"
                }
              },
              "required": [
                "type",
                "method"
              ],
              "type": "object"
            },
            "output": {
              "properties": {
                "example": {
                  "properties": {
                    "annualizedVolatilityPct": {
                      "type": [
                        "null",
                        "number"
                      ]
                    },
                    "asOf": {
                      "type": [
                        "null",
                        "string"
                      ]
                    },
                    "attribution": {
                      "type": [
                        "null",
                        "string"
                      ]
                    },
                    "base": {
                      "type": [
                        "null",
                        "string"
                      ]
                    },
                    "changePct": {
                      "type": [
                        "null",
                        "number"
                      ]
                    },
                    "degraded": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    },
                    "disclaimer": {
                      "type": [
                        "null",
                        "string"
                      ]
                    },
                    "fixings": {
                      "type": [
                        "null",
                        "number"
                      ]
                    },
                    "high": {
                      "properties": {
                        "date": {
                          "type": [
                            "null",
                            "string"
                          ]
                        },
                        "rate": {
                          "type": [
                            "null",
                            "number"
                          ]
                        }
                      },
                      "type": [
                        "null",
                        "object"
                      ]
                    },
                    "latestRate": {
                      "type": [
                        "null",
                        "number"
                      ]
                    },
                    "low": {
                      "properties": {
                        "date": {
                          "type": [
                            "null",
                            "string"
                          ]
                        },
                        "rate": {
                          "type": [
                            "null",
                            "number"
                          ]
                        }
                      },
                      "type": [
                        "null",
                        "object"
                      ]
                    },
                    "notChecked": {
                      "items": {
                        "type": "string"
                      },
                      "type": [
                        "array",
                        "null"
                      ]
                    },
                    "positionInRange": {
                      "type": [
                        "null",
                        "number"
                      ]
                    },
                    "quote": {
                      "type": [
                        "null",
                        "string"
                      ]
                    },
                    "reasons": {
                      "items": {
                        "type": "string"
                      },
                      "type": [
                        "array",
                        "null"
                      ]
                    },
                    "source": {
                      "type": [
                        "null",
                        "string"
                      ]
                    },
                    "sourceUrl": {
                      "type": [
                        "null",
                        "string"
                      ]
                    },
                    "startRate": {
                      "type": [
                        "null",
                        "number"
                      ]
                    },
                    "summary": {
                      "type": [
                        "null",
                        "string"
                      ]
                    },
                    "thresholds": {
                      "properties": {
                        "highVolAnnualPct": {
                          "type": [
                            "null",
                            "number"
                          ]
                        },
                        "moveAbsPct": {
                          "type": [
                            "null",
                            "number"
                          ]
                        }
                      },
                      "type": [
                        "null",
                        "object"
                      ]
                    },
                    "verdict": {
                      "type": [
                        "null",
                        "string"
                      ]
                    },
                    "windowDays": {
                      "type": [
                        "null",
                        "number"
                      ]
                    }
                  },
                  "type": "object"
                },
                "type": {
                  "type": "string"
                }
              },
              "required": [
                "type"
              ],
              "type": "object"
            }
          },
          "required": [
            "input"
          ],
          "type": "object"
        }
      }
    },
    "lastUpdated": "2026-11-02T04:06:24.082Z",
    "quality": {
      "l30DaysTotalCalls": 2,
      "l30DaysUniquePayers": 1,
      "lastCalledAt": "2026-11-02T04:06:23.854Z"
    },
    "resource": "https://fx-ecb.x402tookit.com/fx-change",
    "serviceName": "FX Rates ECB",
    "tags": [
      "fx",
      "volatility",
      "trend"
    ],
    "type": "http",
    "x402Version": 2
  },
  "source": "x402_bazaar",
  "summary": "Currency pair move over 7-365 days: percent change, high, low, annualized volatility and where today sits in the range."
}

What the leaf hashes

{"body":"8a7d3c63d56df41372bf180b58c25b1719bb8b51ec7fd82eae6f17755e8ee38c","id":2201289,"kind":"listing","method":"sync.x402_bazaar/1","observed_us":1793646803194702,"prev":null,"subject":"x402_bazaar:https://fx-ecb.x402tookit.com/fx-change","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. 0x6295a33a568de82570832e92adb115fba57f2b11c26c4ffce1db2436758ffc98
  2. 0x4e27119534652c71ad2f11c213f49e5234c254a75d42095b16402ffe3fd4393c
  3. 0x64792bdf8e9ffcef2aeb968800817ef261ebe0bb0755fd9a00f6b65169fbd397
  4. 0x6483e13ccec4378d8a9d6ec134a2778b7e69671941839d0ff6f4a05e488cbc3e
  5. 0x93f20ebaa92c2d31752f2d8dc9b21e0b465b0a70afefd1d1dd7e6b12fe346e57
  6. 0x395d8a43260d10681b1c9d9de18729ec34efe76af1b22246e41f390d6e12d382
  7. 0x6581e85cda07aba95abd90e6ab0c558e16cfd09a1cc6e5cbfa66063644b4df1e
  8. 0xaa3fabcd6ec2ee52f97c9de76c01a62c8c73ea87f88d4ed6c42843feb41fbe88
  9. 0x1853fd9c25f40ca557c3a22c5a6a515a251bfb72b3f29ff09d99163eee1e5fb7
  10. 0x9257a3cd40035ec68ad359bb9f49e518b1321563da680aa74ebb3d96cea5c6ef
  11. 0x31384fed531ba72d8b15633b0eb125ca578abc3318e4a2c32e2f7f3c457f4e18
  12. 0x01f1d6bc3b4b6d999bc8426485b340e41a9ad059d38c36f458e881f8b52146d1
  13. 0xfcf5d9c790c40588489c41a23736feba4efc9e83eda3317c30f53a98ce8d1d89
  14. 0x6ae97c2bdc679e3326a739627f6c3a307d7e25e547b9bf23dbf2622fb26d858e
  15. 0x23f4763e8db2efe57fbc28dfc68f2b97b65f54a03425994e68157763af649a50
  16. 0x0e5696ae625571c52ddcd8dc09aa6c994b4ab38f2086df20d56f1f01c603e501
  17. 0xf9973981f80219d4f00fa9186b40a8144accc0c9875572fb79eaea312a21a187
  18. 0x4d205063c881c48edbbb37762a8d3bbb7444d4c42daa882f663a231893d25c35
  19. 0x365b161a4b68d750dcc4b3ecce1154a2163c87b08762079428e68f0ebb6a754e
Day root
0x78fecaabbe319e56f5c4b80fc02e2052e198ad24781da8832a475ff65f2002d1
Chained
0xdc35957db5d1371ca382b9152878ffece28ec7c5cb4f98fd71ddb367f8b999b2
Published
On Arc Testnet, block 70432815: 0x56b814612eb2e3e544153df3e91e1f7199106d1e430c7d8c6b653feeb9ebe9af

How to check it · This row as JSON