executing-plans
executing-plans
Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline execution, or no subagent tool is available
WalletPilotUniversal browser wallet automation for AI agents. Supports 10 wallets including MetaMask, Rabby, Phantom, Trust Wallet, OKX, Coinbase, and more. EVM + Solana. Configurable guardrails with spend limits, chain allowlists, and approval thresholds.
Independent GitHub snapshot · Automated classification · Original documentation governs
name: WalletPilot description: Universal browser wallet automation for AI agents. Supports 10 wallets including MetaMask, Rabby, Phantom, Trust Wallet, OKX, Coinbase, and more. EVM + Solana. Configurable guardrails with spend limits, chain allowlists, and approval thresholds. tags:
Universal browser wallet automation for AI agents. Control any browser-based crypto wallet with configurable permission guardrails.
| Wallet | EVM | Solana | Users |
|---|---|---|---|
| MetaMask | ✅ | - | 100M+ |
| Rabby | ✅ | - | 1M+ |
| Coinbase Wallet | ✅ | - | 1M+ |
| Rainbow | ✅ | - | 500K+ |
| Phantom | ✅ | ✅ | 3M+ |
| Trust Wallet | ✅ | ✅ | 1M+ |
| Zerion | ✅ | ✅ | 100K+ |
| Exodus | ✅ | ✅ | 100K+ |
| OKX Wallet | ✅ | ✅ | 1M+ |
| Backpack | ✅ | ✅ | 500K+ |
WalletPilot allows AI agents to interact with dapps and execute transactions through any supported browser wallet. All operations are subject to user-defined constraints.
Security Model: The agent controls a separate wallet in an isolated browser profile. Never use your main wallet.
cd wallet-pilot
npm install
npx playwright install chromium
Edit config.json to select your wallet:
{
"wallet": {
"provider": "metamask", // or: rabby, coinbase, rainbow, phantom
"extensionPath": null // auto-detect from Chrome, or provide path
}
}
npm run setup
This opens a browser where you:
Transfer a small amount to your agent wallet:
Edit permissions.json:
{
"constraints": {
"spendLimit": {
"daily": "50000000",
"perTx": "10000000"
},
"allowedChains": [1, 137, 42161, 8453],
"allowedProtocols": ["0x...uniswap", "0x...1inch"]
}
}
connect <dapp-url>
Navigates to dapp and connects the agent wallet.
swap <amount> <token-in> for <token-out> [on <dex>]
Executes a token swap on an allowed DEX.
send <amount> <token> to <address>
Sends tokens to an address (within spend limits).
sign <message>
Signs an arbitrary message.
balance [token]
Returns wallet balances.
history [count]
Shows recent agent transactions.
| Constraint | Description |
|---|---|
spendLimit.daily | Max USD value per 24h period |
spendLimit.perTx | Max USD value per transaction |
allowedChains | Whitelisted chain IDs |
allowedProtocols | Whitelisted contract addresses |
blockedMethods | Forbidden function selectors |
requireApproval.above | Threshold requiring user confirmation |
WalletPilot uses a plugin architecture. To add a new wallet:
src/wallets/WalletAdapter interfacesrc/wallets/index.tsSee src/wallets/metamask.ts for reference implementation.
"revoked": true to disable all actionssrc/
├── index.ts # Main entry point
├── browser.ts # Playwright browser management
├── guard.ts # Permission enforcement
├── logger.ts # Transaction logging
├── price.ts # USD price estimation
├── types.ts # TypeScript types
├── config.ts # Configuration loading
└── wallets/
├── index.ts # Wallet adapter registry
├── adapter.ts # Base adapter interface
├── metamask.ts # MetaMask
├── rabby.ts # Rabby
├── coinbase.ts # Coinbase Wallet
├── rainbow.ts # Rainbow
├── phantom.ts # Phantom
├── trust.ts # Trust Wallet
├── zerion.ts # Zerion
├── exodus.ts # Exodus
├── okx.ts # OKX Wallet
└── backpack.ts # Backpack
| Feature | WalletPilot | MetaMask Agent Wallet |
|---|---|---|
| Wallets | 5+ supported | MetaMask only |
| Chains | EVM + Solana | EVM only |
| Setup | Choose your wallet | MetaMask required |
| Complexity | Higher | Lower |
| Use case | Multi-wallet orgs | MM-only users |
Choose WalletPilot if you need flexibility across wallets or Solana support. Choose MetaMask Agent Wallet for simpler MetaMask-only setup.