Universal multi-chain signing SDK for AI agents — Python implementation.
pip install bankofai-agent-walletIncludes CLI (agent-wallet), EVM and TRON support — no extras needed.
from agent_wallet import resolve_wallet
wallet = await resolve_wallet(network="tron:nile")
signature = await wallet.sign_message(b"hello")resolve_wallet automatically finds your wallet config in ~/.agent-wallet (or AGENT_WALLET_DIR).
from agent_wallet import (
resolve_wallet, # → Wallet (one-shot)
resolve_wallet_provider, # → ConfigWalletProvider | EnvWalletProvider
ConfigWalletProvider, # file-backed provider (local_secure / raw_secret)
EnvWalletProvider, # env-var-backed provider (AGENT_WALLET_PRIVATE_KEY)
)Returns a ready-to-sign Wallet for the given network:
wallet = await resolve_wallet(network="eip155:1")
sig = await wallet.sign_transaction({"to": "0x...", "value": 0})Returns either ConfigWalletProvider or EnvWalletProvider based on what's available:
provider = resolve_wallet_provider(network="eip155:1")
# Get the active wallet
wallet = await provider.get_active_wallet()
# Or a specific wallet
wallet = await provider.get_wallet("my_wallet", network="tron:nile")- Password available (from
runtime_secrets.jsonorAGENT_WALLET_PASSWORD) →ConfigWalletProvider wallets_config.jsonexists with wallets →ConfigWalletProvider- Otherwise →
EnvWalletProvider(readsAGENT_WALLET_PRIVATE_KEY/AGENT_WALLET_MNEMONIC)
class Wallet(ABC):
async def get_address() -> str
async def sign_raw(raw_tx: bytes) -> str
async def sign_transaction(payload: dict) -> str
async def sign_message(msg: bytes) -> str
class Eip712Capable(ABC):
async def sign_typed_data(data: dict) -> strBoth EVM and TRON network-specific signers implement Wallet + Eip712Capable.
| Network string | Adapter | Mnemonic derivation |
|---|---|---|
eip155 or eip155:<chainId> |
EVM | m/44'/60'/0'/0/{index} |
tron or tron:<chain> |
TRON | m/44'/195'/0'/0/{index} |
| Variable | Description |
|---|---|
AGENT_WALLET_DIR |
Wallet directory (default ~/.agent-wallet) |
AGENT_WALLET_PASSWORD |
Password for local_secure wallets |
AGENT_WALLET_PRIVATE_KEY |
Env fallback private key (hex) |
AGENT_WALLET_MNEMONIC |
Env fallback mnemonic phrase |
AGENT_WALLET_MNEMONIC_ACCOUNT_INDEX |
Mnemonic account index (default 0) |
- tron_sign_and_broadcast.py
- bsc_sign_and_broadcast.py
- tron_x402_sign_typed_data.py
- bsc_x402_sign_typed_data.py
- dual_sign_typed_data_from_private_key.py
- switch_active_wallet.py
pip install -e ".[dev]"
pytestMIT — BankOfAI