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>
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 |
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 |
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 |
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 |
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 |
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 |
Name | Type | Description | Required |
---|---|---|---|
uri | string | uri for the artwork type | N |
mime | string | mime type for the content | N |
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 |