@aifinpay/agent

中文文档
2.14.1发布于 2026/11/07MITTypeScriptES Module近 30 天下载 4013

AiFinPay SDK用于全球代理护照身份和自主AI代理的路线验证的AIFP-1/AIFP-2结算.

中文使用文档
文档目录15 节
  1. 图片和NEAR部署支助
  2. 仅用稳定币链
  3. 将代理连接到其所有者的仪表板
  4. 安装
  5. 快开始
  6. 正在装入已存在的密钥页
  7. 输入外部 EVM 签名器
  8. X402 认证如何在引擎盖下工作
  9. 隐私
  10. 许可证
  11. 收款授权
  12. 一个网关网站保留着它的商人
  13. 已经支付 : Aifp1ActiveReceiptError
  14. 指定支付费用的AI客户端
  15. 付款历史

@aifinpay/代理(节点/类型脚本)

签名的AIFP-1 fetchPaid 流支持所有者选择的 v1.4 支付链 . 多边形是默认的; 选择另一个带有 v14.chain。 。 。 . 客户描述符不是生产批准:付款可用 由已安装的部署登记册、运行时间核查和 后端/商机能力。 运行时间、 签名人、 令牌、 RPC 链和当前 特征检查仍然是强制性的,同时还有持久的广播前期刊和 明确本地天然气预算。 源头建设和测试没有建立现场 接受付款.

本地购买需要新的独立 nativeUsdPrice 给POL、ETH、AVAX、, 选定链条上的 BNB 或 XRP 。 稳定币使用独立的被绑符 地址和小数。 美元微单位保持不变; token_settlement 绑定 精确6/18-十进制符号单位和每条包含毛额的条与签名的毛 18-十进制符号需要这个元数据; 遗产 6-十进制 引文仍然被接受。 通过 SDK 能力 API 检查流动资产 并安装了部署登记册.

maxGasWei 包括核准加结算。 OP链(Base/optimism/Unichain) 包括缓冲L1/操作器估计数; Nitro(Arbitrum/Robinhood)已包含 rPC 估计中母数据气体,所以它被计算一次。 业务方案费用 块签名。 这些是飞行前的估计,而不是包含时间的保证. 目前的管理概况仍可变;接收和回收政策不变. 见 付款配置和回收。 。 。 .

图片和NEAR部署支助

节点 SDK 生成已安装的 Apto 和 NEAR 部署针 @aifinpay/deployments 软件包。 钱包和代理护照已经 为两个家庭提供识别资料。 明确选择部署元数据 :

import { getAptosDeployment, getNearDeployment, resolveAptosDeployment } from "@aifinpay/agent";

const aptos = getAptosDeployment({ environment: "prod", network: "mainnet" });
const near = getNearDeployment({ environment: "dev", network: "testnet" });
// Selection additionally requires settlementEnabled in the packaged record.
const selected = resolveAptosDeployment({ environment: "prod", network: "mainnet", version: "v1.4" });

get*Deployment 允许只读检查残疾记录. resolveAptosDeployment 财务报告和审定财务报表 resolveNearDeployment 否认已废弃的记录, 未知的网络、 环境不匹配和不支持的版本; 无遗留 选择倒置或默认网络 。 Aptos 指针包括模块散列 引用 ABI 文摘和每个网络来源。 近地针包括: • 理事会成员不被视为治理当局. 见 自动 财务报告和审定财务报表 没有 登记册指南.

Aptos 或 NEAR 不执行付款执行 . 这些解析器读取 已装入元数据,而不是当前链条状态。 两个家庭都不是EVM v14.chain, (中文(简体) ), 财务报告和审定财务报表 fetchPaid 无法签署或结清付款。 需要执行支持 后端引文/接收合同,独立核实运行时间/档案检查, 特定链式签名、费用上限和持久回收;登记旗或付款 地址不提供这些.

仅用稳定币链

在一个 stablecoinOnly (Arc) 气体符号是被钉住的马克币本身: 设定 v14.asset 对它, maxGasWei 以18-十进制原生单位计,气体 并对照一个余额核对毛额。 测试网链只接受 network_mode: "test" 引证. 在一个 noNativePayment 链(BOT链) 土生土长的代币只付汽油,没有价格,所以 v14.asset 必须指定其名称 被钉住的马克币.

这个 solanaV14 选项为 SOL 和经典提供所有者选择的付费访问 SPL资产. 网络与环境 本地的Ed25519付款人, 独立来源 SOL/美元和 maxFeeLamports (交易费) 加上全部 非ce/ATA租金)与EVM选项分离. v14 财务报告和审定财务报表 solanaV14 一起行动 拒绝。 对照已安装的部署检查可用性 注册和运行时间/后端政策;应用程序配置不能覆盖 一条无法使用的路径.

