Create collections

All NFTs and semi fungible tokens must belong to a collection (also known as smart contract). In this step, we explain how to create and manage your collections using Crossmint


A collection is just a set of NFTs that are grouped with each other. These groupings are used by other applications such as marketplaces or wallets to show NFTs together under one page.

It is entirely up to you to determine how to group NFTs in your project under collections, however, keep in mind that once an NFT has been minted, it will always belong to the collection you registered it to.

Examples of what represents a collection:

  • "Bored Ape Yacht Club" is a collection, and it's different than "Mutant Ape Yacht Club" (another collection)
  • Event ticketing platforms, may use a collection for each event they emit tickets for
  • Videogames may use a different collection per asset type (swords, shields, etc)

Collections created with Crossmint support the following configurations:

  • Fungibility:
    • Non-fungible: each item is unique and there's only one of them. This modality is the most common and flexible.
    • Semi-fungible tokens (editions): every item can have several copies of it belonging to different users. This may be more appropriate for loyalty programs, for example.
  • Smart contracts:
    • EVM (Ethereum, Polygon, ...): ERC721, ERC1155
    • Solana: Metaplex Collection Standard
  • Supply: unlimited (you control how many NFTs are minted)
  • Delivery mechanism:
    • Free mint (airdrop): send NFTs to your users without requiring them to pay
    • Paid mint (coming soon): accept payments before delivering an NFT


Have an existing smart contract?

If you already have an NFT smart contract deployed, you can still import it for use with Crossmint. To do so, refer to the guide for bringing your own contract

Creating an NFT collection

Creating an NFT collection can be done in a single API call.


Default collections

Every Crossmint project comes with two default collections already created for you: one in Polygon and one in Solana. You can skip the step of collection creation and use those instead, by using the collection id "default" when minting NFTs.

Here's some sample code for creating a collection in Polygon, in staging:

curl --request POST \
     --url \
     --header 'content-type: application/json' \
     --header 'x-client-secret: <CLIENT_SECRET>' \
     --header 'x-project-id: <PROJECT_ID>' \
     --data '
  "chain": "polygon",
  "metadata": {
    "name": "A new collection",
    "imageUrl": "",
    "description": "A new collection with its own dedicated smart contract"

Pay special attention to collection metadata! The metadata you provide will be later shown as the cover image / name in marketplaces such as OpenSea or MagicEden.

In order to understand more in depth what each of the request parameters does, refer to the API reference:

Check the status of your collection

Collections have to be deployed to the blockchain. This takes a few seconds or up to a minute to execute, depending on the blockchain used.

You can use the collection status API to check what the status of a collection is. For example:

curl --request GET \
     --url \
     --header 'x-client-secret: <CLIENT_SECRET>' \
     --header 'x-project-id: <PROJECT_ID>'

Refer to the API reference for details on the API request and response.

Advanced: List all collections under your account

curl --request GET \
     --url \
     --header 'x-client-secret: <CLIENT_SECRET>' \
     --header 'x-project-id: <PROJECT_ID>'

Refer to the API reference for details on the API request and response.