> For the complete documentation index, see [llms.txt](https://docs.dnerochain.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.dnerochain.org/dnero-smart-contracts/dnero-virtual-machine.md).

# DNERO Virtual Machine

Turing-Complete Smart Contract

{% hint style="info" %}
**Good to know:** The DNERO Virtual Machine is compatible with the Ethereum Virtual Machine (EVM Constantinople fork plus a couple key Istanbul features, including the [chainid opcode](https://eips.ethereum.org/EIPS/eip-1344), and [alt\_bn128 gas cost reduction](https://eips.ethereum.org/EIPS/eip-1108)). Thus, porting over existing Ethereum-based contracts is simple and thousands of smart contract developers can easily jump to building on DNERO Virtual Machine.

The [DNERO/Ethereum RPC adaptor ](https://github.com/dnerochain/dnero-eth-rpc), provides support for the **Ethereum RPC API** similar to Binance Smart Chain and Polygon. The Dnero/Ethereum RPC adapter software translates the DNERO RPC endpoints into the Ethereum RPC APIs. With it, DNERO now supports the entire Etherum DApp dev stack including Metamask, Hardhat, Remix, Ethers.js, Web3.js, and Truffle Suite. Ethereum DApps that are ported over to DNERO can use the same API calls to interact with DNERO blockchain. This means Ethereum DApps can be deployed to DNERO with no or minor modifications and tap into the growing DNERO user and capital base.
{% endhint %}

{% hint style="danger" %}
Before diving into more detail, note that on the DNERO Blockchain, **DTOKEN** takes the place of ETH in all contracts.&#x20;

Just as you need ETH to deploy or interact with smart contracts on Ethereum, you need **DTOKEN** to do so on DNERO Blockchain.
{% endhint %}
