Universal multi-chain signing SDK for AI agents — TypeScript implementation.
npm install @bankofai/agent-wallet
# or
pnpm add @bankofai/agent-walletIncludes CLI (agent-wallet), EVM and TRON support.
import { resolveWallet } from "@bankofai/agent-wallet";
const wallet = await resolveWallet({ network: "tron:nile" });
const signature = await wallet.signMessage(new TextEncoder().encode("hello"));resolveWallet automatically finds your wallet config in ~/.agent-wallet (or AGENT_WALLET_DIR).
import {
resolveWallet, // → Wallet (one-shot)
resolveWalletProvider, // → ConfigWalletProvider | EnvWalletProvider
ConfigWalletProvider, // file-backed provider (local_secure / raw_secret)
EnvWalletProvider, // env-var-backed provider (AGENT_WALLET_PRIVATE_KEY)
} from "@bankofai/agent-wallet";Returns a ready-to-sign Wallet for the given network:
const wallet = await resolveWallet({ network: "eip155:1" });
const sig = await wallet.signTransaction({ to: "0x...", value: 0 });Returns either ConfigWalletProvider or EnvWalletProvider based on what's available:
const provider = resolveWalletProvider({ network: "eip155:1" });
// Get the active wallet
const wallet = await provider.getActiveWallet();
// Or a specific wallet (ConfigWalletProvider only)
const wallet2 = await provider.getWallet("my_wallet", "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)
interface Wallet {
getAddress(): Promise<string>;
signRaw(rawTx: Uint8Array): Promise<string>;
signTransaction(payload: Record<string, unknown>): Promise<string>;
signMessage(msg: Uint8Array): Promise<string>;
}
interface Eip712Capable {
signTypedData(data: Record<string, unknown>): Promise<string>;
}Both 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.ts
- bsc-sign-and-broadcast.ts
- tron-x402-sign-typed-data.ts
- bsc-x402-sign-typed-data.ts
- dual-sign-typed-data-from-private-key.ts
- switch-active-wallet.ts
pnpm install
pnpm testMIT — BankOfAI