# 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. All transactions must have a Chain ID (EIP-155 is enforced).

{% 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 %}
