EVM wallet for AI agents. All commands output JSON. No password needed — encryption is auto-managed.
bash
awp-wallet --version 2>/dev/null || {
git clone https://github.com/awp-core/awp-wallet.git /tmp/awp-wallet &&
cd /tmp/awp-wallet && bash install.sh
}
If awp-wallet: command not found persists after install, run:
bash
export PATH="$HOME/.local/bin:$PATH"
bash
awp-wallet receive 2>/dev/null || awp-wallet init
When creating a new wallet, tell the user: [WALLET] created new wallet: 0x...
Every operation that reads or writes on-chain needs a session token.
bash
TOKEN=$(awp-wallet unlock --duration 3600 | jq -r '.sessionToken')
If you get Invalid or expired session, re-run this step.
Pick the right command based on what the user asked. $T = the session token from Step 3.
bash
awp-wallet balance --token $T --chain ethereum
awp-wallet balance --token $T --chain base --asset usdc
awp-wallet portfolio --token $T # all chains overview
Before sending, confirm with the user:
text
[TX] about to send:
to: 0xBob...1234
amount: 50 USDC
chain: Base
proceed? (y/n)
Then:
bash
awp-wallet send --token $T --to 0xAddr --amount 0.1 --chain ethereum
awp-wallet send --token $T --to 0xAddr --amount 100 --asset usdc --chain base
bash
awp-wallet receive
No session token needed.
bash
awp-wallet approve --token $T --asset usdc --spender 0xRouter --amount 1000 --chain base
awp-wallet revoke --token $T --asset usdc --spender 0xRouter --chain base
bash
awp-wallet sign-message --token $T --message "Hello World"
awp-wallet sign-typed-data --token $T --data '{"types":{...},"primaryType":"...","domain":{...},"message":{...}}'
bash
awp-wallet estimate --to 0xAddr --amount 0.1 --chain ethereum
bash
awp-wallet tx-status --hash 0xHash --chain ethereum
bash
awp-wallet history --token $T --chain ethereum --limit 20
bash
awp-wallet batch --token $T --chain base \
--ops '[{"to":"0xA","amount":"10","asset":"usdc"},{"to":"0xB","amount":"20","asset":"usdc"}]'
bash
awp-wallet lock
--chain accepts a name or numeric ID. Default: ethereum.
Preconfigured: ethereum base bsc arbitrum optimism polygon avalanche fantom zksync linea scroll mantle blast celo sepolia base-sepolia
Any EVM chain: --chain 99999 --rpc-url https://custom.rpc.com
If the user says "on Base" → --chain base. If they say "on BSC" or "BNB Chain" → --chain bsc. If no chain is mentioned, use ethereum.
--asset accepts a symbol or contract address. Omit for native currency (ETH, BNB, etc.).
Built-in: usdc usdt awp weth wbnb dai
Any token: --asset 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
Use these tags when presenting results to the user:
TagWhenExample[QUERY]Balance, gas estimates[QUERY] ETH balance: 1.5 ETH ($3,750)``[TX]After a transaction[TX] sent 50 USDC → 0xBob (hash: 0x...) + explorer link[SIGN]After signing[SIGN] message signed: 0x...``[WALLET]Wallet info[WALLET] address: 0x...
ErrorCauseFixcommand not foundNot installedStep 1No wallet foundNo wallet yetawp-wallet init``Invalid or expired sessionToken expiredRe-run Step 3Insufficient balanceNot enough fundsTell user; suggest --mode gasless if no native gasDaily limit exceededSafety limit hitTell user to try again in 24h
bash
awp-wallet chains # list all chains
awp-wallet chain-info --chain zksync # chain details
awp-wallet wallets # list wallet profiles
awp-wallet wallet-id # current profile ID
awp-wallet status --token $T # session info
awp-wallet allowances --token $T --asset usdc --spender 0xRouter --chain base
awp-wallet verify-log # audit log integrity
awp-wallet upgrade-7702 --token $T --chain ethereum # EIP-7702 upgrade
awp-wallet revoke-7702 --token $T --chain ethereum # revoke EIP-7702
awp-wallet deploy-4337 --token $T --chain ethereum # smart account status
VariablePurposeWALLET_PASSWORDExplicit password (default: auto-managed). Required for export and change-password.PIMLICO_API_KEYEnable gasless ERC-4337 transactionsAWP_AGENT_IDMulti-agent wallet isolationAWP_SESSION_IDPer-session wallet isolation
Gasless mode auto-activates when the wallet has no native gas and PIMLICO_API_KEY is set. Force with --mode gasless.