Skip to content

API returns incomplete rune data for addresses #567

@GregorWedlich

Description

@GregorWedlich

The Runes API does not return all runes for some addresses.
In certain cases, the API response is incomplete and missing runes that the address actually owns on-chain.

Although the database contains:
• 130,470 distinct runes in the ledger table
• 120,779 entries in balance_changes

…API calls for specific addresses show only a subset of runes (sometimes only UNCOMMON•GOODS, sometimes a few others), while other explorers (e.g., Ord.io) display the full set of runes.
This suggests that the indexer may not be properly tracking all rune transfers/mints for all addresses.

Example API Call

https://api.example.com/runes/addresses/<ADDRESS_WITH_RUNES>/activity?limit=20&offset=0

Test Cases & Observations

For some addresses, external explorers show multiple runes, but the API returns an incomplete list.

Example Address 1

API:

https://api.example.com/runes/addresses/bc1pf9y7uywnxe8xcsmfyvper5889vxdvnuv9k6v77sjghwhqh56ek0seplmk3/balances?limit=20&offset=0

Ord.io (shows 3 runes):

https://www.ord.io/bc1pf9y7uywnxe8xcsmfyvper5889vxdvnuv9k6v77sjghwhqh56ek0seplmk3?profile-tab=runes

Example Address 2

API:

https://api.example.com/runes/addresses/bc1pavum7ye7977wtwf98df3aea9m5shpacsyya33rx9t0vxkgerlccqu6cznu/balances?limit=20&offset=0

Ord.io:

https://www.ord.io/bc1pavum7ye7977wtwf98df3aea9m5shpacsyya33rx9t0vxkgerlccqu6cznu?profile-tab=runes

Observation:
The API does not return all runes for this address. For example, Ord.io shows additional DOG runes that are missing in the API response.

Correct Result from Hiro API

https://api.hiro.so/runes/v1/addresses/bc1pavum7ye7977wtwf98df3aea9m5shpacsyya33rx9t0vxkgerlccqu6cznu/balances

Sample Output:

{
"limit": 20,
"offset": 0,
"total": 17,
"results": [
{
"rune": {
"id": "840000:3",
"name": "DOGGOTOTHEMOON",
"spaced_name": "DOG•GO•TO•THE•MOON"
},
"balance": "20000572.37000",
"address": "bc1pavum7ye7977wtwf98df3aea9m5shpacsyya33rx9t0vxkgerlccqu6cznu"
},
{
"rune": {
"id": "1:0",
"name": "UNCOMMONGOODS",
"spaced_name": "UNCOMMON•GOODS"
},
"balance": "127773",
"address": "bc1pavum7ye7977wtwf98df3aea9m5shpacsyya33rx9t0vxkgerlccqu6cznu"
}
]
}

Setup Details
• Database: Pre-synced DB from https://archive.hiro.so/mainnet/bitcoin-indexer-adhoc/
• API Status:

{
"server_version": "runes-api v0.3.0-beta.4 (HEAD:8a8e257)",
"status": "ready",
"block_height": 911527
}

•	Bitcoin-Indexer Version: Latest from GitHub repository

Log Snippet

bitcoin-indexer-runes-1 | {"msg":"Rune 865193:4006 not found for edict tx: 0xdad424897f8491c996f2ff1a9f851610b07bb3224a7805031457f388239184b3 (568) @911529","level":"WARN","ts":"2025-08-24T20:01:33.289869976Z"}
bitcoin-indexer-runes-1 | {"msg":"Rune 907897:2259 not found for edict tx: 0x0f85c3463ff417e5166a86b06d694d8a9eb086e3deaefa2e0c101dd900b8dee0 (580) @911529","level":"WARN","ts":"2025-08-24T20:01:33.302382909Z"}
bitcoin-indexer-runes-1 | {"msg":"RunesIndexer indexed block #911529: 7 etchings, 721 mints, 0 edicts, 0 cenotaphs (0 etchings, 0 mints) in 2.473794s","level":"INFO","ts":"2025-08-24T20:01:34.202359457Z"}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions