DEV Community

Douglas James Butner
Douglas James Butner

Posted on

πŸ–ΌοΈ Introducing cXc.world's Music NFTs Standard: Request for Feedback 🎸🀘

In this post, we'll introduce the cXc Music NFT standard first draft, and welcome your feedback

Making Music NFTs work for all artists

Background

There's been a lot of talk and anticipation on Music NFTs across the whole blockchain space, not just WAX. On WAX, we've seen a few music NFT projects take shape, including Uplift, YoshiDrops and Shawn Dall (all friends)

Currently, Music NFTs are near-monopolized by big-name artists, but we want to change that.

Every artist should be able to mint a professional Music NFT with little effort, and without all the guesswork + technical knowledge.

In cXc Beta, we're going to offer a NFT builder that gives you the option to mint to your own collections by duplicating our schemas for you, or, if you meet the requirements of minimum Ups on cXc.world, you can mint to our exclusive collection that will give you added credibility, yet is within reach of every artist, whether just starting out or already a local legend.

cXc's Music NFT Specification

Our goal is to empower the ARTIST, including promoting their centralized platforms (that usually pay for streams) and also set up the NFT with useful geospatial information that future Dapps can use, meaning this NFT could have a long and useful life, even outside of cXc.

Keep in mind all of these fields are OPTIONAL. Meaning if you don't want to have the location information, or don't have a promo image, that's okay!

See an example asset with a song from cXc's founder here and an updated template with the changes we added here (most accurate example)

Screen Shot 2021-05-10 at 6.29.03 PM.png

The NFT Data

name: name (Example: Bluebirds [Beat by Ours Samplus] [Scarfinger Remix])
type: text

name: img (This is the main image, and will show first up by default)
type: image

name: audio (Only one audio file. We may release another specification that allows multiple audios later on)
type: ipfs

name: video (One optional video, like a music video, uploaded to IPFS. You can also skip this for youtube, but it won't show up on the NFT)
type: ipfs

name: backimg (Supposed to be like an album back cover, but flexible to your use case )
type: image

name: promo (Optional image which you can use to put more information about the song, a QR code, whatever you like )
type: image

name: about (Any text the user wants to add about the music)
type: text

name: credits (Put all your credits here, not in the title. Example: ["Artist: God Sol One Love","Beat: Ours Samplus, Scarfinger"] Note: You provide the credit 'type' and 'name' We'll format this in the NFT builder on music.cXc.world)
type: text array

We've put our three supported players separate from other platforms to highlight them, but you'll have to option to ignore these and just include all links in the "platforms" field later if you prefer

name: youtube (Just a link)
type: text

name: spotify
type: text

name: soundcloud
type: text

name: platforms (This is another text array [like credits] which we'll format from your links using our built-in NFT creator. You can put any platform's links you want, not just those supported by cXc)
type: text array

name: nation (Example: USA. This is a ISO standard abbreviation, and putting it here means future dapps can sort your music better)
type: text

name: locale (Example: Accident, Garrett County, Maryland. Optional, and allows other dapps to organize your music, plus shows others where you're creating from.)
type: text

name: geoloc (Example: [75.355, 15.256] You can share the recording location info here, just if you want! It's a GeoJson point, so it can mean your NFT can be put on any map in the future)
type: text

name: license (Can be a link or symbol [CC])
type: text

name: rarity (Can be set automatically by cXc by the max, or manually set for custom values)
type: text

Requesting your input

Tell us what you would like to see in the spec that you don't already. I'm also curious what you think about putting the SoundCloud and Spotify and YouTube links separate from the other platform links. This is optional, but still shows opinionation in our standard.

Chances are, you see things we don’t, so don’t hesitate to share!

You may notice that we don't have a cXc link by default. That's because we are going to suggest that users put it as one of the platforms, but not force anyone to include their cXc link if they don't want to. We’re making this to help artists first, no matter how they want to represent themselves.

Open Standard

Use this standard as you like and modify it to your needs. You'll find the exact data you'll need to make a matching schema on Atomichub in the comments.


πŸ’₯ FIND OUT MORE ABOUT cXc πŸ’₯


Current X Change is dedicated to harmonizing Humans, Collectives, and Gaia. Our media Mapps are just the start. As we refine Purple, we also seek to redefine what it means to come together as humans and co-create. We hope you'll enjoy the tools already here, and are infinitely stoked for what the future holds.

πŸ‘οΈ Step into our vision

πŸŽ₯ Add Music to cXc.world

πŸ’Έ Get to know our Economy

πŸ›£οΈ Roadmap

πŸ”— cXc Linktree


Trade 🟣 PURPLE/WAX ~~ πŸ”΅ BLUx/WAX

Get a quick overview of these tokens in our Economic Brief

Top comments (1)

Collapse
 
dougbutner profile image
Douglas James Butner

Here's our exact schema (0.1.1) for anyone who wants to use it!

[
        {
          "name": "name",
          "type": "string"
        },
        {
          "name": "img",
          "type": "image"
        },
        {
          "name": "audio",
          "type": "ipfs"
        },
        {
          "name": "video",
          "type": "ipfs"
        },
        {
          "name": "backimg",
          "type": "image"
        },
        {
          "name": "promo",
          "type": "image"
        },
        {
          "name": "about",
          "type": "string"
        },
        {
          "name": "credits",
          "type": "string[]"
        },
        {
          "name": "youtube",
          "type": "string"
        },
        {
          "name": "spotify",
          "type": "string"
        },
        {
          "name": "soundcloud",
          "type": "string"
        },
        {
          "name": "platforms",
          "type": "string[]"
        },
        {
          "name": "nation",
          "type": "string"
        },
        {
          "name": "locale",
          "type": "string"
        },
        {
          "name": "geoloc",
          "type": "string"
        },
        {
          "name": "license",
          "type": "string"
        },
        {
          "name": "rarity",
          "type": "string"
        }
      ]
Enter fullscreen mode Exit fullscreen mode