A Rust SDK for Blockfrost.io API.
Getting started • Installation • Examples • Endpoints
To use this SDK you need to login at blockfrost.io and create a new project to receive an API key.
Add to your project's Cargo.toml:
blockfrost = "1.3.0"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(())
}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 pageThree endpoints additionally accept inclusive from/to block cursors:
accounts_transactionsaddresses_transactionsassets_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 aPaginationthat carries cursors to, say,accounts_utxosreturns the full unfiltered list rather than an error, so keep cursors on aPaginationyou only hand to the three endpoints above.
