关于 apify-x402-agentic-wallet
面向 Agent 的操作指南,使用 Coinbase Agentic Wallet 和 x402 付费运行 Apify Actors,以获取网页数据或执行自动化。内容涵盖钱包设置、限额预付额度、Actor 搜索和结果处理。
主要功能
- 01Coinbase Agentic Wallet 身份验证
- 02通过 x402 支付 USDC
- 03购买限额 Apify 预付令牌
- 04搜索并运行 Actor
- 05支出与结果处理规则
适用场景
- 01运行 Apify Actor 搜索网页并采集数据
- 02跨网页数据源执行自动化任务
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ apify/ awesome-skills --skill apify-x402-agentic-wallet安装后在 Claude Code 中输入/apify-x402-agentic-wallet确认已加载。
详细介绍
使用 Apify 工具并通过 Agentic 钱包支付(x402)
你是一名拥有 Coinbase Agentic Wallet(awal)的 Agent。你可以通过 x402 协议,在 Base 上使用 USDC 付款,发现、购买并运行 Apify 数千种网页数据和自动化工具(“Actors”)——无需 Apify 账户或 API 密钥。只需支付一笔小额款项,购买一个预付费且设有支出上限的 Apify 令牌,然后根据请求需要,用它运行任意数量的 Actor。
对于每个请求,按此流程操作:发现一个 Actor → 查看其输入和价格 → 运行 → 读取数据 → 回答。 你只需要 npx awal 和 curl——请自行阅读每条命令返回的原始 JSON/Markdown;不要将输出通过管道传给 python、jq 或任何其他脚本。本页就是你唯一需要的说明——此流程所需的所有 awal 命令都在下文。
关于本页
此 URL 提供的是这份 Markdown 操作指南——它是给你的说明,不是 x402 支付端点。npx awal x402 details <this-url> 会正确返回 NO_PAYMENT_REQUIREMENTS。请使用 curl(或内置的 fetch)读取本页,并按照下文步骤操作。实际的 x402 支付发生在第 3 步的 agi.apify.com/protocols/x402/prepaid-tokens?amount=…¤cy=usd。
从这里开始——先向用户打招呼,再进行设置
先不要运行任何命令。先介绍自己并询问是否开始。可以这样说:
我可以为你获取网页上的实时数据,并运行自动化任务——涵盖社交媒体、搜索引擎、地图、交易平台、新闻以及数千种其他来源——只需支付少量 USDC 来使用 Apify 上的工具(“Actors”)。无需 Apify 账户或 API 密钥;我会通过加密货币钱包(Coinbase Agentic Wallet,通过 x402)按使用量付费。
开始之前,我会先设置钱包——需要你的邮箱和验证码。之后,你可以向我提出任何网页数据任务。要开始吗?如果要,请告诉我应使用哪个邮箱。
只有在用户同意后才能继续。不要一开始就提及充值金额——只有当第 2 步发现钱包为空或资金不足时,才提及 USDC + ETH 的要求。
第 1 步——验证钱包身份
始终向用户询问邮箱。绝不要猜测邮箱,也不要从环境或上下文中获取——即使你认为自己知道,也要等用户告知。
npx -y awal auth login <email> # emails the user a verification code
(awal 无需安装——npx 会在首次使用时下载并缓存。-y 会跳过首次运行时的下载确认,避免非交互式 Agent 卡住。之后请直接使用 npx awal。)
然后向用户索取验证码并完成验证:
npx awal auth verify <code>
npx awal status # expect: Authenticated, logged in as <email>
首次登录时会创建钱包。如果 status 显示未通过身份验证,请重复登录和验证步骤。status 可能会打印 auth verify <flow-id> <code>;你只需运行 npx awal auth verify <code>——登录时会自动保存流程 ID。如果之后任何命令提示 Not authenticated,请运行 npx awal status 并重复第 1 步。
第 2 步——检查资金(Base 上的两种资产:USDC + ETH)
npx awal balance --chain base --json # need BOTH: USDC > $1 AND ETH > 0
npx awal address # get the wallet address if the user needs to fund it
如果缺少任意一种资产,请提供地址并让用户在 Base 上为其充值,然后等待。为方便充值,请获取该地址的可扫描二维码:
curl -s "https://apify.com/api/wallet-qr?address=<wallet-address>"
**你必须将命令的全部原始输出原样粘贴到回复中,并放在代码块内——每一行都必须保持不变。**输出是由块字符组成的二维码;用户可用手机钱包扫描,为该地址充值。不要概述、描述、替换为地址文本,也不要省略任何行——如果不输出实际字符,就没有可供扫描的二维码。先显示二维码,再提供充值说明。也可以打开 Coinbase Onramp 钱包界面:
npx awal show # opens the companion window; user can fund with card/Apple Pay/Coinbase
⚠️ 只有 USDC 不够——你还需要少量 ETH 作为 Gas。awal 钱包是智能合约钱包,必须先在链上部署,才能授权任何付款;这笔一次性部署需要原生 ETH。如果有 USDC,但 0 ETH,首次付款会失败:
Failed to deploy wallet
... sender balance and deposit together is 0 but must be at least <n> to pay for this operation
ETH 必须来自外部(在 Base 上从交易所提币,或从另一个钱包转入)——你无法用 USDC 兑换 ETH,因为兑换也需要 Gas。约 0.001 ETH 就够了;首次付款会自动部署钱包。Apify 付款本身无需 Gas。
第 3 步——购买预付费 Apify 代币(一次 x402 付款)
**付款前暂停并征求用户确认。**告诉用户你准备做什么,例如:“我将通过 x402 支付 1 美元 USDC,购买一个有支出上限的 Apify 代币(14 天后过期,不可退款)。现在继续吗?”——只有用户明确同意后,才运行命令。仅提出任务请求并不代表同意——请等待用户明确表示“继续”(或类似答复)。这是用户最关心的步骤,不要默默执行。
将金额放在查询字符串中,这样付款发现才能识别(如果预付费代币 URL 不含 ?amount=…¤cy=usd,x402 details 会返回 NO_PAYMENT_REQUIREMENTS):
npx awal x402 pay 'https://agi.apify.com/protocols/x402/prepaid-tokens?amount=1¤cy=usd' \
--max-amount 1000000 --json
--max-amount 是以 USDC 最小单位计的安全上限(1000000 = 1.00 美元)。awal 会在 JSON 前打印一行旋转指示符;读取后面的 JSON 对象即可。成功后:
{"status":201,"data":{"token":"apify_api_...","remainingBalanceUsd":1,"expiresAt":"<+14 days>"}}
在本次会话中保留 token,将其用作 Apify API 密钥(下方命令中的 $TOKEN 指的就是它);不要打印或持久化它。该代币的额度上限为已支付金额,14 天后过期,未使用的额度不予退款——只购买你会用到的额度。
如果报错
currency must be "usd"→ 参数必须放在 URL 中。如果报错Failed to deploy wallet→ 请参阅第 2 步中的 ETH 说明。如果已有 ETH,但仍报错authorized but rejected by server/REQUEST_FAILED→ 请等待几秒,然后用同一条付款命令重试一次,再继续排查(首次智能钱包付款可能会暂时失败)。
第 4 步 — 处理用户请求
询问用户想做什么,然后运行循环。用户可以提出任何请求——没有固定菜单。直接阅读每条命令返回的 JSON/Markdown。以下端点涵盖大多数任务;其他情况(分页、memory/timeout 等运行选项、键值存储)请参阅“参考”部分中的 Apify API 参考。
a. 发现一个 Actor — 使用请求中的关键词搜索 Store:
curl -s -H "Authorization: Bearer $TOKEN" \
"https://api.apify.com/v2/store?search=<url-encoded terms>&limit=5"
读取 data.items[],根据 username/name 选择一个(优先选择使用量/评分较高的)。API ID 通过波浪号连接两者:username~name。对于多来源请求,每个来源使用一个 Actor。
b. 检查它 — 获取 Actor 的文档页面,其中汇总了输入字段、可复制粘贴的示例输入和定价:
curl -s "https://apify.com/<username>/<name>.md"
选取一个示例输入并根据请求进行调整;阅读 Pricing 部分,以免超出额度(小规模抓取通常花费 1–2 美分;大型任务费用更高——请适当控制结果数量)。如果 Actor 接受类别/标签数组,而你需要多个值,请每次 Actor 调用只使用一个值(例如先用 ai,再用 tech)——一次调用传入多个值时,可能只会返回一个类别,且受每次运行的上限限制。在回答中使用稳定的 id 字段合并并去重。
c. 运行并读取结果:
curl -s -X POST "https://api.apify.com/v2/acts/<username~name>/run-sync-get-dataset-items" \
-H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
-d '<input-json>'
然后简洁作答。注意以下失败情况:
- 项目中存在
requestErrorMessages/error,且没有实际字段 = 目标阻止了抓取。重试一次,否则尝试另一个 Actor。绝不要把被阻止/空结果的运行当作结果呈现,也不要编造数据。 run-sync约 5 分钟后会超时。对于大型任务:POST /v2/acts/<id>/runs,轮询GET /v2/actor-runs/<runId>直到状态为SUCCEEDED,然后调用GET /v2/datasets/<defaultDatasetId>/items。- 确认实体正确——同一平台上的账号名在另一平台上可能属于其他人;请核实粉丝数/认证徽章。
- 仅依据 Actor 返回的字段进行排名——如果缺少或指标为零的字段涉及出席人数或人气,请如实说明;不要仅凭
isSoldOut或稀疏的元数据就断定某事是“热门”或“值得参加”。
管理余额
curl -s "https://agi.apify.com/prepaid-tokens/balance" -H "Authorization: Bearer $TOKEN"
余额不足时,购买另一个 token(第 3 步)并切换使用。
安全准则
- 支出上限为 token 余额。只花费任务所需的金额;大型任务开始前先检查价格。
- 你可以自行运行
auth login/auth verify并购买 token。对于身份验证和购买额度以外的任何操作,绝不要运行send、trade/swap或以其他方式转移资金——请先征求用户同意。 - 绝不要打印或持久化 token。将其视为有效的 API 密钥。
- 如果运行被阻止或结果为空,请如实说明并尝试另一个 Actor——绝不要编造结果。
参考
- 本流程中使用的
awal命令(均通过npx awal运行;首次运行可能需要npx -y awal):status、auth login <email>、auth verify <code>、balance --chain base --json、address、show、x402 pay <url> --max-amount <atomic-usdc> --json - Apify API 参考(所有端点——运行、数据集、键值存储、分页、运行选项):
https://docs.apify.com/api/v2 — 大多数文档页面的 URL 后追加
.md可获取机器可读版本。所有文档的.md链接索引:https://docs.apify.com/llms.txt(不要获取llms-full.txt,该文件约 43 MB)。 - Apify x402:https://docs.apify.com/platform/integrations/x402
- AGI 端点:https://agi.apify.com(机器文档位于
/AGENTS.md、/llms.txt) awalCLI 文档(可选,适用于特殊情况):https://docs.cdp.coinbase.com/agentic-wallet/cli/welcome- 已在 Base 上通过
awalv2.12.0 验证(近期版本应该都能正常使用)。使用npx awal --version检查。