Skip to Content
Blockfrost APIsConfiguration

Configuration

Properties

PropertyDefaultDescription
store.extensions.blockfrost.enabledfalseMaster switch. The Blockfrost auto-configuration only loads when this is true.
store.extensions.blockfrost.account.enabledtrueAccount / stake-address endpoints (/accounts).
store.extensions.blockfrost.address.enabledtrueAddress and address-UTXO endpoints (/addresses).
store.extensions.blockfrost.asset.enabledtrueNative asset and policy endpoints (/assets).
store.extensions.blockfrost.blocks.enabledtrueBlock and block-tx endpoints (/blocks).
store.extensions.blockfrost.epoch.enabledtrueEpoch and protocol-parameter endpoints (/epochs).
store.extensions.blockfrost.metadata.enabledtrueTransaction metadata-by-label endpoints (/metadata/txs).
store.extensions.blockfrost.scripts.enabledtrueScript and datum endpoints (/scripts).
store.extensions.blockfrost.transaction.enabledtrueTransaction read endpoints (/txs) and tx submit (/tx/submit).
store.extensions.blockfrost.util.enabledtrueTx execution-units evaluate and xpub-derive utilities (/utils).
blockfrost.apiPrefix(none — required)URL prefix prepended to every Blockfrost controller path. Set by the blockfrost profile to /api/v1/blockfrost.

store.extensions.blockfrost.enabled gates the entire extension. When it is false (the default), the auto-configuration does not load and the sub-module flags have no effect. When it is true, all sub-module flags default to true, so a single line is enough to enable the full surface.

Profile shortcut

A ready-made profile lives at config/application-blockfrost.properties (and the same file under docker/config/). Activate it instead of editing your own configuration:

SPRING_PROFILES_ACTIVE=ledger-state,blockfrost

The profile sets store.extensions.blockfrost.enabled=true and overrides blockfrost.apiPrefix=/api/v1/blockfrost so the Blockfrost endpoints don’t collide with yaci-store’s own /api/v1/... controllers.

API base path

blockfrost.apiPrefix is a required property when the extension is enabled — every Blockfrost controller is mapped under ${blockfrost.apiPrefix}. It has no default; if missing, the application fails to start.

The blockfrost profile sets it for you:

blockfrost.apiPrefix=/api/v1/blockfrost

Set it explicitly when not using that profile:

blockfrost.apiPrefix=/api/v1/blockfrost

Yaci-store’s native stores-api controllers use a separate apiPrefix property (/api/v1 in the bundled apps). Keeping blockfrost.apiPrefix distinct (e.g. /api/v1/blockfrost) prevents path collisions between the two surfaces.

Store dependencies

Blockfrost controllers read from data the underlying yaci-store modules have indexed. The bundled applications/all distribution enables every store by default, so no extra wiring is needed.

Recommended: activate ledger-state alongside blockfrost. Account info, rewards, and epoch-stake data depend on values that are only computed when the ledger-state profile is active. Without it, those endpoints return empty or partial responses.

SPRING_PROFILES_ACTIVE=ledger-state,blockfrost

Transaction submit

POST /tx/submit routes through the submit component. It tries backends in this order; the first one configured wins:

  1. Submit API — set store.cardano.submit-api-url (Recommended)
  2. Ogmios — set store.cardano.ogmios-url.
  3. Local node-to-client socket — set store.cardano.n2c-node-socket-path (or store.cardano.n2c-host + store.cardano.n2c-port).

Configuring more than one is fine — the priority above decides which is used. If none is configured, /tx/submit returns 500. See config/application.properties for the full submission options.

Transaction evaluation

POST /utils/txs/evaluate* runs through a separate evaluator selected by store.submit.tx-evaluator-mode:

ValueBackendRequires
SCALUS (default)Local Scalus evaluator embedded in the JVMNone
OGMIOSRemote Ogmiosstore.cardano.ogmios-url

The evaluator setting is independent of the submit priority above — for example, you can submit through Submit API while evaluating with Scalus locally.

Health check

After enabling, confirm the API is reachable (path depends on your blockfrost.apiPrefix):

curl http://localhost:8080/api/v1/blockfrost/blocks/latest
Last updated on