准确的216字节引文和297字节指令遵循了被包裹的被钉住的IDL. 新的起源/配置/简介/薄荷/非账户证据和未签名的最后信息 在预算预留和当地签署之前进行模拟。 已签名的字节已保存 在单一发送之前。 未知的签名结果从未过期或授权 替换交易。 最终的失败只保留了已证实的失败 费用借项;缺失证明保留了全部保留。 公共历史/配额 明确选择索拉纳集群,绝不披露无记名收据.

时 https://dash.aifinpay.io (英语) 我的代理人们 根据地址添加代理 挑战。 签名并交回签名:

const signature = await agent.signDashboardClaim(challenge);

signDashboardClaim 仅显示 AiFinPay-claim:polygon:<this address>:<nonce> 并拒绝任何其他文本。 店主再看经纪人的收支 和收据.

已接受 v1.4 合同模式允许管理员更改配置费 和国库。 飞行前验证当前值;它不会使其永久不变. 见 收据配置和回收。 。 。 .

自动人工智能特工的非拘禁支付客户端 爱芬派. AIFP-1包含毛额:付款人总数等于 引用,商家收到99%,AiFinPay收到1%,创建/转介 获得0%。 目前,AIFP-2/x402在协议层充电为0%. 遗产 /api/b2b 拆分发票方法已停止。 v1.3 执行器检查 独立提供的部署/运行时针、链条、收费概况、商家 目标与资产。 匹配的运行时间价值本身并不是生产批准; 使用已安装的登记册、能力API、执行测试和CI作为证据, 并不要绕过运行时间检查.

Ed25519键盘是本地生成的 tweetnacl 永不离开 你的流程。 SDK只发送一次 SHA-256 + Ed25519 签名 in 页:1 x-signature 对 AiFinPay 保护端点进行认证的页眉 .

安装

安装已公布的稳定软件包 :

npm install @aifinpay/agent

或构建此源检出 :

# From the SDK repository root
cd node
npm ci --no-audit --no-fund
npm run build
npm pack

在应用程序中安装由此产生的焦油球 :

npm install /absolute/path/to/sdk/node/aifinpay-agent-<version>.tgz

快开始

在共享存款地址前装入您已经配置的钱包 :

import { AiFinPayAgent } from "@aifinpay/agent";

const agent = await AiFinPayAgent.fromEnvironment();
console.log({ evm: agent.evmAddress, solana: agent.solanaAddress });

fromEnvironment() 是一个 只装入 节点API. 它在 此顺序,匹配 MCP :

  1. SEED_HASH:一个32字节种子被编码为64个十六进制字符,可选 0x 前缀.
  2. ./aifinpay/agents.json 相对进程工作目录。 设定 AIFINPAY_AGENTS_FILE 用于另一个路径 AIFINPAY_AGENT_ID 选择时 从多个记录({"agents":[{"id":"crawler","seed_hash":"…"}]}) (中文(简体) ).
  3. AIFINPAY_AGENT_SECRET:一个现存的基地58索拉纳秘密.
  4. ~/.aifinpay/agent.json,或 AIFINPAY_HOME/agent.json: 现有的多边方案 键盘。 需要加密键盘 AIFINPAY_WALLET_PASSPHRASE。 。 。 .

装入器从不创建或覆盖钱包、打印其密钥或调用 腾讯网. 缺少配置、 无效种子、 模糊的工程文件或 a 解密失败抛出而不是选择新的钱包。 装入任意 .env 在调用前的运行时间; 此 API 读取 process.env 并且确实 未读 .env 文档. SEED_HEX 不是一个化名 SEED_HASH保密 输入和钱包文件退出聊天、日志和版本控制.

相同的配置输入在进程重新启动后恢复相同的地址 . 明确 evmPrivateKey 选项覆盖所衍生的 EVM 身份; 保留 用于回收导入的钱包。 正在装入钱包 自己不支付任何费用 fetchPaid 还有支票.

AiFinPayAgent.fromSeed(seed, { derivationIndex }) 决定性地选择一个 儿童钱包。 每个链条使用自己的版本域,然后是 域的 NUL 分隔符后的小数 UTF-8 索引,然后恢复 种子 。 选择 derivationIndex 保存现有地址.

AiFinPayAgent.new() 财务报告和审定财务报表 Agent.new() 故意制造出新的麻风 钱包。 它们不装入已有的环境变量或键盘 你不要坚持他们所创造的钥匙。 只有在你故意的时候才用 需要新的身份,并会在恢复材料的私人存储之前 资助它。 永远不再重运行 new() 以收回现有资助地址.

正在装入已存在的密钥页

import { Agent } from "@aifinpay/agent";

