It started as an internal adapter layer at a payments shop that had to watch four chains at once and got tired of four half-maintained clients. It was extracted, rewritten as a Django app, and released under MIT in 2023. It has been the same shape ever since.
A thin, honest gateway. It speaks to full nodes you control, normalises their answers into one schema, and gets out of the way. It holds no keys, signs nothing, custodies nothing, and stores only an address index you can drop and rebuild.
/address/<a>/txs is useful, and no further.Three decisions get questioned often enough to write down.
Amounts are strings. Eight decimals of BTC and eighteen of BNB do not
both fit in an IEEE double, and a JSON number is a double in most clients
whatever the spec says. Integer base units plus decimals is
ugly to read and impossible to get subtly wrong.
raw is always present. Normalisation loses information by
definition. Rather than argue about which fields deserve promotion, the
adapter promotes what every chain has and keeps the original document
verbatim beside it.
The stream protocol is versioned separately from REST. REST has not
broken since 1.0 and should not have to carry a version bump because the
wire framing on streams changed. Hence /api/v1/ next to
/api/v3/, which looks like a mistake and is not — see
versioning.
Adapters are the useful contribution. One lives in
fullnode/adapters/<chain>.py, implements six methods, and
is tested against a recorded fixture set rather than a live node so the
suite runs offline. If you run a chain we do not support and can describe
its RPC in a paragraph, open an issue before writing code — half of the
work is deciding what maps onto transfers[].
ruff and black, both enforced in CI.pytest, no network access in the default run.| version | Date | Notes |
|---|---|---|
| 3.2.1 | 2026-07-30 | TON adapter reads from a liteserver pool instead of a single endpoint. |
| 3.2.0 | 2026-06-11 | Cursor pagination on /address/<a>/txs; offsets deprecated. |
| 3.1.4 | 2026-05-02 | Rate limiter no longer counts CORS preflight. |
| 3.0.0 | 2026-01-19 | /api/v3/ streams: binary framing, resumable cursors. /api/v2/ removed. |
| 2.4.0 | 2025-09-08 | BNB Smart Chain adapter. |
| 1.0.0 | 2023-04-02 | First release: Bitcoin, Solana, TRON. |
Bugs and feature requests go to the issue tracker, where they are visible to
everyone. For anything about the public gateway itself — an address hammering
it, a node stuck behind — ops@full-node.online reaches the
people who run it.