Skip to main content
POST
getHistoricalAccountInfo
getHistoricalAccountInfo is in Beta. Parameters, pricing, response formats, and data coverage may change.

Overview

getHistoricalAccountInfo returns a Solana account as it was at a past slot, or immediately after a specific transaction in that slot. It’s a Helius-exclusive RPC method. Standard getAccountInfo only returns current state. The response has the same account fields as getAccountInfo, plus lastUpdatedAt: the slot and transaction that last wrote the state you received. History is available from slot 444,959,999 (September 7, 2026) onward, which is the state at the start of epoch 1030. Requests for earlier slots return error -32018. getHistoricalAccountInfo is available on mainnet for Business plans and above, and costs 0 credits per call during the beta period. Pricing is subject to change.

Choose a position in history

The second parameter is a query object that selects which point in history to read: transactionIndex requires slot. To read an account right before the transaction at index N, query transactionIndex: N - 1. For the first transaction in a slot, query the previous slot with no transactionIndex. Non-transaction writes, such as epoch rewards, are applied at the end of the slot. A query with transactionIndex never includes them.

Example request

Read the response

  • value is the account as it was at the requested position, or null if the account didn’t exist then: it hadn’t been created yet, or it had been closed. A null response has no lastUpdatedAt.
  • lastUpdatedAt.slot and lastUpdatedAt.transactionIndex identify the write that produced this state. The write is at or before the position you asked for.
  • lastUpdatedAt.transactionIndex is null when the write happened outside a transaction, such as epoch rewards.
  • lastUpdatedAt.slot of 444,959,999 with a null transactionIndex means the account hasn’t changed since history coverage began. It doesn’t mean the account was written in that slot.
  • context.slot is the latest slot Helius had indexed when it served the request, not the slot you queried.
  • jsonParsed token accounts use the mint’s decimals as of the requested position. If the mint can’t be read at that position, the account falls back to base64.
To list every past state of an account, use lastUpdatedAt as a cursor. See Walk back through account history.

Errors

Historical Accounts Guide

How positions, coverage, and lastUpdatedAt work for historical account methods

getHistoricalTokenAccountsByOwner

List a wallet’s token accounts at a past slot

getTransactionsForAddress

Find the slot and transactionIndex of the transactions you want to inspect

getAccountInfo

Read an account’s current state

Request Parameters

string
required
Base-58 encoded address of the account to read.
number
Slot to read state at. Returns the account as of the end of this slot. The earliest supported slot is 444959999, the state at the start of epoch 1030. When omitted, reads the latest indexed slot, capped at the requested commitment.
number
Position of a transaction within the slot. Returns the account state immediately after that transaction executed, instead of at the end of the slot. Requires slot.
string
default:"base64"
Encoding format for account data. base58 and binary are not supported.
  • base64
  • base64+zstd
  • jsonParsed
object
Return only a slice of each account’s data. Applies to base64 and base64+zstd encodings.
number
required
Byte offset from which to start reading.
number
required
Number of bytes to return.
string
default:"finalized"
Commitment level. processed is not supported.
  • finalized
  • confirmed
number
The minimum slot that the request can be evaluated at.

Authorizations

api-key
string
query
required

Your Helius API key. You can get one for free in the dashboard.

Body

application/json
jsonrpc
enum<string>
default:2.0
required

The JSON-RPC protocol version.

Available options:
2.0
Example:

"2.0"

id
string
default:1
required

A unique identifier for the request.

Example:

"1"

method
enum<string>
default:getHistoricalAccountInfo
required

The name of the RPC method to invoke.

Available options:
getHistoricalAccountInfo
Example:

"getHistoricalAccountInfo"

params
(string | Query · object | Configuration · object)[]
required

Array containing the account address, an optional query object that selects the position in history, and an optional configuration object.

Required array length: 1 - 3 elements

Base-58 encoded address of the account to read.

Example:

"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"

Response

Successfully retrieved the historical account state.

jsonrpc
enum<string>

The JSON-RPC protocol version.

Available options:
2.0
Example:

"2.0"

id
string

Identifier matching the request.

Example:

"1"

result
object