Skip to main content

Smart Contract

It is important to collectors that all collected artworks are properly connected to the artist on chain. This allows collectors to verify that the artwork originated from the correct artist. While that might not always be the case since artists are doing custom projects and collaborations, on Verse we encourage artists to own the NFT smart contract for the correct on chain provenance.

How it works

On Verse artist would deploy a special smart contract for the project. We designed the smart contract to be compatible with Verse system and following standard ERC 721/1155 implementations by OpenZeppelin.

When contract is minted, Verse system has a temporary permission to mint NFTs to it. After the sale ends you should take this permission away. If you'd like to use this contract with Verse again in the future you can give the permission back, however each contract corresponds to a separate collection on OpenSea and minting a new smart contract might be prefered.

Implications

  • The wallet address you use for minting will be the owner of the smart contract, therefore you should mint the contract from the wallet address you'd like to use as an artist
  • You will be collection owner on OpenSea and will be the only address able to set royalties. Verse will not be able to edit OpenSea collection.
  • Collection appears on OpenSea as soon as the first NFT is minted to the contract
  • All NFTs acquired by collectors will be connected to you as an artist on chain (and on OpenSea)

OpenSea

Your Verse project collection will be linked in your OpenSea profile page. Once the first NFT is minted to your smart contract and collection appears on OpenSea you should edit the collection to set up the name, description, images and royalties for the project. Setting an OpenSea collection requires an avatar and a cover image. Our designer will happily provide you with the assets for your collection. Alternatively, if you’d like us to set up collection on your behalf you can make Verse wallet a collaborator for the collection on OpenSea.

How to set OpenSea royalties

Once the first NFT is minted your colelction appears on your OpenSea profile. Only the artist is able to set artist royalties. Video instructions

Note - before you can save royalties you must upload project logo.

Deploying Smart Contract

We have made deploying a smart contract a one-click simple user experience for the artists. Deploying the contracts cost gas fees which is about $50-$150 depending on the network activity.

You can deploy a new smart contract here. After minting the contract, please share Etherscan link or contract address to our team.

Technical details

We have adopted simple, audited contract designed by OpenZeppelin with few additions

  • EIP2981 Royalty Standard
  • OpenSea operator filter registry
  • Role to mint NFTs (temporarily granted to Verse)
  • Role to manage IPFS gateway/assets (temporarily granted to Verse)

Examples

OpenSea Profile page

Image below shows an example of how your Verse project will appear in your OpenSea artist page.

OpenSea NFT page

Image below shows an example of how your Verse NFT will appear on OpenSea. Each NFT will have a link to your OS profile page allowing collectors to verify the artist.

Custom contracts

Most of the time artist can deploy Verse contract with one click using our UI, however if for some reason you'd like to write your own contract that is also possible. The only requirement are:

  • delegate batch minting to Verse wallet (since Verse performs minting on behalf of the user)
  • discussion of how preview image (if used) should be generated

Delegated minting can be implemented in a similar way as shown below. Example of our implementation.

address public mintingManager;

modifier onlyMinter() {
require(msg.sender == mintingManager);
_;
}

function batchMintWithCreator(
address[] memory to,
address creator,
uint256[] memory tokenIds,
string[] memory tokenCids,
address royaltyRecipient,
uint256 royaltyValue
) public onlyMinter {
// minting implementation
}

Removing minting permission

After the sale you should remove Verse permission to mint NFTs into the contract. To do so

  1. Go to your contract page on Etherscan
  2. Click "Write Contract"
  3. Click "Connect to Web3" and connect your wallet
  4. Scroll down to find section setMintingManager and set address to null address 0x0000000000000000000000000000000000000000 as in the example below.

After these steps no one can mint NFTs to this contract. As a contract owner you are able to change this address again later in the future if you'd like. Feel free to get in touch if you'd like help with this step.