Skip to Content
LearnOverview

EVM and Cosmos Interoperability

Dual Address Support

Sei utilizes two distinct address types:

  • EVM (0x) address: Ethereum-style addresses, with “0x” prefix.
  • Cosmos address: Bech-32 addresses, with “sei1” prefix.

Both addresses are derived from the same public key, ensuring seamless asset integration across formats. You can find your corresponding wallet addresses directly in the Sei app.

For more details on interoperability, explore our article here.

Virtual Machine Interoperability

EVM and CosmWasm based smart contracts co-exist on Sei, but live in different execution environments. This creates a challenge for users, who use wallets that typically only support a single execution environment. Likewise for developers, existing tooling and libraries can only interact with either EVM or Wasm (Think EthersJS vs CosmJS).

To bridge the gap between EVM and Wasm, Sei has introduced two interoperability features, allowing for smooth and easy interactions between both environments. Precompiled EVM contracts and Pointer Contracts enable all contracts to be accessible from both VM environments.

Precompile Contracts

Sei precompiles are smart contracts embedded directly within the Sei EVM environment. They provide a gateway for users and developers to access Cosmos-SDK functions through the EVM RPC interface.

For instructions on utilizing EVM precompiles, refer to the Example Usage section.

Pointer Contracts

Pointer Contracts are a unique feature introduced on Sei, designed to enhance interoperability between EVM and Cosmos environments. These contracts serve as a proxy, or interface for either token standard, making them compatible with both EVM and Cosmos-SDK clients.

Pointer contracts can be deployed for any Token Factory, Smart Contract (ERC20, ERC721, etc.), and any IBC denom.

Example Diagram

Interoperability

Enabling seamless access to all tokens and contracts on Sei

Last updated on