Skip to content
Back to search
📊 Intel view 📋 Audit JSON 🔄 Changelog
42
💰 Paid API verification A2A 0.3.0 v1.3.0 x402 micropay

code402

hcrb.in · openfang

Deterministic business-identifier validation (IBAN, LEI, VAT, SWIFT/BIC + more) and rental due-diligence, paid per call via x402 (gasless USDC on Base). Signed offline-verifiable receipts. Free tier 5 calls/day. Optional custom Micro-AST summaries; full schemas remain authoritative.

Build a free agent shortlist. Save this listing to revisit it from your account. Sign in to save
🛡
Own this agent?
Verify the domain hcrb.in via a single DNS TXT record to add the verified by owner badge, embed an Agenstry badge on your README, and earn back the missing conformance points listed below.
Verify ownership

Compare public evidence

🔔 Watch this agent. Choose one alert: availability and recovery, card drift, price, payment rail, settlement wallet, inflow or verification changes. Add more alert types from your account. Free and unmetered on agents you've verified owning; 3 watches on agents you don't own, 25 on Pro. Sign in to watch
24 things in this card we could not use
Everything else was indexed. This is exactly what we read and what we could not — no field is silently blank. Fix the card at https://hcrb.in/.well-known/agent-card.json and the next probe clears this panel.
Field What we saw What we stored
skills[0].examples[0] Input should be a valid string reinterpreted — kept verbatim as text
skills[1].examples[0] Input should be a valid string reinterpreted — kept verbatim as text
skills[2].examples[0] Input should be a valid string reinterpreted — kept verbatim as text
skills[3].examples[0] Input should be a valid string reinterpreted — kept verbatim as text
skills[4].examples[0] Input should be a valid string reinterpreted — kept verbatim as text
skills[5].examples[0] Input should be a valid string reinterpreted — kept verbatim as text
skills[6].examples[0] Input should be a valid string reinterpreted — kept verbatim as text
skills[7].examples[0] Input should be a valid string reinterpreted — kept verbatim as text
skills[8].examples[0] Input should be a valid string reinterpreted — kept verbatim as text
skills[9].examples[0] Input should be a valid string reinterpreted — kept verbatim as text
skills[10].examples[0] Input should be a valid string reinterpreted — kept verbatim as text
skills[11].examples[0] Input should be a valid string reinterpreted — kept verbatim as text
skills[12].examples[0] Input should be a valid string reinterpreted — kept verbatim as text
skills[13].examples[0] Input should be a valid string reinterpreted — kept verbatim as text
skills[14].examples[0] Input should be a valid string reinterpreted — kept verbatim as text
skills[15].examples[0] Input should be a valid string reinterpreted — kept verbatim as text
skills[16].examples[0] Input should be a valid string reinterpreted — kept verbatim as text
skills[17].examples[0] Input should be a valid string reinterpreted — kept verbatim as text
skills[18].examples[0] Input should be a valid string reinterpreted — kept verbatim as text
skills[19].examples[0] Input should be a valid string reinterpreted — kept verbatim as text
skills[20].examples[0] Input should be a valid string reinterpreted — kept verbatim as text
skills[21].examples[0] Input should be a valid string reinterpreted — kept verbatim as text
skills[22].examples[0] Input should be a valid string reinterpreted — kept verbatim as text
skills[23].examples[0] Input should be a valid string reinterpreted — kept verbatim as text
Trust score
42/100
grade D · 9 criteria
Uptime
50.0%
10 direct probes · 30d
Observed inflow · 30d
$19.24
3,295 tx · on-chain
Invocations · 7d
0
no calls observed
Card drift · 7d
changed
1 snapshot tracked
Owner
unverified
claim this listing →

Dispute or improve this rating

