The following is a music metadata standard for NFTs released through the Sona protocol. The associated JSON object is uploaded as IPFS metadata is pointed to by the contentURI on the generated music NFT.

<aside> 🚨 NOTE: Data included in IPFS metadata should be permanent — rotating licenses and data that can be updated should not be included here.

</aside>

Standard

Name Type Description Required (Y/N)
_version string version number of the executed smart contract code Y
title string name of the track Y
artist string name of the artist Y
description string description of the track Y
duration_ms uint64 length of the song in miliseconds Y
image string ipfs content hash for the cover image of the track Y
external_url string client url where the track is purchased/sold/listened to Y
animation_url string ipfs content hash of the uploaded track animation Y
license License nested object for all license Y
lyric Lyric nested object for lyrics N
collaborations Collaboration[array] nested object for collaborations N
attributes Attributes nested object for track attributes N
mime string audio mimeType Y
lang string language the song and lyrics are in Y
lyrics string new line delimited lyric blob N
artwork Artwork nested object for artwork Y
legal Legal nested object for legal Y

License Meta Object

Name Type Description Required (Y/N)
isrc string International Standard Recording Code N
iswc string International Standard Musical Work Code N
upc string Universal Product Code N
ean string International Article Number N

Collaboration Meta Object

Name Type Description Required
name string name of the collaborator Y
address string(caip) wallet address of the collaborator N
type enum [engineer, producer, writer, singer, musician] collaborationType of other artists on the track Y

Attributes Meta Object

Name Type Description Required
genre enum [afro beats, dancehall, electronic, ….] genre of the track N
bpm uint8 beats per minute of the track N
label string label the track points to N
project string ep/record/album title N

Audio Meta Object

Name Type Description Required
low string content url for low fidelity N
medium string content url for medium fidelity N
high string content url for high fidelity N
lossless string content url for lossless fidelity N

Artwork Object

Name Type Description Required
vizualizer ArtworkAttribute object for the content vizualizer N
cover ArtworkAttribute object for the content cover N
video ArtworkAttribute object for the content video N

ArtworkAttribute Type

Name Type Description Required
uri string uri for the artwork type N
mime string mime type for the content N

Legal Object

Name Type Description Required
release_date uint32 unix timestamp of the release date Y
distributor string distributor of the track N
region string region the track was released Y
license string license/ownership of the track N