addrbookFor publishers
← The evidence ledger

Evidence row 548689

Observed , by sync.x402_bazaar/1.

Kind
listing
About
source_record x402_bazaar:https://apexfaucet.xyz/api/x402/arc-hook-risk
Recorded
Previous row
#457374
Body SHA-256
c7364c47c0d98e496d341a4fe21db544a59340762972fd786dd44f2ea5c01549
Leaf
0x75a0cf3f945e6b5bb0ec0dd08f9e5f7fe5f30f399f12e62f061903a00b6b5e95

What was observed

{
  "endpoints": [
    [
      "x402",
      "https://apexfaucet.xyz/api/x402/arc-hook-risk"
    ]
  ],
  "name": "Arc Uniswap v4 hook risk",
  "owner_address": "0xd334ab5151c624cada654854e2879903dc4217ed",
  "raw": {
    "accepts": [
      {
        "amount": "3000",
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "credentialTypes": [
            "authorization"
          ],
          "name": "USD Coin",
          "note": "Sign an EIP-3009 transferWithAuthorization to payTo and send it base64 in PAYMENT-SIGNATURE - we settle it and you pay no gas. Or pay and replay the hash in X-PAYMENT-BASE.",
          "replayHeader": "X-PAYMENT-BASE",
          "version": "2"
        },
        "maxTimeoutSeconds": 300,
        "network": "eip155:8453",
        "payTo": "0xd334ab5151c624cada654854e2879903dc4217ed",
        "scheme": "exact"
      },
      {
        "amount": "3000",
        "asset": "0x3600000000000000000000000000000000000000",
        "extra": {
          "credentialTypes": [
            "authorization"
          ],
          "name": "USDC",
          "note": "Sign an EIP-3009 transferWithAuthorization to payTo and send it base64 in PAYMENT-SIGNATURE - we settle it and you pay no gas. Or, since USDC is also the native gas token on Arc, send a plain value transfer to payTo and replay the hash in X-PAYMENT-ARC. Finality is instant on inclusion.",
          "replayHeader": "X-PAYMENT-ARC",
          "rpc": "https://rpc.mainnet.arc.io",
          "version": "2"
        },
        "maxTimeoutSeconds": 300,
        "network": "eip155:5042",
        "payTo": "0xd334ab5151c624cada654854e2879903dc4217ed",
        "scheme": "exact"
      },
      {
        "amount": "3000",
        "asset": "0x3600000000000000000000000000000000000000",
        "extra": {
          "name": "GatewayWalletBatched",
          "note": "Circle Gateway nanopayment: pay from your Gateway balance with a gas-free signature (validBefore at least 7 days out). Settled by Circle in batches.",
          "verifyingContract": "0x77777777dcc4d5a8b6e418fd04d8997ef11000ee",
          "version": "1"
        },
        "maxTimeoutSeconds": 604900,
        "network": "eip155:5042",
        "payTo": "0xd334ab5151c624cada654854e2879903dc4217ed",
        "scheme": "exact"
      },
      {
        "amount": "3000",
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "GatewayWalletBatched",
          "note": "Circle Gateway nanopayment: pay from your Gateway balance with a gas-free signature (validBefore at least 7 days out). Settled by Circle in batches.",
          "verifyingContract": "0x77777777dcc4d5a8b6e418fd04d8997ef11000ee",
          "version": "1"
        },
        "maxTimeoutSeconds": 604900,
        "network": "eip155:8453",
        "payTo": "0xd334ab5151c624cada654854e2879903dc4217ed",
        "scheme": "exact"
      },
      {
        "amount": "3000",
        "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
        "extra": {
          "feePayer": "D93NE2kMj88BPsHfdZZ4A1HX2CGo14Y18Bdb3J4qtD5c"
        },
        "maxTimeoutSeconds": 300,
        "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
        "payTo": "HYiepS7mNCVVKoaDmZLQ6rNtMWHTQqKheM1NLGn1x8kJ",
        "scheme": "exact"
      },
      {
        "amount": "10000000000000000",
        "asset": "0x8d0D000Ee44948FC98c9B98A4FA4921476f08B0d",
        "extra": {
          "credentialTypes": [
            "authorization"
          ],
          "decimals": 18,
          "minUsd": 0.01,
          "name": "World Liberty Financial USD",
          "note": "BNB Smart Chain: sign an EIP-3009 transferWithAuthorization in USD1 (18 decimals, EIP-712 name \"World Liberty Financial USD\", version \"1\") to payTo and send it base64 in PAYMENT-SIGNATURE; we settle it and pay the gas. Minimum $0.01 on BNB.",
          "symbol": "USD1",
          "version": "1"
        },
        "maxTimeoutSeconds": 300,
        "network": "eip155:56",
        "payTo": "0xd334AB5151C624cAdA654854E2879903Dc4217eD",
        "scheme": "exact"
      },
      {
        "amount": "10000000000000000",
        "asset": "0xcE24439F2D9C6a2289F741120FE202248B666666",
        "extra": {
          "credentialTypes": [
            "authorization"
          ],
          "decimals": 18,
          "minUsd": 0.01,
          "name": "United Stables",
          "note": "BNB Smart Chain: sign an EIP-3009 transferWithAuthorization in U (18 decimals, EIP-712 name \"United Stables\", version \"1\") to payTo and send it base64 in PAYMENT-SIGNATURE; we settle it and pay the gas. Minimum $0.01 on BNB.",
          "symbol": "U",
          "version": "1"
        },
        "maxTimeoutSeconds": 300,
        "network": "eip155:56",
        "payTo": "0xd334AB5151C624cAdA654854E2879903Dc4217eD",
        "scheme": "exact"
      }
    ],
    "description": "Arc pre-trade risk in microseconds, no chain call: pass ?hook=0x… and get the verdict read straight out of the Uniswap v4 permission bits encoded in the hook address. It tells you what the hook is ALLOWED to do (run on every swap, rewrite the amounts, touch liquidity), not what it does: permission is not behaviour. No trap rate is quoted - the 83.7% we used to state came from a pre-buy sell quote and was withdrawn on 2026-09-22 after a real round trip sold 10 of 10 pools with that signature.",
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "discoverable": true,
            "method": "GET",
            "queryParams": {
              "hook": "0xB780642659b782b672f20516fC267d5069252044"
            },
            "type": "http"
          },
          "output": {
            "example": {
              "data": {
                "historicalTrapRate": null,
                "hook": "0xb780642659b782b672f20516fc267d5069252044",
                "method": "Uniswap v4 permission bits read from the hook address. No base rate is given: the 2026-09-17 rates were measured with a …",
                "note": "Instant (no chain call). For a definitive answer on one pool use the exit check, which actually attempts the round trip.",
                "ok": true,
                "permissionBits": "10000001000100",
                "permissions": [
                  "beforeInitialize",
                  "afterSwap"
                ],
                "verdict": "can rewrite swaps",
                "why": "This hook runs on every swap AND may rewrite the amounts, which is the machinery that can block or tax a sell. Permissio…"
              },
              "ok": true,
              "paid": 0.003
            },
            "schema": {
              "properties": {
                "data": {
                  "type": "object"
                },
                "ok": {
                  "type": "boolean"
                },
                "paid": {
                  "type": "number"
                }
              },
              "type": "object"
            },
            "type": "json"
          }
        },
        "schema": {
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "properties": {
            "input": {
              "properties": {
                "method": {
                  "enum": [
                    "GET"
                  ],
                  "type": "string"
                },
                "queryParams": {
                  "properties": {
                    "hook": {
                      "description": "The 0x hook address from a Uniswap v4 pool key.",
                      "pattern": "^0x[0-9a-fA-F]{40}$",
                      "type": "string"
                    }
                  },
                  "required": [
                    "hook"
                  ],
                  "type": "object"
                },
                "type": {
                  "const": "http",
                  "type": "string"
                }
              },
              "required": [
                "type",
                "method",
                "queryParams"
              ],
              "type": "object"
            },
            "output": {
              "type": "object"
            }
          },
          "required": [
            "input"
          ],
          "type": "object"
        }
      }
    },
    "iconUrl": "https://res.cloudinary.com/bdb-prod/image/upload/c_fill,ar_1:1,w_256,h_256,f_auto,q_auto/v1791909159/bazaar-icons/f4adc3a60c4cd07b.png",
    "lastUpdated": "2026-10-27T09:07:22.475Z",
    "quality": {
      "l30DaysTotalCalls": 4,
      "l30DaysUniquePayers": 3,
      "lastCalledAt": "2026-10-27T09:07:22.213Z"
    },
    "resource": "https://apexfaucet.xyz/api/x402/arc-hook-risk",
    "serviceName": "Arc Uniswap v4 hook risk",
    "tags": [
      "uniswap v4",
      "hooks",
      "arc",
      "token safety",
      "honeypot"
    ],
    "type": "http",
    "x402Version": 2
  },
  "source": "x402_bazaar",
  "summary": "Arc pre-trade risk in microseconds, no chain call: pass ?hook=0x… and get the verdict read straight out of the Uniswap v4 permission bits encoded in the hook address. It tells you what the hook is ALLOWED to do (run on every swap, rewrite the amounts, touch liquidity), not what it does: permission is not behaviour. No trap rate is quoted - the 83.7% we used to state came from a pre-buy sell quote and was withdrawn on 2026-09-22 after a real round trip sold 10 of 10 pools with that signature."
}

