Baseline EVM Template¶
Introduction¶
Tanssi's EVM (Ethereum Virtual Machine) appchain template is specifically designed for teams developing their applications on top of an EVM (Ethereum Virtual Machine). It contains all the essential parts to add the extra layer of Ethereum compatibility to a Substrate node:
- EVM - adds a Rust-based Ethereum Virtual Machine execution layer for EVM-based smart contract applications
- Etherum JSON RPC Support - Tanssi EVM appchains are fully Ethereum JSON RPC compliant. Consequently, all Ethereum-based tools like MetaMask, Ethers.js, Viem, Hardhat, Foundry and more, work seamlessly out of the box
- Unified Accounts - allows Tanssi EVM appchains to feature Ethereum-styled ECDSA accounts instead of Substrate-native accounts
EVM Appchain Template¶
Since the template already contains the necessary configuration for seamless integration into the Polkadot ecosystem and Tanssi protocol compatibility, if the use case is entirely developed on top of the EVM, then this template requires no additional changes in the runtime.
This means that this template is ready to be built as-is and deployed through Tanssi, unlocking many features, such as:
- Utilize Tanssi's block production as a service
- Use Polkadot's finality gadget
- Benefit from Polkadot's shared security model
- Use the Polkadot.js API to interact with the Substrate API
- Connect any Ethereum wallet, such as Metamask and Ledger
- Use well-known Ethereum libraries like Ethers.js, Web3.js, Web3.py, and more
- Deploy EVM smart contracts with tools like Remix, Hardhat, Foundry, and more
Included Modules¶
Besides the modules and configurations that make the Tanssi EVM appchain template compatible with the Tanssi protocol, it also includes many modules to provide basic functionalities.
To reach full Ethereum compatibility, these specific modules are also included:
- pallet_evm - the EVM pallet allows for unmodified EVM bytecode to be executed in a Substrate-based blockchain. It uses the Rust-based SputnikVM as the underlying EVM engine
- pallet_ethereum - the Ethereum pallet works together with the EVM pallet to provide full emulation for Ethereum block processing. Among many other tasks, it is responsible for creating emulated Ethereum blocks for Ethereum-specific components such as EVM logs
Both modules are part of Frontier, which is the backbone of Ethereum-compatible Substrate-based chains.
| Created: November 4, 2023