The wallet adapter pattern
Every wallet adapter in faremeter follows the same pattern: a factory function that creates a wallet object.Available adapters
| Package | Wallet type | Use case |
|---|---|---|
@faremeter/wallet-ows | OWS vault (Solana + EVM) | Vault-backed signing via Open Wallet Standard |
@faremeter/wallet-solana | Solana keypair | Local development, server-side agents |
@faremeter/wallet-evm | EVM private key | Local development, server-side agents |
@faremeter/wallet-crossmint | Crossmint custodial | Managed wallets, no private keys |
@faremeter/wallet-solana-squads | Squads multisig | DAOs, shared treasuries |
@faremeter/wallet-ledger | Ledger hardware | High-security signing |
Choosing a wallet adapter
- Local keypair / private key — Simplest setup. Keys live in files or environment variables. Good for local development, scripts, and single-machine agents.
- OWS — Keys encrypted in a vault, never exposed to your application. Better for production agents, shared machines, or environments where raw key files feel too exposed.
- Crossmint — No private keys at all. Signing is delegated to a custodial API.
- Squads — Multi-party approval before any payment is signed.
- Ledger — Physical device required for each signature. Maximum security, interactive only.
How wallets plug in
Wallets are passed to payment handlers, which are passed to the fetch wrapper:@faremeter/rides, wallets are added directly and everything else is wired up automatically:
0x is treated as an EVM private key.
Signing flow
- Client receives a 402 response with payment requirements.
- The payment handler checks if the wallet matches the required scheme/network/asset.
- If compatible, the handler asks the wallet to sign the payment.
- The wallet produces a signed payload (chain-specific format).
- The handler wraps the payload into an
X-PAYMENTheader.
Further reading
- Wallet Configuration — Setup guides for each wallet type.
- Payment Handlers — How handlers use wallets.