Skip to main content

Documentation Index

Fetch the complete documentation index at: https://seilabs-docs-evm-reference-and-sei-js-examples.mintlify.app/llms.txt

Use this file to discover all available pages before exploring further.

Finality and Block Tags

Sei uses Twin Turbo Consensus, which provides instant finality. Every committed block is final immediately — there is no period where a block could be reorganized away. This changes how block tags behave compared to Ethereum.

Block Tags

On Ethereum, latest, safe, and finalized refer to different points in the chain:
  • latest — the most recent block, possibly not yet safe
  • safe — a block unlikely to be reorganized
  • finalized — a block that is permanently committed
On Sei, all three tags resolve to the same block. There is no reorg risk at any point after a block is committed, so the distinction does not exist.
import { createPublicClient, http } from 'viem';
import { sei } from '@sei-js/precompiles/viem';

const client = createPublicClient({ chain: sei, transport: http() });

// All three return the same block on Sei
const latest    = await client.getBlock({ blockTag: 'latest' });
const safe      = await client.getBlock({ blockTag: 'safe' });
const finalized = await client.getBlock({ blockTag: 'finalized' });

Waiting for Confirmation

Because finality is instant, you do not need to wait for multiple confirmations. waitForTransactionReceipt resolves as soon as the transaction is included in a block.
const receipt = await client.waitForTransactionReceipt({ hash });
// receipt is already final — no further confirmation needed

Pending State

Sei does not expose Ethereum-style pending state. Do not rely on:
  • Reading pending transactions from the mempool
  • eth_getBlockByNumber with 'pending'
  • Pending nonce differing from the confirmed nonce
If your application polls pending transactions or depends on pending state visibility, replace that pattern with confirmed-block polling or WebSocket subscriptions on committed blocks.

Practical Impact

PatternOn EthereumOn Sei
Wait for finalized tagWaits ~13 minutesReturns immediately
Check safe vs latestDifferent blocksSame block
Read pending mempoolSupportedNot reliable
Confirmation countMeaningful1 is sufficient