{"id":"1fae5a2e-f63f-4317-a66d-059a415197c0","entityType":"agent","slug":"clawhub-skills-0juano-bondterminal-x402","name":"bondterminal-x402","canonicalUrl":"https://www.xpersona.co/agent/clawhub-skills-0juano-bondterminal-x402","canonicalPath":"/agent/clawhub-skills-0juano-bondterminal-x402","generatedAt":"2026-10-10T06:50:40.995Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":null},"description":"Query BondTerminal API using x402 keyless payments. No API key needed — pay $0.01 USDC per request on Base mainnet. Use when users ask for Argentine bond data, analytics, cashflows, history, riesgo país, or ISIN/ticker lookups (e.g. AL30, GD30, US040114HS26). Supports automatic 402 → payment → retry. --- name: bondterminal-x402 description: > Query BondTerminal API using x402 keyless payments. No API key needed — pay $0.01 USDC per request on Base mainnet. Use when users ask for Argentine bond data, analytics, cashflows, history, riesgo país, or ISIN/ticker lookups (e.g. AL30, GD30, US040114HS26). Supports automatic 402 → payment → retry. metadata: author: 0juano version: \"2.1.0\" --- BondTerminal x402 Query the B","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. Last updated 4/15/2026.","installCommand":"clawhub skill install skills:0juano:bondterminal-x402","sourceUrl":"https://github.com/openclaw/skills/tree/main/skills/0juano/bondterminal-x402","homepage":null,"primaryLinks":[{"label":"View on ClawHub","url":"https://github.com/openclaw/skills/tree/main/skills/0juano/bondterminal-x402","kind":"source"}],"safetyScore":84,"overallRank":62,"popularityScore":50,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Query BondTerminal API using x402 keyless payments. No API key needed — pay $0.01 USDC per request on Base mainnet. Use when users ask for Argentine bond data, "},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"no-adoption-signals","verified":false,"confidence":"low","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":"No source adoption metrics were available."},"stars":null,"forks":null,"downloads":null,"packageName":null,"latestVersion":null,"tractionLabel":null},"release":{"evidence":{"source":"agent-index","verified":false,"confidence":"medium","updatedAt":"2026-02-25T06:15:27.368Z","emptyReason":null},"lastUpdatedAt":"2026-04-15T00:45:39.800Z","lastCrawledAt":"2026-02-25T06:15:27.368Z","lastIndexedAt":null,"nextCrawlAt":"2026-02-26T06:15:27.368Z","lastVerifiedAt":null,"highlights":[]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install skills:0juano:bondterminal-x402","setupComplexity":"low","setupSteps":["Setup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-skills-0juano-bondterminal-x402/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-skills-0juano-bondterminal-x402/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-skills-0juano-bondterminal-x402/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-skills-0juano-bondterminal-x402/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-skills-0juano-bondterminal-x402/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-skills-0juano-bondterminal-x402/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-10T06:50:40.995Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-skills-0juano-bondterminal-x402/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-skills-0juano-bondterminal-x402/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-skills-0juano-bondterminal-x402/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-skills-0juano-bondterminal-x402/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":null},"readme":"---\nname: bondterminal-x402\ndescription: >\n  Query BondTerminal API using x402 keyless payments. No API key needed —\n  pay $0.01 USDC per request on Base mainnet. Use when users ask for Argentine\n  bond data, analytics, cashflows, history, riesgo país, or ISIN/ticker lookups\n  (e.g. AL30, GD30, US040114HS26). Supports automatic 402 → payment → retry.\nmetadata:\n  author: 0juano\n  version: \"2.1.0\"\n---\n\n# BondTerminal x402\n\nQuery the BondTerminal API with x402 pay-per-call auth. No API key, no subscription — just sign and pay per request.\n\n**Cost:** $0.01 USDC per request on Base mainnet.\n\n## API Endpoints\n\nBase URL: `https://bondterminal.com/api/v1`\n\n| Method | Endpoint | Description | Auth |\n|--------|----------|-------------|------|\n| GET | `/treasury-curve` | US Treasury yield curve | Free |\n| GET | `/bonds` | List all bonds (60+) | x402 |\n| GET | `/bonds/:id` | Bond details by ISIN or local ticker | x402 |\n| GET | `/bonds/:id/analytics` | Price, YTM, duration, spreads | x402 |\n| GET | `/bonds/:id/cashflows` | Cashflow schedule | x402 |\n| GET | `/bonds/:id/history` | Historical price/yield/spread | x402 |\n| POST | `/calculate` | Bond analytics from custom price | x402 |\n| GET | `/riesgo-pais` | Current Argentina country risk | x402 |\n| GET | `/riesgo-pais/history` | Historical riesgo país series | x402 |\n| POST | `/calculate/batch` | Batch calculations | Bearer only |\n\n**Identifier formats:** ISIN (`US040114HS26`), local ticker with D/C suffix (`AL30D`, `GD30D`).\n\nFull docs: https://bondterminal.com/developers\nEndpoint reference in this skill: `references/endpoints.md`\n\n## How x402 Works\n\n1. Call any x402 endpoint without auth → server returns `402` with `PAYMENT-REQUIRED` header\n2. Decode the header (base64 JSON) to get payment requirements (amount, asset, network, payTo)\n3. Sign an EIP-3009 `transferWithAuthorization` via the x402 client library\n4. Retry the request with the signed payment in the `PAYMENT-SIGNATURE` header (v2), with `X-PAYMENT` as legacy fallback\n5. Server verifies payment via Coinbase facilitator, returns data + `PAYMENT-RESPONSE` header\n\n## Setup\n\n### 1. Install dependencies\n\n```bash\nnpm install @x402/core @x402/evm viem\n```\n\n> **Note:** The code examples use ES modules. Use `.mjs` file extension or add `\"type\": \"module\"` to your `package.json`.\n\n### 2. Configure a signer\n\nThe x402 payment flow requires an EVM signer on Base mainnet with USDC balance. Configure your signer following the [x402 EVM documentation](https://github.com/coinbase/x402/tree/main/packages/evm).\n\nThe signer must implement `{ address, signTypedData }` — any viem-compatible wallet client works (hardware wallet, KMS, injected provider, etc).\n\nSee `references/signer-setup.md` for a complete signer configuration example.\n\n### 3. Register the x402 client\n\n```javascript\nimport { x402Client } from '@x402/core/client';\nimport { x402HTTPClient } from '@x402/core/http';\nimport { ExactEvmScheme } from '@x402/evm'; // exact export name\n\n// signer = { address, signTypedData } — see references/signer-setup.md\nconst scheme = new ExactEvmScheme(signer);\nconst client = new x402Client();\nclient.register('eip155:8453', scheme); // Base mainnet\nconst httpClient = new x402HTTPClient(client);\n```\n\n## Fetching Bond Data\n\n```javascript\nasync function fetchBT(path) {\n  const url = `https://bondterminal.com/api/v1${path}`;\n  let res = await fetch(url);\n\n  if (res.status === 402) {\n    const paymentRequired = httpClient.getPaymentRequiredResponse(\n      (name) => res.headers.get(name),\n      await res.json()\n    );\n    const payload = await httpClient.createPaymentPayload(paymentRequired);\n\n    // Preferred v2 header\n    res = await fetch(url, {\n      headers: httpClient.encodePaymentSignatureHeader(payload),\n    });\n\n    // Legacy fallback for servers still expecting X-PAYMENT\n    if (res.status === 402) {\n      const encoded = Buffer.from(JSON.stringify(payload)).toString('base64');\n      res = await fetch(url, { headers: { 'X-PAYMENT': encoded } });\n    }\n  }\n\n  if (!res.ok) {\n    throw new Error(`BondTerminal request failed (${res.status})`);\n  }\n\n  return res.json();\n}\n\n// Examples\nconst bonds = await fetchBT('/bonds');\nconst analytics = await fetchBT('/bonds/AL30D/analytics');\nconst riesgo = await fetchBT('/riesgo-pais');\n```\n\n## Quick Test\n\nValidate both free and paid flows:\n\n```javascript\nawait fetchBT('/treasury-curve'); // free route (no payment)\nawait fetchBT('/riesgo-pais');    // paid route (triggers x402 flow)\n```\n\n## Wallet Requirements\n\nThe signing wallet needs:\n- **USDC on Base** — for the $0.01 payment per request\n\nNo ETH for gas is required — x402 uses EIP-3009 (off-chain signature), not on-chain transactions.\n\n## Notes\n\n- `POST /calculate/batch` requires a Bearer API key subscription — not available via x402\n- Local tickers require D/C suffix: `AL30D` (USD), `AL30C` (ARS) — not `AL30`\n- Settlement is on-chain: each paid call produces a verifiable transaction hash\n- The `PAYMENT-RESPONSE` header contains settlement metadata (payer, tx hash, network)\n","readmeExcerpt":"--- name: bondterminal-x402 description: > Query BondTerminal API using x402 keyless payments. No API key needed — pay $0.01 USDC per request on Base mainnet. Use when users ask for Argentine bond data, analytics, cashflows, history, riesgo país, or ISIN/ticker lookups (e.g. AL30, GD30, US040114HS26). Supports automatic 402 → payment → retry. metadata: author: 0juano version: \"2.1.0\" --- BondTerminal x402 Query the B","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"npm install @x402/core @x402/evm viem"},{"language":"javascript","snippet":"import { x402Client } from '@x402/core/client';\nimport { x402HTTPClient } from '@x402/core/http';\nimport { ExactEvmScheme } from '@x402/evm'; // exact export name\n\n// signer = { address, signTypedData } — see references/signer-setup.md\nconst scheme = new ExactEvmScheme(signer);\nconst client = new x402Client();\nclient.register('eip155:8453', scheme); // Base mainnet\nconst httpClient = new x402HTTPClient(client);"},{"language":"javascript","snippet":"async function fetchBT(path) {\n  const url = `https://bondterminal.com/api/v1${path}`;\n  let res = await fetch(url);\n\n  if (res.status === 402) {\n    const paymentRequired = httpClient.getPaymentRequiredResponse(\n      (name) => res.headers.get(name),\n      await res.json()\n    );\n    const payload = await httpClient.createPaymentPayload(paymentRequired);\n\n    // Preferred v2 header\n    res = await fetch(url, {\n      headers: httpClient.encodePaymentSignatureHeader(payload),\n    });\n\n    // Legacy fallback for servers still expecting X-PAYMENT\n    if (res.status === 402) {\n      const encoded = Buffer.from(JSON.stringify(payload)).toString('base64');\n      res = await fetch(url, { headers: { 'X-PAYMENT': encoded } });\n    }\n  }\n\n  if (!res.ok) {\n    throw new Error(`BondTerminal request failed (${res.status})`);\n  }\n\n  return res.json();\n}\n\n// Examples\nconst bonds = await fetchBT('/bonds');\nconst analytics = await fetchBT('/bonds/AL30D/analytics');\nconst riesgo = await fetchBT('/riesgo-pais');"},{"language":"javascript","snippet":"await fetchBT('/treasury-curve'); // free route (no payment)\nawait fetchBT('/riesgo-pais');    // paid route (triggers x402 flow)"}],"parameters":{},"dependencies":[],"permissions":[],"extractedFiles":[],"languages":["typescript"],"docsSourceLabel":"CLAWHUB","editorialOverview":"Query BondTerminal API using x402 keyless payments. No API key needed — pay $0.01 USDC per request on Base mainnet. Use when users ask for Argentine bond data, analytics, cashflows, history, riesgo país, or ISIN/ticker lookups (e.g. AL30, GD30, US040114HS26). Supports automatic 402 → payment → retry. --- name: bondterminal-x402 description: > Query BondTerminal API using x402 keyless payments. No API key needed — pay $0.01 USDC per request on Base mainnet. Use when users ask for Argentine bond data, analytics, cashflows, history, riesgo país, or ISIN/ticker lookups (e.g. AL30, GD30, US040114HS26). Supports automatic 402 → payment → retry. metadata: author: 0juano version: \"2.1.0\" --- BondTerminal x402 Query the B","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":404,"uniquenessScore":63,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-10T06:50:40.995Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}