3

What information would I put in a Metaplex programmable NFT's json if I wanted to make a music nft? Where should I put the link to the mp3 file and what can I leave unfilled out?

I have a current implementation based on these docs: https://docs.metaplex.com/programs/token-metadata/token-standard#token-standards

Here's what I have right now with some questions commented for specific fields:

{
    "name": "song name",
    "symbol": "SONGSYMBOL",
    "description": "song genre, posting date, etc.",
    "image": "URI to image",
    "animation_url": "URI to asset's animation",  // what's this?
    "external_url": "URI to external URL defininig asset",  // Would this just be a URL to my website?
    "attributes": [],
    "properties": {
        "files": [
          {
            "uri": "https://www.arweave.net/abcd5678?ext=png",   // what's the difference between this image and teh image above?
            "type": "image/png"
          },
          {
            "uri": "https://watch.videodelivery.net/9876jkl",   // what is this?
            "type": "unknown",
            "cdn": true
          },
          {
            "uri": "https://www.arweave.net/efgh1234?ext=mp4",  // what would I replace this with to make it an mp3?
            "type": "video/mp4"
          }
        ],
        "category": "video",
      }
}

1 Answer 1

4

For music NFTs, I'd include your .mp3 in the animation_url per Metaplex docs.

I'd probably add these song genre, posting date, etc. as attributes, e.g.:

    "attributes": [
        {
            "trait_type": "Genre",
            "value": "YOUR_GENRE"
        },
        {
            "trait_type": "Artist",
            "value": "YOUR_NAME"
        },
        {
            "trait_type": "Posting Date",
            "value": "2023-02-16"
        },
        {
            "trait_type": "License",
            "value": "Exclusive"
        }
    ],

And again in your files:

    "properties": {
        "files": [
            {
                "type": "audio/mp3",
                "uri": "YOUR_MP3"
            },
            {
                "type": "image/png",
                "uri": "URI_OF_A_COMPLIMENTARY_IMG"
            }
        ],
        "category": "audio",

    },

And yes, external_url is your website.

fully metadata would look something like this:

{
    "name": "YOURSONG_NAME",
    "symbol": "SONG",
    "description": "some description",
    "seller_fee_basis_points": 100,
    "external_url": "https://YOUR_WEBSITE",
    "attributes": [
        {
            "trait_type": "Genre",
            "value": "YOUR_GENRE"
        },
        {
            "trait_type": "Artist",
            "value": "YOUR_NAME"
        },
        {
            "trait_type": "Posting Date",
            "value": "2023-02-16"
        },
        {
            "trait_type": "License",
            "value": "Exclusive"
        }
    ],
    "animation_url": "URI_TO_YOUR_MP3",
    "image": "IMG_EG_ALBUM_ART",
    "properties": {
        "files": [
            {
                "type": "audio/mp3",
                "uri": "YOUR_MP3"
            },
            {
                "type": "image/png",
                "uri": "URI_OF_A_COMPLIMENTARY_IMG"
            }
        ],
        "category": "audio"
    }
}

FWIW, I don't think there's anything special here in the metadata re: programmable vs standard NFT. Examples of both here.

2
  • Thanks! What would be the difference between the image in the properties versus the image in the outer part of the .json? And also, what's the purpose of putting information inside of the attribute tags? In the case of .mp3 files that information is already stored within the mp3 files (the first 128 bytes contain metadata). Is there a purpose in making it available in the json other than making the information easier to find?
    – xkycc
    Commented Feb 16, 2023 at 19:59
  • RE: Image (outer vs properties): the standard is to include it in both. I'm not entirely sure why both exist, but most NFTs will include both (include the outer img uri inside the files as well). The properties value array does let you include others so you could have secondary images as well. RE: attribute tags: this will allow for any marketplace or Solana wallet to easily get the metadata. If you don't use those attributes Phantom or metaplex won't find your metadata. Not having it would mean standard Solana tools/queries would not see your metadata.
    – AMilz
    Commented Feb 16, 2023 at 22:37

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.