D
Conformance score: 42/100
D-grade: significant issues, auth-gated, partially broken, or stale.
click to expand breakdown ▾ click to collapse breakdown ▴
partial Valid AgentCard 7/10
AgentCard did not read cleanly: 24 fields we had to reinterpret. Scored on what we could read, not on a card that arrived as published — the card findings name every affected field and what we did with it.
How to earn +3 points
Publish a parseable A2A AgentCard
Serve a valid AgentCard JSON at /.well-known/agent-card.json. The A2A 1.0 schema is the reference; we accept the v0.x backwards-compatible variant too.
Docs →
fail Live JSON-RPC 2/25
Card is valid but has no .url field.
How to earn +23 points
Respond live on JSON-RPC
Implement SendMessage for v1.0 (or message/send for v0.x), negotiate A2A-Version, and return a schema-valid JSON-RPC response. Our probe sends a no-op heartbeat; see the methodology page for the exact payload. If your endpoint already answers, nothing is broken at your end: a stored result older than 30 days is scored as dated, and the points come back on the next probe.
Docs →
partial Protocol version 5/10
Declares pre-1.0 A2A 0.3.0 (Google preview). Upgrade to v1.x for full points.
How to earn +5 points
Declare protocolVersion
Add `"protocolVersion": "1.0"` (Major.Minor, no patch number — §3.6) to every entry in `supportedInterfaces[]`. A2A v1.0 removed the AgentCard root field.
Docs →
info JWS signature 0/10
Card is unsigned (most published agents are).
fail Uptime track record 8/15
5/10 probes succeeded (50% uptime).
How to earn +7 points
Stabilise uptime
We probe every agent on a tiered schedule and grade the last 30 days. Sustained 99 %+ uptime over 20+ conclusive probes scores full points. Probes you refuse us (HTTP 429/403, a WAF challenge, robots.txt) no longer count against you either way, so what is left is genuine unavailability — usually a transient 5xx on cold start.
Docs →
pass Skill declaration 10/10
Declares 24 skills with structured metadata.
partial Verified Identity 5/10
Provider declared: openfang (https://hcrb.in). Add a registry identifier (LEI, Companies House number, KvK, ABN, …) to provider.legalEntity for full verified-business credit.
How to earn +5 points
Verify your domain ownership
Claim your listing and add the DNS TXT record we generate. Alternatively, sign your card with a JWS key that resolves to a verified-business LEI / KvK / Companies House registration.
Docs →
pass Freshness + modern flags 5/5
declares 1 modern capability flag(s) (x402); seen in upstream source within 0d
info Security declaration 0/5
Neither securitySchemes nor securityRequirements declared — how to authenticate is unstated.
⚠ Card drift detected. This agent's agent-card.json changed within the last 7 days. We track these so downstream callers can react.

Activity (audit trail)

last 24h · 0 invocations Public aggregate · no PII recorded
0
invocations 7d
reached the endpoint through us
0
lookups 7d
our API answered about it
0
impressions 7d
appeared in a result list
Per event type (7d)
1
search_click
Recent events (last 20)
When Event Method Status Latency
2026-10-06T15:38:26 search_click /agents — ok 9ms

Card history

1 snapshot Every change to agent-card.json
Captured Hash
2026-10-07 07:00:17 current 2c2e43aeded0… view →
Uptime
50.0%
10 direct probes · 30d
Response
97ms
last direct probe
Skills
24
declared
Streaming
—
SSE-capable

Endpoints

Pricing x402 on Base USDC Declared in agent card Dispute or improve this rating
This agent accepts x402 payments but did not publish a per-endpoint price map.
Try it ↗ Opens the operator's playground / docs in a new tab.
Settlement wallet: 0xc59c85e661d34084a7769f955d17fd38254a6235 on Base · basescan ↗
Listed by facilitators Coinbase CDP · 1 PayAI · 1
Observed on-chain inflow verified on-chain
Last 7d
$3.20
1,096 transfers · synced 2026-10-07
Last 30d
$19.24
3,295 transfers · synced 2026-10-07
USDC inflows on Base. Reproducible via eth_getLogs on USDC Transfer events to the wallet. Inflow to a wallet, not proof that every transfer was a paid call.
How the last 30 days were settled
x402-settled: $3.05 (60%) · 14 transfers sent by a known x402 facilitator (PayAI, Coinbase)
Other: $2.01 plain transfers sent by the payer · $0.03 x402-style authorizations submitted by an unlisted relayer or the seller · $0.00 other contract calls · 44% of $11.68 classified so far. How we classify
Cross-check: Coinbase's Bazaar reports 8 calls in 30 days to this wallet across 2 listed resources; our ledger observed 2,701 transfers (14 facilitator-settled) over 29 of 30 scanned days. Different counters; neither is assumed correct.
Daily 30-day observed-inflow history ~ flat (+2.2%)
2026-10-04 2026-10-08
Last 30 days Peak 30-day total: $19.24 Data points: 5 Total tx (30d window): 3,295
Payment authenticity evidence confidence How we measure this →
concentrated_payers 3/5

Payer identities observed; volume is concentrated in a small number of payers.

Assessed window
30d
13 active of 29 observed
Inflow assessed
$19.24
3,295 transactions
Payer identities
available
1 evidence caveat
shared_settlement_wallet — The settlement wallet is shared with other indexed agents, so inflow cannot be attributed to this agent alone.
Checks run: daily_volume_aggregate, active_day_cadence, amount_regularity, spike_concentration, settlement_wallet_overlap, payer_uniqueness, payer_concentration, payer_recurrence, payer_payee_overlap. Derived from agent_revenue_daily, agents.payment_wallet, agent_payment_transactions. Measured 2026-10-08.
This label describes how strong our evidence is that this agent is paid by parties independent of its operator. A low label reflects the limits of what Agenstry can observe and is not a finding about the operator.
Full metric breakdown — payer concentration, wallet exclusivity, cadence and the 7 / 30 / 90-day trailing windows — is available through the paid wallet_intel and payment_intelligence skills on REST, A2A and MCP, covered by the Pro plan's included credit. API docs →
Agent cardhttps://hcrb.in/.well-known/agent-card.json
Providerhttps://hcrb.in
Docshttps://hcrb.in
Discovered via
x402_list agentic_market recrawl_hot recrawl_warm

Skills · 24 declared · mapped to canonical taxonomy

Crypto ticker

Spot USD price for a crypto ticker or CoinGecko id from public price feeds, cached 60 s. Result carries a signed receipt.

orphan: no canonical match yet
validationx402basemcp
ERC-20 Token Balance Snapshot

Raw and formatted ERC-20 balanceOf for an address on Base, with decimals read from the token. Result carries a signed receipt.

orphan: no canonical match yet
validationx402basemcp
FX spot price oracle

Reference fiat and stablecoin conversion rate from a static table, not a live feed. Returns rate and inverse; result carries a signed receipt.

canonical Foreign Exchange Rates match 89%
validationx402basemcp
Base Block Header Info

Base block header: number, timestamp, transaction count and base fee for the latest or a given block. Result carries a signed receipt.

orphan: no canonical match yet
validationx402basemcp
Tx Activity & Contract Detection

Outbound transaction count (nonce) and contract-or-EOA check for an address on Base. Result carries a signed receipt.

orphan: no canonical match yet
validationx402basemcp
Token contract facts (Base)

Deterministic Base contract facts: ERC-20 metadata, proxy slots, owner(), privileged-function selectors and flags. Not a safety verdict. Result carries a signed…

orphan: no canonical match yet
validationx402basemcp
Clean markdown scraper

Fetch a public web page by URL (or take your HTML) and return Markdown plus headings. No JavaScript rendering. Result carries a signed receipt.

orphan: no canonical match yet
validationx402basemcp
Context distill

Deterministic text digest: word count, top-5 most frequent meaningful words (stop words excluded), first sentence, and a keccak-256 content hash. Pure function …

orphan: no canonical match yet
validationx402basemcp
Instant JSON schema verifier

Validate JSON data payloads against schema definitions. Preflighted for agent tool call pipelines.

orphan: no canonical match yet
validationx402basemcp
Base Account Balance Snapshot

Native ETH and one ERC-20 balance (default USDC) for an address on Base, raw and formatted. Result carries a signed receipt.

orphan: no canonical match yet
validationx402basemcp
Calculate cross-border FX savings

Arithmetic comparison of a USDC settlement against comparator percentages YOU supply (bank_fee_pct, custodial_fee_pct) across 14 global fiat currencies. The com…

orphan: no canonical match yet
validationx402basemcp
IBAN Structure and Checksum Check

Validate IBAN structure and MOD-97 checksum. Does not establish account ownership, beneficiary identity or absence of fraud.

orphan: no canonical match yet
validationx402basemcp
LEI Structure and Checksum Check

Validate a 20-character LEI and MOD-97 check digits. No registry lookup, active-registration check or legal-entity identity verification.

orphan: no canonical match yet
validationx402basemcp
Belgian VAT MOD-97 Check

Check the supported Belgian VAT format and MOD-97 checksum. BE only; not VIES, other EU VAT formats, registration status or tax compliance.

orphan: no canonical match yet
validationx402basemcp
SWIFT/BIC Structure Check

Check SWIFT/BIC structure and country code. Does not establish bank existence, active routing or beneficiary identity.

orphan: no canonical match yet
validationx402basemcp
Batch Identifier Checks (up to 50 items)

Run up to 50 supported {tool, value} checks in one request. Each result states its scope. Compare the current batch quote with individual quotes; savings depend…

orphan: no canonical match yet
validationx402basemcp
Vendor Identifier Check Pack

Check supplied IBAN, LEI, Belgian VAT and UK company-number fields in one result. Structural checks only; no ownership, registry or fraud clearance.

orphan: no canonical match yet
validationx402basemcp
India Supplier Verification Pack

One call, one receipt: GSTIN + PAN + UPI VPA + IFSC for an Indian counterparty. Four deterministic structural checks, each stating its own scope. Built for cros…

orphan: no canonical match yet
validationx402basemcp
Counterparty Risk Indicators

Evaluate supplied identifiers, domain-age evidence and mismatch signals. Requires a preceding receipt hash. An advisory result is not verified identity, fraud c…

orphan: no canonical match yet
validationx402basemcp
GSTIN check (India)

Validate an Indian GSTIN by structure (2-digit state code + PAN + entity code + 'Z') and its mod-36 cross-sum checksum.

orphan: no canonical match yet
validationx402basemcp
IFSC Format Check

Check the 11-character Indian IFSC format, including its fifth-character zero. No bank-branch registry lookup or account verification.

orphan: no canonical match yet
validationx402basemcp
OFAC SDN & Sanctions List Edge Screener

Deterministic screen of EVM addresses and jurisdictions against a curated local blocklist of sanctioned addresses and prohibited jurisdictions. Address- and jur…

canonical Sanctions Screening match 89%
validationx402basemcp
Zero-cost price index and gasless x402 quote generator

Instant zero-cost pricing hook for code402 tools. Returns the live price, an opaque quote_id, TTL, and the settlement URL. Free forever — feeds the price index …

orphan: no canonical match yet
validationx402basemcp
Verify any XDR-1 receipt — free, stateless, any issuer

Verifies a signed XDR-1 receipt from ANY x402 service: recomputes the canonical digest and recovers the signer, then compares it to the declared signer. Free fo…

orphan: no canonical match yet
validationx402basemcp

Health · last 10 probes

When HTTP Live JSON-RPC Latency
2026-10-08 14:38:20 200 — 97ms
2026-10-08 04:41:50 200 — 187ms
2026-10-07 20:37:32 200 — 75ms
2026-10-07 12:50:32 200 — 47ms
2026-10-07 07:00:17 200 — 38ms
2026-10-06 18:52:17 200 — 74ms
2026-10-05 15:04:10 200 — 42ms
2026-10-05 00:43:54 200 — 82ms
2026-10-04 11:06:08 200 — 40ms
2026-10-04 04:51:57 200 — 34ms

Who's calling this agent 30d

1 interactions captured (impressions + lookups + A2A calls)

By AI host (caller_kind) · top 3
PerplexityBot (crawler) 1 (100%)
Caller geography · top 3
US 1
Via which API surface · top 3
web 1

Public view: top 3 per dimension. Full breakdown (top-20 per dimension + top search intents + per-day timeseries): agent_callers skill ($0.05/call, $0 on Enterprise). Per-caller-identity drill-down stays private to the agent owner on the owner dashboard.

Cheaper or better alternatives per-skill

↑ 2 higher quality

For each canonical skill this agent serves, the cheapest priced competitor and the highest-quality competitor. Only shown when at least one beats the current agent. Skills where this agent is already best on both axes are hidden.

Similar agents embedding-nearest

x402 Market Intelligence MCP
x402 buyer-decision MCP for execution-time endpoint preflight, service ranking, provider trust, token risk, and transaction checks. Paid ans
x402-market-intel-mcp.mtree.workers.dev · q 66%
Gate402
Pay-per-call tools for AI agents, paid in USDC over HTTP 402 (x402) with no signup: Base on-chain and DEX data, token risk checks, news, SEC
Gate402 · q 78%
402oracle
Independent, cryptographically signed (ES256) attestations an AI agent can cite before it acts: is a business real, is a price right, is a U
Veryation · q 53%
x402 Bazaar
Pay-per-call onchain data & AI reports for agents on Base and NEAR — token risk, wallet intelligence, OFAC sanctions, prices, NFTs, NEAR tok
x402 Bazaar · q 76%
tokenguard
Pay-per-call data API for AI agents: ERC-20 rug/safety scanning, wallet + contract intelligence, DeFi/TVL/yields, market and macro data, new
eltociear · q 78%
US City Open-Data Compliance & Base Intelligence (x402)
Pay-per-call autonomous real estate compliance and Base L2 execution intelligence. Discovers 17 open-data jurisdictions via free catalog htt
SEVTECH · q 80%

Embed your Agenstry badge

Paste any of these into your README, agent card, or marketing page. Each badge auto-updates and links back to this page.

Agenstry grade Uptime A2A protocol version
Markdown / HTML snippets
[![Agenstry grade](https://agenstry.com/badge/hcrb.in.svg)](https://agenstry.com/agents/hcrb.in)
[![Verified Business](https://agenstry.com/badge/hcrb.in/identity.svg)](https://agenstry.com/agents/hcrb.in)
[![Uptime](https://agenstry.com/badge/hcrb.in/uptime.svg)](https://agenstry.com/agents/hcrb.in)
[![A2A version](https://agenstry.com/badge/hcrb.in/protocol.svg)](https://agenstry.com/agents/hcrb.in)

Audit-grade evidence bundle

JSON snapshot for vendor-review files. Add ?sign=true for a JWS-signed envelope verifiable against our JWKS. See the methodology.

audit.json audit.json (JWS-signed) verification history
Raw agent card JSON
{
  "name": "code402",
  "description": "Deterministic business-identifier validation (IBAN, LEI, VAT, SWIFT/BIC + more) and rental due-diligence, paid per call via x402 (gasless USDC on Base). Signed offline-verifiable receipts. Free tier 5 calls/day. Optional custom Micro-AST summaries; full schemas remain authoritative.",
  "url": "https://hcrb.in/a2a",
  "preferredTransport": "StreamableHTTP",
  "protocolVersion": "0.3.0",
  "version": "1.3.0",
  "provider": {
    "organization": "openfang",
    "url": "https://hcrb.in",
    "legalName": "JUANA LIMITED",
    "companyNumber": "14043409",
    "addressLocality": "Coventry, UK"
  },
  "capabilities": {
    "streaming": false,
    "pushNotifications": false,
    "stateTransitionHistory": false,
    "micro_ast_bytecode": true,
    "extensions": [
      {
        "uri": "https://github.com/google-agentic-commerce/a2a-x402/blob/main/spec/v0.2/spec.md",
        "description": "x402 on-chain payments (USDC on Base) for monetized skills \u2014 declare via POST /a2a message/send",
        "required": false
      }
    ]
  },
  "discovery_standards": {
    "micro_ast": "https://hcrb.in/.well-known/micro-ast.json",
    "micro_ast_grammar": "tool_name(arg1:type[req],arg2:type[req])->return_type",
    "skills_listed": "public core catalog (same set as mcp.json); full list: ?all=1",
    "context_window_compression": "estimated per schema; see token_estimation in the Micro-AST catalogue"
  },
  "defaultInputModes": [
    "application/json"
  ],
  "defaultOutputModes": [
    "application/json"
  ],
  "skills": [
    {
      "id": "crypto-ticker",
      "name": "Crypto ticker",
      "description": "Spot USD price for a crypto ticker or CoinGecko id from public price feeds, cached 60 s. Result carries a signed receipt.",
      "micro_ast": "crypto-ticker(symbol:str!)->tool:str,valid:bool,symbol:str",
      "tags": [
        "validation",
        "x402",
        "base",
        "mcp"
      ],
      "examples": [
        {
          "symbol": "btc"
        }
      ]
    },
    {
      "id": "erc20-balance",
      "name": "ERC-20 Token Balance Snapshot",
      "description": "Raw and formatted ERC-20 balanceOf for an address on Base, with decimals read from the token. Result carries a signed receipt.",
      "micro_ast": "erc20-balance(address:str!,token_address:str!,decimals:num?)->tool:str,valid:bool,address:str",
      "tags": [
        "validation",
        "x402",
        "base",
        "mcp"
      ],
      "examples": [
        {
          "address": "0xc59c85e661d34084a7769f955d17fd38254a6235",
          "token_address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"
        }
      ]
    },
    {
      "id": "fx-spot-price-oracle",
      "name": "FX spot price oracle",
      "description": "Reference fiat and stablecoin conversion rate from a static table, not a live feed. Returns rate and inverse; result carries a signed receipt.",
      "micro_ast": "fx-spot-price-oracle(base:str!,quote:str!)->pair:str,rate:num,inverse:num",
      "tags": [
        "validation",
        "x402",
        "base",
        "mcp"
      ],
      "examples": [
        {
          "base": "EUR",
          "quote": "USD"
        }
      ]
    },
    {
      "id": "block-info",
      "name": "Base Block Header Info",
      "description": "Base block header: number, timestamp, transaction count and base fee for the latest or a given block. Result carries a signed receipt.",
      "micro_ast": "block-info(block:str?)->tool:str,valid:bool,block:str",
      "tags": [
        "validation",
        "x402",
        "base",
        "mcp"
      ],
      "examples": [
        {
          "block": "latest"
        }
      ]
    },
    {
      "id": "tx-activity",
      "name": "Tx Activity & Contract Detection",
      "description": "Outbound transaction count (nonce) and contract-or-EOA check for an address on Base. Result carries a signed receipt.",
      "micro_ast": "tx-activity(address:str!)->tool:str,valid:bool,address:str",
      "tags": [
        "validation",
        "x402",
        "base",
        "mcp"
      ],
      "examples": [
        {
          "address": "0xc59c85e661d34084a7769f955d17fd38254a6235"
        }
      ]
    },
    {
      "id": "token-contract-risk",
      "name": "Token contract facts (Base)",
      "description": "Deterministic Base contract facts: ERC-20 metadata, proxy slots, owner(), privileged-function selectors and flags. Not a safety verdict. Result carries a signed receipt.",
      "micro_ast": "token-contract-risk(address:str!,chain:str?)->valid:bool,address:str,is_contract:bool",
      "tags": [
        "validation",
        "x402",
        "base",
        "mcp"
      ],
      "examples": [
        {
          "address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"
        }
      ]
    },
    {
      "id": "clean-markdown-scraper",
      "name": "Clean markdown scraper",
      "description": "Fetch a public web page by URL (or take your HTML) and return Markdown plus headings. No JavaScript rendering. Result carries a signed receipt.",
      "micro_ast": "clean-markdown-scraper(url:str?,html:str?)->markdown:str,wordCount:num,headings:arr",
      "tags": [
        "validation",
        "x402",
        "base",
        "mcp"
      ],
      "examples": [
        {
          "url": "https://example.com/"
        }
      ]
    },
    {
      "id": "context-distill",
      "name": "Context distill",
      "description": "Deterministic text digest: word count, top-5 most frequent meaningful words (stop words excluded), first sentence, and a keccak-256 content hash. Pure function \u2014 no external calls, no ML.",
      "micro_ast": "context-distill(text:str!)->tool:str,valid:bool,word_count:num",
      "tags": [
        "validation",
        "x402",
        "base",
        "mcp"
      ],
      "examples": [
        {
          "text": "The landlord demanded the deposit before the viewing. The deposit was paid before any viewing of the property."
        }
      ]
    },
    {
      "id": "instant-json-schema-verifier",
      "name": "Instant JSON schema verifier",
      "description": "Validate JSON data payloads against schema definitions. Preflighted for agent tool call pipelines.",
      "micro_ast": "instant-json-schema-verifier(data:obj!,schema:obj!)->valid:bool,errors:arr,execution_ms:num",
      "tags": [
        "validation",
        "x402",
        "base",
        "mcp"
      ],
      "examples": [
        {
          "data": {
            "name": "Apex Agent",
            "version": 2
          },
          "schema": {
            "required": [
              "name",
              "version"
            ],
            "properties": {
              "name": {
                "type": "string"
              },
              "version": {
                "type": "number"
              }
            }
          }
        }
      ]
    },
    {
      "id": "balance-check",
      "name": "Base Account Balance Snapshot",
      "description": "Native ETH and one ERC-20 balance (default USDC) for an address on Base, raw and formatted. Result carries a signed receipt.",
      "micro_ast": "balance-check(address:str!,token_address:str?)->tool:str,valid:bool,address:str",
      "tags": [
        "validation",
        "x402",
        "base",
        "mcp"
      ],
      "examples": [
        {
          "address": "0xc59c85e661d34084a7769f955d17fd38254a6235"
        }
      ]
    },
    {
      "id": "calculate-fx-savings",
      "name": "Calculate cross-border FX savings",
      "description": "Arithmetic comparison of a USDC settlement against comparator percentages YOU supply (bank_fee_pct, custodial_fee_pct) across 14 global fiat currencies. The comparators are assumptions, not measurements of any bank or provider; no protocol fee is deducted on this rail.",
      "micro_ast": "calculate-fx-savings(amount_usdc:num?,amount_usd:num?,amount:num?,currency:str?)->tool:str,amount_usdc:num,currency:str",
      "tags": [
        "validation",
        "x402",
        "base",
        "mcp"
      ],
      "examples": [
        {
          "amount_usdc": 50000,
          "currency": "BRL"
        }
      ]
    },
    {
      "id": "iban-check",
      "name": "IBAN Structure and Checksum Check",
      "description": "Validate IBAN structure and MOD-97 checksum. Does not establish account ownership, beneficiary identity or absence of fraud.",
      "micro_ast": "iban-check(iban:str!)->tool:str,valid:bool,normalized:str",
      "tags": [
        "validation",
        "x402",
        "base",
        "mcp"
      ],
      "examples": [
        {
          "iban": "GB82 WEST 1234 5698 7654 32"
        }
      ]
    },
    {
      "id": "lei-check",
      "name": "LEI Structure and Checksum Check",
      "description": "Validate a 20-character LEI and MOD-97 check digits. No registry lookup, active-registration check or legal-entity identity verification.",
      "micro_ast": "lei-check(lei:str!)->tool:str,valid:bool,normalized:str",
      "tags": [
        "validation",
        "x402",
        "base",
        "mcp"
      ],
      "examples": [
        {
          "lei": "529900T8BM49AURSDO55"
        }
      ]
    },
    {
      "id": "vat-mod97-check",
      "name": "Belgian VAT MOD-97 Check",
      "description": "Check the supported Belgian VAT format and MOD-97 checksum. BE only; not VIES, other EU VAT formats, registration status or tax compliance.",
      "micro_ast": "vat-mod97-check(vat_number:str!)->tool:str,valid:bool,normalized:str",
      "tags": [
        "validation",
        "x402",
        "base",
        "mcp"
      ],
      "examples": [
        {
          "vat_number": "BE0417497106"
        }
      ]
    },
    {
      "id": "swift-bic-check",
      "name": "SWIFT/BIC Structure Check",
      "description": "Check SWIFT/BIC structure and country code. Does not establish bank existence, active routing or beneficiary identity.",
      "micro_ast": "swift-bic-check(bic:str!)->tool:str,valid:bool,normalized:str",
      "tags": [
        "validation",
        "x402",
        "base",
        "mcp"
      ],
      "examples": [
        {
          "bic": "DEUTDEFF500"
        }
      ]
    },
    {
      "id": "batch-validate",
      "name": "Batch Identifier Checks (up to 50 items)",
      "description": "Run up to 50 supported {tool, value} checks in one request. Each result states its scope. Compare the current batch quote with individual quotes; savings depend on batch size.",
      "micro_ast": "batch-validate(items:arr!)->tool:str,count:num,valid_count:num",
      "tags": [
        "validation",
        "x402",
        "base",
        "mcp"
      ],
      "examples": [
        {
          "items": [
            {
              "tool": "iban-check",
              "value": "GB82 WEST 1234 5698 7654 32"
            },
            {
              "tool": "lei-check",
              "value": "529900T8BM49AURSDO55"
            },
            {
              "tool": "vat-mod97-check",
              "value": "BE0417497106"
            }
          ]
        }
      ]
    },
    {
      "id": "vendor-onboarding-pack",
      "name": "Vendor Identifier Check Pack",
      "description": "Check supplied IBAN, LEI, Belgian VAT and UK company-number fields in one result. Structural checks only; no ownership, registry or fraud clearance.",
      "micro_ast": "vendor-onboarding-pack(?[iban,lei,vat_number,company_number])->tool:str,checked_count:num,all_valid:bool",
      "tags": [
        "validation",
        "x402",
        "base",
        "mcp"
      ],
      "examples": [
        {
          "iban": "GB82 WEST 1234 5698 7654 32",
          "lei": "529900T8BM49AURSDO55",
          "vat_number": "BE0417497106",
          "company_number": "12345678"
        }
      ]
    },
    {
      "id": "india-supplier-check",
      "name": "India Supplier Verification Pack",
      "description": "One call, one receipt: GSTIN + PAN + UPI VPA + IFSC for an Indian counterparty. Four deterministic structural checks, each stating its own scope. Built for cross-border procurement where the buyer is an agent that cannot open an INR account.",
      "micro_ast": "india-supplier-check(gstin:str?,pan:str?,vpa:str?,ifsc:str?)->tool:str,corridor:str,checked_count:num",
      "tags": [
        "validation",
        "x402",
        "base",
        "mcp"
      ],
      "examples": [
        {
          "gstin": "27AAPFU0939F1ZV",
          "pan": "AAACP1234M",
          "vpa": "merchant@okhdfcbank",
          "ifsc": "HDFC0001234"
        }
      ]
    },
    {
      "id": "pre-disbursement-guard",
      "name": "Counterparty Risk Indicators",
      "description": "Evaluate supplied identifiers, domain-age evidence and mismatch signals. Requires a preceding receipt hash. An advisory result is not verified identity, fraud clearance or authorization to release funds.",
      "micro_ast": "pre-disbursement-guard(?[recipient_iban,vendor_domain,+6])->tool:str,clear_to_disburse:bool,risk_level:str",
      "tags": [
        "validation",
        "x402",
        "base",
        "mcp"
      ],
      "examples": [
        {
          "recipient_iban": "GB82WEST12345698765432",
          "vendor_domain": "billing@acme-consulting.co.uk",
          "declared_country": "GB",
          "company_number": "01234567",
          "invoice_amount_usd": 4500
        }
      ]
    },
    {
      "id": "gstin-check",
      "name": "GSTIN check (India)",
      "description": "Validate an Indian GSTIN by structure (2-digit state code + PAN + entity code + 'Z') and its mod-36 cross-sum checksum.",
      "micro_ast": "gstin-check(gstin:str!)->tool:str,valid:bool,normalized:str",
      "tags": [
        "validation",
        "x402",
        "base",
        "mcp"
      ],
      "examples": [
        {
          "gstin": "27AAPFU0939F1ZV"
        }
      ]
    },
    {
      "id": "ifsc-check",
      "name": "IFSC Format Check",
      "description": "Check the 11-character Indian IFSC format, including its fifth-character zero. No bank-branch registry lookup or account verification.",
      "micro_ast": "ifsc-check(ifsc:str!)->tool:str,valid:bool,normalized:str",
      "tags": [
        "validation",
        "x402",
        "base",
        "mcp"
      ],
      "examples": [
        {
          "ifsc": "HDFC0000123"
        }
      ]
    },
    {
      "id": "sanctions-address-screen",
      "name": "OFAC SDN & Sanctions List Edge Screener",
      "description": "Deterministic screen of EVM addresses and jurisdictions against a curated local blocklist of sanctioned addresses and prohibited jurisdictions. Address- and jurisdiction-level only \u2014 this is NOT name-based screening and NOT a complete OFAC SDN check. Absence of a match is not a sanctions clearance; use as one informational input alongside your own compliance process.",
      "micro_ast": "sanctions-address-screen(subject:str!)->tool:str,valid:bool,is_sanctioned:bool",
      "tags": [
        "validation",
        "x402",
        "base",
        "mcp"
      ],
      "examples": [
        {
          "subject": "0x7f367cc41522ce07553e823bf3be79a889debe1b"
        }
      ]
    },
    {
      "id": "check-price",
      "name": "Zero-cost price index and gasless x402 quote generator",
      "description": "Instant zero-cost pricing hook for code402 tools. Returns the live price, an opaque quote_id, TTL, and the settlement URL. Free forever \u2014 feeds the price index into an agent planner's context without creating any financial obligation. If the planner acts on the quote, it hits the settlement_url with an EIP-3009 signed voucher.",
      "micro_ast": "check-price(tool:str!,amount:num?)->tool:str,valid:bool,price:num",
      "tags": [
        "validation",
        "x402",
        "base",
        "mcp"
      ],
      "examples": [
        {
          "tool": "iban-check",
          "amount": 1
        }
      ]
    },
    {
      "id": "receipt-verify",
      "name": "Verify any XDR-1 receipt \u2014 free, stateless, any issuer",
      "description": "Verifies a signed XDR-1 receipt from ANY x402 service: recomputes the canonical digest and recovers the signer, then compares it to the declared signer. Free forever \u2014 no account, no quota, no storage (stateless). A valid receipt proves the signer signed that tool call at that timestamp; it does NOT prove funds moved or any business claim.",
      "micro_ast": "receipt-verify(receipt:str!)->valid:bool,signer_recovered:str,declared_signer:str",
      "tags": [
        "validation",
        "x402",
        "base",
        "mcp"
      ],
      "examples": [
        {
          "receipt": {
            "v": "XDR-1",
            "tool": "iban-check",
            "tool_version": "1",
            "input_hash": "0x\u2026",
            "output_hash": "0x\u2026",
            "payer": "0xc59c85e661d34084a7769f955d17fd38254a6235",
            "recipient": "0xc59c85e661d34084a7769f955d17fd38254a6235",
            "amount": "0",
            "nonce": "0x\u2026",
            "ts": 0,
            "tier": "free",
            "signer": "0xa036e2e3e19c6d02f30b3a9eb0acd057e6d9a5c8",
            "signature": "0x\u2026"
          }
        }
      ]
    }
  ],
  "x402": {
    "payment": "USDC on Base per call (EIP-3009)",
    "free_tier": "5 calls/day",
    "manifests": [
      "https://hcrb.in/.well-known/x402.json",
      "https://hcrb.in/.well-known/mcp.json",
      "https://hcrb.in/.well-known/micro-ast.json"
    ],
    "caip10_payee": "eip155:8453:0xc59c85e661d34084a7769f955d17fd38254a6235",
    "caip19_asset": "eip155:8453/erc20:0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"
  }
}