Skip to main content

Collections

A Collection has following characteristics:

  • It groups together a set of items.
  • It can be deployed or linked to a smart contract on a network supported by CNFT.
  • It implements a specific token standard, being either ERC721 or ERC1155.
  • It has a token ID assignment strategy, which determines how the items within the collection receive their token IDs.
  • It enables different functionalities based on the contract your deploy.

Token ID Assignment Strategy

Token ID Assignment StrategyContract SupportItem LockingContract Mint function
AUTOMATICERC721, ERC1155Automatically assigns a token ID when locking an Item.Expects a token ID when calling the mint function. Token with the ID is minted from the contract.
MANUALERC721, ERC1155Requires manually passing a token ID when locking an Item.Expects a token ID when calling the mint function. Token with the ID is minted from the contract.
EXTERNALERC721No token ID required when locking an Item.Expects no token ID when calling the mint function. Token ID will be assigned during the mint function.

Contract setup

The following table lists the different ways to configure the smart contract for a collection.

Contract typeDescription
PlatformThe platform provides a few default contracts that a user can choose from, including StandardERC721, StandardERC1155, FrozenERC721, FrozenERC1155, FlexibleERC721, FlexibleERC1155, and SignatureERC721. See more on using platform contracts.
CustomThe user provides a custom smart contract implementation subject to restrictions below. This is also known as Bring your own contract (BYOC).
ExternalThe user links the collection to an existing smart contract on a network supported by CNFT.

Learn how to configure collection contracts.

Restrictions

To ensure that a custom contract is compatible with the platform, the deployment process will check for specific capabilities. Capabilities are determined by the contract's ABI. You can get the known capabilities ABIs from the public capabilities endpoint.

To determine the token type of the contract, the contract must have one of the following capabilities:

  • ERC721
  • ERC1155

To mint NFTs through the platform, the contract must have one of the following capabilities:

  • ADMIN_MINT_SINGLE
  • ADMIN_MINT_SINGLE_URI
  • ADMIN_MINT_MULTIPLE
  • ADMIN_MINT_MULTIPLE_NO_ID
  • MINT_VOUCHER