# zkEVM

zkLink Nova is powered by the zkEVM of [ZK Stack](https://zkstack.io/), a modular, open-source framework that is both free and designed to build custom ZK-powered L2s and L3s, based on the code of zkSync.&#x20;

A zkEVM (zero-knowledge Ethereum Virtual Machine) is a virtual machine that executes smart contract transactions in a way that’s compatible with both zero-knowledge-proof computations and existing Ethereum infrastructure.&#x20;

Being EVM compatible enables zkLink Nova to run programs created for Ethereum environments without modifying the underlying smart contract logic. Developers familiar with Ethereum’s Solidity programming language can build highly scalable applications using the same battle-tested tools they’re used to.

{% hint style="info" %}
According to Vitalik Buterin, EVM compatibility can be segmented into four types. The zkEVM of ZK Stack used by zkLink Nova is categorized as a Type 4 system in the taxonomy of zkEVMs. Its EVM compatibility works by taking smart contract source code written in high-level languages and compiling it to a language designed to be zk-SNARK-friendly.&#x20;
{% endhint %}

**For more details, we recommend reading:**&#x20;

{% embed url="<https://vitalik.eth.limo/general/2022/08/04/zkevm.html>" %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.zklink.io/key-concepts/zkevm.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
