EVM Extensions
Stateful EVM Extensions on the core protocol allow dApps and users to access logic outside of the EVM. Acting as a gateway, these EVM Extensions define how smart contracts can perform cross-chain transactions (via IBC) and interact with core functionalities on the DEP chain (e.g. staking, voting) from the EVM.
Note: Not sure what EVM extensions are? EVM extensions behave like smart contracts that are compiled and deployed within the EVM. If you are familiar with the EVM, you may know them as Precompiles. These have predefined addresses and, according to their logic, can be classified as stateful or stateless. When they change the state of the chain (transactions) or access state data (queries), extensions are considered "stateful"; when they don't, they're "stateless".
EVM Extensions documentation
Find in this section an outline of the currently implemented EVM extensions with transactions, queries, and examples of using them:
- Authorization interface (read first if you're new to EVM extensions)
- EVM Extensions shared types
x/staking
module EVM extensionx/distribution
module EVM extensionibc/transfer
module EVM extensionx/vesting
module EVM extension
Note: Find the EVM Extensions Solidity interfaces and examples in the DEP Extensions repo
Other Learning Resources
- EVM Extensions - Staking & Distribution academy article
- Diving into EVM Extensions Workshop (DoraHacks Hackathon)