Write real viem against a real EVM running in your tab. Balances, contracts, events and blocks — the code you write here works unchanged against a real node.
You can query any Avalanche address and contract with viem, decode its event history, and fold the result into a wallet report.
Two lines of viem and you are reading a chain. The client is real, the chain is real, and it lives in this tab.
Every balance on chain is an integer of the smallest unit. Getting that wrong is the classic off-by-eighteen-zeroes bug.
A contract call is just a message to an address. The ABI is what turns that message into a function name you can type.
State tells you where things stand. Logs tell you how they got there, and they are the only readable record of it.
Height, timestamps and transaction lists. Enough to answer "when did this happen" without an explorer.
Everything from this track pointed at one address, producing the shape of thing a real product actually ships.