Transaction lifecycle
On other EVM chains, you need to wait for multiple confirmations. Sei’s consensus mechanism gives immediate transaction finality. After a transaction is included in a block, it cannot be reversed.
Gas mechanics
Gas is a unit of computational work in the EVM. It helps prevent spam and allocate resources efficiently:Transaction structure
EVM transactions on Sei follow the Ethereum transaction format and its standard properties:- Transaction Properties
- Transaction Types
- Example Request
- Example Response
Transaction guidelines
- Use network conditions to estimate appropriate values for
maxFeePerGasandmaxPriorityFeePerGas. - Track and increment nonces correctly to avoid transaction failures.
- Prefer EIP-1559 transactions (type 2) for more predictable fees.
- Handle possible transaction failures and revert reasons in your code.
- Always double-check destination addresses, because transactions cannot be reversed.
Transaction validation
Before Sei accepts an EVM transaction, it performs strict semantic validation of the transaction fields. Sei enforces this validation from v6.5.0 onward. If you construct and sign transactions manually, make sure they are well formed to avoid rejection.- Transaction types is the canonical field-level reference. It covers signature-value byte caps and zero-padding rules, access-list entries, and EIP-7702 authorization lists.
- Differences with Ethereum covers envelope-level restrictions: no Cosmos wrapper fields, canonical protobuf encoding, and whole-block rejection on decode failure.
Receipts for nonce-bumping failed transactions
Some EVM transactions pass basic validation and bump the sender’s nonce, but still fail during state transition. One example is a transaction whose gas limit clears the intrinsic-gas check but falls short of the EIP-7623 floor-data-gas requirement. This can occur in normal operation after Pectra. Because these transactions bump the nonce, they are considered to have happened and therefore produce a receipt. For such failures, Sei writes a syntheticstatus=0 (failed) receipt at the end of the block. The receipt reports a gasUsed of 0 and an effectiveGasPrice of 0. It also carries a VmError that describes the state-transition reason. eth_getTransactionReceipt returns this failed-transaction receipt instead of null. Sei stores the VmError on its internal receipt record, not in the eth_getTransactionReceipt JSON response. To get it, use the non-standard eth_getVMError method.
Previously, a nonce-bumping transaction that failed during state transition could return
null from eth_getTransactionReceipt indefinitely. Clients that polled for a receipt could then hang. Clients should now expect a status=0 receipt for these transactions and treat it as a normal failed-transaction result.Additional resources
RPC reference
Sei’s EVM RPC endpoints for creating and monitoring transactions
Gas and fees
Learn more about gas calculation, fee estimation, and cost optimization on Sei
Accounts
Externally owned accounts and contract accounts on Sei