Can I write an ERC1155 contract with each token id having a different URI?

I wanted to an ability to update uri for a specific token which is not possible without changing the base uri through current implementation all tokens share a common base uri. If I do a custom implementation, would that still be ERC1155?


You will have to do a custom implementation creating a new storage variable to save the information and overriding _setURI and uri functions, or comming up with a new function of your own, however works best for you.

To answer your last question if you do a custom implementation inheriting from the Open Zeppelin contract it will still be ERC115.

Looking at the API, it would appear not.

ERC721 has an extension interface with a per-token URI but 1155 appears to have only one URI for every token.

Our contracts don't support this out of the box but you can inherit ERC1155 and override the uri(uint tokenId) function and return a different URI per id.