Skip to main content

Quick start - 5 minutes overview

What is Kakarot zkEVM?

Kakarot is a zkEVM built in Cairo, the provable language that powers Starknet and all the StarknetOS chains (also called CairoVM chains, or Starknet appchains). Kakarot is an Ethereum-compatible Layer 2, a so-called zkRollup. Beyond compatibility, Kakarot strives to push more innovations to the L2 space, and to add new features such as native account abstraction to the EVM. Kakarot's driving ethos is to Prove, Scale and Innovate 🥕.

How can I use Kakarot zkEVM?

Kakarot zkEVM is an Ethereum-compatible rollup, which means as a user and developer, you can interact with Kakarot zkEVM in the same way you would interact with Ethereum mainnet or any other Ethereum-based chain (use Metamask, Rainbow, build with Foundry or Hardhat, etc.). Change the RPC URL and it "just works". That being said, Kakarot is still in alpha testnet phase 🚧 and unexpected behavior may still occur. Reach out to us on discord to report bugs 🐛.

Though we aim at no difference at all between Ethereum and Kakarot zkEVM — and we actually work toward passing 100% of the official Ethereum Foundation test — they are currently some small difference recorded in the differences between Kakarot and Ethereum page in this documentation website.

As a user, how can I interact with Kakarot zkEVM?

Head over to the survival guide section to find useful links for our alpha testnet. Again, change the network to Kakarot in your wallet and it should "just work".

Adding Kakarot Sepolia to Metamask

You can add Kakarot Sepolia to Metamask by clicking the button below:

Or by add a new network manually to Metamask: open the Metamask extension. Click "Add Network". Choose "Add a Network Manually". Then fill the fields:

Network NameKakarot Sepolia
Chain Id1802203764
Block Explorer

As a developer, how can I build on Kakarot zkEVM?

For developers as well, change the RPC URL, and it should "just work".

In case you encounter some unknown bug or want to discuss new features, you can:

What differentiates Kakarot zkEVM?

Kakarot is the only provable implementation of the EVM written in a Turing complete zero-knowledge Domain Specific Language (zkDSL): Cairo.

In this sense, Kakarot is closer to an EVM client than other zkEVMs. This makes our approach flexible. Lower-level approaches that rely on cryptographic primitives (e.g. circuits) are tailor-made for a specific EVM version. They are way harder to maintain and adapt. For instance, because our approach is adaptable & sustainable, we can support all Ethereum hardforks from day 1 and thus minimize EVM fragmentation.

In the upcoming years, as Ethereum undergoes more upgrades, a zkEVM needs to be easily adaptable to be sustainable. That is, it needs to easily incorporate the changes of Ethereum mainnet. Otherwise, the very point of zkEVMs would be partially lost: use zk to improve Ethereum, but in the meantime block every other future evolution of the protocol and stick to a given version. Developers would have to be careful about their Solidity or Vyper compiler versions. Users would need to consult a difference checklist.

For a deep-dive into the Kakarot design, check out the architecture overview.