@missionsquad/agent-wallet is a TypeScript SDK and CLI for secure wallet-based signing on TRON and EVM chains.
The package is sign-only:
- create or import wallets
- resolve the active wallet
- sign transactions, messages, and typed data
- optionally use hosted adapters such as Privy
It does not broadcast transactions for you.
npm install @missionsquad/agent-wallet
# or
pnpm add @missionsquad/agent-walletInstall the CLI globally if needed:
npm install -g @missionsquad/agent-walletimport { resolveWallet } from "@missionsquad/agent-wallet";
const wallet = await resolveWallet({ network: "tron:nile" });
const signature = await wallet.signMessage(new TextEncoder().encode("hello"));resolveWallet automatically uses ~/.agent-wallet unless AGENT_WALLET_DIR is set.
Create an encrypted wallet:
agent-wallet startList wallets:
agent-wallet listSign a message:
agent-wallet sign msg "MESSAGE" -n tron -p 'StrongPassword123!@#'| Wallet Type | Source | Networks | Password Required | Notes |
|---|---|---|---|---|
local_secure |
CLI config | EVM + TRON | Yes | Encrypted on disk; recommended. |
raw_secret |
CLI config / env | EVM + TRON | No | Plaintext in config or env; dev only. |
privy |
CLI config | EVM + TRON | No | Hosted signing through Privy. |
import {
resolveWallet,
resolveWalletProvider,
ConfigWalletProvider,
EnvWalletProvider,
TenantWalletProvider,
} from "@missionsquad/agent-wallet";Returns a ready-to-sign Wallet:
const wallet = await resolveWallet({ network: "eip155:1" });
const signed = await wallet.signTransaction({ to: "0x...", value: 0 });Returns either ConfigWalletProvider or EnvWalletProvider based on local config and environment.
TenantWalletProvider is intended for managed multi-tenant server deployments where each tenant owns one encrypted wallet directory:
import { TenantWalletProvider } from "@missionsquad/agent-wallet";
const provider = new TenantWalletProvider({
tenantId: "41...",
walletDir: "/srv/app/data/tenants/41.../agent-wallet",
masterPassword: "derived-server-side-password",
network: "tron",
});
const created = await provider.createPrimaryTronWallet();Design rules:
- one wallet per tenant (
primary) - encrypted
local_securestorage - no
runtime_secrets.jsonrequired for managed tenant directories
| 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 |
AGENT_WALLET_MNEMONIC |
Env fallback mnemonic |
AGENT_WALLET_MNEMONIC_ACCOUNT_INDEX |
Mnemonic derivation index |
- TRON sign & broadcast
- BSC sign & broadcast
- Switch active wallet
- TRON x402 typed data
- BSC x402 typed data
- Dual-sign typed data from private key
- Privy sign consistency
- Verify TRON Privy typed-data
pnpm install
pnpm test
pnpm build