🎸cXc Music NFT Standard
Version: 1.0.0 Total Fields: 24 by: cXc.world
NEW : We have published more standards + moved the documentation to standards.cxc.world
Watch the Instructional Video on creating your Music NFT on WAX
There's also written instructions below
About this standard
The cXc Music NFT Standard works with the Atomichub and Neftyblocks to help any individual, collection, or application to make their own music NFT project.
This standard is a schema (more recently called "category" on atomichub.io) which allows you to make templates for Music NFTs.
The benefits of using this schema include forward compatibility (Geotags) getting artists plays that pay with traditional platform players, credits, links, and more.
There's no coding required. But you'll see the code below ready for changes if you'd rather exclude traditional players, or add extra audio fields. You can even make a music NFT from your phone.
This Schema exists within Atomic Asset's NFT standard on the atomicassets contract.
Feel free to use or modify this schema for any purposes in accordance with the license.
Check out our NFT collection using this standard here
Summary 🗞️
This standard includes:
Name of the NFT (Can be different than track title)
One audio field One video field Four images [Main, Back, Collection and Promo] One clip that can be anything used for a preview or extra media field of any type
Title [If different than name] Album name Track # [If it's just one track]
Any number of custom credits Any number of custom platform links
ISO Country code Readable locale Geotag as GeoJson Point
License Rarity
Technical Summary ⚙️
All media fields use IPFS. Fields labeled image
can be uploaded through Atomichub.com. Pinata is an option to host files with IPFD with a free tier.
All other info fields are strings (except "track" is int64)
year
is also a string in case there's a more accurate date desired or a range of years.
Rarity is filterable on many NFT marketplaces
License is for codes like "CC-BY", or can be used to declare a priviledge granted upon receiving NFT.
Geo 🌍
ISO country codes should follow ISO 3166-1 alpha-3 (USA, COL, etc)
Locale string intended to be used in this format "City, County, State" or corresponding values for a given locality
geotag is a GeoJson point stored as a string
name
string
NFT name
img
image
Primary image / Cover image
audio
audio
Audio file IPFS hash
video
video
Music video file IPFS hash
clip
video
Additional video file IPFS hash
backimg
image
Back cover of album / single
promo
ipfs
Extra image or video for promo poster, QR code, etc
collectionimg
image
Extra image for Collection, optional
artist
string
The artist, if you prefer a separate field to putting with other credits
title
string
The actual title of the track
album
string
Title of the album
track
int64
Number of the track on the album
released
string
Date first released
about
string
Description field with info about
credits
string
Array of song credits
youtube
string
Youtube URL
spotify
string
Spotify URL
soundcloud
string
Soundcloud URL
platforms
string
A list of all platforms the music can be found, and socials if desired
nation
string
Three-letter ISO (USA, BRA, AUS, etc)
locale
string
Local locales (State, County, City in USA)
geotag
string
GeoJSON Point stored as string, format "lat,lng" (e.g., "37.7749,-122.4194"), or a "[lat,lng]" coordinate array (e.g., "[37.7749, -122.4194]")
license
string
Declare license, (Copyright, CC0, MIT, etc)
rarity
string
How scarce is this NFT? Abundant Common Uncommon Rare Epic Mythic Unique
To use the cXc Music NFT Standard
First, you'll need a collection.
If you're new, follow this guide for more info.
To add a Music NFT schema to your collection, you may:
Manually re-create the schema from the UI (Remember schema is called 'category' on atomichub) by adding each field in the table above. This is 'the long way'
or, do it almost instantly by:
Copy the code below using the copy icon in the top-right of the code. Paste the following array into the
idata
field using the Atomic Assets createschema action to create your own schema on Atomic Assets, and then create template from the schema for each NFT you release via Atomichub or Neftyblocks.
ℹ️ Important
Using this schema does NOT mean that each template (or NFT) must have every field filled, but you can only choose from fields in your future templates. You may add fields to the schema later, but not remove them. New fields will appear at the end (ugly), thus, best to modify this standard to your needs before deploying.
cXc Music Schema 🎸
Merged with Simple version (This is the Simple Version) Works with Atomichub UI out of the box. You can even avoid touching this code by using Create Schema on atomichub to replicate.
Create a Template 🛠️ 🖼️.
Once you have your schema in place, use it to drop your own Music NFTs using tools like Atomichub and Neftyblocks.
Modify this schema 🛠️
The power is in your hands! You can add, remove, or change fields when making your own schema.
Ideas:
Artist - If you'd rather have your name here than in credits Multiple Audio fields - Duplicate the audio fields to include all songs on an album (DYOR on marketplace support) Metadata - Add custom metadata like the key, BPM, time, whatever you want
If you'd rather include all of your links in the Platform field, you can remove the Spotify, Soundcloud, and Youtube field.
Removing Youtube will also disable Youtube player from showing up on Atomichub and likely other marketplaces.
Power of the Schema ✨ 🧙♂️
Using this template ensures maximum forward-compatibility with music.cXc.world
There is no magical benefit (yet) of using this standard, just practical ones. Youtube plays can bring extra revenue, as will the links to other players. You may credit all involved, and geographic data opens up new use cases for your NFT.
In the future it's possible a mapp / dapp (like cXc) to allow users to register their own schemas that adhere to this standard, creating a Music-NFT exclusive platform that doesn't rely on accounts or collection names alone.
Evolution of the Schema 🚀 🛸
This schema will grow and evolve. Feel free to open issues on this repo with your suggestions.
If you translate to another blockchain or NFT standard, please send a pull request adding a file named .md in the main directory containing the code needed to deploy, or open an issue with the code and I can update the repo if you prefer.
Mini Change Log
1.0.0
Changed year
to released
Changed types to better work with atomichub's UI Improved explanation + added image
0.1.4
Added Additional clip
and img fields Changed promo
description to suggest video + image Merged Simple version, made Simple the only option. To use old version, change string to string[] and use. This isn't recommended as there's little benefit and it's not working well through the Atomichub website
0.1.3
Added artist
, year
, and collectionimg
0.1.2
Added rarity
and license
0.1.1
Added track
and album
~ Created with 💜 by cXc.world ~
Improvements to this standard were made possible by Wax Labs
Last updated