Skip to main content

Metadata

Understanding NFT metadata structure on AceSteps.

Metadata Standard

AceSteps follows the ERC-721 metadata standard with extensions for audio.

Structure

{
"name": "Song Title",
"description": "AI-generated music on AceSteps",
"image": "ipfs://Qm.../cover.png",
"animation_url": "ipfs://Qm.../audio.mp3",
"external_url": "https://acesteps.xyz/song/123",
"attributes": [
{
"trait_type": "Genre",
"value": "Lo-fi"
},
{
"trait_type": "Duration",
"value": "30"
},
{
"trait_type": "Creator",
"value": "0x..."
},
{
"trait_type": "Prompt",
"value": "chill lofi beat..."
},
{
"trait_type": "Audio Hash",
"value": "0x..."
}
]
}

Fields

FieldDescriptionRequired
nameSong titleYes
descriptionSong descriptionYes
imageCover art IPFS URIYes
animation_urlAudio file IPFS URIYes
external_urlLink to AceSteps pageNo
attributesArray of traitsYes

IPFS Storage

All metadata is stored on IPFS:

Advantages

  • Permanent - Content-addressed storage
  • Decentralized - No single point of failure
  • Verifiable - Hash ensures integrity

URIs

Metadata: ipfs://QmXyz.../metadata.json
Audio: ipfs://QmAbc.../audio.mp3
Image: ipfs://QmDef.../cover.png

Audio Hash

The audioHash attribute contains a keccak256 hash of the audio file:

bytes32 audioHash = keccak256(audioFileBytes);

This ensures:

  • Audio authenticity
  • Tamper detection
  • Unique identification