Changelog
What changed in the Rarebl Open API and these docs.
# Changelog
What changed in the Rarebl Open API and these docs, newest first.
## Every reply now carries its request id in meta
15 November 2026 · API Update, Improvement
Every Open API reply ends with a `meta` object: `meta.requestid` (the same value as the `X-Request-Id` header) and `meta.notices`. Existing fields are unchanged.
### The meta object (additive)
- Every `/open/*` reply, success or error, gains a last field `meta`: `{ "requestid": "0123456789abcdef", "notices": [] }`.
- `meta.requestid` is 16 hex characters and equals the `X-Request-Id` header, which is still sent. Quote it when you contact support.
- `meta.notices` is always an array, empty today. A notice is `{ "code", "message", "docs"? }`; clients can ignore it.
- `status`, `code`, `message`, `data` and `go` are unchanged. Explorer backend replies, webhook deliveries and WebSocket messages have no `meta`.
## Search that understands what you paste, and docs search that finds the exact line
15 November 2026 · API Update, Improvement
The search endpoint now ranks every plausible match with a confidence and a reason, reads addresses in every format with checksum checks, accepts token names, explorer links and payment links, and explains a miss. The documentation search covers every page, endpoint, field, error code and SDK method, with typo tolerance.
### Search endpoint (additive)
- New response fields: `results[].confidence`, `reason`, `verified`, `path`, `rank` and `token`, plus `best`, `ambiguous`, `query`, `suggestions`, `unavailable` and `mode`. The original `chain`, `type`, `id` and `label` are unchanged.
- New parameters: `mode` (`full`, or `fast` for as-you-type suggestions with no node call), `chain` and `limit`.
- Every address format is validated by checksum: base58, bech32 and bech32m (taproot), CashAddr with or without `bitcoincash:`, EIP-55 for Ethereum, TRON base58 and 41-hex. A wrong checksum gives no result and an `invalid_checksum` suggestion.
- Token names and symbols (`USDT`, `tether`), chain names and contract prefixes match with typo tolerance. New result types: `contract` and `chain`.
- Links from mempool.space, etherscan, tronscan, blockchair and others, and `bitcoin:`, `ethereum:` and other payment links, are reduced to the identifier inside. Private keys are refused and never echoed.
- Heights and hashes are checked on every candidate chain in parallel, inside a 4 second budget; a node that does not answer is listed in `unavailable`.
### Documentation search
- Full text over every page and section, endpoint, parameter, response field, error code (`API200` to `API502`) and reason, and SDK method, with synonyms, typo tolerance and highlighted snippets.
- Press Ctrl K (or Cmd K). Arrow keys move, Enter opens, Esc closes. The index loads the first time you open search.
## SDK 0.2.0 and hosted-signing envelope v2
15 November 2026 · Breaking Change, API Update
The SDKs now require the expected recipient when you sign, apply default fee caps and check the previous transaction of legacy inputs. Hosted signing uses an envelope v2 that is bound to a chain, an operation and what may be signed.
### SDK 0.2.0
- **`expect` is required** when you sign a build yourself: `signBuild` (JavaScript), `sign_build` (Python), `Signer::signBuild` (PHP, now `signBuild($build, $keys, ["expect" => ...])`) and `rarebl sign --expect-to --expect-amount`. `transfer()` is unchanged. An explicit `unsafeNoExpect` signs without pinning the recipient.
- **Default fee caps** when `expect` gives none: 1000 sat/vB (BTC, LTC), 50 sat/byte (BCH, DASH), ETH `maxFeePerGas` 500 gwei and 0.05 ETH in total, TRON `feeLimit` 150 TRX. A non-zero locktime is refused unless `allowLocktime` is set.
- **Legacy p2pkh inputs** (BTC, LTC, DASH) carry `prevTx` in `tx/build` replies; the SDKs check that it hashes to the input and read the amount from it.
- BIP340 (p2tr) signatures use random auxiliary data; pass `deterministic` for reproducible output.
### Hosted signing
- **Envelope v2** (`envelope.encrypt`) names the chain, the operation, an expiry of at most 300 seconds and a one-time id. `op: "sign"` lists the digests; `op: "send"` lists the recipients and amounts. Envelope v1 is refused with `bad_envelope`.
- New reasons on [tx/sign](https://docs.rarebl.com/api/tx/sign) and [tx/send](https://docs.rarebl.com/api/tx/send): `bad_envelope`, `envelope_expired`, `envelope_replayed`, `digest_not_bound`, `outputs_not_bound` and `chain_mismatch`.
- The [signer key](https://docs.rarebl.com/api/tx/signer-key) is refused 7 days after its `expiresAt`; fetch it again when you get `bad_envelope`.
## Recommended fees for every chain
15 November 2026 · Improvement
A clearer home for fees: Recommended fees gives the fastest, medium and normal fee for every chain — miner fees in sat/vB on BTC, LTC, BCH and DASH, gas in Gwei on ETH and the energy price in sun on TRON.
### What changed
- New path [`/open/fees/recommended`](https://docs.rarebl.com/api/fees/recommended), in the new **Gas and miner fees** section. `fast`, `standard` and `slow` are the fastest, medium and normal speeds; they match `priority` in [Build a transaction](https://docs.rarebl.com/api/tx/build).
- `/open/gas/oracle` keeps working and returns the same reply.
- [Token](https://docs.rarebl.com/api/token/info) moved into the **Stats** section of the reference.
## Open API v2: transactions, signing SDKs, webhooks, streams, market data
14 November 2026 · New Feature
Build, sign and broadcast transactions on all six chains, with SDKs that sign on your machine, plus address tools, webhooks, a WebSocket stream and market prices. No API keys: every endpoint is keyless and limited per IP.
### What is new
- **Transactions:** [Build](https://docs.rarebl.com/api/tx/build), [Assemble](https://docs.rarebl.com/api/tx/assemble), [Broadcast](https://docs.rarebl.com/api/tx/broadcast), [Decode](https://docs.rarebl.com/api/tx/decode), [Estimate](https://docs.rarebl.com/api/tx/estimate), [Output spend status](https://docs.rarebl.com/api/tx/outspends) and [Signer key](https://docs.rarebl.com/api/tx/signer-key). Three ways to send: [sign locally with the SDK](https://docs.rarebl.com/guides/sign-locally) (recommended), [sign the digests](https://docs.rarebl.com/guides/send-a-transaction), or [hosted signing](https://docs.rarebl.com/guides/hosted-signing).
- **Hosted signing:** [Sign](https://docs.rarebl.com/api/tx/sign), [Send](https://docs.rarebl.com/api/tx/send) and [New address](https://docs.rarebl.com/api/address/new), for callers that cannot sign locally; they need the header `X-Rarebl-Accept-Risk: hosted-signing`. Try It is disabled for them.
- **Addresses:** [Validate](https://docs.rarebl.com/api/address/validate), [Watch](https://docs.rarebl.com/api/address/watch), [UTXOs](https://docs.rarebl.com/api/address/utxos), [Nonce](https://docs.rarebl.com/api/address/nonce) and [Resources](https://docs.rarebl.com/api/address/resources).
- **Webhooks:** [create](https://docs.rarebl.com/api/hooks/create), get, update, pause, resume, delete, deliveries, test and replay, with signed deliveries and retries: [Webhooks](https://docs.rarebl.com/guides/webhooks).
- **Market data:** [Prices](https://docs.rarebl.com/api/market/price), [Tickers](https://docs.rarebl.com/api/market/tickers), [History](https://docs.rarebl.com/api/market/history), [Assets](https://docs.rarebl.com/api/market/assets) and [FX](https://docs.rarebl.com/api/market/fx): reference prices, not trading rates.
- **WebSocket stream:** [wss://api.rarebl.com/ws](https://docs.rarebl.com/api/websocket) for blocks, fees, address, transaction and token channels.
- **SDKs:** single-file [JavaScript](https://docs.rarebl.com/sdks/js), [Python](https://docs.rarebl.com/sdks/python), [PHP](https://docs.rarebl.com/sdks/php) and [shell](https://docs.rarebl.com/sdks/shell) SDKs with local keys, signing, `transfer()` and webhook verification, each with a SHA-256.
- **Guides:** step-by-step walkthroughs: [Quickstart](https://docs.rarebl.com/quickstart), [Send a transaction](https://docs.rarebl.com/guides/send-a-transaction), [Sign locally with the SDKs](https://docs.rarebl.com/guides/sign-locally), [Watch addresses, get UTXOs and balances](https://docs.rarebl.com/guides/watch-addresses), [Webhooks](https://docs.rarebl.com/guides/webhooks), [Live data over WebSocket](https://docs.rarebl.com/guides/websocket), [Market data and fees](https://docs.rarebl.com/guides/market-data), [Stuck transactions](https://docs.rarebl.com/guides/stuck-transactions) and [Errors and rate limits](https://docs.rarebl.com/guides/handle-errors).
### What changed
- [Rate limits](https://docs.rarebl.com/rate-limits) now have classes (read, compute, write, watch, hooks, stream), still per IP and keyless.
- New codes `API422` and `API403`, and new reasons such as `not_watched`: [Responses & codes](https://docs.rarebl.com/responses-and-codes).
### Known limits
The Ethereum node is still syncing, and a watch on BTC, LTC or BCH takes time to bootstrap. See [Coverage and limits](https://docs.rarebl.com/limits-today).
## Open API v1: 13 read-only endpoints
14 November 2026 · New Feature
Read-only blockchain data for Bitcoin, Litecoin, Bitcoin Cash, Dash, Ethereum and TRON from Rarebl's own nodes, with no API key.
### What is new
- **Stats:** [Chains](https://docs.rarebl.com/api/stats/chains) and [Live stats](https://docs.rarebl.com/api/stats/live) (heads of all six chains, refreshed about every 2 seconds).
- **Blocks:** [Latest blocks](https://docs.rarebl.com/api/block/latest) and [Block](https://docs.rarebl.com/api/block/get).
- **Transactions:** [Transaction](https://docs.rarebl.com/api/tx/get), [Transaction status](https://docs.rarebl.com/api/tx/status) and [Mempool](https://docs.rarebl.com/api/tx/mempool).
- **Addresses:** [Address](https://docs.rarebl.com/api/address/balance), [Address transactions](https://docs.rarebl.com/api/address/transactions) and [Address tokens](https://docs.rarebl.com/api/address/tokens).
- **Tokens:** [Token](https://docs.rarebl.com/api/token/info) for ETH and TRON.
- **Gas and miner fees:** [Recommended fees](https://docs.rarebl.com/api/fees/recommended) in sat/vB, Gwei and sun.
- **Search:** [Search](https://docs.rarebl.com/api/search/query) for any height, hash or address.
### How it works
- Every endpoint is `GET` with query parameters or `POST` with a JSON body, at `https://api.rarebl.com/open/<module>/<action>`.
- No key is needed: clients are limited per IP to 5 requests per second, burst 20. `X-API-KEY` is reserved for keyed plans.
- Every reply uses the `API*` envelope. See [Responses & codes](https://docs.rarebl.com/responses-and-codes).
- CORS is open, so browsers can call the API directly, including the Try It panel in these docs.
### Known limits
A few capabilities depend on work that is still in progress.
- Address transactions are available on DASH only until the history index is built; BTC, LTC and BCH balances are `null` with `balanceStatus: "index_pending"` until then.
- TRON history starts on 2026-09-08.
- The Ethereum node is still syncing, so some ETH calls answer `API409` or `API502`.
- Details and reasons are on [Coverage and limits](https://docs.rarebl.com/limits-today).