mcpField
A
apify-x402-agentic-wallet

apify-x402-agentic-wallet

github.com/apifyAgent 工作流28383 次安装5 周前更新
代码仓库

关于 apify-x402-agentic-wallet

面向 Agent 的操作指南,使用 Coinbase Agentic Wallet 和 x402 付费运行 Apify Actors,以获取网页数据或执行自动化。内容涵盖钱包设置、限额预付额度、Actor 搜索和结果处理。

主要功能

  1. 01Coinbase Agentic Wallet 身份验证
  2. 02通过 x402 支付 USDC
  3. 03购买限额 Apify 预付令牌
  4. 04搜索并运行 Actor
  5. 05支出与结果处理规则

适用场景

  1. 01运行 Apify Actor 搜索网页并采集数据
  2. 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=…&currency=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=…&currency=usd,x402 details 会返回 NO_PAYMENT_REQUIREMENTS):

npx awal x402 pay 'https://agi.apify.com/protocols/x402/prepaid-tokens?amount=1&currency=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——绝不要编造结果。

参考

评论

支持 Markdown