MCPcopy Index your code
hub / github.com/evmos/evmos

github.com/evmos/evmos @v20.0.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v20.0.0 ↗ · + Follow
14,175 symbols 43,101 edges 994 files 6,417 documented · 45%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Evmos

Version License GoDoc Go report card

Discord Lint Status Code Coverage Follow Evmos on X

About

Evmos is a scalable, high-throughput Proof-of-Stake EVM blockchain that is fully compatible and interoperable with Ethereum. It's built using the Cosmos SDK which runs on top of the CometBFT consensus engine.

Quick Start

To learn how Evmos works from a high-level perspective, go to the Protocol Overview section of the documentation. You can also check the instructions to Run a Node.

Documentation

Our documentation is hosted in a separate repository and can be found at docs.evmos.org. Head over there and check it out.

Installation

For prerequisites and detailed build instructions please read the Installation instructions. Once the dependencies are installed, run:

make install

Or check out the latest release.

Community

The following chat channels and forums are great spots to ask questions about Evmos:

Contributing

Looking for a good place to start contributing? Check out some good first issues.

For additional instructions, standards and style guides, please refer to the Contributing document.

Careers

See our open positions on our Careers page.

Licensing

Starting from April 21st, 2023, the Evmos repository will update its License from GNU Lesser General Public License v3.0 (LGPLv3) to Evmos Non-Commercial License 1.0 (ENCL-1.0). This license applies to all software released from Evmos version 13 or later, except for specific files, as follows, which will continue to be licensed under LGPLv3:

  • x/erc20/keeper/proposals.go
  • x/erc20/types/utils.go

LGPLv3 will continue to apply to older versions (<v13.0.0) of the Evmos repository. For more information see LICENSE.

[!WARNING]

NOTE: If you are interested in using this software email us at os@evmos.org.

SPDX Identifier

The following header including a license identifier in SPDX short form has been added to all ENCL-1.0 files:

// Copyright Tharsis Labs Ltd.(Evmos)
// SPDX-License-Identifier:ENCL-1.0(https://github.com/evmos/evmos/blob/main/LICENSE)

Exempted files contain the following SPDX ID:

// Copyright Tharsis Labs Ltd.(Evmos)
// SPDX-License-Identifier:LGPL-3.0-only

License FAQ

Find below an overview of the Permissions and Limitations of the Evmos Non-Commercial License 1.0. For more information, check out the full ENCL-1.0 FAQ here.

Permissions Prohibited
- Private Use, including distribution and modification
  • Commercial use on designated blockchains

  • Commercial use with Evmos permit (to be separately negotiated) | - Commercial use, other than on designated blockchains, without Evmos permit |

Extension points exported contracts — how you extend this code

Tracer (Interface)
Tracer interface extends vm.EVMLogger and additionally allows collecting the tracing result. [7 implementers]
x/evm/core/tracers/tracers.go
VestingTxFactory (Interface)
(no doc) [7 implementers]
testutil/integration/evmos/factory/vesting.go
EpochHooks (Interface)
EpochHooks event hooks for epoch processing [3 implementers]
x/epochs/types/interfaces.go
TxDataV2 (Interface)
TxDataV2 implements the Ethereum transaction tx structure. It is used solely to define the custom logic for getting sign [3 …
api/ethermint/evm/v1/tx_data.go
BankKeeper (Interface)
BankKeeper defines the contract needed to be fulfilled for banking and supply dependencies. [2 implementers]
x/inflation/v1/types/interfaces.go
BankKeeper (Interface)
BankKeeper defines the expected interface needed to check balances and send coins. [2 implementers]
x/ibc/transfer/types/interfaces.go
BankKeeper (Interface)
BankKeeper defines the expected interface contract the vesting module requires for creating vesting accounts with funds. [2 …
x/vesting/types/interfaces.go
BankKeeper (Interface)
BankKeeper defines the exposed interface for using functionality of the bank keeper in the context of the AnteHandler ut [2 …
app/ante/utils/interfaces.go

Core symbols most depended-on inside this repo

To
called by 2594
x/evm/core/core/utils.go
panic
called by 2353
tests/solidity/test-helper.js
n
called by 1160
client/docs/swagger-ui/swagger-ui-standalone-preset.js
Error
called by 950
x/evm/core/logger/logger.go
Bytes
called by 900
crypto/ethsecp256k1/ethsecp256k1.go
GetContext
called by 646
testutil/integration/ibc/chain/chain.go
GetAddr
called by 461
testutil/integration/evmos/keyring/keyring.go
NextBlock
called by 452
testutil/integration/ibc/chain/chain.go

Shape

Method 10,156
Function 2,631
Struct 1,026
TypeAlias 171
Interface 137
Class 23
FuncType 18
Route 13

Languages

Go95%
Python3%
TypeScript1%

Modules by API surface

api/ethermint/evm/v1/query.pulsar.go754 symbols
x/evm/types/query.pb.go472 symbols
api/ethermint/evm/v1/evm.pulsar.go416 symbols
api/evmos/inflation/v1/query.pulsar.go346 symbols
api/evmos/vesting/v2/tx.pulsar.go327 symbols
api/evmos/erc20/v1/tx.pulsar.go306 symbols
api/ethermint/evm/v1/tx.pulsar.go298 symbols
x/inflation/v1/types/query.pb.go226 symbols
x/vesting/types/tx.pb.go202 symbols
x/evm/types/evm.pb.go195 symbols
x/evm/migrations/v7/types/evm.pb.go195 symbols
x/erc20/types/tx.pb.go193 symbols

For agents

$ claude mcp add evmos \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact