Introduction
An NFT collection is a common grouping of NFT tokens. The implementation details of these collections can be surprisingly complicated, and differ depending on the NFT standard(s) involved, the chains the NFTs are located on, and the intent of the original creators. In this article, we're going to go through what actually defines an NFT collection on each chain, the difference between contracts and collections, and how to properly implement collections for each chain ecosystem.
On vs. off chain collections
When it comes to discussing NFT collections, it's important to understand the distinction between on and off chain data. As you might expect, on-chain refers to anything that is stored on a blockchain itself. For an NFT, this usually includes the name, description, and other core identifying features. Ownership of a token would also be considered to be held on-chain. Off-chain data in contrast, is data associated with a token or collection that is held on a non-blockchain source, such as IPFS, Arweave, or a traditional file store like an Amazon S3 bucket. Depending on the collection type, the actual information defining the collection may be on or off chain, which has important implications for both collection creation, and querying of the data later on.
What are the major NFT collection ecosystems?
As of late 2023 there are three main different ecosystems to consider when thinking about NFT collections. The EVM ecosystem (which comprises Ethereum and the related chains), Solana, and Bitcoin Ordinals. Collections are constructed differently for each, and we'll discuss the major differences.
How do NFT collections work on EVM-based chains?
NFTs were originally popularized on Ethereum, the earliest major smart contract platform, and therefore some of the earliest NFT collections that exist predate many of the standards that are now common. Cryptopunks is the major example, along with the original Cryptokitties NFTs. Today, most NFT collections on Ethereum (and other EVM-based chains) adhere to either the ERC721 (for single ownership tokens) or ERC1155 (for tokens with multiple copies) standards.
Contracts vs. Collections
To understand how collections work on EVM chains, it's important to understand the distinction between contracts and collections, as the terms are often used synonymously. On EVM-based chains, an NFT contract represents a smart contract that issued NFTs. Each contract has a unique on-chain address (e.g., ``0x23581767a106ae21c074b2276d25e5c3e136a68b` in the case of Moonbirds). NFTs adhering to the 721 or 1155 standards can always be identified by the combination of their contract address and individual token ID. (Token IDs can be any number, but are often 1-9999 in the case of some popular PFP projects). Because they are represented on-chain, contracts remain the same no matter what marketplace or protocol is interacting with the NFT.
Where collections differ from contracts on EVM chains is that they are usually represented off-chain, most commonly being tied to a specific NFT marketplace. Taking Moonbirds again as the example, the homepage on OpenSea for the collection can be found here: https://opensea.io/collection/proof-moonbirds, with proof-moonbirds being a unique identifier. Collections may be represented by different identifiers across different marketplaces and protocols.
Usually (but with some important distinctions) contracts map 1:1 with collections, but regardless, the collection definition and metadata will still be held off-chain. Situations where contracts do not map 1:1 include marketplace shared storefronts (where multiple collections are defined off-chain to exist on a single contract), specific collections like Artblocks, or examples like Rarible, where a single collection spans multiple contracts.
How do I create an NFT collection on Ethereum or another EVM-based chain?
For most creators in most situations, it's quite simple. When you mint your NFT collection on your platform of choice, assuming the intent is for the contract and collection to be 1:1, all you need to do is enter the collection metadata (e.g., description, social links, media) on the secondary marketplace of your choice (such as OpenSea). This will then be picked up by indexers such as SimpleHash, allowing the data to be easily queryable.
How do NFT collections work on Solana?
Collection definition is more nuanced on Solana. Most collections are defined on chain, according to the common Metaplex standard, but there are many other possibilities.
SimpleHash has a systematic approach: Collections verified by Metaplex take precedence, with their on-chain name defining the collection's identity in the SimpleHash system. Each NFT sharing a metaplex_mint is grouped under the same collection_id. For collections recognized by Magic Eden, SimpleHash assigns a collection_id upon mint or ingestion, identifying them through known collection names.
When NFTs are part of a merkle tree, absent a verified collection, grouping relies on the off-chain collection name or defaults to the first NFT name, discounting numerical identifiers. Similarly, NFTs created from a Candy Machine with the same first_verified_creator field are collated into one collection, with the naming logic following the merkle tree approach.
If an NFT is the Metaplex collection mint itself, it stands alone, as it represents a collection, not part of one. NonFungibleEditions follow the same grouping strategy, uniting editions of a master NFT. Lastly, when no association with Magic Eden, Metaplex, or a merkle tree is found, NFTs receive a unique collection_id, signifying a singular collection. Names are then deduced from available off-chain data, again omitting numerical suffixes, and default to the NFT symbol if necessary.
How do I create an NFT collection on Solana?
We usually recommend adhering the the Metaplex certified collection standard. Creating a certified collection on Solana with the Metaplex standard requires crafting a Collection NFT to store metadata and manage the collection on-chain. This makes identifying and managing collections simpler and verifiable without extra on-chain calls. Regular NFTs are linked to Collection NFTs via a "Belong To" relationship in the Metadata account. A Collection NFT is differentiated from Regular NFTs by the CollectionDetails field, indicating it's a collection with attributes like size—a count of linked NFTs, which can be auto-computed or manually set.
To ensure authenticity, the Collection field in an NFT's Metadata must point to the Collection NFT's public key and be verified by the Collection NFT's authority. This verification process prevents fraudulent claims of an NFT belonging to a collection. Marketplaces and explorers must check the Verified boolean; it should be true, indicating the Collection NFT authority has signed off on the NFT being part of the collection.
Collection authorities can delegate verification powers to trusted parties for managing collection membership. Metaplex's web tool simplifies creating Collection NFTs and adding NFTs, handling the delegation and verification process. Through it, creators connect their wallets, enter collection details, and select NFTs by mint address, verified creator, or CSV file. Post creation, the collection's parent NFT and member NFTs are managed seamlessly.
How do Bitcoin Ordinals collections work?
Bitcoin Ordinals do not use smart contracts. Instead, each NFT is identified by a unique inscription ID. Creating a common inscriptions collection can be much more involved than on other ecosystems, but there are dedicated platforms that make it easier.
Magic Eden inscription tool:
Magic Eden has a easy to use tool for inscribing Ordinals which abstracts away much of the complexity - it can be found here.
Use another dedicated platform, like Gamma
Creators could also consider using another dedicated platform, such as Gamma.
Using Gamma simplifies the inscription process, bypassing the technicalities of Bitcoin Core and direct blockchain interaction, making it more approachable for users looking to easily mint digital assets onto the Bitcoin blockchain.
Manually create inscriptions using the latest Bitcoin Core client
To create an inscriptions collection manually on Bitcoin Ordinals, these are the steps involved.
Setup:
- Install the latest Bitcoin Core client.
- Configure it to index transactions and allow REST interfaces.
- Sync the Bitcoin blockchain fully.
Tooling and Wallet Creation:
- Obtain the ord utility, a specialized tool for working with Ordinals.
- Create a new wallet using Bitcoin Core for managing Ordinal inscriptions.
Funding:
- Transfer a small amount of bitcoin to the newly created wallet to cover transaction fees.
Content Preparation and Creating Inscriptions:
- Prepare the content for inscription, keeping size limitations in mind to manage fees.
- Use the ord utility to inscribe content onto individual satoshis, generating unique inscription IDs.
Collections:
- For collections, create parent-child relationships among inscriptions by specifying parent IDs during the inscription process.
Transfers:
- Send and receive inscriptions using the ord utility, requiring the recipient’s address for transfers.
Throughout the process, maintain vigilance over transaction sizes and fees, and manage your inscriptions using the ord utility while Bitcoin Core runs in the background.
How can I query the information about an NFT collection?
Retrieving this information regarding NFT collections is made complicated without a unified schema. Given NFT collections can be defined on or off chain, on different marketplaces, or in completely different formats depending on the chain, this can be a huge hassle for developers building crypto wallets, portfolio trackers, accounting software, or trading applications. Getting the details regarding NFT collections matters - for building a great user experience, but also to accurately track market data, such as sales & transfers, listings, top bids, and collection-level floor prices.
SimpleHash makes it easy to deal with NFT collection data. Using the API, developers can retrieve unique collection Identifiers, which are distinct for each collection, to provide a common approach accross chains and standards, while also supporting multiple-collection contracts. The API provides a unified schema, no matter the collection type, or whether it is defined on or off chain originally.
Fundamental attributes like name, description, image_url, and banner_image_url are included to give a basic visual and descriptive representation of the collection. Collections are categorized by type, such as art or gaming, along with a collection's external website and social media platforms, including Twitter, Discord, Instagram, Medium, and Telegram, where available. The API also lists the collection pages across various platforms, including the verification status of a collection on each marketplace. Spam scores are available to assess collection legitimacy, plus financial insights such as floor prices and top bids data. To read more about our collection model, check out the reference spec here.
About SimpleHash
SimpleHash provides real-time access to metadata, media, sales, floor prices, listings, bids, collections and more across 40+ chains.
We make it easy to build NFT experiences that users love. We've partnered with some of the leading players in crypto - please reach out if you'd like to learn more.