Skip to main content
Sei is EVM-compatible, so standard deployment tooling works without modification. This page shows how to deploy a contract and verify its source on the Sei block explorer. For a deeper look at verification options (Remix, the Sourcify UI, and batch verification), see the Verify Contracts page.

Try it: deploy from your browser

You do not need a local toolchain. Compile and deploy a contract to Sei Testnet directly from the browser. The Remix sandbox below preloads a minimal Counter.sol. First, add Sei Testnet to your wallet: Then, in Remix:
  1. Compile the contract on the Solidity Compiler tab.
  2. Open the Deploy & Run tab.
  3. Set Environment to Injected Provider - MetaMask.
  4. Click Deploy.
Sei has instant finality, so the deployment confirms in well under a second.

Deploying with viem or ethers

Deploying with Foundry

Foundry works against Sei with the standard --rpc-url flag.
For Sei Testnet:
Without --broadcast, forge create only simulates the deployment. Put --constructor-args last, because it takes every value after it.

Deploying with Hardhat

Add the Sei networks to your hardhat.config.ts (Hardhat 3). Keep the toolbox in the plugins array. It comes with projects that npx hardhat --init creates, and it includes Hardhat Ignition for deployments:
Store your private key in the encrypted Hardhat keystore so that the key is never stored in a plaintext file:
Describe the deployment in a minimal Ignition module at ignition/modules/MyContract.ts:
Then deploy it:

Verifying contracts

The Sei block explorer is Seiscan. The recommended verification method is Sourcify. It does not require an API key.

Foundry

Verify the contract after you deploy it:
Or deploy and verify in one step:
For Sei Testnet, use --chain-id 1328 and --rpc-url https://evm-rpc-testnet.sei-apis.com.

Hardhat

If you use a Hardhat toolbox (as in the config above), hardhat-verify is already bundled and active. Skip ahead to the verify command. Without a toolbox, install the plugin:
Then add it to the plugins array in hardhat.config.ts. Sourcify verification is enabled by default in hardhat-verify and does not need an API key:
Verify a deployed contract on Sourcify:
If your contract has constructor arguments:
Without the sourcify subtask, npx hardhat verify tries to verify the contract on all enabled providers (Etherscan, Blockscout, and Sourcify) in a single run.

Network reference