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.

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

