https://nexus.gerowallet.io/api/v0. Point an
unmodified Blockfrost SDK at that base URL and pass your Nexus nxs_ key as the project_id,
and your existing calls keep working against Blockfrost’s request and response shapes.
This page is for developers arriving from Blockfrost. If you already call the native Nexus API
at
/api/... with an X-Api-Key header, nothing here changes for you and there is nothing to
do. The compatible surface is an additional entry point, not a replacement.The one-line change
Two changed lines in@blockfrost/blockfrost-js: your project ID becomes your Nexus key, and
customBackend points at /api/v0.
project_id is accepted only on /api/v0, and it carries the same nxs_ key you would use
natively. X-Api-Key also works on this surface, and an explicit X-Api-Key wins if a request
sends both. See
Authentication.What works
Most of the Blockfrost read surface is served today:- Blocks and transactions
- Addresses
- Accounts, through the stake-address sub-resources
- Assets, by asset ID and by policy ID
- Epochs
- Scripts
- Transaction metadata
- Stake pools: the pool list,
/pools/retired,/pools/retiring, and the per-pool sub-resourcesmetadata,relays,updates,blocksandvotes
What is not available yet
Guarded endpoints
These paths return a Blockfrost-shaped 503 with aRetry-After header. The cause is
unbounded per-request aggregation in the upstream indexer, so each path is guarded individually
and is released on its own as the matching upstream fix lands.
Tracked upstream in
bloxbean/yaci-store:
#1078,
#1080,
#1083,
#1089.
Not supported by design
- Mempool endpoints.
- Blockfrost’s account-usage metrics endpoints.
/accounts/{stake_address}, the account root, is also not served yet. That one is an upstream
gap rather than a Nexus decision, tracked in
bloxbean/yaci-store#1077. The
sub-resources under a stake address are served.Error responses
On/api/v0, Nexus returns Blockfrost’s error envelopes rather than the native Nexus error body,
so an unmodified SDK parses them without changes. Every envelope is UTF-8.
A key that is present but refused returns 403:
Rate limits and quota
One key, one tier, one set of limits. Yournxs_ key carries the same plan tier on both
surfaces, and traffic through /api/v0 counts against the same monthly quota and the same
per-second rate limit as native traffic. There is no separate compatibility allowance and no
second key to manage. The per-tier numbers are on Rate Limits.
A 429 on /api/v0 uses the Blockfrost envelope described above and still sends Retry-After, so
an SDK’s built-in backoff behaves the way it does against hosted Blockfrost.
Guarded 503 responses currently consume quota. That is the behaviour today, and it is under
review.
Moving individual calls to the native API
Optional, and only where it pays. Once you are running on Nexus, individual calls can move to the native API, which has endpoints that answer in one request what the Blockfrost surface needs many requests to assemble. A wallet page is the clearest case. Built through the Blockfrost SDK it takes 42 calls; the nativeGET /api/addresses/{address}/transactions/history answers the same page in 1.
This is a quota and code-structure argument, not a latency one. What changes is that the page
spends 1 request of your monthly quota instead of 42, and you maintain a single call instead of a
fan-out.
Nothing forces this. A working Blockfrost integration on
/api/v0 can stay exactly as it is.Stability
The base URL and your key are the contract.https://nexus.gerowallet.io/api/v0 plus your nxs_
key is what you integrate against, and that pair does not change.
What answers behind that URL is ours to improve. Backend changes never require action on your
side: no new URL, no key rotation, no forced SDK upgrade.
Next steps
Authentication
project_id, X-Api-Key, and how keys are scopedRate Limits
Per-tier quotas and per-second limits
Error Handling
The native error envelope and how to branch on it
API Reference
The native Nexus surface, endpoint by endpoint