Skip to Content
EVMSolidity Resources

Solidity Resources

Most development resources for developing with Soldity on Ethereum Mainnet also apply to development on Sei.

This page suggests a minimal set of resources for getting started with building a decentralized app for Sei EVM.

IDEs

  • Remix
    An interactive Solidity IDE that is the easiest and fastest way to start coding and compiling Solidity smart contracts without any additional installations.
  • VSCode + Solidity extension

Basic Solidity

Intermediate Solidity

Advanced Solidity

Tutorials

Testing

Smart contract archives

Using the OpenZeppelin Wizard

OpenZeppelin provides a convenient web-based wizard to create standard contracts. Visit https://wizard.openzeppelin.com/ to access it.

The wizard allows you to:

  1. Select the contract type (ERC20, ERC721, ERC1155, etc.)
  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 perfect for:

  • Beginners learning smart contract development
  • Quickly bootstrapping standard token contracts
  • Exploring different configuration options
  • Understanding best practices in contract development

Here’s how to use it:

  1. Visit https://wizard.openzeppelin.com/
  2. Select the type of contract you want to create
  3. Configure the settings (name, symbol, features)
  4. Add any additional functionality you need
  5. Copy the generated code and paste it into your project
  6. Customize as needed

Best Practices & Security Considerations

When developing on Sei V2 EVM with OpenZeppelin contracts, follow these best practices:

  1. Always use the latest version of OpenZeppelin contracts
  2. Start with existing, audited components rather than building from scratch
  3. Run comprehensive tests before deploying to mainnet
  4. Consider upgradeability for complex applications
  5. Use access controls like 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
  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
Last updated on