BitcoinDatabase.com

Query the chain · Ordinals API

Ordinals API: query Bitcoin ordinals, inscriptions, BRC-20 tokens and Runes data

Ordinals data is not a field you can read off a Bitcoin transaction. An inscription is a payload committed inside the witness of a Taproot spend, wrapped in an envelope that has to be parsed out of the script, and the sat it rides on only carries a number because ordinal theory assigns one to every satoshi in the order it was mined. Rebuilding that from raw blocks means replaying the chain and tracking which output holds which sat range, which is why teams end up running a dedicated indexer next to their node. This ordinals API does that work once. A call returns the inscription ID and number, its content type and bytes, the sat it sits on, the address holding it now, and every transfer since it was created.

or try it below ↓

REST API · SQL · dashboards · indexed from genesis

Query Console
btc
try:

Hit Run to query the fully-indexed Bitcoin blockchain.

BTC

30-day trend

informational on-chain data · not financial advice

REST API · SQL · dashboards, one indexed dataset. Querying the indexed Bitcoin blockchain ...

The same index covers the two fungible protocols built on top, and they work nothing alike. BRC-20 is JSON inscribed as text, so balances are not on-chain state at all: an indexer has to apply the deploy, mint and transfer rules in order and compute who owns what, which is exactly why two providers can report different balances for the same wallet. Runes instead encodes a runestone in an OP_RETURN output and attaches balances directly to UTXOs, so a rune balance is a property of an output rather than of an address. We expose both, plus the raw events behind them, so any number you show a user can be audited back to the transaction that produced it. Note for teams re-platforming: Hiro deprecated its Ordinals, Runes and BRC-20 APIs on March 9, 2026 and pointed developers at Xverse, so this is a query-first alternative that also gives you SQL against the same dataset. Informational on-chain data only. We do not value collectibles, quote markets or give investment advice.

REST API SQL DASHBOARDS WEBHOOKS CSV EXPORT

Indexed from genesis queryable in seconds

On-chain data not financial advice

Why it works

What you get with Ordinals API

Inscriptions parsed, not guessed

Every inscription envelope is pulled out of the Taproot witness where it was committed, so you get the content type and the actual bytes, the inscription ID and number, the sat it is attached to, and the address that currently controls the output holding it. Transfers are ordinary UTXO movements, so the provenance chain comes back as a list of transactions with block heights rather than a single current owner.

BRC-20 and Runes on one index

BRC-20 balances are computed by replaying deploy, mint and transfer inscriptions in block order, and we return the underlying events alongside the totals so you can check the arithmetic yourself. Runes balances are read from the runestone in the OP_RETURN output and tracked per UTXO, with malformed runestones reported honestly as cenotaphs rather than silently dropped.

SQL for questions REST cannot answer

Holder distribution across a collection, mint velocity by block, how much of a rune supply sits in a handful of outputs, or which inscriptions moved after a given height: these are aggregate questions, not lookups. Run them as SQL against the indexed chain and export the result to CSV, instead of paging thousands of REST calls to build the same table.

What it handles

The indexed Bitcoin chain, queryable your way

Look up an address, a transaction, a UTXO, the rich list or an on-chain metric, by REST API, SQL or dashboard. The same authoritative data, reconciled block-by-block against the canonical chain, without running a node.

  • Look up an inscription by ID, by number or by the sat it rides on
  • Fetch inscription content and content type without hosting the media yourself
  • List every inscription currently held by an address or a wallet
  • Follow an inscription transfer history back to the reveal transaction
  • Read BRC-20 deploy, mint and transfer events plus computed balances
  • Track Runes balances per UTXO, with rune IDs in BLOCK:TX form
  • Aggregate holder distribution and mint activity in SQL
  • Pin any ordinals query to a block height so results are reproducible
GET /v1/address/{addr} query result
200 · JSON
{
  "address": "bc1qxy2k…l0wdv8",
  "balance_btc": 68432.10,
  "balance_usd": 4612165420,
  "tx_count": 1284,
  "unspent_outputs": 37,
  "first_seen": "2014-02-09"
}
indexed from genesis · to the satoshi ✓ reconciled block-by-block

Why BitcoinDatabase

One platform, queryable three ways

Not a raw node to sync, not an indexer to build, and not five vendors to stitch together. The fully-indexed Bitcoin blockchain, available as a REST API, as SQL, and as dashboards, on one authoritative dataset.

REST API

Typed JSON for addresses, transactions, balances, UTXOs and metrics. Drop it into apps, wallets, explorers and agents with curl, Python or our SDKs.

SQL access

Run SQL directly against the indexed Bitcoin dataset for ad-hoc analysis, cohorts and exports, the same data the API and dashboards read from.

Compliance-first

Informational on-chain data and analytics only. Entity labels and flow tracing are framed as tooling to support a regulated team's own review, not accusations.

Good questions

Questions about Ordinals API

An ordinal is a serial number assigned to an individual satoshi based on the order it was mined. Ordinal theory is a numbering convention, not a change to Bitcoin, so the network itself does not track it. Indexers apply the rules to every block to work out which sat is which.
Inside the transaction witness. An inscription commits its payload in a Taproot script-path spend, wrapped in an envelope that an indexer parses out of the script. The data is genuinely on-chain and permanent, which is why inscriptions are limited by block space and cost real fees to create.
BRC-20 inscribes JSON text, so balances exist only as the output of an indexer replaying every deploy, mint and transfer in order. Runes writes a runestone into an OP_RETURN output and attaches balances to UTXOs directly. Runes needs less off-chain interpretation, which makes its state easier to verify.
Yes, and this matters most for BRC-20. Because balances are computed off-chain from inscribed instructions, two indexers that handle an edge case differently can report different numbers for the same wallet. We return the raw events behind every balance so you can audit a figure rather than trust it.
Only if you need custom protocol rules. A self-hosted indexer means syncing a full node, replaying the chain to assign sat numbers, and keeping that pipeline from silently falling behind. An API removes that operational load, and SQL access covers the aggregate queries a hosted endpoint usually will not.
It returns the content type and the inscribed bytes, so images, text and JSON come back as stored on-chain and your application decides how to render or cache them. Metadata such as inscription number, sat, current holder and transfer history is returned as normal JSON fields.

Explore more

More ways to query Bitcoin with BitcoinDatabase

Stop running a node. Just query Bitcoin.

Run your first query now and get on-chain data back by REST API, SQL or dashboard, indexed from the genesis block. Informational on-chain data only, not financial advice.

See pricing

Indexed from genesis · REST · SQL · dashboards · addresses, transactions, UTXOs, metrics