Comprehensive collection of Solana wallet adapters for TypeScript applications with tree-shaking support
—
Comprehensive list of all wallet adapter constants, names, and their capabilities exported by the package.
Type-safe constants for wallet identification and selection in wallet picker UIs.
type WalletName<T extends string = string> = T & { __brand: 'WalletName' };
// Browser & Mobile Wallets
const AlphaWalletName: WalletName<'Alpha'>;
const AvanaWalletName: WalletName<'Avana'>;
const BitgetWalletName: WalletName<'Bitget'>;
const BitKeepWalletName: WalletName<'Bitget'>; // Alias for BitgetWalletName
const BitpieWalletName: WalletName<'Bitpie'>;
const CloverWalletName: WalletName<'Clover'>;
const Coin98WalletName: WalletName<'Coin98'>;
const CoinbaseWalletName: WalletName<'Coinbase Wallet'>;
const CoinhubWalletName: WalletName<'Coinhub'>;
const FractalWalletName: WalletName<'Fractal'>;
const HuobiWalletName: WalletName<'HuobiWallet'>;
const HyperPayWalletName: WalletName<'HyperPay'>;
const KrystalWalletName: WalletName<'Krystal'>;
const MathWalletName: WalletName<'MathWallet'>;
const NekoWalletName: WalletName<'Neko'>;
const NightlyWalletName: WalletName<'Nightly'>;
const NufiWalletName: WalletName<'NuFi'>;
const OntoWalletName: WalletName<'ONTO'>;
const PhantomWalletName: WalletName<'Phantom'>;
const SafePalWalletName: WalletName<'SafePal'>;
const SaifuWalletName: WalletName<'Saifu'>;
const SalmonWalletName: WalletName<'Salmon'>;
const SkyWalletName: WalletName<'SKY Wallet'>;
const SolflareWalletName: WalletName<'Solflare'>;
const SolongWalletName: WalletName<'Solong'>;
const SpotWalletName: WalletName<'Spot'>;
const TokenaryWalletName: WalletName<'Tokenary'>;
const TokenPocketWalletName: WalletName<'TokenPocket'>;
const TorusWalletName: WalletName<'Torus'>;
const TrustWalletName: WalletName<'Trust'>;
const XDEFIWalletName: WalletName<'XDEFI'>;
// Hardware Wallets
const LedgerWalletName: WalletName<'Ledger'>;
const TrezorWalletName: WalletName<'Trezor'>;
// Specialized Wallets
const KeystoneWalletName: WalletName<'Keystone'>;
const ParticleName: WalletName<'Particle'>;
const UnsafeBurnerWalletName: WalletName<'Burner Wallet'>;All these wallets extend BaseMessageSignerWalletAdapter and support transaction signing, message signing, and have empty configuration interfaces:
| Wallet Name | Adapter Class | Versioned Transactions | Special Features |
|---|---|---|---|
| Alpha | AlphaWalletAdapter | ❌ Legacy only | Basic browser wallet |
| Avana | AvanaWalletAdapter | ✅ | Browser extension |
| Bitget | BitgetWalletAdapter | ✅ | Multi-chain wallet (also exports BitKeepWalletAdapter alias) |
| Clover | CloverWalletAdapter | ✅ | Browser extension |
| Coin98 | Coin98WalletAdapter | ❌ Legacy only | Request-based API |
| Fractal | FractalWalletAdapter | ✅ | Gaming-focused |
| Huobi | HuobiWalletAdapter | ✅ | Exchange wallet |
| HyperPay | HyperPayWalletAdapter | ✅ | Mobile wallet |
| Krystal | KrystalWalletAdapter | ✅ | DeFi-focused |
| Neko | NekoWalletAdapter | ✅ | Browser extension |
| Nightly | NightlyWalletAdapter | ✅ | Developer-focused |
| Nufi | NufiWalletAdapter | ✅ | Cardano + Solana |
| Onto | OntoWalletAdapter | ✅ | Identity-focused |
| Saifu | SaifuWalletAdapter | ✅ | Browser extension |
| Salmon | SalmonWalletAdapter | ✅ | Browser wallet |
| Sky | SkyWalletAdapter | ✅ | Browser extension |
| Spot | SpotWalletAdapter | ✅ | Trading-focused |
| Tokenary | TokenaryWalletAdapter | ✅ | Safari extension |
| TokenPocket | TokenPocketWalletAdapter | ✅ | Multi-chain mobile |
| Torus | TorusWalletAdapter | ✅ | Social login |
| Trust Wallet | TrustWalletAdapter | ✅ | Popular mobile wallet |
| XDEFI | XDEFIWalletAdapter | ✅ | Multi-chain browser |
| Wallet Name | Adapter Class | Special Features |
|---|---|---|
| Phantom | PhantomWalletAdapter | ✅ iOS deep linking, account change detection |
| Solflare | SolflareWalletAdapter | ✅ Network configuration, iOS support, MetaMask detection |
| Coinbase Wallet | CoinbaseWalletAdapter | ✅ Enterprise-grade, full transaction support |
These wallets extend BaseSignerWalletAdapter and support transaction signing only (no message signing):
| Wallet Name | Adapter Class | Base Class | Special Features |
|---|---|---|---|
| Bitpie | BitpieWalletAdapter | BaseSignerWalletAdapter | Mobile & browser wallet |
| Coinhub | CoinhubWalletAdapter | BaseSignerWalletAdapter | Browser wallet |
| Ledger | LedgerWalletAdapter | BaseSignerWalletAdapter | WebHID transport, getDerivationPath() utility |
| MathWallet | MathWalletAdapter | BaseSignerWalletAdapter | Multi-chain wallet |
| SafePal | SafePalWalletAdapter | BaseSignerWalletAdapter | Hardware + software wallet |
| Solong | SolongWalletAdapter | BaseSignerWalletAdapter | Legacy browser wallet |
| Trezor | TrezorWalletAdapter | BaseSignerWalletAdapter | Trezor Connect, extensive configuration |
| Wallet Name | Adapter Class | Base Class | Special Features |
|---|---|---|---|
| Keystone | KeystoneWalletAdapter | BaseMessageSignerWalletAdapter | QR-code signing, air-gapped |
| Particle | ParticleAdapter | BaseMessageSignerWalletAdapter | Social login, SDK access via particle property |
| Burner Wallet | UnsafeBurnerWalletAdapter | BaseSignInMessageSignerWalletAdapter | Sign-in with Solana, in-memory keypair |
@walletconnect/solana-adapterimport {
PhantomWalletAdapter,
SolflareWalletAdapter,
LedgerWalletAdapter,
UnsafeBurnerWalletAdapter,
} from "@solana/wallet-adapter-wallets";
const wallets = [
new PhantomWalletAdapter(),
new SolflareWalletAdapter({ network: WalletAdapterNetwork.Mainnet }),
new LedgerWalletAdapter(),
process.env.NODE_ENV === 'development' ? new UnsafeBurnerWalletAdapter() : null,
].filter(Boolean);import {
PhantomWalletName,
SolflareWalletName,
LedgerWalletName
} from "@solana/wallet-adapter-wallets";
const getWalletIcon = (walletName: WalletName) => {
switch (walletName) {
case PhantomWalletName:
return "phantom-icon.svg";
case SolflareWalletName:
return "solflare-icon.svg";
case LedgerWalletName:
return "ledger-icon.svg";
default:
return "default-wallet-icon.svg";
}
};import { BaseSignerWalletAdapter } from "@solana/wallet-adapter-base";
// Filter for hardware wallets only
const hardwareWallets = allWallets.filter(
wallet => wallet instanceof BaseSignerWalletAdapter
);
// Filter for wallets supporting versioned transactions
const modernWallets = allWallets.filter(
wallet => wallet.supportedTransactionVersions.has(0)
);
// Filter for Sign-in with Solana support
const siwsWallets = allWallets.filter(
wallet => 'signIn' in wallet
);// Lazy load wallet adapters
const loadWallet = async (walletName: string) => {
const module = await import("@solana/wallet-adapter-wallets");
switch (walletName) {
case 'Phantom':
return new module.PhantomWalletAdapter();
case 'Solflare':
return new module.SolflareWalletAdapter();
case 'Ledger':
return new module.LedgerWalletAdapter();
default:
throw new Error(`Unsupported wallet: ${walletName}`);
}
};const getAvailableWallets = () => {
const wallets = [];
// Always available
wallets.push(new PhantomWalletAdapter());
wallets.push(new SolflareWalletAdapter());
// Hardware wallets (WebHID required)
if (typeof navigator !== 'undefined' && navigator.hid) {
wallets.push(new LedgerWalletAdapter());
}
// Development only
if (process.env.NODE_ENV === 'development') {
wallets.push(new UnsafeBurnerWalletAdapter());
}
return wallets;
};Most modern wallets support both legacy and versioned transactions:
These wallets only support legacy transactions:
AlphaWalletAdapter)Coin98WalletAdapter)ParticleAdapter)Usage:
// Check transaction version support
const supportsVersioned = wallet.supportedTransactionVersions.has(0);
if (supportsVersioned) {
// Can use VersionedTransaction
const versionedTx = new VersionedTransaction(message);
await wallet.signTransaction(versionedTx);
} else {
// Must use legacy Transaction
const legacyTx = new Transaction();
await wallet.signTransaction(legacyTx);
}Install with Tessl CLI
npx tessl i tessl/npm-solana--wallet-adapter-wallets