Skip to main content
Each wallet adapter follows the same pattern: install, create, pass to a handler. This page covers setup for every supported wallet type.

OWS (Open Wallet Standard)

For vault-backed signing on Solana and EVM. Private keys are encrypted at rest in the OWS vault and never exposed to your application.
First, import a key into the OWS vault (one-time setup):
Then create wallets backed by the vault:
The walletNameOrId identifies the wallet in the vault. The passphrase unlocks it for each signing operation. You can optionally pass a vaultPath in the options to use a custom vault directory.

Using OWS with Rides

OWS wallets work with @faremeter/rides via addWalletAdapter. See the Rides SDK docs for a complete example.

Cleaning up

To remove a wallet from the vault:

Solana local keypair

For local development and server-side agents.
The 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.
The first parameter is a 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.
The first parameter is the Solana network ("devnet", "testnet", "mainnet-beta"). Currently supports Solana networks.

Squads multisig

For DAOs and shared treasuries using Squads Protocol on Solana.
The factory takes five positional arguments: the network name, a 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.
There are separate factory functions for each chain. 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 — including OWS — follow the same pattern once created:
The handler uses the wallet to sign payments when a matching 402 requirement is received.

Further reading