Skip to main content

Crate blockfrost

Crate blockfrost 

Source
Expand description

Crates.io link Docs.rs link License

§blockfrost-rust


A Rust SDK for Blockfrost.io API.

Getting startedInstallationExamplesEndpoints

§Getting started

To use this SDK you need to login at blockfrost.io and create a new project to receive an API key.

§Installation

Add to your project’s Cargo.toml:

blockfrost = "1.3.0"

§Examples

All the examples are located at the examples/ folder.

You might want to check all_requests.rs and ipfs.rs.

Here is simple_request.rs with the basic setup necessary and no settings customization:

use blockfrost::{BlockfrostAPI, BlockfrostResult};

fn build_api() -> BlockfrostResult<BlockfrostAPI> {
    let api = BlockfrostAPI::new("mainnetxvMK4xOpp5mHJgihi055KDLU64JJv2be", Default::default());
    Ok(api)
}

#[tokio::main]
async fn main() -> blockfrost::BlockfrostResult<()> {
    let api = build_api()?;
    let genesis = api.genesis().await?;

    println!("{:#?}", genesis);
    Ok(())
}

§Pagination

Every paginated endpoint takes a Pagination, which controls page, count and order:

use blockfrost::{Order, Pagination};

let pagination = Pagination::new(Order::Desc, 1, 100);
let everything = Pagination::all(); // fetch every page

§Block range cursors

Three endpoints additionally accept inclusive from/to block cursors:

  • accounts_transactions
  • addresses_transactions
  • assets_transactions
use blockfrost::{BlockCursor, Pagination};

// a plain block height, or a block height with a transaction index
let pagination = Pagination::default().with_range(8929261, BlockCursor::tx(9999269, 10));

Cursors also accept BlockCursor::block(..), BlockCursor::tx(..) and "8929261:10".parse(). They are preserved across pages when fetch_all is set.

Note: every other paginated endpoint ignores from/to. Passing a Pagination that carries cursors to, say, accounts_utxos returns the full unfiltered list rather than an error, so keep cursors on a Pagination you only hand to the three endpoints above.

Re-exports§

pub use blockfrost_openapi;
pub use error::*;
pub use types::*;

Modules§

error
types

Structs§

BlockCursor
BlockFrostSettings
BlockfrostAPI
BlockfrostIPFS
Provides methods for making requests to the IPFS API.
IpfsSettings
Pagination
RetrySettings
Settings for retrying when API rate limit is reached.

Enums§

Order

Constants§

CARDANO_MAINNET_URL
CARDANO_PREPROD_URL
CARDANO_PREVIEW_URL
CARDANO_TESTNET_URL
DEFAULT_API_VERSION
DEFAULT_BATCH_SIZE
DEFAULT_ORDER
DEFAULT_PAGINATION_PAGE_COUNT
DEFAULT_PAGINATION_PAGE_ITEMS_COUNT
IPFS_URL
USER_AGENT
SDK version being used.