Block processing
Typical block time is around 600ms, with finality around 1.2s. Confirm deposits using finalized execution outcomes. Query the latest finalized block with{"finality": "final"}:
Skipped block heights
Block heights can be skipped when a block producer misses its slot. If height 101 is skipped, block 102 references block 100 as its previous block. Followheader.prev_hash across gaps when scanning the chain.
New chunks
A block’schunks array can include chunks from earlier blocks when a shard produces no new chunk. Process a chunk as new only when its height_included equals the containing block’s header.height.
Transaction execution milestones
When sending or querying a transaction, you can control which execution milestone the RPC waits for before returning a response by setting thewait_until field in send_tx, tx, or EXPERIMENTAL_tx_status:
For exchange settlement, request
wait_until: "FINAL", verify final_execution_status === "FINAL", and inspect receipt outcomes for success or failure. Finality alone does not indicate successful execution.
Query an existing transaction using its hash and original signer:
EXPERIMENTAL_tx_status. If the RPC times out, poll the saved transaction hash; see submission recovery.
Frequently Asked Questions
Which consensus algorithm does NEAR use?
Which consensus algorithm does NEAR use?
NEAR is a sharded proof-of-stake blockchain using Doomslug consensus. Nightshade describes its sharding architecture.
How does on-chain transaction finality work?
How does on-chain transaction finality work?
Query a block with
finality: "final" to obtain finalized block context. For a transaction, request wait_until: "FINAL" and verify final_execution_status === "FINAL" before crediting its successful asset movements. The transaction’s inclusion block can finalize before downstream receipts finish.Typical finality is approximately 1.2 seconds. Confirm deposits using finalized execution outcomes. See transaction status and native deposit checks.