What the leaf hashes

{"body":"c7364c47c0d98e496d341a4fe21db544a59340762972fd786dd44f2ea5c01549","id":548689,"kind":"listing","method":"sync.x402_bazaar/1","observed_us":1793133320616084,"prev":457374,"subject":"x402_bazaar:https://apexfaucet.xyz/api/x402/arc-hook-risk","subject_kind":"source_record"}

Proof

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

  1. 0x75a0da1690cd677943f2cd60cb80f7561d77b87d50001b939638ac50c48d715f
  2. 0xe6bb02d1fd1aa258d21ab74b97c27261ebe100787603094d71747b614a36f955
  3. 0x71acb2ec9308074741c9e3f8c2216e3071a170b5070d6e60fead5851bdf6c5a8
  4. 0xe6492c887751af64480e406165db3a1092781922ff8686f4285885c9863388a9
  5. 0x21ed5c1aa14eae4618e40524277a0d7e6f857a68bc8cec354e51843cf502f874
  6. 0x46a9408271f375f522634b9dcb7c525fc4c5dcfc10d7152a99cf1b68e2de9166
  7. 0xd895d572fd3fd8a4af9baad83db0ed5b43593c1e3af53fa9372e2794056eeb4e
  8. 0x46ed525ad02914fd8f4337c882a710b98ff615b67b69034f0116a413150f7b1a
  9. 0xa6c4fecdc51880ffb2cf24d2fa6b9b5bf674fe4ab3595f1af4cb2fe2678e8702
  10. 0x157dfd2259a87c5750dceb89479bc8f6ea383ea88875177c3af79dc5b2592f8e
  11. 0x5f257f988f0c8c8a45a1094d99dd8e8969da325eabed8aa44c6b668fac04f073
  12. 0x6834d22f4558c2279e3de3027a40f72cd350b3c4a2e54be57aff9ec2c9eaf01a
  13. 0x4094bd5bc2ab60e4518d1ee8a13455a69d7484ea62ecdca2618d0f39d3403503
  14. 0x9848c068b1371232529d2b5738fdc45b854c57da041b69ea7c9e112b14e2d9d1
  15. 0x275720ecabb68df33eee92ae4fd70572a8d952d6c61c061c2869cfc3217aa5c5
  16. 0x23cf9bb4337ee8be7fcae368fd69d24c62c11fb45882127b4cd919bb96a19996
  17. 0x0e01aa9525097570a6edaf32bfc959de57bf5c24317cf10c0716affea85ca60d
  18. 0xa20d48798a34aba12eb9c7297722982d910f06c148f5e27ac59307422964a585
  19. 0x9fc354c0ea3efc3f1b6548bb77ea902a50f2c9647647ea61592efce2bd795699
Day root
0xdd77e5e99da32c3f154180d63e3c3e6fe11e896a2c6896412ef6b5c4bcf7e795
Chained
0x23bb4dfd09f55c15ac3962f53578e02c6114d5bfd9bb451cf8794fb6e2817ef4
Published
On Arc Testnet, block 69414147: 0xb2ebd83aafeb765a0ce66e76aefb133ed06606c98038fd56191e2bcd1dcb77b4

How to check it · This row as JSON