// from solana-keygen JSON file (Node only)
const agent = await Agent.fromKeypairFile("./agent-wallet.json");

// from base58 secret string (works in browser too)
const agent2 = Agent.fromSecretB58("3RvZm7Gw...");

输入外部 EVM 签名器

Agent.new() 财务报告和审定财务报表 AiFinPayAgent.fromSeed() 从 探员种子。 将钥匙留在SDK之外——内部的签注,a 硬件支持的密钥, 或未来的销售商适配器—— 插入任何匹配的钱包 页:1 AgentWallet 接口通过 evmWallet (任何viem语) LocalAccount 符合结构条件:

import { Agent, evmPrivateKeyWallet } from "@aifinpay/agent";

// self-custodial default: the same key `evmPrivateKey` builds internally
const agent = Agent.new({ evmWallet: evmPrivateKeyWallet("0x…") });

两个零依赖性适配器覆盖钱包市场的其余部分 相同的接口 :

import { eip1193Wallet, viemWalletClientWallet } from "@aifinpay/agent";

// MetaMask and any generic EVM browser wallet (async: reads the address
// via eth_requestAccounts)
const injected = Agent.new({ evmWallet: await eip1193Wallet(window.ethereum) });

// Privy, Crossmint, ZeroDev, Coinbase Smart Wallet, custom transports —
// anything that hands out a viem WalletClient with an account
const embedded = Agent.new({ evmWallet: viemWalletClientWallet(walletClient) });

服务器侧销售商 SDK( Coinbase CDP 服务器钱包, Circle) 已退出 范围:它们需要供应商API证书,SDK不得持有.

AgentWallet 实值 address 加号 signMessage编号 :signTypedData; 已经足够了 用于基于信件的x402授权. AiFinPayAgent 还接受 evmWalletClient 使用精确的viem客户端进行 签名。 它的账户一定是一个viem LocalAccount 与 signTransaction数字 : v1.4 符号和日记在 SDK 广播之前精确的生字节 用于回收的独立选择链 RPC。 JSON-RPC/仅限期 智能账户客户对此流被拒绝. 必须配置客户端 用于选定链条。 此选项不能与 evmWallet 或者说 evmPrivateKey. MCP方案一体化采用同样的选择 当地身份继续提供索拉纳身份和签名.

X402 认证如何在引擎盖下工作

Agent.pay(url) (和 get编号 :post编号 :request)处理AiFinPay-native 402 带有请求的认证(第2版) 对于一个有门的请求 SDK:

  1. 402机构一次性携带 x-nonce,过期时 x-nonce-expires-at, (中文(简体) ), x-aifinpay-auth-version: 2 及其申请机构的SHA-256;
  2. 除非请求被配置到原产地,否则拒绝签名 经纪人的 baseUrl反应来自这个来源, 和身体摘要 与它发送的身体相匹配;
  3. 标志,与Ed25519, SHA-256 of JSON.stringify(["AiFinPay-x402", "v2", nonce, pubkey, origin, METHOD, path+query, bodySha256, expiresAt]) 和基数58编码签名;
  4. 用信头重试原请求 :
    • x-agent-pubkey: <base58 pubkey>
    • x-nonce: <nonce>
    • x-signature: <base58 sig>
    • x-aifinpay-auth-version: 2

服务器验证签名, 消耗非ce, 检查代理有 现场直播PDA链上,为资源服务. 已退役的 v1 格式 (单位:千美元)GET /nonce, (中文(简体) ), SHA-256("AiFinPay-x402:{nonce}:{pubkey}")被拒绝,和 Agent.authHeaders() 掷出.

隐私

  • 服务器从未看到您的私钥 . 期间.
  • 农斯在使用时被消耗;再玩耐用.
  • 付款在公共链上结算——明确选择的EVM网络——并在链上可见.

许可证

麻省理工学院.

收款授权

AIFP-1收据使用付费钱包签名. 见 批准和收回付款收据 复试和恢复,无需第二次转移.

一个网关网站保留着它的商人

fetchPaid 标出每个网关站点(https://gateway.aifinpay.io/<slug>改为: 商人先付了钱 然后钱才动了 之后的402个名字 同一地点的另一个商人扔出 Aifp1MerchantChangedError (单位:千美元)code: "AIFP1_MERCHANT_CHANGED"在引用任何东西之前。 如果改变是 合法,如该电话;支付网站的重置费:

await agent.fetchPaid(url, {}, { allowMerchantChange: true });
// or name the merchant you trust; any other one is refused:
await agent.fetchPaid(url, {}, { expectedMerchantId: "mrch_…" });

柱子是每个站点的一个文件 ~/.aifinpay/merchant-pins (或 AIFINPAY_STATE_DIR),因此它们能活过重启;通过 merchantPins 页:1 特工把他们留在别处 无法读取的指针拒绝支付而不是 重新开始. resourcePathMode: "direct" 因为它的缓存 键已命名商号。 网关已失效的解答 410 gateway_retired,该投出 Aifp1GatewayRetiredError (单位:千美元)code: "AIFP1_GATEWAY_RETIRED")在一次请求后;不重试。 电池 已经持有的被保存.

