Skip to main content
Version: Next

Flow Archive Node Access API Specification

The Archive Access API is implemented as a gRPC service.

A language-agnostic specification for this API is defined using Protocol Buffers, which can be used to generate client libraries in a variety of programming languages.

Flow archive node access endpoints

The Archive Nodes hosted by DapperLabs are accessible at:

Current Mainnet

archive.mainnet.nodes.onflow.org:9000

Testnet

archive.devnet.nodes.onflow.org:9000

Canarynet

archive.canary.nodes.onflow.org:9000

Rate limits for Dapper Labs archive nodes

Archive nodes operated by Dapper Labs are rate limited.


Accounts

GetAccountAtBlockHeight

GetAccountAtBlockHeight gets an account by address at the given block height.

The archive node queries an execution node for the account details, which are stored as part of the execution state.

rpc GetAccountAtBlockHeight(GetAccountAtBlockHeightRequest) returns (AccountResponse)

Request

message GetAccountAtBlockHeightRequest {
bytes address
uint64 block_height
}

Response

message AccountResponse {
Account account
}

Scripts

ExecuteScriptAtBlockID

ExecuteScriptAtBlockID executes a ready-only Cadence script against the execution state at the block with the given ID.

This method can be used to read account state from the blockchain. The script is executed on an execution node and the return value is encoded using the JSON-Cadence data interchange format.

rpc ExecuteScriptAtBlockID (ExecuteScriptAtBlockIDRequest) returns (ExecuteScriptResponse)

Request

message ExecuteScriptAtBlockIDRequest {
bytes block_id
bytes script
}

Response

message ExecuteScriptResponse {
bytes value
}

ExecuteScriptAtBlockHeight

ExecuteScriptAtBlockHeight executes a ready-only Cadence script against the execution state at the given block height.

This method can be used to read account state from the blockchain. The script is executed on an execution node and the return value is encoded using the JSON-Cadence data interchange format.

rpc ExecuteScriptAtBlockHeight (ExecuteScriptAtBlockHeightRequest) returns (ExecuteScriptResponse)

Request

message ExecuteScriptAtBlockHeightRequest {
uint64 block_height
bytes script
}

Response

message ExecuteScriptResponse {
bytes value
}