# Nibiru EVM

Nibiru EVM is a novel, EVM-equivalent execution layer natively built into the Nibiru blockchain. Nibiru EVM preserves full compatibility with EVM bytecode and the Ethereum JSON-RPC API, ensuring seamless portability for EVM developers.

# Why Nibiru EVM?

  1. Fast Settlement and Superior Scalability
  2. Better Experience for Web3 apps
  3. Safety Benefits from Minimized Attack Surface
  4. Inexpensive gas fees
  5. Higher propensity for horizontal scalability via IBC
  6. ERC-20 tokens brought to life in an interchain standard
  7. Interopability Across Virtual Machines (VMs): Nibiru EVM was designed to be compatible with the WebAssembly VM via CosmWasm and Inter-Blockchain Communication (IBC).

# Benefits to Developers

Any application that can exist on Ethereum can easily launch on Nibiru and benefit from its parallel optimistic execution and instant finality. Nibiru's EVM execution environment gives developers the ability to build and deploy applications in a familiar EVM environment with a lower barrier to entry, extending Nibiru’s core functionality in Wasm (WebAssembly) with the extensive user base and developer community of Ethereum. Builders will now be able to use existing tooling like Solidity, Hardhat, Remix, and Metamask, all while enjoying the performance benefits of Nibiru.

# Transaction Throuput on Ethereum

The Ethereum blockchain only allows for about 20-40 transactions per second (TPS) for all Ethereum users. When the limit is reached, users are forced to compete against each other for their transactions to be included, which drives up gas fees during periods of congestion.

# Ethereum Virtual Machine (EVM)

The Ethereum Virtual Machine (EVM) is a decentralized computation engine that runs on thousands of interconnected computers (nodes) using Ethereum clients. It serves as the execution environment for smart contracts on a network that implements the Ethereum protocol. The EVM ensures deterministic computation, meaning every node produces the exact same result given the same initial state and transaction, maintaining the integrity and consistency of the blockchain.

The Nibiru EVM is responsible for storing and executing Ethereum smart contracts on Nibiru in an isolated runtime, which means the code running inside the EVM cannot access external systems such as the filesystem. This isolation enhances security and predictability in smart contract execution.

Nibiru implements the Ethereum protocol to offer compatibility and interoperability with existing Ethereum-based applications. Nibiru maps to a different consensus engine yet leverages an execution environment that is equivalent in capabilities to Ethereum's.

# Is Nibiru EVM a separate chain or rollup running in tandem with the base layer?

No, it's not a separate chain. Distinct from things like Layer 2s, optimistic or zero-knowledge (ZK) rollups, or the Avalanche C-chain (all EVM-compatible execution environments), Nibiru EVM is simply one piece of the Nibiru execution layer. Non-EVM transactions can be included alongside EVM transactions within the same block.

# EVM-equivalent versus Ethereum-equivalent

Nibiru EVM is EVM-equivalent but not quite Ethereum-equivalent.

"[It is] exactly like Ethereum "from within", but [has] some differences on the outside, particularly in data structures like the block structure and state tree. The goal [with EVM-equivalence] is to be fully compatible with existing applications, but make some minor modifications to Ethereum to make development easier and to make proof generation faster." - Vitalik

If something is fully and uncompromisingly Ethereum-equivalent, is means that it

"[does] not change any part of the Ethereum system to make it easier to generate proofs. [It does] not replace hashes, state trees, transaction trees, precompiles or any other in-consensus logic, no matter how peripheral." - Vitalik (in the context of zero-knownledge proofs)

Reference: Vitalik Buterin, 2022. The different types of ZK-EVMs (opens new window)

# Programming Language Support

Solidity and Vyper:

Nibiru EVM makes the Nibiru blockchain Ethereum compatible, allowing trustless deployment of Solidity and Vyper smart contracts, or any other language the compiles to EVM bytecode.