Skip to content

Mini Blockfrost

Dolos provides an HTTP endpoint to access data using Blockfrost OpenAPI specification.

Usage

If enabled via configuration, Dolos will expose a TCP port accepting HTTP connections. The default port number is 3000, but this value can be changed via configuration.

Once you have the daemon running you can hit the endpoint using any HTTP client (cURL, Postman, your browser, etc).

This is an example of querying for the latest block using curl:

Terminal window
$ curl localhost:3000/blocks/latest | jq -S
{
"block_vrf": "vrf_vk1wz88xjus636xa3u3qwmhwqqawf4dwed96yh7r6k9t36xtk2m635q4tfmmz",
"confirmations": 0,
"epoch": 895,
"epoch_slot": 74777,
"fees": "1088620",
"hash": "7577092717e9f764d9cda887beaf5b1da022f58fbe140f0c6f0e122fac7c383c",
"height": 3121489,
"next_block": null,
"op_cert": "221826dc3e1061793f486026c1e02416ac3829f38c3e7388acd3540ba46d576d",
"op_cert_counter": "7",
"output": "10106802795",
"previous_block": "1e16f870725c163da2f63301794c99c95861d01afbea75b8902f76485e5e8af8",
"size": 12025,
"slot": 77402777,
"slot_leader": "pool1vurgy6s6u7yq36shf9yspesh3rrnd36km8xkghpcr4smgfz278m",
"time": 1744058777,
"tx_count": 2
}

Using the Blockfrost SDKs

Blockfrost’s SDKs can (to the most part) be adapted to be used with the Dolos MiniBF endpoint. An example with the Python SDK looks like this:

import json
from blockfrost import BlockFrostApi
api = BlockFrostApi(
project_id=None,
base_url="http://localhost:3000",
api_version=None,
)
api.api_version = None # The API version defaults to "v0" on __init__.
print(json.dumps(api.block_latest().to_dict(), indent=2))

Using a Tx Builder

The endpoints required for most tx builders to work are supported. Libraries like Lucid, Lucid-evolution, Blaze, MeshJS, etc can be used by pointing their corresponding provider configuration to Dolos Mini-BF endpoint.

Configuration

The serve.minibf section controls the options for the MiniBF endpoint that can be used by clients.

propertytypeexample
listen_addressstring”[::]:3000”
permissive_corsbooleantrue
token_registry_urlstringhttps://token-registry.io
urlstringhttps://minibf.local
max_scan_itemsinteger3000
  • listen_address: the local address (IP:PORT) to listen for incoming connections ([::] represents any IP address).
  • permissive_cors: allow cross-origin requests from any origin.
  • token_registry_url: optional token registry base URL used for off-chain asset metadata.
  • url: optional public URL used in the / root response.
  • max_scan_items: caps page-based scans for heavy endpoints (defaults to 3000 if unset).

This is an example of the serve.minibf fragment with a dolos.toml configuration file.

[serve.minibf]
listen_address = "[::]:3000"
permissive_cors = true
token_registry_url = "https://token-registry.io"
url = "https://minibf.local"
max_scan_items = 3000

Check the Configuration Schema for detailed info on how to set this up.

Coverage

Dolos provides many, but not all of the Blockfrost endpoints. The following list represent the endpoints currently supported by Dolos:

EndpointDescription
/Service info (version, revision)
/healthHealth check
/health/clockClock health
/metricsPrometheus metrics
/accounts/{stake_address}Get account information for a stake address
/accounts/{stake_address}/addressesGet addresses for a stake address
/accounts/{stake_address}/delegationsGet delegations for a stake address
/accounts/{stake_address}/registrationsGet registrations for a stake address
/accounts/{stake_address}/rewardsGet rewards for a stake address
/accounts/{stake_address}/utxosGet UTXOs for a stake address
/addresses/{address}Get general information for a specific address
/addresses/{address}/transactionsGet transactions for a specific address
/addresses/{address}/txsAlias of /addresses/{address}/transactions
/addresses/{address}/utxosGet UTXOs for a specific address
/addresses/{address}/utxos/{asset}Get UTXOs for a specific address and asset
/assets/{subject}Get asset information
/assets/{subject}/addressesGet addresses holding a specific asset
/assets/{subject}/transactionsGet transactions involving a specific asset
/blocks/latestGet latest block information
/blocks/latest/txsGet transactions for the latest block
/blocks/slot/{slot_number}Get block by slot number
/blocks/{hash_or_number}Get block information
/blocks/{hash_or_number}/addressesGet addresses in a specific block
/blocks/{hash_or_number}/nextGet next block
/blocks/{hash_or_number}/previousGet previous block
/blocks/{hash_or_number}/txsGet transactions for a specific block
/epochs/latest/parametersGet latest epoch parameters
/epochs/{epoch}/blocksGet blocks in a specific epoch
/epochs/{epoch}/parametersGet epoch parameters
/genesisGet genesis information
/governance/dreps/{drep_id}Get DRep information
/metadata/txs/labels/{label}Get metadata for transactions with a specific label
/metadata/txs/labels/{label}/cborGet CBOR metadata for transactions with a specific label
/networkGet network information
/network/erasGet network eras information
/pools/extendedGet extended pool information
/pools/{id}/delegatorsGet delegators for a specific pool
/pools/{id}/historyGet history for a specific pool
/scripts/{script_hash}Get script information
/scripts/{script_hash}/jsonGet script JSON
/scripts/{script_hash}/cborGet script CBOR
/scripts/datum/{datum_hash}Get datum by hash
/scripts/datum/{datum_hash}/cborGet datum CBOR by hash
/tx/submitSubmit a transaction
/txs/{tx_hash}Get transaction information
/txs/{tx_hash}/cborGet CBOR data for a transaction
/txs/{tx_hash}/delegationsGet delegations for a specific transaction
/txs/{tx_hash}/metadataGet metadata for a specific transaction
/txs/{tx_hash}/metadata/cborGet CBOR metadata for a specific transaction
/txs/{tx_hash}/mirsGet MIRs for a specific transaction
/txs/{tx_hash}/pool_retiresGet pool retirements for a specific transaction
/txs/{tx_hash}/pool_updatesGet pool updates for a specific transaction
/txs/{tx_hash}/redeemersGet redeemers for a specific transaction
/txs/{tx_hash}/stakesGet stakes for a specific transaction
/txs/{tx_hash}/utxosGet UTXOs for a specific transaction
/txs/{tx_hash}/withdrawalsGet withdrawals for a specific transaction