The BNB Chain stack, verified

Muster reads chain 56 directly. This page proves the reads work rather than asserting they do. Every row is read live on this render and checked against the value pinned at build time. A read that fails says unknown. A value that has moved off its pin is flagged, because a silent token or registry change is the failure this page exists to catch.

RPC endpoints, checked live

Each endpoint is asked for its chain id, its head block and a getLogs request at the width the id sweep actually uses. An endpoint that answers a block number but refuses the sweep is worse than one that is plainly down, because it looks healthy.

https://bsc-rpc.publicnode.comanswers chain 56, serves the sweep
chain id 56head block 120,941,988getLogs at 5,000 blocks servedlatency 111ms
https://bsc-dataseed.bnbchain.organswers chain 56, refuses the sweep
chain id 56head block 120,941,988getLogs at 5,000 blocks refusedlatency 308ms

getLogs at 5000: Request exceeds defined limit. URL: https://bsc-dataseed.bnbchain.org Request body: {"method":"eth_getLogs","params":[{

https://bsc-dataseed.defibit.ioanswers chain 56, refuses the sweep
chain id 56head block 120,941,989getLogs at 5,000 blocks refusedlatency 306ms

getLogs at 5000: Request exceeds defined limit. URL: https://bsc-dataseed.defibit.io Request body: {"method":"eth_getLogs","params":[{"a

https://bsc-dataseed-public.bnbchain.organswers chain 56, refuses the sweep
chain id 56head block 120,941,990getLogs at 5,000 blocks refusedlatency 1034ms

getLogs at 5000: Request exceeds defined limit. URL: https://bsc-dataseed-public.bnbchain.org Request body: {"method":"eth_getLogs","par

https://bsc-dataseed.ninicoin.ioanswers chain 56, refuses the sweep
chain id 56head block 120,941,994getLogs at 5,000 blocks refusedlatency 303ms

getLogs at 5000: Request exceeds defined limit. URL: https://bsc-dataseed.ninicoin.io Request body: {"method":"eth_getLogs","params":[{"

Payment tokens, read on chain

decimals() and DOMAIN_SEPARATOR() read at block 120,941,988, 3s ago. lib/constants.ts treats the on-chain decimals() as the source of truth, because a stablecoin carried from a 6-decimal chain is wrong here by a factor of a trillion.

U0xcE24439F2D9C6a2289F741120FE202248B666666
decimals()18matches the pinned 18
DOMAIN_SEPARATOR()0x358738403e5a61fdc30a8be78a60f289cbe4d2545b735a344b6229c70c1679b6matches the pinned value
USD10x8d0D000Ee44948FC98c9B98A4FA4921476f08B0d
decimals()18matches the pinned 18
DOMAIN_SEPARATOR()0x5d939dc193fd011c5e26fb861450a696546a09db6b26db26501fe354ba3ed4bamatches the pinned value
USDT0x55d398326f99059fF775485246999027B3197955
decimals()18matches the pinned 18
DOMAIN_SEPARATOR()not implemented, this token settles over Permit2
USDC0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d
decimals()18matches the pinned 18
DOMAIN_SEPARATOR()not implemented, this token settles over Permit2

Proxy implementations, the upgrade watch

The EIP-1967 implementation slot on each proxy, read at block 120,941,988, 3s ago. The registries can be replaced by their upgrade key, which would change what every record read through them means. A live implementation off its pin is flagged here.

ERC-8004 Identity Registry0x8004A169FB4a3325136EB29fA0ceB6D2e539a432
implementation0x7274e874CA62410a93Bd8bf61c69d8045E399c02matches the pinned implementation
ERC-8004 Reputation Registry0x8004BAa17C55a88189AE136b182e5fdA19dE9b63
implementation0x16e0FA7f7C56B9a767E34B192B51f921BE31dA34matches the pinned implementation
U (United Stables)0xcE24439F2D9C6a2289F741120FE202248B666666
implementation0xbef21313C69c009fD7D9510A8d3A481a32473DFCmatches the pinned implementation
USD1 (World Liberty Financial USD)0x8d0D000Ee44948FC98c9B98A4FA4921476f08B0d
implementation0x694Aa534bdef8eD63244eB902E7914e527891F08matches the pinned implementation
USDT (BSC-USD)0x55d398326f99059fF775485246999027B3197955
implementationnot an EIP-1967 proxy, no implementation slot
USDC (Binance-Peg)0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d
implementation0xBA5Fe23f8a3a24BEd3236F05F2FcF35fd0BF0B5Cmatches the pinned implementation

Reproduce it

Every value on this page is one call anyone can run.

# chain id, expected 56
cast chain-id --rpc-url https://bsc-rpc.publicnode.com

# a payment token's decimals(), expected 18 on every BSC stablecoin
cast call 0xcE24439F2D9C6a2289F741120FE202248B666666 \
  "decimals()(uint8)" --rpc-url https://bsc-rpc.publicnode.com

# its EIP-712 domain separator, matched against the value the hire path signs under
cast call 0xcE24439F2D9C6a2289F741120FE202248B666666 \
  "DOMAIN_SEPARATOR()(bytes32)" --rpc-url https://bsc-rpc.publicnode.com

# the implementation behind a registry proxy, so an upgrade shows up
cast storage 0x8004A169FB4a3325136EB29fA0ceB6D2e539a432 \
  0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc \
  --rpc-url https://bsc-rpc.publicnode.com