# \[PASSED\] OP-PIP-79: Entropy v2 Mainnet Upgrade

**URL:** <https://forum.pyth.network/t/passed-op-pip-79-entropy-v2-mainnet-upgrade/2164>\
**Category:** Proposals\
**Tags:** operational-pip\
**Created:** [July 9, 2025, 7:59am UTC](https://forum.pyth.network/t/passed-op-pip-79-entropy-v2-mainnet-upgrade/2164 "2025-07-09T07:59:01Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![KemarTiti](https://sea1.discourse-cdn.com/flex001/user_avatar/forum.pyth.network/kemartiti/32/5_2.png) [@KemarTiti](https://forum.pyth.network/u/KemarTiti)\
**Post date:** [July 9, 2025, 7:59am UTC](https://forum.pyth.network/t/passed-op-pip-79-entropy-v2-mainnet-upgrade/2164/1 "2025-07-09T07:59:01Z")

</div>

**Abstract**

Upgrade the Entropy contracts on mainnet to version 2.0.

This follows the testnet upgrade done [here](https://forum.pyth.network/t/passed-op-pip-71-entropy-v2-testnet-upgrade/2131).

**Rationale**

The v2.0 upgrade will introduce significant quality of life improvements for all Entropy users.

**Description**

Entropy version 2.0 introduces several developer experience upgrades around callbacks, including configurable gas limits and better error reporting. It also improves the event definition and simplifies the user-facing API.

**Implementation**

Proposal: [Pyth Network](https://proposals.pyth.network/?cluster=mainnet-beta&tab=proposals&proposal=a8x2GdkoHLRpdP4K3vpMppZjSxjh8iGXqWfMv6hLX7g)

1. Make sure you have node-js, forge and jq installed.  
a. node-js: install `nvm` from [here](https://github.com/nvm-sh/nvm). Install node-js 22 (`nvm install 22; nvm use 22`)  
b. forge: install it from [here](https://getfoundry.sh/)  
c. jq: install it from [here](https://jqlang.github.io/jq/)
2. Clone the `pyth-crosschain` repo (`git clone ` `https://github.com/pyth-network/pyth-crosschain.git`). Go to the `pyth-crosschain` directory and run the following command: `pnpm i`
3. Get the on-chain implementation code digest by going to the `contract_manager` directory and running `npx ts-node scripts/check_proposal.ts --cluster mainnet-beta --proposal <proposal id>`
4. Get the source code digest by going to the `target_chains/ethereum/contracts` directory angd running ` pnpm exec truffle compile --all && cat build/contracts/EntropyUpgradable.json | jq -r .deployedBytecode | tr -d '\r\n' | cast keccak`. The expected hash is `0x6ed1adf0838150b563fef366873dbdcf7bc8acb8d3d74bd904c23a4f4e943c62 `
5. Check the hash digest from the on-chain implementation (from step 3) matches the hash digest from the source code (from step 4).
