Solana-native wallet available as browser extension, mobile app, and a hosted web wallet. Ships an SDK (`@solflare-wallet/sdk`) that lets dApps offer Solflare login without requiring an extension by opening a popup to the hosted wallet.
- 01Solana dApps needing extension + web + mobile coverage
- 02users without a browser extension installed
- 03deep Ledger/Trezor support on Solana
- 04Solana Wallet Standard auto-detection
- 05staking-heavy UX (Solflare ships native staking)
- pnpm add @solflare-wallet/sdk
- pnpm add @solana/wallet-adapter-react @solana/wallet-adapter-react-ui @solana/wallet-adapter-solflare @solana/web3.js
For dApps that already use `@solana/wallet-adapter-react`, just add `new SolflareWalletAdapter()` from `@solana/wallet-adapter-solflare` to the `wallets` array — Solflare also auto-registers via the Solana Wallet Standard so you can pass `wallets={[]}` and rely on detection. To bypass the extension entirely (web wallet popup), use the SDK directly: `const wallet = new Solflare({ network: 'mainnet-beta' }); await wallet.connect(); const sig = await wallet.signMessage(new TextEncoder().encode(msg), 'utf8'); const txSig = await wallet.signAndSendTransaction(tx);` and listen for `wallet.on('connect', ...)` / `wallet.on('disconnect', ...)`. Detect an installed extension via `window.solflare?.isSolflare` before falling back to the SDK popup flow.
- ⚑Provider detection collisions: when both Phantom and Solflare extensions are installed, both write to `window.solana`; always read `window.solflare` directly (or use EIP-6963-style Wallet Standard discovery) instead of trusting `window.solana`.
- ⚑The SDK's web-wallet popup is blocked by default browser popup blockers if `connect()` is not called inside a user gesture handler (click) — wrap the call in an onClick, never trigger it from `useEffect`.
- ⚑Mobile users without the Solflare app installed get redirected to the App/Play Store via deep link, but iOS Safari strips the return URL on cold launch — register a Universal Link in your Solflare developer dashboard or users will be stranded after install.
- ⚑Ledger via Solflare requires the Solana app v1.4+ on the device; older firmware silently truncates messages > 256 bytes, so warn or refuse to sign large SIWS-style messages on hardware wallets.
- ⚑`signAllTransactions` on the hosted web wallet shows ONE confirmation prompt for the whole batch — extension and mobile show one prompt per transaction; design batched flows assuming the worst-case UX.
- ⚑The browser extension's content script is reinjected on navigation in some Chromium builds — cache `window.solflare` references can become stale; re-read on each connect attempt.