Finality and Block Tags
Paxeer's Twin Turbo Consensus delivers instant finality, so latest, safe, and finalized block tags all resolve identically with no reorg risk.
Finality and Block Tags
Paxeer 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 safesafe- a block unlikely to be reorganizedfinalized- a block that is permanently committed
On Paxeer, 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 'viem/chains';
const client = createPublicClient({ chain: sei, transport: http() });
// All three return the same block on Paxeer
const latest = await client.getBlock({ blockTag: 'latest' });
const safe = await client.getBlock({ blockTag: 'safe' });
const finalized = await client.getBlock({ blockTag: 'finalized' });import { ethers } from 'ethers';
const provider = new ethers.JsonRpcProvider('https://evm-rpc.sei-apis.com');
// All three return the same block on Paxeer
const latest = await provider.getBlock('latest');
const safe = await provider.getBlock('safe');
const finalized = await provider.getBlock('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 neededconst tx = await signer.sendTransaction({ /* ... */ });
const receipt = await tx.wait(1); // 1 confirmation is final on PaxeerPending State
Paxeer does not expose Ethereum-style pending state. Do not rely on:
- Reading pending transactions from the mempool
eth_getBlockByNumberwith'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
| Pattern | On Ethereum | On Paxeer |
|---|---|---|
Wait for finalized tag | Waits ~13 minutes | Returns immediately |
Check safe vs latest | Different blocks | Same block |
| Read pending mempool | Supported | Not reliable |
| Confirmation count | Meaningful | 1 is sufficient |