What problem does it solve? dApp frontends frequently ship broken user experiences because developers treat wallet connection as a single button and transactions as a loading spinner, missing critical states like user rejection, wrong network, pending confirmation, and on-chain reverts. ## Core Features & Use Cases - Wallet Connection State Machine: Implements the four-state connection flow (disconnected, connecting, connected, wrong-network) using RainbowKit, wagmi v2, and EIP-6963 multi-wallet discovery. - Four-State Transaction Lifecycle: Provides complete transaction components handling idle, awaiting-signature, pending, and confirmed/failed states with silent reset on user rejection (error 4001) and decoded revert reasons. - Gas, Approvals, and Mobile Support: Covers USD-denominated gas estimation, EIP-1559 fee tiers, exact vs infinite ERC-20 approvals with Permit2, WalletConnect v2 mobile flows, and a full production QA checklist. - Use Case: When building a token transfer page on Base, use this Skill to generate a complete React component that prompts network switching, shows "Confirm in wallet..." during signing, displays a block explorer link while pending, and silently resets when the user rejects. ## Quick Start Ask the agent to build a dApp page with RainbowKit wallet connection and a four-state transaction form using wagmi v2 and viem.