# \#upgrades

**URL:** https://forum.openzeppelin.com/tag/upgrades/23.md

[Latest](https://forum.openzeppelin.com/latest.md) · [Categories](https://forum.openzeppelin.com/categories.md) · [Tags](https://forum.openzeppelin.com/tags.md)

---

## [Example/Tutorial for migrating data from prev version to next version of a smart contract](https://forum.openzeppelin.com/t/example-tutorial-for-migrating-data-from-prev-version-to-next-version-of-a-smart-contract/45557)

<div class="topic-metadata">

**Author:** [@anilhelvaci](https://forum.openzeppelin.com/u/anilhelvaci)\
**Replies:** 0\
**Last updated:** [September 1, 2026, 11:44am UTC](https://forum.openzeppelin.com/t/example-tutorial-for-migrating-data-from-prev-version-to-next-version-of-a-smart-contract/45557 "2026-09-01T11:44:38Z")

</div>

Example Scenario Let's imagine I've an upgradeable contract already deployed behind a proxy and the implementation contract fully adopted namespaced storage. After a while one of the structs needs to get a new variable w…

---

## [What is a sufficient test suite to rely on a contract's upgradeability status?](https://forum.openzeppelin.com/t/what-is-a-sufficient-test-suite-to-rely-on-a-contracts-upgradeability-status/45498)

<div class="topic-metadata">

**Author:** [@anilhelvaci](https://forum.openzeppelin.com/u/anilhelvaci)\
**Replies:** 1\
**Last updated:** [September 1, 2026, 11:33am UTC](https://forum.openzeppelin.com/t/what-is-a-sufficient-test-suite-to-rely-on-a-contracts-upgradeability-status/45498 "2026-09-01T11:33:28Z")

</div>

Context Hello all :hand\_with\_fingers\_splayed: I'm converting my existing smart contracts to be upgradeable. The process seems fairly straight-forward. However, I can't tell when I can say "this set of smart contracts upg…

---

## [UUPS Upgrade Successful (event emitted) but Implementation Address Not Updating (BSC Mainnet, Hardhat)](https://forum.openzeppelin.com/t/uups-upgrade-successful-event-emitted-but-implementation-address-not-updating-bsc-mainnet-hardhat/45284)

<div class="topic-metadata">

**Author:** [@awwy](https://forum.openzeppelin.com/u/awwy)\
**Replies:** 3\
**Last updated:** [April 9, 2026, 3:23pm UTC](https://forum.openzeppelin.com/t/uups-upgrade-successful-event-emitted-but-implementation-address-not-updating-bsc-mainnet-hardhat/45284 "2026-04-09T15:23:20Z")

</div>

Hi everyone, I’m encountering an issue with my upgradeable contract on BSC mainnet using Hardhat and would appreciate any insights. Context Pattern: UUPS upgradeable contract Network: BSC Mainnet Tooling: Hardh…

---

## [Review Request: AOXC Upgradeable Token with Inflation Control & Daily Limits](https://forum.openzeppelin.com/t/review-request-aoxc-upgradeable-token-with-inflation-control-daily-limits/45189)

<div class="topic-metadata">

**Author:** [@orcun](https://forum.openzeppelin.com/u/orcun)\
**Replies:** 0\
**Last updated:** [February 2, 2026, 9:47pm UTC](https://forum.openzeppelin.com/t/review-request-aoxc-upgradeable-token-with-inflation-control-daily-limits/45189 "2026-02-02T21:47:14Z")

</div>

\`\`\`solidity // SPDX-License-Identifier: MIT pragma solidity ^0.8.33; import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol"; import {UUPSUpgradeable} from "@openzeppelin/contr…

---

## [Changing/Adding Base Contract (V2)](https://forum.openzeppelin.com/t/changing-adding-base-contract-v2/45063)

<div class="topic-metadata">

**Author:** [@degendeveloper](https://forum.openzeppelin.com/u/degendeveloper)\
**Replies:** 0\
**Last updated:** [November 10, 2025, 12:59pm UTC](https://forum.openzeppelin.com/t/changing-adding-base-contract-v2/45063 "2025-11-10T12:59:30Z")

</div>

If I have this (V1) contract: contract MineV1 is ERC20Upgradeable, AccessControlUpgradeable {…} (using OZ v4), and I want to upgrade it to V2 adding Pauseable & Blacklistable features to the contract (one requiring a sto…

---

## [What happens if storage \_\_gap is placed in at the beginning and not the end of a contract?](https://forum.openzeppelin.com/t/what-happens-if-storage-gap-is-placed-in-at-the-beginning-and-not-the-end-of-a-contract/45042)

<div class="topic-metadata">

**Author:** [@tibas](https://forum.openzeppelin.com/u/tibas)\
**Replies:** 0\
**Last updated:** [October 29, 2025, 5:16pm UTC](https://forum.openzeppelin.com/t/what-happens-if-storage-gap-is-placed-in-at-the-beginning-and-not-the-end-of-a-contract/45042 "2025-10-29T17:16:33Z")

</div>

It’s openzeppelin’s convention to include “uint256\[50\] private \_\_gap” at the end of a contract. However, what’s the implication if upgradeable storage gap is placed in slot 0 then followed by a declared variable. For in…

---

## [Introduction to the Diamond Standard, EIP-2535 Diamonds](https://forum.openzeppelin.com/t/introduction-to-the-diamond-standard-eip-2535-diamonds/12505)

<div class="topic-metadata">

**Author:** [@Nick\_Mudge](https://forum.openzeppelin.com/u/Nick_Mudge)\
**Replies:** 12\
**Last updated:** [October 11, 2025, 11:40am UTC](https://forum.openzeppelin.com/t/introduction-to-the-diamond-standard-eip-2535-diamonds/12505 "2025-10-11T11:40:06Z")

</div>

---

## [A dynamic Eternal Storage design that won't require an upgrade](https://forum.openzeppelin.com/t/a-dynamic-eternal-storage-design-that-wont-require-an-upgrade/44377)

<div class="topic-metadata">

**Author:** [@anilhelvaci](https://forum.openzeppelin.com/u/anilhelvaci)\
**Replies:** 1\
**Last updated:** [August 13, 2025, 3:40pm UTC](https://forum.openzeppelin.com/t/a-dynamic-eternal-storage-design-that-wont-require-an-upgrade/44377 "2025-08-13T15:40:07Z")

</div>

Context Hello :hand\_with\_fingers\_splayed: I'm trying to decide what would be the best path for implementing an upgradable Dapp. My constraints are; I'm developing for a permissioned network where gas is no issue I wil…

---

## [Error on ERC1967Proxy verification on https://testnet.opbnbscan.com](https://forum.openzeppelin.com/t/error-on-erc1967proxy-verification-on-https-testnet-opbnbscan-com/44097)

<div class="topic-metadata">

**Author:** [@theonekeyg](https://forum.openzeppelin.com/u/theonekeyg)\
**Replies:** 3\
**Last updated:** [May 22, 2025, 11:33am UTC](https://forum.openzeppelin.com/t/error-on-erc1967proxy-verification-on-https-testnet-opbnbscan-com/44097 "2025-05-22T11:33:44Z")

</div>

Hi guys. I'm having issues with contract verification on NodeReal's explorer for opBNB testnet - https://testnet.opbnbscan.com. Error log suggests that the issue is with my configured solidity version (0.8.28) and incom…

---

## [Upgrading OpenZeppelin contracts-upgradeable from v5.x to v5.y](https://forum.openzeppelin.com/t/upgrading-openzeppelin-contracts-upgradeable-from-v5-x-to-v5-y/44068)

<div class="topic-metadata">

**Author:** [@aviggiano](https://forum.openzeppelin.com/u/aviggiano)\
**Replies:** 2\
**Last updated:** [May 16, 2025, 3:00pm UTC](https://forum.openzeppelin.com/t/upgrading-openzeppelin-contracts-upgradeable-from-v5-x-to-v5-y/44068 "2025-05-16T15:00:28Z")

</div>

Hello, I am currently using contracts and contracts-upgradeable v5.0.2 and want to update to the latest v5.3.0 version in order to use EnumerableMap.Bytes32ToAddressMap from v5.1.0. What are the risks from this update? …

---

## [Equivalent to ERC20VotesUpgradeable.sol in cairo](https://forum.openzeppelin.com/t/equivalent-to-erc20votesupgradeable-sol-in-cairo/44016)

<div class="topic-metadata">

**Author:** [@henryf10h](https://forum.openzeppelin.com/u/henryf10h)\
**Replies:** 5\
**Last updated:** [May 12, 2025, 6:35pm UTC](https://forum.openzeppelin.com/t/equivalent-to-erc20votesupgradeable-sol-in-cairo/44016 "2025-05-12T18:35:06Z")

</div>

Hello OpenZeppelin Team, I’m currently working on a project where I need functionality similar to ERC20VotesUpgradeable.sol but in Cairo. I noticed that your Cairo contracts have separate upgradable.cairo and votes.cair…

---

## [Looking for service to verify my beacon proxy](https://forum.openzeppelin.com/t/looking-for-service-to-verify-my-beacon-proxy/44028)

<div class="topic-metadata">

**Author:** [@atlaschiew](https://forum.openzeppelin.com/u/atlaschiew)\
**Replies:** 2\
**Last updated:** [May 8, 2025, 11:46pm UTC](https://forum.openzeppelin.com/t/looking-for-service-to-verify-my-beacon-proxy/44028 "2025-05-08T23:46:06Z")

</div>

this is derived contract address: https://bscscan.com/address/0x69dfdb3184cd66ceed10f2768abb5297745b5020, which is derived through new BeaconProxy(...) from https://bscscan.com/address/0xbf4f2e1ddf6dcddcd50bfca23ddc8b36e…

---

## [How to Estimate the Cost of Developing Secure Smart Contracts Using OpenZeppelin Libraries?](https://forum.openzeppelin.com/t/how-to-estimate-the-cost-of-developing-secure-smart-contracts-using-openzeppelin-libraries/43934)

<div class="topic-metadata">

**Author:** [@jameswood32](https://forum.openzeppelin.com/u/jameswood32)\
**Replies:** 1\
**Last updated:** [April 28, 2025, 12:35am UTC](https://forum.openzeppelin.com/t/how-to-estimate-the-cost-of-developing-secure-smart-contracts-using-openzeppelin-libraries/43934 "2025-04-28T00:35:51Z")

</div>

Hi everyone, I'm planning a decentralized app (dApp) project and intend to use OpenZeppelin libraries for smart contract development. Could anyone share advice or methods on how to accurately estimate the cost involved,…

---

## [Potential false positive "Missing initializer calls for one or more parent contracts"](https://forum.openzeppelin.com/t/potential-false-positive-missing-initializer-calls-for-one-or-more-parent-contracts/43911)

<div class="topic-metadata">

**Author:** [@Heuristik](https://forum.openzeppelin.com/u/Heuristik)\
**Replies:** 2\
**Last updated:** [April 24, 2025, 7:03am UTC](https://forum.openzeppelin.com/t/potential-false-positive-missing-initializer-calls-for-one-or-more-parent-contracts/43911 "2025-04-24T07:03:33Z")

</div>

:1234: Code to reproduce I think I've handled the initializer calls for my upgradeable ERC20 token contract correctly. // SPDX-License-Identifier: MIT pragma solidity 0.8.28; import {UUPSUpgradeable} from "@openzeppeli…

---

## [Need help adding a withdraw BNB function](https://forum.openzeppelin.com/t/need-help-adding-a-withdraw-bnb-function/27124)

<div class="topic-metadata">

**Author:** [@southpaw25](https://forum.openzeppelin.com/u/southpaw25)\
**Replies:** 9\
**Last updated:** [March 23, 2025, 3:25pm UTC](https://forum.openzeppelin.com/t/need-help-adding-a-withdraw-bnb-function/27124 "2025-03-23T15:25:02Z")

</div>

We have 19.6BNB stuck in our contract with no withdraw method, i have been told the only way to remove this would be to upgrade the contract to a new one. Add the external withdraw function this is possible and it will n…

---

## [Is IERC20Upgradeable removed from contracts-upgradeable?](https://forum.openzeppelin.com/t/is-ierc20upgradeable-removed-from-contracts-upgradeable/38088)

<div class="topic-metadata">

**Author:** [@mtzrW3](https://forum.openzeppelin.com/u/mtzrW3)\
**Replies:** 3\
**Last updated:** [March 19, 2025, 6:04pm UTC](https://forum.openzeppelin.com/t/is-ierc20upgradeable-removed-from-contracts-upgradeable/38088 "2025-03-19T18:04:50Z")

</div>

Hi there, I'm working on an upgradeable contract and I just installed contracts 5.0 and contracts-upgradeable 5.0. I noticed that IERC20Upgradeable.sol is no longer in the library. Would the following code be considered…

---

## [How to set ownership for UUPS Factory deployed ERC20 tokens?](https://forum.openzeppelin.com/t/how-to-set-ownership-for-uups-factory-deployed-erc20-tokens/43509)

<div class="topic-metadata">

**Author:** [@tolele666](https://forum.openzeppelin.com/u/tolele666)\
**Replies:** 8\
**Last updated:** [March 11, 2025, 6:03am UTC](https://forum.openzeppelin.com/t/how-to-set-ownership-for-uups-factory-deployed-erc20-tokens/43509 "2025-03-11T06:03:42Z")

</div>

My project uses the UUPS upgradeable proxy mode, and the warpped ERC20 contract will be deployed through the Factory mode in the implementation contract. There will be 3 contracts: proxy.sol, imple.sol and wrapERC20.sol.…

---

## [Looking for Someone to Champion the Diamond Standard for OpenZeppelin](https://forum.openzeppelin.com/t/looking-for-someone-to-champion-the-diamond-standard-for-openzeppelin/3058)

<div class="topic-metadata">

**Author:** [@Nick\_Mudge](https://forum.openzeppelin.com/u/Nick_Mudge)\
**Replies:** 11\
**Last updated:** [February 27, 2025, 3:13pm UTC](https://forum.openzeppelin.com/t/looking-for-someone-to-champion-the-diamond-standard-for-openzeppelin/3058 "2025-02-27T15:13:43Z")

</div>

I am looking for someone familiar with OpenZeppelin who would be interested in creating OpenZeppelin-based contracts and tools for the Diamond Standard and championing it forward in the OpenZeppelin ecosystem. Here is a…

---

## [Reinitializer() works even with \_disableInitializer() in constructor?](https://forum.openzeppelin.com/t/reinitializer-works-even-with-disableinitializer-in-constructor/43197)

<div class="topic-metadata">

**Author:** [@srikanthalva](https://forum.openzeppelin.com/u/srikanthalva)\
**Replies:** 4\
**Last updated:** [February 12, 2025, 12:04am UTC](https://forum.openzeppelin.com/t/reinitializer-works-even-with-disableinitializer-in-constructor/43197 "2025-02-12T00:04:27Z")

</div>

I have deployed an upgradable contract shown below. I recently realized that I had missed adding the \_\_ReentrancyGuard\_init(); statement to the initialize function. I had also added \_disableInitializers() to the constr…

---

## [prepareUpgrade with upgradeAndCall to upgrade proxy](https://forum.openzeppelin.com/t/prepareupgrade-with-upgradeandcall-to-upgrade-proxy/42787)

<div class="topic-metadata">

**Author:** [@matadorcro](https://forum.openzeppelin.com/u/matadorcro)\
**Replies:** 1\
**Last updated:** [January 8, 2025, 3:37pm UTC](https://forum.openzeppelin.com/t/prepareupgrade-with-upgradeandcall-to-upgrade-proxy/42787 "2025-01-08T15:37:58Z")

</div>

Hi using transparent proxy, and for example does upgrades plugin support upgrading to new implementation which is already deployed and address is known. I do not know if upgrades.prepareUpgrades is for this use-case? So …

---

## [We want to deploy two sets of upgradeable contracts in bsc. Can we specify the name of the json file?](https://forum.openzeppelin.com/t/we-want-to-deploy-two-sets-of-upgradeable-contracts-in-bsc-can-we-specify-the-name-of-the-json-file/42721)

<div class="topic-metadata">

**Author:** [@liweimilan](https://forum.openzeppelin.com/u/liweimilan)\
**Replies:** 4\
**Last updated:** [December 29, 2024, 4:52pm UTC](https://forum.openzeppelin.com/t/we-want-to-deploy-two-sets-of-upgradeable-contracts-in-bsc-can-we-specify-the-name-of-the-json-file/42721 "2024-12-29T16:52:59Z")

</div>

We want to deploy two sets of upgradeable contracts in bsc. Can we specify the name of the json file? one is : bsc.json and the other is bsc-2.json like this

---

## [Get OwnableUnauthorizedAccount when upgrade the transparent proxy](https://forum.openzeppelin.com/t/get-ownableunauthorizedaccount-when-upgrade-the-transparent-proxy/42732)

<div class="topic-metadata">

**Author:** [@Truth\_Asu](https://forum.openzeppelin.com/u/Truth_Asu)\
**Replies:** 3\
**Last updated:** [December 26, 2024, 3:11am UTC](https://forum.openzeppelin.com/t/get-ownableunauthorizedaccount-when-upgrade-the-transparent-proxy/42732 "2024-12-26T03:11:39Z")

</div>

I get an anvil blockchain to deploy my contracts and use the address anvil provide to set the owner of my contract.But it get OwnableUnauthorizedAccount(my TokenUpdate contract address) Its confusing that I set a msg.se…

---

## [Storage collision non-upgradable child and upgr. parent](https://forum.openzeppelin.com/t/storage-collision-non-upgradable-child-and-upgr-parent/42686)

<div class="topic-metadata">

**Author:** [@matadorcro](https://forum.openzeppelin.com/u/matadorcro)\
**Replies:** 1\
**Last updated:** [December 21, 2024, 3:36am UTC](https://forum.openzeppelin.com/t/storage-collision-non-upgradable-child-and-upgr-parent/42686 "2024-12-21T03:36:32Z")

</div>

Hi, I am wondering if there is any implication in using Initializable contarct with erc7201 storage layout as parent for child contract which is not proxy. Why am I asking is because I have situation where I would like t…

---

## [Contract not Upgrading through script](https://forum.openzeppelin.com/t/contract-not-upgrading-through-script/42043)

<div class="topic-metadata">

**Author:** [@Bano\_Falak](https://forum.openzeppelin.com/u/Bano_Falak)\
**Replies:** 2\
**Last updated:** [November 14, 2024, 4:30am UTC](https://forum.openzeppelin.com/t/contract-not-upgrading-through-script/42043 "2024-11-14T04:30:21Z")

</div>

Create an upgradeable contract using UUPS pattern. The main implementation contract inherits a parent contract(also UUPS); the child initialize calls parent initialize having ownable. Implementation(Child) initialize: …

---

## [Best practices for handling new functions when upgrading](https://forum.openzeppelin.com/t/best-practices-for-handling-new-functions-when-upgrading/41962)

<div class="topic-metadata">

**Author:** [@nour\_karoui1](https://forum.openzeppelin.com/u/nour_karoui1)\
**Replies:** 1\
**Last updated:** [October 28, 2024, 4:59pm UTC](https://forum.openzeppelin.com/t/best-practices-for-handling-new-functions-when-upgrading/41962 "2024-10-28T16:59:14Z")

</div>

Hello OpenZeppelin community, I'm working on upgrading a smart contract and need advice on the best architectural approach for handling multiple minting functions. Current situation: I have an existing function calle…

---

## [Upgrade (layout) compatibility between OZ 4.x and 5.x](https://forum.openzeppelin.com/t/upgrade-layout-compatibility-between-oz-4-x-and-5-x/41915)

<div class="topic-metadata">

**Author:** [@gnarvaja](https://forum.openzeppelin.com/u/gnarvaja)\
**Replies:** 2\
**Last updated:** [October 26, 2024, 4:42am UTC](https://forum.openzeppelin.com/t/upgrade-layout-compatibility-between-oz-4-x-and-5-x/41915 "2024-10-26T04:42:02Z")

</div>

I wanted to check if there's upgrade compatibility between OZ Contracts 4.x and 5.x, or in which contracts the compatibility was preserved and which is wasn't. I want to migrate some contracts that use ERC4626 and Acces…

---

## [Issue with upgradeToAndCall for 1967 Proxy Address and UUPS Implementation: Revert Error on Upgrade Attempt"](https://forum.openzeppelin.com/t/issue-with-upgradetoandcall-for-1967-proxy-address-and-uups-implementation-revert-error-on-upgrade-attempt/41825)

<div class="topic-metadata">

**Author:** [@Saad\_Ahmed\_Siddiqui](https://forum.openzeppelin.com/u/Saad_Ahmed_Siddiqui)\
**Replies:** 1\
**Last updated:** [October 16, 2024, 3:29pm UTC](https://forum.openzeppelin.com/t/issue-with-upgradetoandcall-for-1967-proxy-address-and-uups-implementation-revert-error-on-upgrade-attempt/41825 "2024-10-16T15:29:00Z")

</div>

I am facing an issue when trying to upgrade my proxy contract (ERC1967) to a new UUPS implementation using the upgradeToAndCall function. I have successfully deployed a new implementation contract, and I’m using an admin…

---

## [What's the difference between onlyInitializing and initialzer?](https://forum.openzeppelin.com/t/whats-the-difference-between-onlyinitializing-and-initialzer/25789)

<div class="topic-metadata">

**Author:** [@Richdevs](https://forum.openzeppelin.com/u/Richdevs)\
**Replies:** 4\
**Last updated:** [October 9, 2024, 3:40pm UTC](https://forum.openzeppelin.com/t/whats-the-difference-between-onlyinitializing-and-initialzer/25789 "2024-10-09T15:40:09Z")

</div>

function initialize(string memory name, string memory symbol, string memory baseURI\_) external onlyInitializing { require(bytes(baseURI\_).length\>0, "Invalid BaseURI"); \_\_NFT\_\_init(name, symbol, baseURI\_)…

---

## [Deploy tab not loading in OZ Defender - CORS error and HTTP 502](https://forum.openzeppelin.com/t/deploy-tab-not-loading-in-oz-defender-cors-error-and-http-502/41724)

<div class="topic-metadata">

**Author:** [@Asjad](https://forum.openzeppelin.com/u/Asjad)\
**Replies:** 4\
**Last updated:** [October 8, 2024, 3:50pm UTC](https://forum.openzeppelin.com/t/deploy-tab-not-loading-in-oz-defender-cors-error-and-http-502/41724 "2024-10-08T15:50:19Z")

</div>

Hello, We are deploying our application and proxy with OZ Defender. However something seems to be broken with Defender and I can't go to the Deploy tab or even see the Deploy status on the dashboard, I only see a spinne…

---

## [Storage slot issue with ReentrancyGuardTransientUpgradeable using v4 package version i.e without namespace storage](https://forum.openzeppelin.com/t/storage-slot-issue-with-reentrancyguardtransientupgradeable-using-v4-package-version-i-e-without-namespace-storage/41743)

<div class="topic-metadata">

**Author:** [@viraj124](https://forum.openzeppelin.com/u/viraj124)\
**Replies:** 0\
**Last updated:** [October 3, 2024, 8:32am UTC](https://forum.openzeppelin.com/t/storage-slot-issue-with-reentrancyguardtransientupgradeable-using-v4-package-version-i-e-without-namespace-storage/41743 "2024-10-03T08:32:41Z")

</div>

Hi, I was wondering since ReentrancyGuardTransientUpgradeable uses namespace storage for the transient storage slot, but if I wanna use a version of this contract with v4 version of the openzeppelin-contracts-upgradeabl…

[Next page](https://forum.openzeppelin.com/tag/upgrades/23.md?match_all_tags=true&page=1&tags%5B%5D=upgrades)
