Console
Docs
Integrations
Welcome to the Course

Intro to EVM & Precompiles

Origin of the EVMAccounts, Keys, and AddressesTransactions and BlocksDifferent Versions of EVM

Development Environment Setup

Set Up Development EnvironmentCreate CodespacesCodespace in VS Code

Your Own EVM Blockchain

Your Own EVM BlockchainAvalanche CLICreate Your BlockchainSending Tokens

Genesis Configuration

EVM ConfigurationGenesis BlockCreate Your Genesis FileSetup Your ChainIDGas Fees and Gas LimitGas Fees ConfigurationConfigure Gas FeesInitial Token AllocationBuild and Run Custom Genesis EVM

Precompiles

What are Precompiles?Why Precompiles?Interact with a Precompile

Hash Function Precompile

OverviewCreate an MD5 Solidity InterfaceGenerate the PrecompilePacking and UnpackingImplement the PrecompileConfigKey, ContractAddress, and GenesisRegister Your PrecompileBuild and RunInteract with Precompile

Calculator Precompile

OverviewCreate Solidity InterfaceGenerating the PrecompileUnpacking Multiple Inputs & Packing Multiple OutputsImplementing PrecompileSetting the ConfigKey & ContractAddressCreating Genesis Block with precompileConfigTesting Precompiles via GoModify Autogenerated TestsAdding Unit TestsAdding Fuzz TestsTesting CalculatorPlus

Stateful Precompiles

What are Stateful Precompiles?Interacting with StringStore Precompile

Stateful Counter Precompile

Creating Counter PrecompileCreate Solidity InterfaceStore Data in EVM StateImplementing setCounterRead Data From EVM StateImplementing getCounter & incrementSetting Base Gas Fees of Your PrecompileSetting ConfigKey and ContractAddressInitial StateDefining Default Values via GolangDefining Default Values via GenesisTesting Your PrecompileBuild Your Precompile
Academy

Codespace in VS Code

Learn how to setup GitHub Codespaces.

Switch from Browser to VS Code

You can switch any time from the browser IDE to Visual Studio Code:

The first time you switch, you will be asked to install the Codespaces extension and connect VS Code to you GitHub account, if it is not already connceted.

Is this guide helpful?

Create Codespaces

Learn how to create GitHub Codespaces.

Your Own EVM Blockchain

Learn how to spin up your own EVM blockchain.

On this page

Switch from Browser to VS Code

Page Actions

Edit on GitHubReport Issue
Instructors:
Martin Eckardt
Martin Eckardt
Sr. Director of Developer Relations
Ash
Ash
Developer Relations Engineer
Join Telegram Course Chat