债券终端x402接口Skill bondterminal-x402

BondTerminal x402是一个基于区块链支付的债券数据查询工具,专门用于获取阿根廷债券市场数据。通过x402无密钥支付协议,用户无需API密钥或订阅,只需在Base主网上支付0.01美元USDC即可按次查询债券详情、分析指标、现金流、历史价格、风险国家数据等。该工具支持ISIN和本地代码查询,自动处理支付流程,适用于量化金融、债券交易、风险分析和投资研究场景。 关键词:债券数据API 阿根廷债券 量化金融 区块链支付 x402协议 Base网络 USDC支付 债券分析 风险国家 现金流查询 债券交易工具

债券交易 0 次安装 34 次浏览 更新于 2/24/2026

name: bondterminal-x402 description: > 使用x402无密钥支付查询BondTerminal API。无需API密钥—— 在Base主网上每次请求支付0.01美元USDC。当用户询问阿根廷 债券数据、分析、现金流、历史记录、风险国家或ISIN/代码查询时使用 (例如AL30、GD30、US040114HS26)。支持自动402→支付→重试。 metadata: author: 0juano version: “2.1.0”

BondTerminal x402

使用x402按次付费认证查询BondTerminal API。无需API密钥,无需订阅——只需签名并按请求付费。

成本: 在Base主网上每次请求0.01美元USDC。

API端点

基础URL:https://bondterminal.com/api/v1

方法 端点 描述 认证
GET /treasury-curve 美国国债收益率曲线 免费
GET /bonds 列出所有债券(60+) x402
GET /bonds/:id 通过ISIN或本地代码获取债券详情 x402
GET /bonds/:id/analytics 价格、到期收益率、久期、利差 x402
GET /bonds/:id/cashflows 现金流计划 x402
GET /bonds/:id/history 历史价格/收益率/利差 x402
POST /calculate 基于自定义价格的债券分析 x402
GET /riesgo-pais 当前阿根廷国家风险 x402
GET /riesgo-pais/history 历史风险国家序列 x402
POST /calculate/batch 批量计算 仅限Bearer令牌

标识符格式: ISIN(US040114HS26),带D/C后缀的本地代码(AL30DGD30D)。

完整文档:https://bondterminal.com/developers 此技能中的端点参考:references/endpoints.md

x402工作原理

  1. 无认证调用任何x402端点 → 服务器返回带PAYMENT-REQUIRED头的402状态码
  2. 解码头部(base64 JSON)获取支付要求(金额、资产、网络、收款地址)
  3. 通过x402客户端库签署EIP-3009 transferWithAuthorization
  4. PAYMENT-SIGNATURE头(v2)中携带已签名的支付信息重试请求,X-PAYMENT作为旧版备用方案
  5. 服务器通过Coinbase协调器验证支付,返回数据 + PAYMENT-RESPONSE

设置

1. 安装依赖

npm install @x402/core @x402/evm viem

注意: 代码示例使用ES模块。使用.mjs文件扩展名或在package.json中添加"type": "module"

2. 配置签名者

x402支付流程需要在Base主网上拥有USDC余额的EVM签名者。按照x402 EVM文档配置您的签名者。

签名者必须实现{ address, signTypedData }——任何与viem兼容的钱包客户端都适用(硬件钱包、KMS、注入提供者等)。

完整签名者配置示例请参见references/signer-setup.md

3. 注册x402客户端

import { x402Client } from '@x402/core/client';
import { x402HTTPClient } from '@x402/core/http';
import { ExactEvmScheme } from '@x402/evm'; // 确切的导出名称

// signer = { address, signTypedData } — 参见references/signer-setup.md
const scheme = new ExactEvmScheme(signer);
const client = new x402Client();
client.register('eip155:8453', scheme); // Base主网
const httpClient = new x402HTTPClient(client);

获取债券数据

async function fetchBT(path) {
  const url = `https://bondterminal.com/api/v1${path}`;
  let res = await fetch(url);

  if (res.status === 402) {
    const paymentRequired = httpClient.getPaymentRequiredResponse(
      (name) => res.headers.get(name),
      await res.json()
    );
    const payload = await httpClient.createPaymentPayload(paymentRequired);

    // 首选v2头部
    res = await fetch(url, {
      headers: httpClient.encodePaymentSignatureHeader(payload),
    });

    // 旧版备用方案,适用于仍期望X-PAYMENT的服务器
    if (res.status === 402) {
      const encoded = Buffer.from(JSON.stringify(payload)).toString('base64');
      res = await fetch(url, { headers: { 'X-PAYMENT': encoded } });
    }
  }

  if (!res.ok) {
    throw new Error(`BondTerminal请求失败(${res.status})`);
  }

  return res.json();
}

// 示例
const bonds = await fetchBT('/bonds');
const analytics = await fetchBT('/bonds/AL30D/analytics');
const riesgo = await fetchBT('/riesgo-pais');

快速测试

验证免费和付费流程:

await fetchBT('/treasury-curve'); // 免费路由(无需支付)
await fetchBT('/riesgo-pais');    // 付费路由(触发x402流程)

钱包要求

签名钱包需要:

  • Base网络上的USDC——用于每次请求0.01美元的支付

无需ETH作为gas费——x402使用EIP-3009(链下签名),而非链上交易。

注意事项

  • POST /calculate/batch需要Bearer API密钥订阅——无法通过x402使用
  • 本地代码需要D/C后缀:AL30D(美元),AL30C(阿根廷比索)——而非AL30
  • 结算在链上进行:每次付费调用都会产生可验证的交易哈希
  • PAYMENT-RESPONSE头部包含结算元数据(支付者、交易哈希、网络)