# Tutorial 60: The Impact of PUSH0 and the Shanghai Hardfork on Cross-Chain Deployments > 0.8.20

{% hint style="info" %}
[**Book an audit with Zokyo**](https://www.zokyo.io/)
{% endhint %}

The Ethereum Shanghai hardfork introduced new features to the Ethereum Virtual Machine (EVM), including the PUSH0 opcode, which allows for efficient pushing of a zero value onto the stack. While this opcode offers optimization for contracts deployed on chains that support the Shanghai hardfork, it can pose compatibility issues when deploying to chains that do not yet support this update. This is especially concerning for projects that aim to operate across multiple chains, such as Ethereum, Polygon, Avalanche, Binance Smart Chain, and others.

If a project is compiled using Solidity 0.8.20 or later, the generated bytecode may contain the PUSH0 opcode. This can result in deployment failures or incorrect behavior on chains that have not yet integrated the Shanghai hardfork. Additionally, using different Solidity compiler versions for different chains may lead to inconsistencies in bytecode, potentially disrupting the counterfactual deployment of contracts across various networks.

In this tutorial, we will explore how the introduction of PUSH0 affects smart contract deployment on multiple chains, and how to mitigate compatibility issues.


---

# 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://zokyo-auditing-tutorials.gitbook.io/zokyo-tutorials/tutorial-60-the-impact-of-push0-and-the-shanghai-hardfork-on-cross-chain-deployments-greater-than-0..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.
