Action required: IBC assets on Sei will become inaccessible If you hold USDC.n (USDC via Noble), USDT.kava (Kava USDT), Wormhole-bridged tokens, or any other IBC asset on Sei, you must swap, migrate, or bridge out before the governance proposal to disable inbound/outbound IBC transfers passes and is activated to avoid permanent loss of access. After this, Sei will no longer support IBC bridging of assets from Cosmos-based chains to and from Sei Network. Consult the SIP-03 Migration Guide for the full list of affected assets, required actions, and supported routes. For USDC.n specifically, see: Holders of USDC.n Need to Swap or Migrate.
Use this file to discover all available pages before exploring further.
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.
A transaction is created by an EOA, specifying the recipient, value, gas parameters, and other fields.
2. Signing
The transaction is signed with the sender’s private key to create a valid signature.
3. Submission
The signed transaction is submitted to the network through an RPC endpoint.
4. Mempool
The transaction enters the mempool (transaction pool) where it awaits inclusion in a block.
5. Execution
When selected by a validator, the transaction is executed in the EVM, causing state changes.
6. Validation
The transaction and its state changes are validated by the consensus mechanism.
7. Confirmation
Once validated, the transaction is included in a block and confirmed on-chain.
8. Finality
On Sei, transactions achieve immediate finality once included in a block.
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.
EVM transactions in Sei follow the Ethereum transaction format with standard properties:
Transaction Properties
Transaction Types
Example Request
Example Response
Property
Description
from
The address of the sender who will sign the transaction. This must be an externally-owned account (EOA) as contract accounts cannot send transactions.
to
The receiving address. If this is an EOA, the transaction transfers value. If a contract address, the transaction executes the contract code. If empty or null, the transaction creates a new contract.
signature
The cryptographic signature generated when the sender’s private key signs the transaction. This confirms the sender has authorized the transaction and includes the v, r, and s components.
nonce
A sequentially incrementing counter that indicates the transaction number from the account. This prevents replay attacks and ensures transaction ordering.
data
The input data (also called ‘input’ or ‘calldata’) for contract execution. For simple transfers, this is usually empty. For contract interactions, this contains the function selector and encoded arguments.
value
Amount of SEI to transfer from sender to recipient (denominated in WEI, where 1 SEI equals 1e+18 WEI).
gasLimit
The maximum amount of gas units that can be consumed by the transaction. Often referred to simply as ‘gas’ in transaction objects.
maxPriorityFeePerGas
The maximum price of the consumed gas to be included as a tip to the validator (denominated in WEI). Used in EIP-1559 transactions.
maxFeePerGas
The maximum fee per unit of gas willing to be paid for the transaction (inclusive of baseFeePerGas and maxPriorityFeePerGas). Used in EIP-1559 transactions.
gasPrice
The price per unit of gas the sender is willing to pay (denominated in WEI). Used in legacy transactions.
chainId
The chain identifier number. Prevents transaction reuse across different chains.
accessList
A list of addresses and storage keys that the transaction plans to access. Used in EIP-2930 and EIP-1559 transactions to reduce gas costs for accessing specified addresses and storage slots.
type
The transaction type: 0 for legacy (pre-EIP-2718), 1 for EIP-2930 access list transactions, and 2 for EIP-1559 fee market transactions.
hash
The transaction hash, a unique identifier for the transaction generated after signing.
// Example using web3.js to send a transactionconst Web3 = require('web3');const web3 = new Web3('https://evm-rpc.sei-apis.com');async function sendTransaction() { const accounts = await web3.eth.getAccounts(); const sender = accounts[0]; // Get the current nonce for the sender const nonce = await web3.eth.getTransactionCount(sender); // Get the current block to estimate gas fees const block = await web3.eth.getBlock('latest'); const baseFeePerGas = block.baseFeePerGas; // Set priority fee (tip) const maxPriorityFeePerGas = web3.utils.toWei('1', 'gwei'); // Calculate max fee per gas const maxFeePerGas = web3.utils .toBN(baseFeePerGas) .add(web3.utils.toBN(maxPriorityFeePerGas)); const tx = { from: sender, to: '0x07a565b7ed7d7a678680a4c162885bedbb695fe0', value: web3.utils.toWei('0.1', 'ether'), gas: 21000, // Gas limit for a simple transfer maxFeePerGas: maxFeePerGas.toString(), maxPriorityFeePerGas: maxPriorityFeePerGas, nonce: nonce, data: '0x' // Empty data for a simple transfer }; const receipt = await web3.eth.sendTransaction(tx); console.log('Transaction receipt:', receipt);}sendTransaction().catch(console.error);