← Protocols
Solflare
01Description

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.

02Best for
  • 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)
03Install
  • pnpm add @solflare-wallet/sdk
  • pnpm add @solana/wallet-adapter-react @solana/wallet-adapter-react-ui @solana/wallet-adapter-solflare @solana/web3.js
05Prompt snippet
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.
06Gotchas
  • 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.
07Alternatives