Multichain wallet from Coral with native xNFT support — runs executable mini-apps inside the wallet. Available as browser extension and mobile app across Solana, Ethereum (EVM), and Sui; integrates via the Solana Wallet Standard so no custom adapter is needed.
- 01Solana + EVM users with xNFT exposure
- 02wallets-as-platforms (xNFT mini-apps)
- 03Solana Wallet Standard auto-detection
- 04Backpack Exchange tie-ins
- 05consumer dApps targeting active Solana traders
- pnpm add @solana/wallet-adapter-react @solana/wallet-adapter-react-ui @solana/web3.js
- pnpm add @coral-xyz/anchor
Use Backpack via the Solana Wallet Standard — no Backpack-specific adapter is required. Wrap the app in `<ConnectionProvider endpoint={rpc}><WalletProvider wallets={[]} autoConnect><WalletModalProvider>...</WalletModalProvider></WalletProvider></ConnectionProvider>` from `@solana/wallet-adapter-react`; the empty `wallets={[]}` array is intentional — Wallet Standard wallets like Backpack auto-register at `window.navigator.wallets`. Read state with `useWallet()` (`publicKey`, `signMessage`, `signTransaction`, `sendTransaction`). For EVM, Backpack exposes an EIP-1193 provider at `window.backpack.ethereum` (and announces via EIP-6963) — use the wagmi `injected({ target: { id: 'backpack', name: 'Backpack', provider: (w) => w?.backpack?.ethereum } })` connector. Detect installation by listening for the `wallet-standard:register-wallet` event or by checking `window.backpack?.isBackpack`.
- ⚑Do NOT install `@solana/wallet-adapter-backpack` — it is deprecated; Backpack registers itself via the Wallet Standard and the legacy adapter conflicts with the auto-discovery, causing duplicate wallet entries in the modal.
- ⚑Provider detection collisions: Backpack also injects `window.ethereum` if it is the only EVM wallet, but on machines with MetaMask installed Backpack defers — always use EIP-6963 (`eip6963:announceProvider`) for EVM disambiguation rather than reading `window.ethereum`.
- ⚑xNFTs run inside the Backpack runtime, not in a regular browser tab — `window.location`, cookies, and most Web APIs are sandboxed; build xNFT-specific UI with `react-xnft` and the Backpack runtime hooks instead of assuming a browser environment.
- ⚑Mobile Backpack uses Solana Mobile Wallet Adapter (MWA) — Wallet Standard auto-detection only works on desktop browsers; on mobile, route through `@solana-mobile/wallet-adapter-mobile` or use deep-links `backpack://` for the iOS/Android app.
- ⚑Hardware wallet support is limited compared to Phantom/Solflare — Ledger via Backpack only supports Solana, not the EVM or Sui sides; warn users early to avoid mid-transaction failures.
- ⚑The browser extension's background service worker is aggressively suspended — long-lived subscriptions (`provider.on('accountChanged', ...)`) silently stop firing; re-bind listeners on visibility change.