For creators, you can implement the owner
, contractURI
, and royaltyInfo
functions on your ERC721 or ERC1155 contracts to automatically populate your collection’s info and royalty settings on Mint Square.
zkSync Era launchpad
We’ve integrated with Omnisea, a drag-and-drop NFT launchpad on zkSync Era. All NFT collections minted on Omnisea will automatically show up on Mint Square (once the first NFT in the collection is minted), including collection info and royalty settings.
Cairo 1.0 regenesis
Please read and follow this post to prepare and upgrade your contract to Cairo 1.0 during regenesis.
contractURI
to populate collection info**zkSync Era:**
function contractURI() public view returns (string memory);
**Starknet:**
func contractURI() -> (
contractURI_len: felt, contractURI: felt*
) {
}
Implement the contractURI
function in your contract as above to return the url that contains the following json format:
{
"name": "Pxls",
"description": "Four hundred pxls, one unique collaborative rtwrk every day",
"image": "<https://pxls.wtf/collection_logo.jpg>",
"banner_image_url": "<https://pxls.wtf/collection_banner.jpg>",
"external_link": "<https://pxls.wtf/>"
}
royaltyInfo
to set royalty settingsImplement the royaltyInfo
function according to the EIP-2981 (NFT Royalty Standard) as the following:
**zkSync Era:**
function royaltyInfo(uint256 _tokenId, uint256 _salePrice) external view
returns (address receiver, uint256 royaltyAmount);
**Starknet:**
func royaltyInfo(tokenId: Uint256, salePrice: Uint256) -> (
receiver: felt, royaltyAmount: Uint256
) {
}
Make sure to also return True for the value 0x2a55205a
in the contract's supportsInterface
function. Our marketplace contract will automatically call this function on your contract for every transaction to automatically pay out the royaltyAmount
to the receiver
address as returned by your function.
owner
to refresh collection and royalty info**zkSync Era:**
import "@openzeppelin/contracts/access/Ownable.sol";
contract MyNFTCollection is ERC721, **Ownable** {
}
**Starknet:**
func owner() -> (owner: felt) {
}
Implement the owner
function in your contract that returns your collection owner address. A “Refresh collection” button as shown below will appear in your collection page when you’re connected to that same owner address on Mint Square. If you’ve updated the contractURI
or royaltyInfo
function, you can simply click on the button to refresh the info to be reflected on Mint Square.