Remove RainbowKit and replace with native wagmi wallet layer
Problem
@rainbow-me/rainbowkit (v2.2.8) is currently the wallet layer for this app — wired in through providers/WalletProvider.tsx and importing third-party styles into app/globals.css. It's doing more than needed and taking control away from us in the places where we need it most: unrecognized chains, stale cached sessions, and connection state edge cases.
Beyond the bloat, this directly conflicts with the zero-dependency stance already in place across the ecosystem. Both Fate-EVM-Frontend and OrbOracle-EVM-Frontend have already dropped RainbowKit in favor of custom wagmi/viem connection flows. This repo is the odd one out.
What needs to change
- Uninstall
@rainbow-me/rainbowkit and remove the stylesheet import from globals.css
- Tear down the
RainbowKitProvider wrapper and the theme injection in WalletProvider.tsx
- Replace with a
useWalletConnection hook using useAccount, useConnect, and useDisconnect directly
- Port the
ConnectBtn and ChainSwitcher components over from Fate-EVM-Frontend — these already handle network verification at runtime
Acceptance criteria
Remove RainbowKit and replace with native wagmi wallet layer
Problem
@rainbow-me/rainbowkit(v2.2.8) is currently the wallet layer for this app — wired in throughproviders/WalletProvider.tsxand importing third-party styles intoapp/globals.css. It's doing more than needed and taking control away from us in the places where we need it most: unrecognized chains, stale cached sessions, and connection state edge cases.Beyond the bloat, this directly conflicts with the zero-dependency stance already in place across the ecosystem. Both
Fate-EVM-FrontendandOrbOracle-EVM-Frontendhave already dropped RainbowKit in favor of custom wagmi/viem connection flows. This repo is the odd one out.What needs to change
@rainbow-me/rainbowkitand remove the stylesheet import fromglobals.cssRainbowKitProviderwrapper and the theme injection inWalletProvider.tsxuseWalletConnectionhook usinguseAccount,useConnect, anduseDisconnectdirectlyConnectBtnandChainSwitchercomponents over fromFate-EVM-Frontend— these already handle network verification at runtimeAcceptance criteria
@rainbow-me/rainbowkitfully removed frompackage.jsonand the lockfilenpm run devandnpm run buildpass with zero hydration warnings or missing-style errors