Skip to main content

MLS-03: NFT Metadata

MLS-03 is Mintlayer's non-fungible token standard. Its metadata documents extend the common top-level fields plus a set of NFT-only base fields, and use type_metadata to describe the kind of asset, from artwork to event tickets to on-chain legal notices.

Full schemas and example files: mintlayer/token-standards/mls03.

Additional base fields (MLS-03 only)​

FieldTypeDescription
imagestringPrimary media URI
image_mime_typestringe.g. image/png, image/svg+xml
animation_urlstringSecondary media for video/audio/interactive
animation_mime_typestringe.g. video/mp4, audio/mp3
external_urlstringLink to the asset's page on the issuer's site
attributesarrayTraits: [{ trait_type, value, display_type? }]
collectionobject{ name, description, symbol, image, total_supply }
creatorobject{ address, royalty_percentage, royalty_address }

Token types​

token_typeDescription
artDigital artwork, 1/1 or limited edition
collectionContainer NFT grouping other NFTs into an ordered series, gallery, album, season, or portfolio
collectibleGenerative or curated collection (PFP, series)
gamingIn-game item, character, or land
rwaTokenized unique real-world asset
loyalty_pointsLoyalty program points batch with expiry and redemption terms
club_cardMembership card with tier, benefits, and access rules
videoVideo NFT with production metadata and licensing rights
notification_legalOn-chain legal notice, court summons, regulatory service of process
ticketEvent access with seat, validity window, and resale rules
musicAudio NFT with master rights, royalty share, and physical companion
credentialSoulbound academic or professional qualification
domainOn-chain domain name with multi-chain resolution records
supply_chainPhysical product provenance record with stage-by-stage audit trail
pet_passportAnimal health and travel document, vaccinations, microchip, vet records
shariah_certificateOn-chain Shariah compliance certificate, institutional, product, fund, or transaction scope

type_metadata highlights​

Only the key fields are listed here; the repository contains the complete field documentation and a filled example per type.

art​

edition (number/total), medium (digital | physical_backed), ai_generated, license (CC0/commercial/personal/custom).

collection​

collection_type (art_series | gallery | comic_strip | photography_series | anthology | curated), concept, curator (name, role, note), complete, series_order_significant, date_range, exhibitions[], press[], items[] (ordered member list: order, token_id, name, image, description), bundle_policy (individual vs bundle pricing), provenance.mixed_custody.

loyalty_points​

program, points, points_unit, expiry_date, redeemable_for, transfer_policy, soulbound, rollover_policy.

club_card​

membership.program_name, tier, tier_hierarchy, member_since, valid_until, benefits[], transfer_policy, soulbound, kyc_required.

video​

media (duration, resolution, codec, audio tracks), production (director, ISRC, festival selections), edition, license (broadcast/streaming/theatrical rights, sublicensable).

notice_type, sender (court/regulator + jurisdiction), recipient, case (reference, type, subject), legal_basis (framework, article, on-chain recognition), timeline (served_at, response_deadline), acknowledgement_required.

ticket​

event (venue + coordinates, performance datetime), ticket (id, category, zone, seat, perks), validity (valid_from/until, used), resale (allowed, deadline, max price).

music​

track (ISRC, ISWC, BPM, key), audio (master format, sample rate, bit depth), rights (master royalty share, sync licensing, streaming revenue share), physical_companion (e.g. acetate, claim deadline).

credential​

credential_type, issuer (type, accreditation), holder, degree (title, field, ECTS, grade, thesis), verification (W3C VC standard, revocation registry), soulbound.

domain​

domain (full_name, tld, punycode), registration (expiry, auto_renew), resolution.records[] (ML/BTC/ETH/email/content/url), subdomains_enabled.

supply_chain​

product (sku, certifications), provenance_chain[] (stage, actor, location, coordinates, date, document_hash), current_custodian, redeemable, redemption (delivers_physical, shipping_destinations).

pet_passport​

animal (species, breed, microchip_id), owner, passport (number, regulatory_framework, issuing_vet), vaccinations[], parasite_treatments[], health_certificates[], travel_history[], transfer_requires_vet_update.

shariah_certificate​

certificate_id (e.g. FDQ-2026-000412), scope (institutional | product | fund | transaction), methodology_version, standard (AAOIFI | IFSB | OIC_FIQH | custom), certifying_body (name, website, registry_address, jurisdiction), subject (type, name, registration_number, jurisdiction), certification_scope (areas, product categories, geographic coverage), screening (prohibited activities, financial ratios, purification), review_process (due diligence, scholars count, approval mechanism, evidence hash, audit trail), scholars[], multisig_approval (signatories required, council size, approval transaction), validity (issued/expiry dates, renewal frequency, status), predecessor_certificate / predecessor_token_id (renewal chain), documents[] (certificate | fatwa | due_diligence_report), soulbound: true.

rwa (unique real-world assets)​

Property and other unique assets: legal ownership records, jurisdiction and regulatory classification, transfer restrictions, valuation method, and documents[] with integrity hashes, see the rwa-property example.

Issuing an MLS-03 NFT​

On-chain issuance (metadata URI, media hash) is covered in Issue an NFT (SDK) and the wallet-cli NFT guide. Remember: MLS-03 metadata is immutable once issued; plan the document before you mint.