Skip to main content
Separate latest calls can read different blocks. Fetch one block, then reuse its hash for every related state read. This standard JSON-RPC pattern works with Block regression protection Off. Use your client’s request() helper, which returns result and throws on RPC errors. Set address to the account you want to read.
Both values describe the selected block; the nonce excludes pending transactions. Reuse at for contract calls and dependent reads too. In a JSON-RPC batch, put the selector on every item.

Essential limits

  • Providers must support block-hash selectors and retain the requested state. Lasso preserves the hash through retries.
  • Lasso sends block-hash state reads only to archival providers, because a hash’s age is unknown before dispatch. In RPC Core, a chain with no provider declared archival rejects them with archive_required; on Lasso Cloud, a profile without one fails them instead of reaching a provider that may lack the state.
  • requireCanonical: true asks the provider to reject a block it knows was removed from the canonical chain. It does not guarantee finality or prove execution correctness.
  • If a read fails and you choose a new block, repeat all related reads. Do not mix results from different hashes.
For historical reads, resolve a block number to a hash once. Use "finalized" instead of "latest" when you need the chain’s finality semantics and your provider supports it. Block regression protection separately protects successive latest-block requests. Routing metadata is optional.