Solana local keypair
For local development and server-side agents.network parameter ("devnet", "testnet", "mainnet-beta") determines which Solana cluster the wallet targets.
If the keypair file does not exist or contains invalid data, createLocalWallet throws with a descriptive error.
EVM private key
For local development and server-side agents.ChainInfo object with the chain’s numeric ID and name. The private key should be a hex string starting with 0x. The wallet supports EIP-712 typed signatures used by the EVM payment handler.
If the private key is malformed, the factory throws.
Crossmint custodial
For managed wallets where you do not handle private keys directly. Crossmint provides a custodial wallet API."devnet", "testnet", "mainnet-beta"). Currently supports Solana networks.
Squads multisig
For DAOs and shared treasuries using Squads Protocol on Solana.Connection, the transaction-signing Keypair, the multisig PDA address, and the squad member Keypair. Squads wallets create proposals that require approval from other multisig members. The payment flow includes a proposal and approval step before the transaction is submitted.
Ledger hardware
For high-security signing with a Ledger hardware wallet.createLedgerSolanaWallet takes a network name and BIP-44 derivation path. createLedgerEvmWallet additionally requires a UserInterface for interactive account selection (use createReadlineInterface() for terminal UIs). You can also use selectLedgerAccount to let the user pick from multiple accounts before creating the wallet.
Requires the Ledger device to be connected and unlocked with the appropriate app open. If the device is not available, the factory throws.
Passing wallets to handlers
All wallets follow the same pattern once created:Further reading
- Payment Handlers — How to register handlers with the fetch wrapper.
- Wallets & Signing — How the wallet adapter pattern works.