# Can I update the uri of ERC1155 contract after deployment?

**URL:** <https://forum.openzeppelin.com/t/can-i-update-the-uri-of-erc1155-contract-after-deployment/7192>\
**Category:** Support\
**Created:** [April 21, 2021, 8:20am UTC](https://forum.openzeppelin.com/t/can-i-update-the-uri-of-erc1155-contract-after-deployment/7192 "2021-04-21T08:20:29Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![llp0574](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.openzeppelin.com/llp0574/32/3125_2.png) [@llp0574](https://forum.openzeppelin.com/u/llp0574)\
**Post date:** [April 21, 2021, 8:20am UTC](https://forum.openzeppelin.com/t/can-i-update-the-uri-of-erc1155-contract-after-deployment/7192/1 "2021-04-21T08:20:29Z")

</div>

Hi team,

I want to ask whether I could update uri of ERC1155 contract after deployment in case of the path of uri occurred change?

---

<div class="post-metadata">

**Author:** ![abcoathup](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.openzeppelin.com/abcoathup/32/415_2.png) [@abcoathup](https://forum.openzeppelin.com/u/abcoathup)\
**Post date:** [April 22, 2021, 1:33am UTC](https://forum.openzeppelin.com/t/can-i-update-the-uri-of-erc1155-contract-after-deployment/7192/2 "2021-04-22T01:33:42Z")

</div>

Hi @llp0574,

Yes, you would need to add functionality to change the URI protected with appropriate access control so only accounts with permission could change the URI. ([https://docs.openzeppelin.com/contracts/4.x/access-control#role-based-access-control](https://docs.openzeppelin.com/contracts/4.x/access-control#role-based-access-control))

You would also want to clearly communicate with your community under what circumstances this would be done.

One option would be to have this functionality controlled by a community multi-sig with various stakeholders in your community being signatories. Also see: [https://blog.openzeppelin.com/admin-accounts-and-multisigs/](https://blog.openzeppelin.com/admin-accounts-and-multisigs/)

---

<div class="post-metadata">

**Author:** ![llp0574](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.openzeppelin.com/llp0574/32/3125_2.png) [@llp0574](https://forum.openzeppelin.com/u/llp0574)\
**Post date:** [April 23, 2021, 10:31am UTC](https://forum.openzeppelin.com/t/can-i-update-the-uri-of-erc1155-contract-after-deployment/7192/3 "2021-04-23T10:31:40Z")

</div>

Thanks for your response! And I also want to ask should I emit the URI event when I change uri in a new functionality which may be called `changeURI` in my contract, is it a common way accepted by the third party NFT platform like Opensea?

---

<div class="post-metadata">

**Author:** ![abcoathup](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.openzeppelin.com/abcoathup/32/415_2.png) [@abcoathup](https://forum.openzeppelin.com/u/abcoathup)\
**Post date:** [April 26, 2021, 6:12am UTC](https://forum.openzeppelin.com/t/can-i-update-the-uri-of-erc1155-contract-after-deployment/7192/4 "2021-04-26T06:12:01Z")

</div>

Hi @llp0574,

I checked the EIP ([https://eips.ethereum.org/EIPS/eip-1155](https://eips.ethereum.org/EIPS/eip-1155)) and it has the following:

> ```auto
> /**
> @dev MUST emit when the URI is updated for a token ID.
> URIs are defined in RFC 3986.
> The URI MUST point to a JSON file that conforms to the "ERC-1155 Metadata URI JSON Schema".
> */
> event URI(string _value, uint256 indexed _id);
> 
> ```

> _Changes_ to the URI MUST emit the `URI` event if the change can be expressed with an event (i.e. it isn’t dynamic/programmatic).

I would check with any services that you are planning on using to see how they expect global changes to URI to be implemented.

---

<div class="post-metadata">

**Author:** ![llp0574](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.openzeppelin.com/llp0574/32/3125_2.png) [@llp0574](https://forum.openzeppelin.com/u/llp0574)\
**Post date:** [May 16, 2021, 4:00pm UTC](https://forum.openzeppelin.com/t/can-i-update-the-uri-of-erc1155-contract-after-deployment/7192/5 "2021-05-16T16:00:45Z")

</div>

Very kind of your response, and I’ve finished our contracts based on you suggestions, thank you very much!
