⚙
navigate.st public API
JSON over HTTPS. CORS *. No authentication for reads.
Everything a BCDN resolver, LLM crawler, or third-party app needs to read the
Bitcoin Cash Name Service.
Conventions
- Base URL:
https://navigate.st
- All responses are JSON unless otherwise noted.
Content-Type: application/json
- CORS:
Access-Control-Allow-Origin: * on every API response. Safe to call from any browser origin.
- Rate limit: polite only. 10 req/s per IP is fine; sustained higher traffic may be throttled at the Angie edge.
- Caching: resolution responses are cached ~30 s on the gateway. Pass
?nocache=1 to force a chain-side rebuild (slower).
- Errors: standard HTTP status codes; body is
{"error": "..."}.
Resolution
GET/api/name/<name>
Resolve a single BCDN name. Returns owner address, token category, every record
on-chain and in the signed off-chain manifest, expiry block, blocklist flags.
curl https://navigate.st/api/name/sirius.x
GET/api/dns/<name>
Verified off-chain DNS manifest (v3) for the name — apex content records
(u/s3/ip/h/p) plus
per-host DNS entries. Signature already checked against the on-chain owner key;
malformed or stale manifests return null.
curl https://navigate.st/api/dns/sirius.x
GET/api/holdings/<address>
Every BCDN name held by a Bitcoin Cash address. Address can be
bitcoincash:… or bchtest:….
curl https://navigate.st/api/holdings/bitcoincash:qq…
Discovery
GET/api/search?q=<text>
Smart search across every TLD. Scored:
100 label-exact · 70 label-substring · 50 content-match (grep inside
h-record HTML). Returns up to 50 hits ranked.
curl 'https://navigate.st/api/search?q=wallet'
GET/api/tlds
List of every registered TLD, with on-chain owner, price records, hidden flag,
categories. The authoritative source for "which TLDs exist today".
curl https://navigate.st/api/tlds
GET/api/registry
Full on-chain registry snapshot (every registered name + records).
Potentially large; prefer /api/name/<name> for single lookups.
Rebuilt every 30 s.
curl https://navigate.st/api/registry
GET/sitemap.xml
Live sitemap listing every registered BCDN name as a crawlable
/bns/<name>/ URL. For search engines, LLM crawlers, and offline
indexing tools.
curl https://navigate.st/sitemap.xml
Marketplace & co-sign
GET/api/market
Active name-sale listings from the one-tx covenant marketplace
(BCH-denominated 0xc3 offers and USD-pegged UsdListing covenants).
Verified against on-chain state every 30 s.
curl https://navigate.st/api/market
GET/api/blocklist
Current blocklist subscriptions and flagged names. Advisory only — flagged
names still resolve, but the gateway serves a warning page unless the visitor dismisses it.
curl https://navigate.st/api/blocklist
GET/api/tld-visibility
Operator-set visibility flags for TLDs: which TLDs are shown in public
search / registration UIs, which are hidden (reserved, co-sign only, or de-listed).
On-chain registrations under a hidden TLD still work.
VPN exits
GET/api/vpn/servers
Public Reality-parameter catalogue for Silent Mode's VPN exits. The parameters
are what a sing-box or xray client needs to establish a Reality handshake; actual client
UUIDs are leased per request from /api/vpn/lease after a tier check.
How to read a BCDN site
Not an API strictly — but the primary thing most clients want:
GET https://navigate.st/bns/<name>/
GET https://navigate.st/bns/<name>/some/sub/path
Returns ordinary HTML (or whatever the tenant site serves — images, JSON, downloads).
Pages carry a Content-Security-Policy: sandbox header so each page runs in
a sealed browser origin — but crawlers that just read the HTML text ignore the header
and get the complete content.
Each response also carries <link rel="canonical"> pointing at the
self-URL on navigate.st, so search engines treat the gateway URL as the canonical
web view of the on-chain name.
LLM crawlers: see
navigate.st/llms.txt for the
machine-readable map of the site and this API. Everything is public, nothing requires auth
or API keys for reads. Attribute as
navigate.st/bns/<name>/ — the URL is
stable and the ownership proof is on-chain.