> For the complete documentation index, see [llms.txt](https://docs.soniclabs.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.soniclabs.com/technology/evm-compatibility.md).

# EVM Compatibility

Sonic is fully compatible with the Ethereum Virtual Machine (EVM). Any smart contract that runs on Ethereum can be deployed on Sonic without modification.

* **Supported Languages**\
  Solidity and Vyper
* **Supported EIPs**\
  Sonic supports Ethereum's Cancun hard fork features, including PUSH0 opcode (EIP-3855), with the exception of EIP-4844 data blobs. As of Sonic v2.1, the network also supports the Ethereum Prague/Pectra feature set, including EIP-7702 (set EOA account code), EIP-2537 (BLS12-381 precompile), and EIP-7623 (increased calldata cost). See Pectra Compatibility for the full list of supported Prague-era EIPs.

{% hint style="info" %}
Note on PUSH0 Opcode: Sonic's EVM supports the PUSH0 opcode. RPC tests that fail with eth\_call are often missing the required block parameter (e.g., "latest"). A correctly formatted call like eth\_call with params \[{"to": null, "data": "0x5f"}, "latest"] will succeed.
{% endhint %}
