I have create a very basic ERC1155 token from this tutorial:
// contracts/GameItems.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.6.0;
import "@openzeppelin/contracts/token/ERC1155/ERC1155.sol";
contract GameItems is ERC1155 {
uint256 public constant GOLD = 0;
uint256 public constant SILVER = 1;
uint256 public constant THORS_HAMMER = 2;
uint256 public constant SWORD = 3;
uint256 public constant SHIELD = 4;
constructor() public ERC1155("https://game.example/api/item/{id}.json") {
_mint(msg.sender, GOLD, 10**18, "");
_mint(msg.sender, SILVER, 10**27, "");
_mint(msg.sender, THORS_HAMMER, 1, "");
_mint(msg.sender, SWORD, 10**9, "");
_mint(msg.sender, SHIELD, 10**9, "");
}
}
As you can see, 5 tokens are created when the contract is deployed. Each of this 5 token is associated to a metadata file:
https://game.example/api/item/0000.....0001.json
https://game.example/api/item/0000.....0002.json
https://game.example/api/item/0000.....0003.json
https://game.example/api/item/0000.....0004.json
https://game.example/api/item/0000.....0005.json
I want to customize this 5 urls. They need to be very different. Is it possible ? I can override ERC1155 functions but i want to be compliant to ERC1155 in order to keep my token compatible with market places.
Thanks