Skip to content

Wallet

The wallet is the adapter’s economic identity - used for signing transactions, proving ownership, and receiving payments. It is self-custodial: the provider controls their keys.

On first setup, the adapter generates a Solana keypair. The keypair is encrypted at rest and stored locally. The provider never needs to interact with Solana tooling directly.

Providers with existing wallets can import them:

Terminal window
# From a keypair file
agent-adapter wallet import --keypair ./my-wallet.json
# From a base58-encoded private key
agent-adapter wallet import --key "base58-encoded-key"

Or via environment variable in config:

wallet:
type: "solana_raw"
privateKey: "${WALLET_PRIVATE_KEY}"

The embedded agent uses these tools for wallet operations:

ToolDescription
wallet__get_addressReturns the adapter’s public key
wallet__get_balanceChecks SOL and token balances
wallet__sign_messageSigns arbitrary bytes (for challenge-response auth)
wallet__sign_transactionSigns a prepared Solana transaction

The wallet system uses a plugin architecture:

  • solana-raw - direct Solana keypair management
  • ows - Open Wallet Standard integration

See Wallet Plugins for details on available plugins and building your own.