已经支付 : Aifp1ActiveReceiptError

在定购后一分钟内, /v1/quote 回答同一个付款人 资源,而不是引用,所以重试不能购买 两次 收不到的流程(新流程,或 fetchPaid 支付后失败)获得 Aifp1ActiveReceiptError (单位:千美元)code: "AIFP1_ACTIVE_RECEIPT",一个子类 Aifp1QuoteError) (中文(简体) ). 什么都没有 引用或支付。 名称 receiptId, (中文(简体) ), txRef, (中文(简体) ), chain, (中文(简体) ), merchantId, (中文(简体) ), resource 财务报告和审定财务报表 settledAt; 从回收中收回收据 onPrepared 保存为 txRef数字 :

try {
  return await agent.fetchPaid(url, {}, opts);
} catch (e) {
  if (!(e instanceof Aifp1ActiveReceiptError)) throw e;
  const paid = await agent.recoverPaidPayment(savedRecoveryFor(e.txRef));
  return fetch(url, { headers: { "AIFP-Receipt": paid.receipt } });
}

不重试 fetchPaid 一旦一分钟过了一个新的引文 新买的 没有保存的恢复 txRef 收据不能为 已重新发行;再次购买是新的付款和业主的决定.

指定支付费用的AI客户端

设定 framework 向AI客户端 代理运行, 和每一个请求 支付流动 AIFP-Agent-Framework: <value>: 第一个要求 可能答复402, /v1/quote, (中文(简体) ), /v1/pay 和所付报酬的重试(和 x402 (韩语) pay()) (中文(简体) ). 商家仪表板然后显示AI客户端支付了哪些.

const agent = await AiFinPayAgent.fromEnvironment({ framework: "claude" });

接受数值AGENT_FRAMEWORKS: chatgpt, (中文(简体) ), claude, (中文(简体) ), perplexity, (中文(简体) ), gemini, (中文(简体) ), cursor, (中文(简体) ), openai-agents, (中文(简体) ), windsurf, (中文(简体) ), codex, (中文(简体) ), custom任意 其他抛出 AiFinPayError 当构建代理时。 保持不固定,没有标题是 发送; SDK 从未猜测. 构建后学习客户端的主机 代理通过它每个呼叫: fetchPaid(url, init, { framework }) 或者说 recoverPaidPayment(recovery, { framework })。 。 。 .

付款历史

import { getAgentHistory } from "@aifinpay/agent";
const history = await getAgentHistory({ address: "0x…", source: "transactions" });
// Or { passport: 'AIFP-000000042', network: 'polygon', source: 'receipts' }

transactions 覆盖有索引的 AiFinPay 多边形定居点,而非任意 钱包传输. receipts 包括检验 支付。 跟随 next_offset 与 limit编号 :offset。护照要求 与已部署的已核实的wallet解析器的后端;通过地址和 护照检查他们的匹配。 永远不要通过一个持有者的私钥或API秘密 一个标识符。 公共历史不归还无记名收发凭证.

版本与发布记录

@aifinpay/agent 共发布 53 个版本,首次发布于 2026/05/08;过去 12 个月发布了 53 个版本。

版本发布日期距今
2.14.1latest2026/11/07今天
2.14.02026/11/062 天前
2.12.32026/11/025 天前
2.12.12026/11/025 天前
2.11.22026/11/016 天前
2.11.12026/10/318 天前

其他发布通道:next → 2.0.0-rc.13。

关于 @aifinpay/agent 的常见问题

@aifinpay/agent 是什么?

AiFinPay SDK用于全球代理护照身份和自主AI代理的路线验证的AIFP-1/AIFP-2结算.

如何安装 @aifinpay/agent?

在项目目录运行 npm install @aifinpay/agent,或使用 pnpm add / yarn add / bun add。

@aifinpay/agent 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@aifinpay/agent 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@aifinpay/agent 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=22。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@aifinpay/agent 可以商用吗?

@aifinpay/agent 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@aifinpay/agent 的下载量有多少?

根据 npm 官方下载统计,@aifinpay/agent 在 2026/10/05 – 2026/11/03 这 30 天内被下载 4,013 次,日均约 134 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@aifinpay/agent 还在维护吗?

最新版本 2.14.1 发布于 2026/11/07(今天);至今共发布 53 个版本,其中过去 12 个月发布了 53 个;首次发布于 2026/05/08。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。