后端与接口
需要让 Browser Use Cloud 用 x402…
在 Browser Use Cloud 上通过 x402 用 Base 主网 USDC 从加密钱包按请求付费,无需注册或 API Key;按“直接用”或“集成进项目”两种设置走完流程。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
需要让 Browser Use Clou特定
解决思路
- 先调用 AskUserQuestion,在 question 字段中同时放入 x402 说明和问题(说明不要另发聊天文本,否则会被问题 UI 丢掉):x402 是 Coinbase 协议,用加密支付 API 请求;可用 Base 上的 USDC 从加密钱包按请求支付 Browser Use,无需注册、API Key 或信用卡。问:How do you want to use x402? 选项:Just use it(在终端让 Claude 运行 Browser Use 任务,由钱包支付;Claude 负责设置钱包和 key)→ SETUP=A;Build it in(你要把 x402 集成进应用;Claude 帮装 SDK、把 key 存到项目 .env、加代码)→ SETUP=B。
- 内部跟踪 SETUP 与 MODE;这些标签以及 Path A/B/C 只给自己看,绝不对用户说;要用白话描述选择。
- Step 2:先默默按顺序查找已有 Browser Use API key,不要先说话:1) 环境变量 BROWSER_USE_API_KEY;2) ./.env 中的 BROWSER_USE_API_KEY= 行;3) ~/.browser-use/config.json(由 browser-use cloud login/signup 保存);4) 若 CLI 已安装,看 browser-use doctor 输出。
- 若找不到 key:说“No Browser Use key found, so I'll set this up accountless: the wallet is your identity, and the first payment makes a project named after it.”;设 MODE=A,进入 Step 3。
- 若找到 key:AskUserQuestion(header: Account),question: I found a Browser Use API key in <location>. Where should the USDC credits go? 选项:Top up that account(USDC 额度进入现有 API key 的项目;适合免费额度用完,或宁愿用 crypto 而不是卡)→ MODE=B;Accountless wallet(钱包是独立身份,首次付款创建以钱包命名的新项目,与现有账号分离)→ MODE=A。
- Step 3:AskUserQuestion(header: Wallet),问题:Do you have a wallet ready, or should I set one up? 选项:I have a funded wallet(有 EVM 钱包 MetaMask/Rabby/Coinbase Wallet/Frame/Phantom 等,且 Base 主网有 USDC);Walk me through it(引导创建钱包、添加 Base、购买 USDC);Make a fresh one(生成一次性自动化钱包,仍需充值)。按答案分支。
- Path A(已有充值钱包):检查 .env 是否在 .gitignore,缺则加入。
- Path A:AskUserQuestion(header: Add key),在 question 字段同时放说明和问题:钱包私钥需要放进 .env;可粘贴到聊天里由你写入,或用户自己加。提醒:粘贴到聊天会保存在 transcript,高价值钱包自己加更安全。选项:Paste it here(用户在聊天粘贴私钥,你写入 .env);I'll add it myself(用户自己加入 .env,然后只发公开地址)。
- Path A 若选 Paste it here:把 BROWSER_USE_X402_PRIVATE_KEY=<pasted key> 写入 .env(必要时创建文件;确认 .env 已 gitignore);绝不回显/打印 key。说“Saved your key to .env — I won't print it back.”,进入 Step 4。
- Path A 若选 I'll add it myself:说让用户把 BROWSER_USE_X402_PRIVATE_KEY=<your private key> 加到 .env,然后把钱包公开地址(0x…,可安全分享)发来。收到地址后检查匹配 ^0x[0-9a-fA-F]{40}$;确认“Got it: <address>. That's a valid address.”,进入 Step 4。
- Path B(Walk me through it):逐字给出:1) 只从官网 https://metamask.io 安装 MetaMask(或 Rabby、Coinbase Wallet、Frame、Trust Wallet、Phantom 等);创建钱包,离线保存 seed phrase,设密码。2) 添加 Base 网络:打开 https://chainlist.org/chain/8453 → Connect Wallet → Add to MetaMask,然后在钱包里批准。3) 点钱包里的 Buy,选 USDC、网络 Base,用卡/Apple Pay/银行付款,USDC 直接进钱包。4) 获取私钥:account menu → Account details → Show private key → 输入密码 → 复制。5) 加到 .env(确保 .env 已 gitignore):BROWSER_USE_X402_PRIVATE_KEY=<your private key>。6) 把钱包公开地址(0x…)发来供检查。然后从 Path A 的地址检查开始继续。
- Path C(Make a fresh one):生成钱包,保存 key 到 .env,只显示地址。Python: `pip install eth-account`,用 `from eth_account import Account; acc = Account.create(); print('Address:', acc.address); print('Private key:', acc.key.hex())`。TypeScript: `npm install viem`,用 `import { generatePrivateKey, privateKeyToAccount } from 'viem/accounts'; const key = generatePrivateKey(); console.log('Address:', privateKeyToAccount(key).address); console.log('Private key:', key);`。说“Made a fresh wallet. Your public address is <address>, and I've saved the private key to .env. Now it needs funds.”,进入 Step 4 充值。
- Step 4:若 Path A 或 B(已充值):说“Your wallet's already funded, so we'll skip ahead to the test.”,进入 Step 5。
- Step 4 若 Path C:说两种充值方式:1) 钱包内 Buy 按钮(最简单):点 Buy,选 USDC,网络 Base,用卡支付,无需交易所。2) 从交易所:把 USDC 发到 <address>,网络选 Base,不要选 Ethereum(手续费 $5–$20)。至少加 $20:覆盖 $1 测试加几次真实任务。你会每 5 秒查余额并告诉用户何时到账。
- Step 4 Path C:每 5 秒用 Base 公共 RPC 查链上余额:`PADDED=$(printf '%064s' ${WALLET_ADDR:2} | tr ' ' '0')` 然后 `curl -s https://mainnet.base.org -H 'Content-Type: application/json' -d '{"jsonrpc":"2.0","method":"eth_call","params":[{"to":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","data":"0x70a08231${PADDED}"},"latest"],"id":1}'`;把 result 当 hex,除以 1_000_000(USDC 6 位小数);达到 $20 或以上停止。说“Funded — I see $<amount> on Base. Next, a quick test.”
- Step 5:若 SETUP=A,确保运行脚本处已安装 SDK(默认 Python)。若 SETUP=B,安装到项目并按项目语言:从 cwd 判断(package.json/tsconfig.json → TypeScript;pyproject.toml/requirements.txt/*.py → Python;无法判断才问)。Python:`pip install "browser-use-sdk[x402]"`(需 3.10+)。TypeScript:`npm install browser-use-sdk @x402/fetch @x402/evm viem`。
- Step 5:AskUserQuestion(header: Test run),问题:Ready to test? This spends exactly $1 USDC from your wallet to check payment + run work end to end. 选项:Use the default task(“Go to example.com and tell me the heading text.”,约 5 秒,便宜);I'll give you a task(用户给短任务);Skip the test(跳过直接使用 x402)。若选自定义:说“What's the task? Keep it short.”并等待;若跳过,进入 Step 6;否则用默认任务。
- Step 5:运行测试时用 raw x402 client,max_value 设为 $1.50,使其支付 $1 而不是 SDK 默认的 $5。Python 要点:`x402Client()`;`register_exact_evm_client(client, EthAccountSigner(Account.from_key(os.environ['BROWSER_USE_X402_PRIVATE_KEY'])))`;`async with x402HttpxClient(client, max_value=Decimal('1.5'), timeout=180.0) as http:`;`resp = await http.post('https://x402.api.browser-use.com/api/v3/sessions', json={'task': '<the task>'})`;打印 `resp.status_code, resp.json()`。
- Step 5:若 MODE=B,在 x402HttpxClient 中加 API key header:`headers={'X-Browser-Use-API-Key': os.environ['BROWSER_USE_API_KEY']}`,否则 $1 会进入新的钱包项目而不是要充值的项目。
- Step 5:若已安装的 x402 库没有 max_value,说“That x402 version can't force a $1 charge, so the test will cost $5 instead. Want me to go ahead?”;等用户 yes 再运行。
- Step 5:付款后说“Paid. On-chain proof: https://basescan.org/address/<address>#tokentxns — look for a USDC transfer out of exactly $1.000000.”
- Step 5:读余额。若 MODE=A:用 `browser-use-sdk` ≥ 3.8.0 的 `from browser_use_sdk.v3 import get_wallet_balance`,`bal = await get_wallet_balance(os.environ['BROWSER_USE_X402_PRIVATE_KEY'])`,打印 `bal['total_credits_usd']`;若版本旧,提示运行 `pip install -U "browser-use-sdk[x402]"` 或跳过。
- Step 5:若 MODE=B:跳过 get_wallet_balance(它返回 404;额度在 API key 项目里,这是正常的,不要当错误显示),改用 `from browser_use_sdk.v3 import AsyncBrowserUse`,`client = AsyncBrowserUse(api_key=os.environ['BROWSER_USE_API_KEY'])`,`acct = await client.billing.account()`,打印 `acct.total_credits_balance_usd`。说“Done. Your Browser Use balance is now $<balance> (the test cost about $<cost>). Tasks draw from this, and the SDK adds another $5 when it runs out.”
- Step 6:若 SETUP=A,说“All set. Ask me to run any browser task and I'll run it through the SDK, paid from your wallet.”。用户要任务时,写一次性脚本(放 /tmp;长任务用后台 job),运行、报告结果、删除,不要在他们 cwd 留文件。SDK 读取 BROWSER_USE_X402_PRIVATE_KEY 并自行找到 x402 endpoint:`from browser_use_sdk.v3 import AsyncBrowserUse; client = AsyncBrowserUse()`(MODE=B 时 `AsyncBrowserUse(api_key=os.environ['BROWSER_USE_API_KEY'])`);`result = await client.run(task='<the task>'); print(result.output)`。
- Step 6:若 SETUP=B,说“All set. Here's the client to use in your code — it reads the key and endpoint from your .env:”。按项目语言加入 client,并指向 cloud skill / SDK 文档:`from browser_use_sdk.v3 import AsyncBrowserUse; client = AsyncBrowserUse()`(MODE=A accountless);或 `client = AsyncBrowserUse(api_key='bu_...')`(MODE=B top up existing account)。x402 需要 async client;设置 x402 env var 后同步 `BrowserUse` 不会运行。
- TypeScript 等价:`from browser_use_sdk.v3 import AsyncBrowserUse` ↔ `import { BrowserUse } from 'browser-use-sdk/v3'`;`AsyncBrowserUse()` ↔ `new BrowserUse()`;`await client.run(task=...)` → `.output` ↔ `await client.run({ task })` → `.output`;`get_wallet_balance(key)` ↔ `getWalletBalance(key)`(`from 'browser-use-sdk/v3'`);`pip install "browser-use-sdk[x402]"` ↔ `npm install browser-use-sdk @x402/fetch @x402/evm viem`。两个 SDK 都从 env 读 BROWSER_USE_X402_PRIVATE_KEY。
- 规则:严格按脚本顺序;Say 块逐字说。
- 规则:没有明确 yes 绝不花用户 USDC(Step 5 的问题就是那个 yes)。
- 规则:总是提供两种加 key 方式:粘贴到聊天(你写入 .env)或用户自己加;若粘贴,直接写入 .env,绝不回显或存到别处。
- 规则:保存 key 前先把 .env 加入 .gitignore。
- 规则:钱包持有真钱;让 key 远离源码控制、日志和截图;只放入可承受泄露损失的金额。
- 参考:x402 用户文档 https://docs.browser-use.com/cloud/guides/x402;Claude Code + Browser Use Cloud https://docs.browser-use.com/cloud/tutorials/integrations/claude-code;x402 协议 https://www.x402.org;USDC on Base 合约 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913;Base RPC https://mainnet.base.org;Basescan https://basescan.org。
适用边界 · 注意事项
- 免费 tier 注册(reverse-CAPTCHA → API key)场景:应使用 `browser-use cloud signup` 或 `cloud` skill,而不是 x402。
- 只想用 `browser-use` CLI 命令完成 x402:x402 只通过 SDK 可用,没有 CLI 命令。
- 没有 EVM 钱包/Base 主网 USDC,且不愿创建或充值钱包,或无法安全保管私钥时。