Execute on-chain transactions with user-granted permissions. Built on MetaMask ERC-7715. No private keys, full guardrails.
数据来源:ClawHub。 在 ClawSkills 查看
选择你使用的 Agent
方法一:命令行安装(推荐)
推荐(无需提前安装 clawhub)
npx clawhub@latest --dir ~/.claude/skills install walletpilot-7715或使用 clawhub CLI(需提前安装)
clawhub --dir ~/.claude/skills install walletpilot-7715⚠️ 需要 Node.js 18+,没有 Node?请使用下方方法二直接下载 ZIP。 安装 Node.js →
方法二:手动下载安装(无需 Node)
下载 ZIP,解压后将文件夹放到以下路径,重启 Agent 即可:
安装路径
~/.claude/skills/walletpilot-7715/💡解压后将文件夹放到上方路径,重启 Agent 即可生效
--- name: WalletPilot-7715 description: Execute on-chain transactions with user-granted permissions. Built on MetaMask ERC-7715. No private keys, full guardrails. tags: - crypto - wallet - ethereum - defi - web3 - blockchain - metamask - transactions - agent - automation ---
Give your AI agent crypto superpowers with MetaMask ERC-7715 permissions.
WalletPilot enables AI agents to execute on-chain transactions using MetaMask's ERC-7715 permission standard. Users grant scoped permissions (spend limits, chain restrictions) once, then agents can execute freely within those limits.
Key Features:
npm install @walletpilot/sdkRequest wallet permissions from user.
import { WalletPilot, PermissionBuilder } from '@walletpilot/sdk';
const pilot = new WalletPilot({ apiKey: 'wp_...' });
const permission = new PermissionBuilder()
.spend('USDC', '100', 'day') // Max $100 USDC per day
.spend('ETH', '0.1', 'day') // Max 0.1 ETH per day
.chains([1, 137, 42161]) // Ethereum, Polygon, Arbitrum
.expiry('30d') // Valid for 30 days
.build();
const { deepLink } = await pilot.requestPermission(permission);
console.log('User should open:', deepLink);
Execute a transaction using granted permissions.
const result = await pilot.execute({
to: '0x1234...', // Target contract
data: '0xabcd...', // Calldata (e.g., swap)
value: '0', // ETH value (optional)
chainId: 1, // Chain ID
});
console.log('Transaction hash:', result.hash);
Check token balances (uses standard RPC, no permission needed).
import { createPublicClient, http } from 'viem';
import { mainnet } from 'viem/chains';
const client = createPublicClient({
chain: mainnet,
transport: http(),
});
const balance = await client.getBalance({ address: '0x...' });
Execute a token swap via DEX aggregator.
// Get swap quote from 1inch, 0x, or similar
const quote = await fetch('https://api.1inch.io/v5.0/1/swap?...');
const { tx } = await quote.json();
// Execute via WalletPilot
await pilot.execute({
to: tx.to,
data: tx.data,
value: tx.value,
chainId: 1,
});
Send tokens to an address.
import { encodeFunctionData, erc20Abi } from 'viem';
// Encode ERC20 transfer
const data = encodeFunctionData({
abi: erc20Abi,
functionName: 'transfer',
args: ['0xRecipient...', 1000000n], // 1 USDC (6 decimals)
});
await pilot.execute({
to: '0xUSDC_ADDRESS...',
data,
chainId: 1,
});
Get transaction history.
const state = pilot.getState();
console.log('Active permissions:', state.permissions);
// Or via API
const response = await fetch('https://api.walletpilot.xyz/v1/tx/history/PERMISSION_ID', {
headers: { 'Authorization': 'Bearer wp_...' },
});
const { data } = await response.json();
console.log('Recent transactions:', data);
| Permission | Example | Description | |------------|---------|-------------| | spend | { token: 'USDC', limit: '100', period: 'day' } | Max token spend per period | | chains | [1, 137, 42161] | Allowed chain IDs | | contracts | ['0x...'] | Allowed contract addresses | | expiry | '30d' | Permission expiration |
| Chain | ID | Name | |-------|-----|------| | Ethereum | 1 | mainnet | | Polygon | 137 | polygon | | Arbitrum | 42161 | arbitrum | | Optimism | 10 | optimism | | Base | 8453 | base |
Base URL: https://api.walletpilot.xyz
| Endpoint | Method | Description | |----------|--------|-------------| | /v1/permissions/request | POST | Request new permission | | /v1/permissions/:id | GET | Get permission details | | /v1/tx/execute | POST | Execute transaction | | /v1/tx/:hash | GET | Get transaction status |
import { WalletPilot, PermissionBuilder } from '@walletpilot/sdk';
async function defiAgent() {
const pilot = new WalletPilot({ apiKey: process.env.WALLETPILOT_KEY });
// Check if we have active permissions
const state = pilot.getState();
if (!state.connected) {
// Request permission
const permission = new PermissionBuilder()
.spend('USDC', '500', 'day')
.chains([1, 42161])
.expiry('7d')
.description('DeFi trading agent')
.build();
const { deepLink } = await pilot.requestPermission(permission);
console.log('Approve in MetaMask:', deepLink);
return;
}
// Execute trades
const swapData = await getSwapQuote('USDC', 'ETH', '100');
await pilot.execute({
to: swapData.to,
data: swapData.data,
chainId: 1,
});
console.log('Swap executed!');
}
安装 WalletPilot 7715 后,可以对 AI 说这些话来触发它
Help me get started with WalletPilot 7715
Explains what WalletPilot 7715 does, walks through the setup, and runs a quick demo based on your current project
Use WalletPilot 7715 to execute on-chain transactions with user-granted permissions
Invokes WalletPilot 7715 with the right parameters and returns the result directly in the conversation
What can I do with WalletPilot 7715 in my product manager workflow?
Lists the top use cases for WalletPilot 7715, with example commands for each scenario
将技能文件夹放到 ~/.claude/skills/walletpilot-7715/ 目录(个人级,所有项目可用),或 .claude/skills/walletpilot-7715/(项目级)。重启 AI 客户端后,用 /walletpilot-7715 主动调用,或让 AI 根据上下文自动发现并使用。
WalletPilot 7715 支持 Claude、Cursor、OpenClaw,可与这些 AI 平台无缝集成,扩展其能力。
WalletPilot 7715 可免费安装使用。请查阅仓库了解许可证信息。
Execute on-chain transactions with user-granted permissions. Built on MetaMask ERC-7715. No private keys, full guardrails.
WalletPilot 7715 属于「Product Manager」分类,该分类的技能帮助 AI 智能体在此领域执行专业任务。
Automate my product manager tasks using WalletPilot 7715
Identifies repetitive steps in your workflow and sets up WalletPilot 7715 to handle them automatically