Skip to main content
This recipe sends 0.01 SEI on Sei Testnet and waits for the receipt. Sei has instant finality, so the transfer is final as soon as the receipt arrives.

Before you start

You need a Sei Testnet account that holds some SEI. Get testnet SEI from the faucet. Then put the account’s private key in the PRIVATE_KEY environment variable:
Use a throwaway key that holds only testnet funds. Never commit a private key or paste it into your code.

Install

Send the transaction

Replace 0xRecipientAddress with the 0x address that receives the SEI.
You are done when you see:
viem prints the status as success and the block number as a bigint, with a trailing n. ethers and web3.py print the status as 1. A status of reverted or 0 means that the transaction was included but failed. See Error handling for how to find out why. To see the transfer in the block explorer, open https://testnet.seiscan.io/tx/ followed by the transaction hash.

How gas is set

All three libraries fill in the nonce, the gas limit, and the fees for you:
  • Gas limit. The libraries call eth_estimateGas. A transfer to a wallet address uses 21,000 gas. A transfer to a contract can use more, because the contract runs code when it receives SEI.
  • Fees. The libraries send an EIP-1559 (type 2) transaction and read the current base fee from the latest block. Sei does not burn the base fee. Validators receive the whole fee. See Gas and fees.
To send on Sei Mainnet, use the sei chain in viem, or the https://evm-rpc.sei-apis.com endpoint in ethers and web3.py. Mainnet transfers spend real SEI.