Blog
Guides
Step-by-step recipes for reading onchain data: fixing a specific error you hit, or pulling a specific value out of a protocol like Aave, Uniswap, or Chainlink. Copy the snippet, adapt the address, move on.

ENS Reverse Lookup: Turning Addresses Into Names Without an Indexer
Resolve ENS primary names from wallet addresses with one REST call — using the Universal Resolver, which verifies forward resolution for you. Live, tested examples.

Permit2 Allowances: The Second Approval Layer Most Tools Never Check
How to read Permit2's two-layer approval system with a REST API — the token-level wrapper approval, and the per-app sub-allowance that actually decides what a router can move.

ERC-4626 Vault Share Price: convertToAssets Across Any Vault, No SDK
Read any ERC-4626 vault share price in a single REST call using convertToAssets — the vault-vs-asset decimals trap, and batching several vaults together.

How to Decode Ethereum Calldata Without an ABI File
You have a contract address and a raw 0x calldata blob, no ABI file. Here's how to decode the function call and its arguments anyway, with a worked example.

Aave V3 Health Factor Explained: getUserAccountData, Decimals, and the Infinite Health Case
Decode Aave V3's getUserAccountData correctly: six struct fields, three decimal scales, and why a zero-debt wallet returns a healthFactor near 1.16e59.

Using Chainlink Price Feeds Correctly: Staleness, Sequencer Uptime, and Decimals
The three checks a Chainlink price feed integration needs to be correct: staleness against the heartbeat, Base sequencer uptime, and decimals normalization without hardcoding 8.

Fixing "could not decode result data (value="0x")" in Ethers and Viem
Ethers and viem throw could not decode result data (value=0x) for four real reasons, from unresolved proxies to wrong chains. Diagnose each one and fix it fast.

ERC-8004 Explained: Query Onchain AI Agent Identity and Reputation with a REST Call
ERC-8004 gives AI agents a portable onchain identity and reputation record. Query the live Identity and Reputation registries with evmquery — no ABI, no SDK.

Why Your eth_call Loop Hits 429s (and How Multicall3 Fixes It)
A loop of eth_call calls works fine in dev, then throws 429 in production. Here's the real free-tier RPC limit behind it, and how Multicall3 fixes it.