openfang-rail
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Deterministic banking, LEI, VAT, SWIFT & compliance checks via MCP with signed XDR-1 receipts.
| Author | io.github.89rat |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 1754 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"openfang-rail": {
"url": "https://hcrb.in/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (24)
crypto_tickerread-onlySpot USD price for a crypto ticker or CoinGecko id from public price feeds, cached 60 s. Result carries a signed receipt.
Parameters:
symbol(required) — string — Ticker symbol (btc, eth, sol, …) or a CoinGecko asset id (bitcoin, ethereum, …).
Hints: read-only yes · destructive not declared · idempotent yes · open-world yes
erc20_balanceread-onlyRaw and formatted ERC-20 balanceOf for an address on Base, with decimals read from the token. Result carries a signed receipt.
Parameters:
address(required) — string — Holder EVM address, 0x-prefixed.token_address(required) — string — ERC-20 token contract address, 0x-prefixed.decimals— number — Token decimals override (optional).
Hints: read-only yes · destructive not declared · idempotent yes · open-world yes
fx_spot_price_oracleread-onlyReference fiat and stablecoin conversion rate from a static table, not a live feed. Returns rate and inverse; result carries a signed receipt.
Parameters:
base(required) — string — Base currency symbol (e.g. USDC, EUR, GBP, JPY).quote(required) — string — Quote currency symbol (e.g. USD, EUR, JPY).
Hints: read-only yes · destructive not declared · idempotent yes · open-world yes
block_inforead-onlyBase block header: number, timestamp, transaction count and base fee for the latest or a given block. Result carries a signed receipt.
Parameters:
block— string — Block number as hex (0x…) or decimal, or a tag (latest/earliest/pending/finalized/safe); defaults to latest.
Hints: read-only yes · destructive not declared · idempotent yes · open-world yes
tx_activityread-onlyOutbound transaction count (nonce) and contract-or-EOA check for an address on Base. Result carries a signed receipt.
Parameters:
address(required) — string — EVM address, 0x-prefixed.
Hints: read-only yes · destructive not declared · idempotent yes · open-world yes
token_contract_riskread-onlyDeterministic Base contract facts: ERC-20 metadata, proxy slots, owner(), privileged-function selectors and flags. Not a safety verdict. Result carries a signed receipt.
Parameters:
address(required) — string — Contract address on Base, 0x + 40 hex.chain— string — Optional. Only 'base' (Base mainnet) is supported.
Hints: read-only yes · destructive not declared · idempotent yes · open-world yes
clean_markdown_scraperread-onlyFetch a public web page by URL (or take your HTML) and return Markdown plus headings. No JavaScript rendering. Result carries a signed receipt.
Parameters:
url— string — Public http(s) page to fetch (ports 80/443 only). Provide exactly one of url or html.html— string — Raw HTML string to convert instead of fetching a URL (max 1 MiB). Provide exactly one of url or html.
Hints: read-only yes · destructive not declared · idempotent yes · open-world yes
context_distillread-onlyDeterministic text digest: word count, top-5 most frequent meaningful words (stop words excluded), first sentence, and a keccak-256 content hash. Pure function — no external calls, no ML.
Parameters:
text(required) — string — Arbitrary text to distill (any length; hashing is over the exact input).
Hints: read-only yes · destructive not declared · idempotent yes · open-world yes
instant_json_schema_verifierread-onlyValidate JSON data payloads against schema definitions. Preflighted for agent tool call pipelines.
Parameters:
data(required) — object — The JSON data object to validate against the schema.schema(required) — object — The JSON schema object with expected properties and types.
Hints: read-only yes · destructive not declared · idempotent yes · open-world yes
balance_checkread-onlyNative ETH and one ERC-20 balance (default USDC) for an address on Base, raw and formatted. Result carries a signed receipt.
Parameters:
address(required) — string — EVM address, 0x-prefixed.token_address— string — ERC-20 token contract address (optional; defaults to USDC on Base).
Hints: read-only yes · destructive not declared · idempotent yes · open-world yes
calculate_fx_savingsread-onlyArithmetic 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.
Parameters:
amount— number — Gross invoice settlement volume in USD/USDC (alias).currency— string — Target currency for local comparison (e.g. EUR, GBP, BRL, INR, ARS, PHP, NGN, SGD).amount_usd— number — Gross invoice settlement volume in USD/USDC (alias).amount_usdc— number — Gross invoice settlement volume in USD/USDC.
Hints: read-only yes · destructive not declared · idempotent yes · open-world yes
iban_checkread-onlyValidate IBAN structure and MOD-97 checksum. Does not establish account ownership, beneficiary identity or absence of fraud.
Parameters:
iban(required) — string — IBAN to validate; spaces allowed.
Hints: read-only yes · destructive not declared · idempotent yes · open-world yes
lei_checkread-onlyValidate a 20-character LEI and MOD-97 check digits. No registry lookup, active-registration check or legal-entity identity verification.
Parameters:
lei(required) — string — 20-character Legal Entity Identifier.
Hints: read-only yes · destructive not declared · idempotent yes · open-world yes
vat_mod97_checkread-onlyCheck the supported Belgian VAT format and MOD-97 checksum. BE only; not VIES, other EU VAT formats, registration status or tax compliance.
Parameters:
vat_number(required) — string — Belgian VAT id in the supported BE mod-97 format (BE prefix optional); not a VIES lookup.
Hints: read-only yes · destructive not declared · idempotent yes · open-world yes
swift_bic_checkread-onlyCheck SWIFT/BIC structure and country code. Does not establish bank existence, active routing or beneficiary identity.
Parameters:
bic(required) — string — SWIFT/BIC code, 8 or 11 characters; spaces/dashes allowed.
Hints: read-only yes · destructive not declared · idempotent yes · open-world yes
batch_validateread-onlyRun 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.
Parameters:
items(required) — array — List of {tool, value} checks (max 50).
Hints: read-only yes · destructive not declared · idempotent yes · open-world yes
vendor_onboarding_packread-onlyCheck supplied IBAN, LEI, Belgian VAT and UK company-number fields in one result. Structural checks only; no ownership, registry or fraud clearance.
Parameters:
lei— string — Vendor LEI (optional).iban— string — Vendor IBAN (optional).vat_number— string — Vendor VAT number, BE mod-97 (optional).company_number— string — Vendor UK company number (optional).
Hints: read-only yes · destructive not declared · idempotent yes · open-world yes
india_supplier_checkread-onlyOne 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.
Parameters:
pan— string — PAN (10 chars, optional)vpa— string — UPI VPA handle (optional)ifsc— string — IFSC bank code (optional)gstin— string — GSTIN (15 chars, optional)
Hints: read-only yes · destructive not declared · idempotent yes · open-world yes
pre_disbursement_guardread-onlyEvaluate 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.
Parameters:
lei— string — ISO 17442 Legal Entity Identifier (optional).vat_number— string — EU VAT number (optional).vendor_domain— string — Vendor website domain or invoicing email address (optional).company_number— string — Official corporate registration number, e.g. UK Companies House 8 digits/chars (optional).recipient_iban— string — Recipient bank IBAN (optional).declared_country— string — 2-letter ISO country code where vendor claims to be registered (optional, e.g. 'GB', 'US', 'DE').physical_address— string — Vendor physical office address (optional).prev_receipt_hash— string — Preceding verification receipt hash (may also be passed via X-PREV-RECEIPT-HASH header).invoice_amount_usd— number — Disbursement transaction amount in USD (optional).
Hints: read-only yes · destructive not declared · idempotent yes · open-world yes
gstin_checkread-onlyValidate an Indian GSTIN by structure (2-digit state code + PAN + entity code + 'Z') and its mod-36 cross-sum checksum.
Parameters:
gstin(required) — string — 15-character Indian Goods and Services Tax Identification Number.
Hints: read-only yes · destructive not declared · idempotent yes · open-world yes
ifsc_checkread-onlyCheck the 11-character Indian IFSC format, including its fifth-character zero. No bank-branch registry lookup or account verification.
Parameters:
ifsc(required) — string — 11-character Indian Financial System Code.
Hints: read-only yes · destructive not declared · idempotent yes · open-world yes
sanctions_address_screenread-onlyExact EVM-address comparison against the identified address snapshot and existing operator block policy. Current legal status is unknown; is_sanctioned is null. valid=false preserves a local block; valid=null never authorizes a transaction. Names are not screened. Missing, stale or incomplete evidence is explicit; no UN/EU coverage or sanctions clearance is provided.
Parameters:
subject(required) — string — EVM address (0x...) or ISO 3166-1 country code / jurisdiction name
Hints: read-only yes · destructive not declared · idempotent yes · open-world yes
check_priceread-onlyInstant 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 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.
Parameters:
tool(required) — string — Target tool name (e.g. 'iban-check', 'vendor-onboarding-pack')amount— number — Optional batch count or volume units (default 1)
Hints: read-only yes · destructive not declared · idempotent yes · open-world yes
receipt_verifyread-onlyVerifies 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 — 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.
Parameters:
receipt(required) — string — The full XDR-1 receipt object: v, tool, tool_version, input_hash, output_hash, payer, recipient, amount, nonce, ts, tier, signer, signature (optional successor/stream_state).
Hints: read-only yes · destructive not declared · idempotent yes · open-world yes
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.