Skip to main content
Sei supports EVM transactions, allowing compatibility with Ethereum-based tools and contracts. Transactions are signed messages originating from an externally owned account (EOA) that trigger state changes on the blockchain.

Transaction Lifecycle

Unlike other EVM chains where you need to wait for multiple confirmations, Sei’s consensus mechanism provides immediate transaction finality. Once a transaction is included in a block, it cannot be reversed.

Gas Mechanics

Gas is a unit of computational work in the EVM that helps prevent spam and allocate resources efficiently:
Gas Requirements for Common Operations:
  • Simple SEI transfer: 21,000 gas
  • ERC-20 transfer: ~45,000 gas
  • Contract deployment: Varies based on contract size and complexity
  • Always estimate gas before sending transactions using eth_estimateGas

Transaction Structure

EVM transactions in Sei follow the Ethereum transaction format with standard properties:

Transaction Guidelines

Transaction Best Practices:
  • Set appropriate gas parameters: Use network conditions to estimate optimal values for maxFeePerGas and maxPriorityFeePerGas.
  • Manage nonces carefully: Track and increment nonces correctly to avoid transaction failures.
  • Use typed transactions: Prefer EIP-1559 transactions (type 2) for more predictable fees.
  • Implement proper error handling: Account for potential transaction failures and revert reasons.
  • Verify recipient addresses: Always double-check destination addresses, as transactions cannot be reversed.

Transaction Validation

Before an EVM transaction is accepted, Sei performs strict semantic validation of its fields, enforced since v6.5.0. If you construct and sign transactions manually, make sure they are well-formed to avoid rejection.
  • The canonical field-level reference (signature-value byte caps and zero-padding rules, access-list entries, EIP-7702 authorization lists) lives in Transaction Types.
  • Envelope-level restrictions (no Cosmos wrapper fields, canonical protobuf encoding, whole-block rejection on decode failure) are covered in Differences with Ethereum.

Receipts for nonce-bumping failed transactions

Some EVM transactions pass basic validation and bump the sender’s nonce, yet still fail during state transition — for example, a transaction whose gas limit clears the intrinsic-gas check but falls short of the EIP-7623 floor-data-gas requirement (which 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 synthetic status=0 (failed) receipt at the end of the block. The receipt reports a gasUsed of 0 and an effectiveGasPrice of 0, and carries a VmError describing the state-transition reason. eth_getTransactionReceipt returns this failed-tx receipt instead of null. The VmError is stored on Sei’s internal receipt record and is not included in the eth_getTransactionReceipt JSON response; retrieve it with the non-standard eth_getVMError method.
Previously, a nonce-bumping transaction that failed during state transition could return null from eth_getTransactionReceipt indefinitely, causing clients that poll for a receipt to 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

Complete documentation of Sei’s EVM RPC endpoints for transaction creation and monitoring

Gas & Fees

Learn more about gas calculation, fee estimation, and cost optimization on Sei

Accounts

Understanding Externally Owned Accounts and Contract Accounts on Sei