Skip to content

Blockfrost API Compatibility — Progress Tracker

Huy Le edited this page Jun 15, 2026 · 11 revisions

Blockfrost API Compatibility — Progress Tracker

This document is the single source of truth for tracking Blockfrost extension implementation progress, known gaps vs Blockfrost, and links to related PRs. Update this file as modules are merged or gaps are resolved.

Last verified: June 15, 2026. Current release baseline: v3.0.0-beta3.

Per-module gap tracking docs PR: https://github.com/bloxbean/yaci-store/pull/958


✅ Merged into main

Module Endpoints PR Merged
Epoch /epochs/* — latest, by number, params, stakes, blocks (10 endpoints) #780, #969 Feb 2026; updated Jun 2026
Address /addresses/* — info, extended, UTXOs, transactions, total (6 endpoints) #784, #976 Feb 2026; updated Jun 2026
Asset /assets/* — list, detail, history, txs, addresses, policy (7 endpoints) #780 Feb 2026
Block /blocks/* — latest, by hash/slot/number, txs, next/previous, addresses, CBOR (11 endpoints) #811 Mar 2026
Transaction /txs/* — detail, UTXOs, CBOR, metadata, metadata/cbor, redeemers, stakes, delegations, withdrawals, mirs, pool_updates, pool_retires, required_signers (13 endpoints) #818 Apr 2026
Transaction Submit / Utils /tx/submit, /utils/txs/evaluate, /utils/txs/evaluate/utxos, /utils/addresses/xpub/{xpub}/{role}/{index} (4 endpoints) #968 Jun 2026
Account /accounts/{stake} + 11 sub-endpoints (rewards, history, delegations, registrations, withdrawals, mirs, addresses, assets, utxos, transactions) #836 Apr 2026
Metadata /metadata/txs/labels, /{label}, /{label}/cbor (3 endpoints) #872 Jun 2026
Scripts /scripts/* — list, detail, json, cbor, redeemers, datum, datum/cbor (7 endpoints) #852 Jun 2026

🔄 In Progress (Open PRs)

Module Endpoints Issue PR Status
Pools /pools/* — list, extended, retired, retiring, detail, history, metadata, relays, delegators, blocks, updates, votes (12 endpoints) #846 #847 Open — remaining diffs are known limitations/upstream gaps
Governance /governance/dreps/* + /governance/proposals/* (17 endpoints) #864 #865 Open draft
Network /, /genesis, /network, /network/eras (4 endpoints) #866 Open — accepted limitations are documented in the PR

⚠️ Module-by-module mismatches & known gaps

Each module tracks its own mismatch set and known gaps in one place.

Epoch — PR #780, update #969 (merged)
  • active_stake can be null on /epochs/* when store.adapot.enabled=false (expected graceful degradation)
  • epoch response parity was updated in #969
Address — PR #784, update #976 (merged)
  • /addresses/{address}/extended mirrors base response for fields that are not indexed locally
  • some metadata fields still depend on token registry / CIP-68 data
Asset — PR #780 (merged)
  • token metadata fields (metadata, onchain_metadata) are null without token registry / CIP-68 ingestion
  • /assets pagination can drift from assets indexed locally but absent on Blockfrost — tracked in #795
Block — PR #811 (merged)
  • /blocks/{hash}/txs/cbor returns stored transaction CBOR. Exact envelope shape depends on what is stored locally — shared issue tracked in #829
Transaction — PR #818 (merged)
  • /txs/{hash}/cbor returns stored transaction CBOR. Exact envelope shape depends on what is stored locally — tracked in #829
  • /txs/{hash} size can differ from Blockfrost when stored CBOR differs
  • invalid_before = 0 ambiguity cannot distinguish absent value from explicit slot 0 without schema change
  • POST /tx/submit is now supported through the Blockfrost transaction module
Transaction Submit / Utils — PR #968 (merged)
  • POST /tx/submit consumes application/cbor and returns the transaction hash string
  • submit backend requires one of Submit API, Ogmios, or local N2C to be configured
  • POST /utils/txs/evaluate consumes CBOR
  • POST /utils/txs/evaluate/utxos consumes JSON {cbor, additionalUtxoSet}
  • GET /utils/addresses/xpub/{xpub}/{role}/{index} derives an address from an xpub
Account — PR #836 (merged)
  • latest /accounts/{stake}/rewards row may lag Blockfrost by one row on live data when AdaPot materialization is behind (accepted timing limitation)
  • follow-up architecture gap: shared account_rewards DB view is still missing for reusable withdrawable_amount derivation
Pools — PR #847 (open)

Pools is still in development and will be added in a later release.

Scripts — PR #852 (merged)
  • /scripts first-page overlap can be partial if the local database has not fully synced older script rows
Governance — PR #865 (open draft)

Governance is still in development and will be added in a later release.

Network — PR #866 (open)

Network is still in development and will be added in a later release.

Metadata — PR #872 (merged)
  • transaction_metadata duplicate rows can appear after reconnect/restart; rollback delete boundary is exclusive — tracked in #889
  • cip10 remains null on /metadata/txs/labels (registry integration not included)

📋 Index Management

This project does not use Flyway for optional indexes. Indexes are managed via the admin CLI index applier:

# Apply all standard + extra indexes
yaci-store-admin-cli apply-indexes

# Apply only extra optional indexes
yaci-store-admin-cli apply-extra-indexes

# Apply Blockfrost-specific optional indexes
yaci-store-admin-cli apply-optional-indexes --indexes blockfrost-index

# Check standard + extra indexes
yaci-store-admin-cli verify-indexes

Index definitions live in components/dbutils/src/main/resources/:

  • index.yml — standard indexes applied by apply-indexes
  • extra-index.yml — optional heavy indexes applied by apply-indexes / apply-extra-indexes
  • blockfrost-index.yml — Blockfrost-specific optional indexes applied by apply-optional-indexes --indexes blockfrost-index

verify-indexes checks index.yml and extra-index.yml. It does not currently check blockfrost-index.yml.

Already covered in index.yml (no action needed)

Index name Table Notes
idx_address_utxo_owner_stake_addr address_utxo Covers /accounts/{stake}/addresses, /utxos
idx_withdrawal_address, idx_withdrawal_address_slot withdrawal Covers /accounts/{stake}/withdrawals
idx_instant_reward_address_slot instant_reward Covers rewards_sum adapot query
idx_reward_rest_address_slot reward_rest Covers rewards_sum adapot query

Blockfrost-specific indexes

These indexes are now maintained in blockfrost-index.yml.

Table Indexes
address_utxo idx_address_utxo_owner_addr_full, idx_address_utxo_block
assets idx_assets_unit_slot, idx_assets_unit_policy, idx_assets_unit_qty
transaction idx_transaction_block_tx_index_tx_hash
tx_input idx_tx_input_spent_at_block_spent_tx_hash, idx_tx_input_tx_hash
block idx_block_epoch_slot
transaction_scripts idx_transaction_scripts_purpose_not_null

Update this file when PRs are merged or gaps are resolved. When opening a new gap-specific issue, link it back to this document for traceability.

Home

Extensions

Clone this wiki locally