evm

package module
v0.0.0-...-4b9ad55 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 14, 2025 License: Apache-2.0 Imports: 25 Imported by: 4

README

Zenanet Blockchain images

Please note: This repository is undergoing changes while the code is being audited and tested. For the time being we will be making v0.x releases. Some breaking changes might occur. Zenanet will be marked as stable with a v1 release after the audit, key stability features and benchmarking are completed.

Visit the official Zenanet documentation: docs.zenanet.io (or evm.cosmos.network for Cosmos EVM documentation)

What is Zenanet?

Zenanet is a high-performance blockchain network built on Cosmos EVM technology, providing complete Ethereum compatibility within the Cosmos ecosystem. Zenanet combines the best of both worlds: Solidity smart contracts, Ethereum JSON-RPC, native EVM wallet/token/user experience, and seamless access to the Cosmos SDK modules through IBC (Inter-Blockchain Communication).

Powered by Cosmos EVM, Zenanet offers enterprise-grade customization for your business use case, chain architecture, and performance requirements.

Integration & Architecture

Zenanet is built on Cosmos EVM technology, which can be integrated into existing chains or added during new chain development by importing as a Go module library.

Robust Defaults

Zenanet's modules come out of the box with defaults that enable rapid VM deployment. The integrated modules provide:

  • Exposed JSON-RPC endpoints for connectivity with EVM tooling like wallets such as MetaMask and Rabby, and block explorers like Blockscout.
  • EVM extensions that allow functionality that is native to Cosmos SDK modules to be accessible from Solidity smart contracts Solidity smart contracts.
  • Use of any IBC asset in the EVM.

All modules can be controlled by on-chain governance.

Extensive Customizability

Zenanet provides extensive customization capabilities built on Cosmos EVM's flexible architecture:

  • Permissioned EVM - Implement customized access controls to either blacklist or whitelist individual addresses for calling and/or creating smart contracts on the network.
  • EVM Extensions - Use custom EVM extensions to write custom business logic for your specific use case.
  • Single Token Representation v2 & ERC-20 Module - The Single Token Representation v2 and our x/erc20 module aligns IBC and ERC-20 token representation to simplify and improve user experience.
  • EIP-1559 Fee Market Mechanism - Customize fee structures and transaction surge management with the self-regulating fee market mechanism based on EIP-1559 fee market.
  • JSON-RPC Server - Full control over the exposed namespaces and JSON-RPC server. Configurable parameters include custom timeouts for EVM calls or HTTP requests, maximum block gas, open connections, and more.
  • EIP-712 Signing - Integrated EIP-712 signature implementation allows Cosmos SDK messages to be signed with EVM wallets like MetaMask. This supports structured data signing for arbitrary messages.
  • Custom Improvement Proposals (Opcodes) - Zenanet provides the opportunity to customize EVM opcodes and add new ones. Read more on custom operations here.

Compatibility with Ethereum

Is Zenanet "Ethereum equivalent"? Ethereum-equivalence describes any EVM solution that is identical in transaction execution to the Ethereum client. On the other hand, Ethereum-compatible means that the EVM implementation can run every transaction that is valid on Ethereum, while also handling divergent transactions that are not valid on Ethereum.

We describe Zenanet as forward-compatible with Ethereum. It can run any valid smart contract from Ethereum and also implement new features that are not yet available in the standard Ethereum VM, thus moving the standard forward.

Getting Started

To run the Zenanet node (zenad), execute the following script from the root folder of the repository:

./local_node.sh

Migrations

We provide upgrade guides here for upgrading from various versions of Zenanet and Cosmos EVM.

Testing

All test scripts are found in Makefile in the root of the repository. Listed below are the commands for various tests:

Unit Testing
make test-unit
Coverage Test

This generates a code coverage file filtered_coverage.txt and prints out the covered code percentage for the working files.

make test-unit-cover
Fuzz Testing
make test-fuzz
Solidity Tests
make test-solidity
Benchmark Tests
make benchmark

Open-source License & Credits

Zenanet is fully open-source under the Apache 2.0 license. It is built on Cosmos EVM, which is a fork of evmOS. The Interchain Foundation funded evmOS developers Tharsis to open-source the original evmOS codebase. We acknowledge Tharsis and evmOS for performing the foundational work for EVM compatibility and interoperability in the Cosmos ecosystem.

Developer Community and Support

The issue list of this repository is exclusively for bug reports and feature requests. For questions and discussions, please join our community channels.

| Need Help? | Zenanet Community: Discord - Telegram - Documentation |

For Cosmos ecosystem support: Discord - Telegram - #Cosmos-tech Slack

Maintainers

