Data infrastructure3 min read

Archive vs Pruned Node Data for Historical Reads

Distinguish retained blocks from retained historical state, and test the exact balance or contract query needed before assuming an endpoint supports it.

Editorial illustration accompanying archive vs pruned node data for historical reads.

Overview

When translating these concepts into an integration, keep the scope described by the wallet history api with the result. The examples in wallet transaction history and smart contract event logs show how the same distinction affects neighbouring data questions.

An endpoint can know old blocks while being unable to execute a state query at an old block. Historical transaction data and historical state retention are different capabilities.

Ask for the required capability

A block lookup, receipt lookup and contract-state call can have different retention requirements. Node configuration and software affect what is available. Avoid treating archive as a universal promise covering every trace, index or derived wallet history. The integration should test the specific method and range it intends to use.

Worked example: block exists, balance unavailable

A service returns block 100 but cannot answer a balance query against state at block 100. The block lookup succeeded; the historical state question remains unanswered. Returning the current balance as a fallback would create a false historical record.

Expose unavailable history

Test an old block, a recent block and an unsupported method separately. Record safe capability failures and range limits. Do not repeatedly retry a permanent retention limitation as if it were a transient network outage. A validated reconstruction can be an alternative method, but it must declare its assumptions and must not silently replace a state observation.

A practical acceptance test

Make an old block lookup succeed while a state call at that block returns a retention limitation. Assert that capability discovery distinguishes the two and that historical balance remains unavailable. A retry policy should not loop forever on the permanent limitation. Latest state can be offered only as a separately requested and clearly labelled question.

Questions about the topic

Frequently asked questions

Do old blocks imply old state is queryable?

No. Retention capabilities differ.

Can latest balance substitute for unavailable historical balance?

No. It answers a different question.

Standards & technical documentation

Further reading

{{TODO: author name}}

Practical explanations of blockchain data, software integration and the context behind a record.

About Indexbase
← Back to all articles

Build with better context.

Get an update when private beta opens.

Form setup in progress. Nothing entered here is sent or saved. {{TODO: endpoint}} See the full form and email alternative.