返回顶部
x

x402-agent

Detect and pay x402 crypto paywalls automatically. When your agent

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.0
安全检测
已通过
187
下载量
0
收藏
概述
安装方式
版本历史

x402-agent

# x402 Agent Skill Automatically detect and pay x402 crypto paywalls when your AI agent encounters HTTP 402 Payment Required responses. ## When to Activate Activate this skill when an HTTP response returns **status 402 Payment Required** and the response body contains an `x402Version` field with an `accepts` array describing payment options. Detection pattern: - HTTP status code: `402` - Response body: JSON with `x402Version` (number) and `accepts` (array of payment requirements) - Response header: `PAYMENT-REQUIRED` (base64-encoded payment requirements) ## How to Use ### Step 1: Install ```bash npm install @x402-kit/agent @x402-kit/shared ``` ### Step 2: Set Up the Agent Fetch Wrapper ```typescript import { createAgentFetch } from "@x402-kit/agent"; const agentFetch = createAgentFetch({ walletPrivateKey: process.env.X402_WALLET_PRIVATE_KEY as `0x${string}`, network: "eip155:8453", // Base mainnet policy: { maxPerRequest: "1.00", // Max 1 USDC per request maxDailySpend: "10.00", // Max 10 USDC per day allowedNetworks: ["eip155:8453"], allowedAssets: ["0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"], // USDC on Base requireHumanApproval: false, }, logFilePath: "./x402-payments.jsonl", }); ``` ### Step 3: Use as a Drop-in Fetch Replacement ```typescript // Use agentFetch exactly like regular fetch const response = await agentFetch("https://api.example.com/premium/data"); const data = await response.json(); ``` ### What Happens Internally 1. The initial request is made normally 2. If the server returns HTTP 402 with x402 payment requirements, the skill: - Parses the payment requirements from the response headers and body - Finds a matching payment option for the configured network - Converts the raw token amount to human-readable format - Checks the spending policy (per-request limit, daily limit, network/asset/domain rules) - If approved: signs an EIP-3009 payment authorization and retries with the `X-PAYMENT` header - Records the spend and logs the payment event 3. If the policy denies the payment, the original 402 response is returned without spending ## Configuration ### Environment Variables | Variable | Required | Description | |----------|----------|-------------| | `X402_WALLET_PRIVATE_KEY` | Yes | Hex private key (with `0x` prefix) of a wallet funded with USDC on Base | ### Policy Configuration The policy object controls what the agent is allowed to spend: ```typescript interface X402Policy { maxPerRequest: string; // Max USDC per single request (e.g., "1.00") maxDailySpend: string; // Max USDC per day (e.g., "10.00") allowedNetworks: string[]; // CAIP-2 networks (e.g., ["eip155:8453"]) allowedAssets: string[]; // Token contract addresses domainAllowlist?: string[]; // Only pay these domains (optional) domainDenylist?: string[]; // Never pay these domains (optional) requireHumanApproval: boolean; } ``` ### Supported Networks | Network | CAIP-2 ID | USDC Address | |---------|-----------|--------------| | Base (mainnet) | `eip155:8453` | `0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913` | | Base Sepolia (testnet) | `eip155:84532` | `0x036CbD53842c5426634e7929541eC2318f3dCF7e` | ### Full Config Reference ```typescript interface AgentFetchConfig { walletPrivateKey: Hex; // From env: X402_WALLET_PRIVATE_KEY policy: X402Policy; // Spending rules network: Network; // CAIP-2 format (e.g., "eip155:8453") spendFilePath?: string; // Daily spend persistence (default: ".x402/daily-spend.json") logFilePath?: string; // Payment log file path rpcUrl?: string; // Custom JSON-RPC URL tokenDecimals?: number; // Token decimals (default: 6 for USDC) } ``` ## Examples ### Basic: Pay for Premium API Data Agent calls `api.example.com/premium`, gets 402, pays 0.10 USDC, gets data: ```typescript const agentFetch = createAgentFetch({ walletPrivateKey: process.env.X402_WALLET_PRIVATE_KEY as `0x${string}`, network: "eip155:8453", policy: { maxPerRequest: "0.50", maxDailySpend: "5.00", allowedNetworks: ["eip155:8453"], allowedAssets: ["0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"], requireHumanApproval: false, }, }); const response = await agentFetch("https://api.example.com/premium/weather"); // First request returns 402 -> agent auto-pays 0.10 USDC -> retries -> gets 200 with data ``` ### Domain-Restricted: Only Pay Trusted APIs ```typescript const agentFetch = createAgentFetch({ walletPrivateKey: process.env.X402_WALLET_PRIVATE_KEY as `0x${string}`, network: "eip155:8453", policy: { maxPerRequest: "1.00", maxDailySpend: "20.00", allowedNetworks: ["eip155:8453"], allowedAssets: ["0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"], domainAllowlist: ["api.trusted-service.com", "data.partner.io"], requireHumanApproval: false, }, }); ``` ### Testnet Development ```typescript const agentFetch = createAgentFetch({ walletPrivateKey: process.env.X402_WALLET_PRIVATE_KEY as `0x${string}`, network: "eip155:84532", // Base Sepolia testnet policy: { maxPerRequest: "10.00", maxDailySpend: "100.00", allowedNetworks: ["eip155:84532"], allowedAssets: ["0x036CbD53842c5426634e7929541eC2318f3dCF7e"], // USDC on Base Sepolia requireHumanApproval: false, }, }); ``` ## Safety Rules 1. **Never expose the private key.** Always load `X402_WALLET_PRIVATE_KEY` from environment variables. Never hardcode it in source files or logs. 2. **Respect spending limits.** The policy engine enforces per-request and daily limits. Configure conservative limits for production. 3. **Log all payments.** Set `logFilePath` to maintain an audit trail. The log file records every payment attempt (approved, denied, or failed) in JSONL format. 4. **Use domain filtering.** Set `domainAllowlist` or `domainDenylist` to restrict which services the agent can pay. 5. **Start with testnet.** Use Base Sepolia (`eip155:84532`) during development. Only switch to mainnet (`eip155:8453`) for production. 6. **Daily spend resets at UTC midnight.** The spend tracker persists to disk and resets automatically each day. ## Payment Log Format Each payment event is logged as a JSON line in the log file: ```json { "timestamp": "2026-02-27T12:00:00.000Z", "url": "https://api.example.com/premium/data", "amount": "0.1", "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", "network": "eip155:8453", "facilitator": "", "success": true, "policyDecision": "approved" } ```

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 x402-paywall-kit-1776099321 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 x402-paywall-kit-1776099321 技能

通过命令行安装

skillhub install x402-paywall-kit-1776099321

下载 Zip 包

⬇ 下载 x402-agent v1.0.0

文件大小: 145.08 KB | 发布时间: 2026-4-15 15:02

v1.0.0 最新 2026-4-15 15:02
Initial release

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部