SDK for AI agents to execute on-chain transactions with user-granted permissions.
Built on MetaMask's ERC-7715 standard and Smart Accounts Kit.
Website | Dashboard | Docs | API | npm
AI agents need to transact on-chain, but:
- Users won't share private keys
- Approving every transaction manually is painful
- No standardized way to say "agent can spend $50/day max"
WalletPilot lets users grant scoped permissions to AI agents via MetaMask:
import { WalletPilot } from '@walletpilot/sdk';
const pilot = new WalletPilot({ apiKey: 'wp_...' });
// Request permission (user approves once in MetaMask)
const { deepLink } = await pilot.requestPermission({
spend: { token: 'USDC', limit: '100', period: 'day' },
chains: [1, 137, 42161],
expiry: '30d'
});
// Later, execute without approval
await pilot.execute({
to: '0x...',
data: swapCalldata,
chainId: 1
});- User grants permission via MetaMask (ERC-7715)
- Permission stored as delegation to session account
- Agent executes transactions within limits
- No per-tx approval needed
User → MetaMask → Grant Permission → WalletPilot → Execute → Chain
↓
"Allow Agent X to spend
up to 100 USDC/day
for 30 days"
- No Private Keys - Users keep their MetaMask. Permissions, not keys.
- Guardrails - Spend limits, chain allowlists, contract restrictions
- Multi-Chain - Ethereum, Polygon, Arbitrum, Optimism, Base
- MetaMask Native - Built on official ERC-7715 standard
- Open Source - SDK is fully open source
npm install @walletpilot/sdkimport { WalletPilot, PermissionBuilder } from '@walletpilot/sdk';
// Initialize client
const pilot = new WalletPilot({
apiKey: 'wp_...', // Get at app.walletpilot.dev
debug: true,
});
// Build permission request
const permission = new PermissionBuilder()
.spend('USDC', '100', 'day')
.spend('ETH', '0.1', 'day')
.chains([1, 137])
.expiry('30d')
.build();
// Request permission
const { deepLink } = await pilot.requestPermission(permission);
console.log('Open in MetaMask:', deepLink);
// Execute transaction
const result = await pilot.execute({
to: '0x1234...',
value: 0n,
data: '0x...',
chainId: 1,
});
console.log('Transaction:', result.hash);walletpilot/
├── packages/
│ └── sdk/ # walletpilot-sdk - Core TypeScript SDK
├── apps/
│ ├── landing/ # Landing page (walletpilot.dev)
│ ├── dashboard/ # Developer dashboard (app.walletpilot.dev)
│ ├── api/ # REST API (api.walletpilot.dev)
│ └── docs/ # Documentation (docs.walletpilot.dev)
├── turbo.json
└── package.json
# Install dependencies
npm install
# Build all packages
npm run build
# Run dev server
npm run dev- MetaMask Smart Accounts Kit
- ERC-7715 - Advanced Permissions
- ERC-4337 - Account Abstraction
- viem - TypeScript Ethereum library
- Core SDK
- Landing page
- Hosted API
- Developer dashboard
- Documentation
- Cursor skill
- Python SDK
- Agent explorer
MIT