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.

1. 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/>"
}

2. royaltyInfo to set royalty settings

Implement 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.

3. 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.

Screenshot 2022-12-17 at 6.16.18 PM.png