Skip to main content
Most Solidity development resources for Ethereum Mainnet also apply to Sei. This page lists a minimal set of resources to help you start building a dApp on Sei EVM.

IDEs

  • Remix
    An interactive Solidity IDE. You can use it to start coding and compiling Solidity smart contracts without installing anything.
  • VSCode + Solidity extension

Basic Solidity

Intermediate Solidity

  • The Solidity Language
    Official documentation with an end-to-end description of smart contracts, blockchain basics, compiling, and deployment on an EVM.
  • Solidity Patterns
    A repository of code templates, with explanations of how to use them.
  • OpenZeppelin
    A library of customizable template contracts for common Ethereum token deployments, such as ERC-20, ERC-721, ERC-1155, and Proxy. These contracts are not gas optimized. They are the de facto standard for smart contract templates, and almost all existing smart contracts use them.
  • Uniswap
    A professional, easy-to-read smart contract for the Uniswap V2 pools. It gives an overview of a Solidity dApp in production. A guided walkthrough is available. For the more advanced Uniswap pools, see Uniswap V3 and Uniswap V4.
  • Morpho Finance
    Morpho Finance’s contracts are a real-world example of production-grade Solidity smart contracts. They show how a successful DeFi lending protocol is structured and implemented. In Morpho’s codebase, you can learn advanced patterns for gas optimization and security best practices. You can also see how to implement complex financial logic in production. The accompanying documentation gives more context on the protocol’s architecture and design principles.
  • Sky / Maker DAO An early DeFi protocol that created the DAI and USDS stablecoins. MakerDAO’s codebase shows complex financial mechanisms, including collateralized debt positions, oracles, and governance systems. The project demonstrates how to implement a stable cryptocurrency, backed by crypto collateral, through sophisticated risk management systems.
  • Rareskills Blog
    Has in-depth articles on various Solidity concepts. It also has the Book of Gas Optimization.
  • Foundry Fundamentals course by Cyfrin Updraft
    A web3 development course on Foundry, the industry-standard framework for building, deploying, and testing smart contracts.
  • Smart Contract Programmer YT channel
    Has many in-depth videos on topics from ABI encoding to EVM memory management.
  • DeFi developer roadmap

Advanced Solidity

Tutorials

  • Ethernaut
    Learn Solidity by solving puzzles.
  • Damn Vulnerable DeFi
    A series of smart contract challenges designed to test and improve your Solidity skills.

Testing

  • Echidna
    A fuzz testing tool for Solidity.
  • Slither
    A static analysis framework that detects vulnerabilities.
  • solidity-coverage
    Gives code coverage metrics for Solidity tests.

Smart contract archives

Using the OpenZeppelin Wizard

OpenZeppelin has a web-based wizard for creating standard contracts. To use it, see the EVM Contract Wizard page in these docs, or go to https://wizard.openzeppelin.com/. With the wizard, you can:
  1. Select the contract type (for example, ERC-20, ERC-721, or ERC-1155)
  2. Configure settings, features, and access controls
  3. Add custom functionality through a user-friendly interface
  4. Generate ready-to-use Solidity code
The wizard is useful for:
  • Beginners who are learning smart contract development
  • Quickly bootstrapping standard token contracts
  • Exploring different configuration options
  • Understanding best practices in contract development

Best practices & security considerations

When you develop on Sei EVM with OpenZeppelin contracts, follow these best practices:
  1. Always use the latest version of OpenZeppelin contracts
  2. Start with existing, audited components instead of building from scratch
  3. Run comprehensive tests before you deploy to Sei Mainnet
  4. Consider upgradeability for complex applications
  5. Use access controls such as Ownable or AccessControl for privileged functions
  6. Implement reentrancy guards where needed
  7. Avoid transfer() and send() for ETH transfers. Use call() with reentrancy protection instead.
  8. Validate all inputs and check for edge cases
  9. Consider gas optimization, but not at the expense of security
  10. Consider getting an audit for high-value contracts