Address Explorer
Hover an address in any file: 0x…, a Postgres bytea '\x…' (or '\\x…' inside a string), decode('…', 'hex'), alloy's address!("…"), or a 32-byte log topic. The card shows what is at that address on each chain in chains.json, with chains that hold the same contract grouped together:
- tokens: symbol, name and decimals, read through the proxy
- price feeds (Chainlink AggregatorV3 shape): description, latest answer, how old it is, aggregator
- proxies: EIP-1967, beacon, the legacy OpenZeppelin slot (USDC, cbBTC), EIP-1822, EIP-1167 clones, Safe, and
implementation(), leading with the implementation's name
- verified names from Sourcify, Aave address-book labels, wallets with tx count, balance and EIP-7702 delegation
A chain_id near the address, or a chain name in the file name, puts that chain first and warns when nothing is there.
What leaves your machine
Only after you hover, cached for 10 minutes:
- the address, to one public RPC per chain:
eth_getCode, eth_getBalance, eth_getTransactionCount, and where there is code, four eth_getStorageAt proxy slots and eight read-only eth_calls
- the address and chain id, to
sourcify.dev, for chains where it is a contract
No API keys, nothing signed, no wallet. Address Explorer: Set RPC URL for a chain stores your own URL in VS Code secret storage after checking that it reports the right chain id.
Build and install
npm test
node scripts/package.mjs
code --install-extension dist/address-explorer-*.vsix
No dependencies for tests or packaging. node scripts/smoke.mjs <address> [fileName] runs a live lookup and prints the card. Remove with code --uninstall-extension mgrabina.address-explorer.
Refresh the labels
mkdir -p /tmp/aab && curl -sSfL "$(npm view @bgd-labs/aave-address-book dist.tarball)" | tar xz -C /tmp/aab
node scripts/build-labels.mjs /tmp/aab/package
The script reads the package's compiled files as text and never imports them.
License
MIT. The bundled labels come from BGD Labs' MIT-licensed address book; see THIRD_PARTY_NOTICES.md.