// the find
anza-xyz/wallet-adapter
Modular TypeScript wallet adapters and components for Solana applications.
The de facto standard wallet integration library for Solana dApps, maintained by Anza (the team that took over Solana Labs tooling). It provides a React context/hook abstraction over 30+ wallet adapters so you write one integration and get Phantom, Ledger, Coinbase, and everything else for free. This is essentially required reading if you're building anything on Solana with React.
- Proper monorepo structure with clean separation: core adapter logic, React bindings, UI components, and individual wallet packages are all independent versioned packages—you only ship what you actually use
- The base-ui package decouples button state logic from rendering, so you can swap in your own design system without fighting the built-in CSS
- Wallet Standard support (standard.ts in core/base) means wallets that implement the standard are auto-detected without needing a dedicated adapter package, which reduces the maintenance burden significantly
- Test coverage in the React core is solid—separate test files for desktop vs mobile environments and localStorage edge cases, not just happy-path smoke tests
- Many of the individual wallet adapter packages are clearly not actively maintained by their respective wallet teams—they're thin wrappers that check window globals and were last meaningfully changed years ago, so you may silently get broken adapters for obscure wallets
- The react-ui styles ship as a single flat CSS file with no CSS modules or scoping, so it will collide with your existing styles and requires manual overrides or wrapping
- No framework-agnostic story: if you're not using React, you get the base adapter classes and nothing else—no Vue, Svelte, or vanilla JS wrappers are maintained here
- Auto-connect behavior and localStorage persistence are baked into WalletProvider in ways that are hard to override without forking—if you need custom reconnect logic or want to store wallet state elsewhere, you're working against the grain