Zenanet is maintained by the Zenanet core development team. The project is built on top of the Cosmos Stack, which is maintained by Cosmos Labs and includes core components such as Cosmos SDK, CometBFT, IBC, and Cosmos EVM.

The Cosmos Stack is maintained by Cosmos Labs, a wholly-owned subsidiary of the Interchain Foundation, and is supported by a robust community of open-source contributors.

Contributing to Zenanet

We welcome open source contributions and discussions! For more on contributing, read the guide.

Acknowledgments

We would like to thank:

  • Cosmos Labs for maintaining the Cosmos EVM and Cosmos Stack
  • B-Harvest and Mantra for their key contributions to Cosmos EVM development
  • The Interchain Foundation for funding the original evmOS development by Tharsis
  • The entire Cosmos community for their continued support and contributions

Documentation and Resources

Zenanet Documentation

Technology Stack

Zenanet is built on the following core technologies:

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type EvmApp

type EvmApp interface {
	ibctesting.TestingApp
	runtime.AppI
	InterfaceRegistry() types.InterfaceRegistry
	ChainID() string
	GetEVMKeeper() *evmkeeper.Keeper
	GetErc20Keeper() *erc20keeper.Keeper
	SetErc20Keeper(erc20keeper.Keeper)
	GetGovKeeper() govkeeper.Keeper
	GetSlashingKeeper() slashingkeeper.Keeper
	GetEvidenceKeeper() *evidencekeeper.Keeper
	GetBankKeeper() bankkeeper.Keeper
	GetFeeMarketKeeper() *feemarketkeeper.Keeper
	GetAccountKeeper() authkeeper.AccountKeeper
	GetAuthzKeeper() authzkeeper.Keeper
	GetDistrKeeper() distrkeeper.Keeper
	GetStakingKeeper() *stakingkeeper.Keeper
	GetMintKeeper() mintkeeper.Keeper
	GetPreciseBankKeeper() *precisebankkeeper.Keeper
	GetFeeGrantKeeper() feegrantkeeper.Keeper
	GetConsensusParamsKeeper() consensusparamkeeper.Keeper
	GetCallbackKeeper() keeper.ContractKeeper
	GetTransferKeeper() transferkeeper.Keeper
	SetTransferKeeper(transferKeeper transferkeeper.Keeper)
	DefaultGenesis() map[string]json.RawMessage
	GetKey(storeKey string) *storetypes.KVStoreKey
	GetAnteHandler() sdk.AnteHandler
	MsgServiceRouter() *baseapp.MsgServiceRouter
	GetMempool() mempool.ExtMempool
}

EvmApp defines the interface for an EVM application.

Directories

Path Synopsis
evm
api
cosmos/evm/ante/v1
Code generated by protoc-gen-go-pulsar.
Code generated by protoc-gen-go-pulsar.
cosmos/evm/crypto/v1/ethsecp256k1
Code generated by protoc-gen-go-pulsar.
Code generated by protoc-gen-go-pulsar.
cosmos/evm/eip712/v1
Code generated by protoc-gen-go-pulsar.
Code generated by protoc-gen-go-pulsar.
cosmos/evm/erc20/v1
Code generated by protoc-gen-go-pulsar.
Code generated by protoc-gen-go-pulsar.
cosmos/evm/feemarket/v1
Code generated by protoc-gen-go-pulsar.
Code generated by protoc-gen-go-pulsar.
cosmos/evm/precisebank/v1
Code generated by protoc-gen-go-pulsar.
Code generated by protoc-gen-go-pulsar.
cosmos/evm/server/v1
Code generated by protoc-gen-go-pulsar.
Code generated by protoc-gen-go-pulsar.
cosmos/evm/vm/v1
Code generated by protoc-gen-go-pulsar.
Code generated by protoc-gen-go-pulsar.
crypto
hd
ethereum
txpool/legacypool
Package legacypool implements the normal EVM execution transaction pool.
Package legacypool implements the normal EVM execution transaction pool.
precompiles
gov
rpc
tests
ibc
This file contains the variables, constants, and default values used in the testing package and commonly defined in tests.
This file contains the variables, constants, and default values used in the testing package and commonly defined in tests.
tx
eth
wallets
x
erc20/types
Package types is a reverse proxy.
Package types is a reverse proxy.
erc20/types/mocks
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
feemarket/types
Package types is a reverse proxy.
Package types is a reverse proxy.
precisebank/types
Package types is a reverse proxy.
Package types is a reverse proxy.
vm
vm/types
Package types is a reverse proxy.
Package types is a reverse proxy.
vm/wrappers/testutil
Package testutil is a generated GoMock package.
Package testutil is a generated GoMock package.
zenad module

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL