Skip to main content

IndexerClient

Struct IndexerClient 

Source
pub struct IndexerClient { /* private fields */ }
Available on crate feature indexer only.
Expand description

Client for the Aptos indexer GraphQL API.

The indexer provides access to indexed blockchain data including tokens, events, and transaction history. Queries are automatically retried with exponential backoff for transient failures.

§Example

use aptos_sdk::api::IndexerClient;
use aptos_sdk::config::AptosConfig;

#[tokio::main]
async fn main() -> anyhow::Result<()> {
    let config = AptosConfig::testnet();
    let client = IndexerClient::new(&config)?;
    // Use the client for GraphQL queries
    Ok(())
}

Implementations§

Source§

impl IndexerClient

Source

pub fn new(config: &AptosConfig) -> AptosResult<Self>

Creates a new indexer client.

§TLS Security

This client uses reqwest with its default TLS configuration, which validates server certificates against the system’s certificate store. All Aptos indexer endpoints use HTTPS with valid certificates.

§Errors

Returns an error if the indexer URL is not configured in the config, or if the HTTP client fails to build (e.g., invalid TLS configuration).

Source

pub fn with_url(url: &str) -> AptosResult<Self>

Creates an indexer client with a custom URL.

§Errors

Returns an error if the URL cannot be parsed.

Source

pub async fn query<T: for<'de> Deserialize<'de> + Send + 'static>( &self, query: &str, variables: Option<Value>, ) -> AptosResult<T>

Executes a GraphQL query.

§Errors

Returns an error if the HTTP request fails, the API returns an error status code, the response cannot be parsed as JSON, the GraphQL query contains errors, or the response data is missing.

Source

pub async fn get_fungible_asset_balances( &self, address: AccountAddress, ) -> AptosResult<Vec<FungibleAssetBalance>>

Gets the account’s fungible asset balances.

§Errors

Returns an error if the GraphQL query fails (see query for details).

Source

pub async fn get_account_tokens( &self, address: AccountAddress, ) -> AptosResult<Vec<TokenBalance>>

Gets the account’s token (NFT) holdings.

§Errors

Returns an error if the GraphQL query fails (see query for details).

Source

pub async fn get_account_transactions( &self, address: AccountAddress, limit: Option<u32>, ) -> AptosResult<Vec<Transaction>>

Gets recent transactions for an account.

§Errors

Returns an error if the GraphQL query fails (see query for details).

Source§

impl IndexerClient

Source

pub async fn get_account_tokens_paginated( &self, address: AccountAddress, pagination: Option<PaginationParams>, ) -> AptosResult<Page<TokenBalance>>

Gets the account’s token (NFT) holdings with pagination.

§Errors

Returns an error if the GraphQL query fails (see query for details).

Source

pub async fn get_account_transactions_paginated( &self, address: AccountAddress, pagination: Option<PaginationParams>, ) -> AptosResult<Page<Transaction>>

Gets the account’s transaction history with pagination.

§Errors

Returns an error if the GraphQL query fails (see query for details).

Source

pub async fn get_events_by_type( &self, event_type: &str, limit: Option<u32>, ) -> AptosResult<Vec<Event>>

Gets events by type.

§Errors

Returns an error if the GraphQL query fails (see query for details).

Source

pub async fn get_events_by_account( &self, address: AccountAddress, limit: Option<u32>, ) -> AptosResult<Vec<Event>>

Gets events involving an account.

§Errors

Returns an error if the GraphQL query fails (see query for details).

Source

pub async fn get_collection( &self, collection_address: AccountAddress, ) -> AptosResult<Collection>

Gets a collection by its address.

§Errors

Returns an error if the GraphQL query fails (see query for details), or if the collection is not found.

Source

pub async fn get_collection_tokens( &self, collection_address: AccountAddress, pagination: Option<PaginationParams>, ) -> AptosResult<Page<TokenBalance>>

Gets tokens in a collection.

§Errors

Returns an error if the GraphQL query fails (see query for details).

Source

pub async fn get_coin_balances( &self, address: AccountAddress, ) -> AptosResult<Vec<CoinBalance>>

Gets coin balances for an account (legacy coin module).

§Errors

Returns an error if the GraphQL query fails (see query for details).

Source

pub async fn get_coin_activities( &self, address: AccountAddress, limit: Option<u32>, ) -> AptosResult<Vec<CoinActivity>>

Gets coin activities for an account.

§Errors

Returns an error if the GraphQL query fails (see query for details).

Source

pub async fn get_processor_status(&self) -> AptosResult<Vec<ProcessorStatus>>

Gets the processor status to check indexer health.

§Errors

Returns an error if the GraphQL query fails (see query for details).

Source

pub async fn get_indexer_version(&self) -> AptosResult<u64>

Gets the current indexer version (last processed transaction).

§Errors

Returns an error if the processor status cannot be fetched, or if no processor status is available.

Source

pub async fn check_indexer_lag( &self, reference_version: u64, max_lag: u64, ) -> AptosResult<bool>

Checks if the indexer is healthy by comparing with a reference version.

§Errors

Returns an error if the indexer version cannot be fetched (see get_indexer_version for details).

Trait Implementations§

Source§

impl Clone for IndexerClient

Source§

fn clone(&self) -> IndexerClient

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for IndexerClient

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more