Wallet Plugins
Wallet Plugins
Section titled “Wallet Plugins”Wallet plugins manage the adapter’s economic identity - key generation, storage, signing, and balance queries.
Why wallets are plugins
Section titled “Why wallets are plugins”The runtime always needs a wallet - it’s the adapter’s economic identity. But which wallet implementation is right depends on the provider’s setup: a local Solana keypair for simplicity, an OWS-compatible wallet for interoperability, or a hardware-backed signer for production security.
Rather than hard-coding one approach, the runtime defines a WalletProvider interface and swaps implementations via config. Changing wallets is a one-line config change - the rest of the runtime (payment adapters, agent tools, job engine) doesn’t care which wallet is behind the interface. When new wallet standards emerge (multi-chain, MPC, smart contract wallets), they plug in the same way: implement the four methods, publish, configure.
Interface
Section titled “Interface”Every wallet plugin implements the WalletProvider contract:
from agent_adapter_contracts.wallet import WalletProvider
class MyWalletPlugin(WalletProvider): async def get_address(self) -> str: """Return the adapter's public key.""" ...
async def get_balance(self) -> dict: """Return SOL and token balances.""" ...
async def sign_message(self, message: bytes) -> bytes: """Sign arbitrary bytes.""" ...
async def sign_transaction(self, transaction) -> bytes: """Sign a prepared Solana transaction.""" ...Built-in Plugins
Section titled “Built-in Plugins”wallet-solana-raw
Section titled “wallet-solana-raw”Direct Solana keypair management. Generates or imports a keypair, encrypts at rest, handles all signing locally.
wallet: type: "solana_raw" keypairFile: "./wallet.json"wallet-ows
Section titled “wallet-ows”Open Wallet Standard integration. Connects to an OWS-compatible wallet for signing operations.
wallet: type: "ows"Publishing
Section titled “Publishing”[project.entry-points."agent_adapter.wallets"]my_wallet = "my_wallet_plugin:MyWalletPlugin"