What problem does it solve? AI agents and developers frequently confuse viem with ethers.js patterns, producing code with wrong types (BigNumber instead of bigint), missing chain configuration, and unsafe transactions sent without simulation. This Skill provides correct, current viem patterns for reading blockchain state, writing transactions, and handling errors on any EVM chain. ## Core Features & Use Cases - Type-Safe Contract Interaction: Read and write contracts with full ABI type inference using as const assertions, readContract, simulateContract, and writeContract. - Client & Transport Architecture: Configure PublicClient, WalletClient, and TestClient with HTTP, WebSocket, and fallback transports across 50+ built-in chain definitions. - Utilities & Error Handling: Convert values with parseEther/formatUnits, encode and decode ABI data, and walk structured error chains to extract revert reasons. - Use Case: Build a dApp backend that checks ERC-20 balances via multicall, simulates a token approval, executes the write, waits for the receipt, and decodes any revert reason if the transaction fails. ## Quick Start Use the viem skill to create a public client on mainnet and read the USDC balance of a given wallet address.