SuperAPI AI 工具集

pay-for-http-request

部署与运维

查看项目

更新于 10-16 02:11

技能介绍

用途

pay-for-http-request 是一个技能,用于通过 purl 向需要付费的 API 发起 HTTP 请求。purl 是一个类似 curl 的命令行工具,能够自动处理基于 x402 协议的支付,支持 EVM 和 Solana 网络。

当某个 API 返回 HTTP 402(Payment Required)并支持 x402 支付协议时,purl 可以自动协商并执行支付,从而访问该资源。

主要能力

  • 自动处理 x402 支付:在请求付费 API 时自动完成支付协商与执行。
  • 钱包管理:支持创建、导入、列出、查看、验证、切换和删除钱包(keystore)。
  • 余额查询:可查看钱包余额,并可按网络筛选。
  • 支付需求检查:可在不执行支付的情况下检查支付要求(inspect)。
  • 支付控制:支持设置最大支付金额、要求支付前确认、预览支付(dry-run)、按网络筛选。
  • 网络管理:可查看和管理支持的 EVM 与 Solana 网络。
  • 输出控制:支持详细程度、静默、包含 HTTP 头、仅显示头、输出到文件、输出格式(auto/text/json/yaml)、颜色控制。
  • HTTP 选项:支持自定义请求方法、请求头、User-Agent、跟随重定向、连接超时、最大时间、POST 数据、JSON 数据。
  • 配置管理:可查看、获取和验证配置。
  • 环境变量:支持通过环境变量设置默认最大金额、网络、确认行为、钱包路径和密码。

使用方式

基本用法:

purl <URL> [OPTIONS]
purl <COMMAND>

常用命令:

  • purl wallet:管理钱包(keystores)
  • purl config:管理配置
  • purl balance:检查钱包余额
  • purl inspect:检查支付要求而不执行
  • purl networks:管理和检查支持的网络
  • purl version:显示版本信息
  • purl completions:生成 shell 补全脚本
  • purl topics:显示帮助主题(exit-codes、formatting、examples、environment)

支付选项:

  • --max-amount <AMOUNT>:愿意支付的最大金额(原子单位)
  • --confirm:支付前要求确认
  • --network <NETWORKS>:筛选特定网络(逗号分隔)
  • --dry-run:预览支付而不执行

显示选项:

  • -v, --verbosity:详细程度(可多次使用:-v、-vv、-vvv)
  • -q, --quiet / -s, --silent:不打印日志消息
  • -i, --include:在输出中包含 HTTP 头
  • -I, --head:仅显示 HTTP 头
  • -o, --output <FILE>:将输出写入文件
  • --output-format <FORMAT>:输出格式:auto、text、json、yaml(auto 检测:终端为 text,管道为 json)
  • --color <MODE>:控制颜色输出:auto、always、never

HTTP 选项:

  • -X, --request <METHOD>:自定义请求方法
  • -H, --header <HEADER>:添加自定义头
  • -A, --user-agent <AGENT>:设置 User-Agent
  • -L, --location:跟随重定向
  • --connect-timeout <SECONDS>:连接超时(秒)
  • -m, --max-time <SECONDS>:请求最大时间
  • -d, --data <DATA>:POST 数据
  • --json <JSON>:发送 JSON 数据并设置 Content-Type 头

钱包选项:

  • --wallet <PATH>:钱包文件路径
  • --password <PASSWORD>:钱包解密密码
  • --private-key <KEY>:原始私钥(十六进制,用于 EVM;建议使用钱包以提高安全性)

全局选项:

  • -C, --config <PATH>:配置文件路径

钱包命令:

  • purl wallet list:列出可用钱包
  • purl wallet add:创建新钱包(交互式)
  • purl wallet show <NAME>:显示钱包详情
  • purl wallet verify <NAME>:验证钱包完整性
  • purl wallet use <NAME>:将钱包设置为活动支付方式
  • purl wallet remove <NAME>:删除钱包

钱包添加选项:

  • -n, --name <NAME>:钱包名称
  • -t, --type <TYPE>:钱包类型:evm 或 solana
  • -k, --private-key <KEY>:要导入的私钥(EVM 为十六进制,Solana 为 base58)

配置命令:

  • purl config:显示当前配置
  • purl config get <KEY>:获取特定配置值(支持点表示法)
  • purl config validate:验证配置文件

示例:

  • 基本支付请求:purl https://api.example.com/premium-data
  • 预览支付而不执行:purl --dry-run https://api.example.com/data
  • 支付前要求确认:purl --confirm https://api.example.com/data
  • 设置最大支付金额:purl --max-amount 10000 https://api.example.com/data
  • 筛选特定网络:purl --network base-sepolia https://api.example.com/data
  • 详细输出并包含头:purl -vi https://api.example.com/data
  • 将输出保存为 JSON 文件:purl -o output.json --output-format json https://api.example.com/data
  • 发送 JSON 数据的 POST 请求:purl --json '{"key": "value"}' https://api.example.com/data
  • 自定义头:purl -H "Authorization: Bearer token" https://api.example.com/data
  • 跟随重定向并使用自定义方法:purl -L -X POST https://api.example.com/data
  • 检查钱包余额:purl balance 或 purl balance --network base
  • 检查支付要求:purl inspect https://api.example.com/endpoint
  • 钱包管理:purl wallet add、purl wallet add --type evm、purl wallet add --type solana -k KEY、purl wallet list、purl wallet use my-wallet
  • 查看支持的网络:purl networks、purl networks info base

适用场景

  • 工具调用:按请求向 API 服务付费
  • 付费数据源:访问实时市场数据、天气或分析数据
  • 内容变现:付费访问付费墙文章或媒体
  • 计算资源:按需访问计算或存储服务

限制

  • 不适用于不需要支付的常规 HTTP 请求(应使用 curl)。
  • 不适用于使用传统支付方式(信用卡、带计费的 API 密钥)的 API。
  • 需要目标 API 支持 x402 支付协议。

前置条件

  • 创建钱包:purl wallet add
  • 在所需网络上设置带有资金的支付方式(钱包)
  • 确保目标 API 支持 x402 支付协议

支持的网络

  • EVM:ethereum、ethereum-sepolia、base、base-sepolia、avalanche、avalanche-fuji、polygon、arbitrum、optimism
  • SVM:solana、solana-devnet

环境变量

  • PURL_MAX_AMOUNT:默认愿意支付的最大金额
  • PURL_NETWORK:默认网络筛选
  • PURL_CONFIRM:默认确认行为(true/false)
  • PURL_KEYSTORE:默认钱包/keystore 路径
  • PURL_PASSWORD:钱包密码(用于非交互式使用)