FAQ
Frequently asked questions about 0block — getting an API key, tips, same-slot landing, health checks, the DEX Router, fees, and retries.
Common questions about 0block, answered from the docs. Each answer links to the deep-dive page. Can't find yours? Ask in our Discord or see Support.
How do I get an API key for 0block?
API keys are self-serve. In the 0block dashboard, open API Keys
and create one — the full key (of the form 0b_ followed by 43 characters, 46 in
total) is shown once at creation, so copy it immediately; afterwards only its
0b_ + 8-character prefix is ever shown again. You can hold up to 10 active keys and
revoke any of them at any time, or request access in our
Discord. See Dashboard & API Keys
and the Quick Start for the full walkthrough.
What is the minimum tip, and which accounts can receive it?
Every transaction must include a SystemProgram transfer (or TransferWithSeed) to an
allowlisted 0block tip account, at or above the minimum tip. On the hosted service
the minimum is 0.001 SOL (1,000,000 lamports) and the transfer must pay one of the
ten published 0block tip accounts (the pubkeys ending in zero, listed on
Send Transaction). Both the floor and the
allowlist are operator-configured — a self-hosted gateway sets them with --min-tip and
--tip — so take the current values from the
Quick Start. A transaction with no qualifying tip is
rejected with -32001. Note the gate checks the tip is present, not that it is paid:
a transaction that reverts rolls its tip back while still burning fees, so always confirm
landing independently.
How does 0block land transactions in the same block?
0block forwards your signed transaction verbatim to a staked upstream, so it lands
with stake-weighted QoS (SWQoS) routing and higher inclusion probability. Submission
is leader-aware — each transaction is stamped with the target_leader expected to produce
the next block. Landing speed is measured by slot_delta: a value of 0 means the
transaction landed in the same slot it was sent during — the best possible outcome —
and the dashboard aggregates this as same_slot_rate. See
How it works and Tracking your transactions.
How do I send my first transaction?
You need three things: an API key, a fully signed transaction (encoded as base64
or base58), and a qualifying tip. Send a POST with a JSON-RPC sendTransaction
request to the nearest regional endpoint,
passing your key in the X-API-Key header (or the ?api-key= query parameter). The
result you get back is the transaction signature — a submission-ack, not
confirmation. The Quick Start and the
Send Transaction reference walk through the full request
schema, options, and error codes.
How do I check that a 0block region is healthy?
Send a GET to /health on any regional endpoint — for example
curl https://nyc.0block.io/health. A 200 response with the body OK confirms the
region is operational. See Health.
How does the 0block DEX Router work, and what are the fees?
The 0block DEX Router is a single on-chain Solana program that routes a swap across 40+ DEX integrations in one transaction, with multi-hop, multi-fork routing and slippage protection. Fees are 1% of the swap amount by default, and as low as 0.01% for high-volume developers and DEXes; they are charged on an allowlisted mint (SOL, wSOL, USDC, or USD1) and, for integrators, split with your own fee vault. High-volume integrators can also run a dedicated tenant program with their own fee configuration. See Swap.
Does a successful response mean my transaction is confirmed?
No. A 2xx / result from 0block means the upstream accepted your transaction for
forwarding — a submission-ack, never proof that it landed, was confirmed, or that
the tip was paid. Confirm landing against a separate trusted RPC, or follow it through the
dashboard's landing lifecycle.
Which regions and endpoints does 0block offer?
0block runs eight regional endpoints — nyc, chi, and las (North America); ams,
lon, and fra (Europe); sin (Singapore); and syd (Australia). Every region exposes
the same routes and routes to the nearest Solana cluster, so connect to the closest one
for the lowest latency. See the
regional endpoints table.
What should I do when I get a retryable error (-32099 or -32005)?
Resubmit the exact same serialized transaction bytes you already sent. Never re-sign or refresh the blockhash on a transient failure: that produces a new transaction id the leader does not deduplicate against the in-flight one, so if the original eventually lands you have double-executed. A fresh blockhash is only appropriate once the original has definitively expired. See the error codes and retry contract.