addrbookFor publishers
← The evidence ledger

Evidence row 123576

Observed , by baseline/1.

Kind
listing
About
source_record x402_bazaar:https://url.openverbs.com/v1/normalize
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
41cdd776b76d50701c1cf027655a6c66fe0055381936677a61a181f04c9ebb5e
Leaf
0x5dc0791894e11139b1fbc6236b4b42d7af901a210f4ec19be17f9028b8032bb4

What was observed

{
  "endpoints": [
    [
      "x402",
      "https://url.openverbs.com/v1/normalize"
    ]
  ],
  "name": "Normalize URL",
  "owner_address": "0xb3f4de103f34b99f0da19b4f16d6b53a14c2194a",
  "raw": {
    "accepts": [
      {
        "amount": "2000",
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "maxTimeoutSeconds": 300,
        "network": "eip155:8453",
        "payTo": "0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A",
        "scheme": "exact"
      }
    ],
    "description": "Canonicalize a URL: WHATWG parsing already lowercases the host, resolves dot-segments and drops default ports; on top of that, query parameters are sorted by default and you can optionally drop the fragment or a trailing slash. Returns the normalized URL and whether it changed.",
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "body": {
              "removeHash": false,
              "sortQuery": true,
              "url": "https://Example.com/a/?b=2&a=1"
            },
            "bodyType": "json",
            "method": "POST",
            "type": "http"
          }
        },
        "schema": {
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "properties": {
            "input": {
              "additionalProperties": false,
              "properties": {
                "body": {
                  "additionalProperties": false,
                  "properties": {
                    "lowercaseHostname": {
                      "description": "Lowercase the hostname (always applied by WHATWG). Default true.",
                      "type": "boolean"
                    },
                    "removeHash": {
                      "description": "Drop the #fragment. Default false.",
                      "type": "boolean"
                    },
                    "removeTrailingSlash": {
                      "description": "Drop a trailing '/' from the path. Default false.",
                      "type": "boolean"
                    },
                    "sortQuery": {
                      "description": "Sort query parameters alphabetically. Default true.",
                      "type": "boolean"
                    },
                    "url": {
                      "description": "The URL to normalize.",
                      "maxLength": 8192,
                      "minLength": 1,
                      "type": "string"
                    }
                  },
                  "required": [
                    "url"
                  ],
                  "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"
            }
          },
          "required": [
            "input"
          ],
          "type": "object"
        }
      }
    },
    "lastUpdated": "2026-10-08T05:39:19.894Z",
    "quality": {
      "l30DaysTotalCalls": 2,
      "l30DaysUniquePayers": 2,
      "lastCalledAt": "2026-10-08T05:39:19.63Z"
    },
    "resource": "https://url.openverbs.com/v1/normalize",
    "serviceName": "Normalize URL",
    "tags": [
      "normalize url",
      "canonicalize url",
      "sort query parameters",
      "remove url fragment",
      "clean url api"
    ],
    "type": "http",
    "x402Version": 2
  },
  "source": "x402_bazaar",
  "summary": "Canonicalize a URL: WHATWG parsing already lowercases the host, resolves dot-segments and drops default ports; on top of that, query parameters are sorted by default and you can optionally drop the fragment or a trailing slash. Returns the normalized URL and whether it changed."
}

What the leaf hashes

{"body":"41cdd776b76d50701c1cf027655a6c66fe0055381936677a61a181f04c9ebb5e","id":123576,"kind":"listing","method":"baseline/1","observed_us":1793025623337368,"prev":null,"subject":"x402_bazaar:https://url.openverbs.com/v1/normalize","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).

  1. 0x5dc082e622e4a2b175b9bf052d73f87412dee7405183f546dc038b133d92eebc
  2. 0x2b6751c054cbf605dbf7a8d812b7f9fba15e86cfe401adc32db8804c0a37fe32
  3. 0x80300f1b938934f2e74f107e6d9ca6988a331e106c6e877b25a635a3451a7b08
  4. 0x94333824af9810d334cc5edb77dd55999d36226f1393a31efb81d0a9649f6b25
  5. 0x8027da7bd0d895cf4adf768858c0a4bd36c21486340f30ae122c36e0ad44f319
  6. 0xd28fd62bd12c569e64908414be4f3bab0c24fece5dcbebce36871faa6ee3494d
  7. 0xaa0de6e3a8f147b62007698e9da479e77f009831ee1b8ad147e16346afd9b414
  8. 0xa18e735f4d7f038722666fd28b10d23821defe3e306d319948fbaf5c62be6fad
  9. 0x58cf3e668681453283a9ec044f89a8e224d42b88ac092d9414435eec41da281e
  10. 0x116728891cb4c83d2e8172d6192a92a31125d01dcb46174186e930ee9a03ea1a
  11. 0xb91bf0ba3ebff769d1b88f93fcb076477149787a7e31c3c28ce4fe8823b7c144
  12. 0x2121cc2dbcb8663af57743dc445c8a59e5bbfffe89703f0606c9843f0d35aff8
  13. 0x66883b42f4167ade51c4909f050c5478524e23786fb0b5c48bd1a53580960a68
  14. 0x216cebb9ae5414599109a02297c4817d7d1c6b1394afeb97efe38e32f0053974
  15. 0x7726154b91b2ad65b13849ef6cb6443b1f0ff113a3089c9bd5f2bcfc16be099d
  16. 0x47b89901b0f07938a6b9a66ddf35683903f79d756a7c7763665fd632758b08d0
  17. 0x9a83be955a206deb65b995adfd92c58fa31c95fbbf926bd199d300e70b08b26d
  18. 0x20704208aa6923d6b2450ef74ede87a6e0265d46447926038fe9506e9e154b2d
  19. 0x9b9ce5b74b9bab5121612ef6b64920a8d453cbf311096a423eef9702747e868a
Day root
0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
Chained
0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
Published
On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae

How to check it · This row as JSON