Licenses
Future-proof music NFTs
Most important piece of code to ensure the longevity of music NFTs. From small licenses (sampling, remixes...) to multimedia use, this section resolves all potential issues of improper use of music in web3.
Syntax | Description |
---|---|
Licenses | Additional info to future-proof song NFTs. |
Creators fees for secondary sales, sampling & remixes​
Add this information if you'd like to limit certain licenses. This might be the case when creators want to limit exclusivity in a particular metaverse, or even to give permission to irl explotation for a limited period of time (ie radio broadcast, retail licenses...)
Syntax | Description |
---|---|
creator_fees | resale: same as "seller_fee_basis_points". remix: percentage points to be paid to original creators of the song used for sampling/remix/cover version. |
While this will appear duplicated, once the legacy metadata system (minimum requirements) has been globally upgraded, "seller_fee_basis_points" will be obsolete.
Having this data added to your NFTs now will future-proof your NFT and avoid the need to update metadata in the future.
{
"creator_fees": {
"resale": 0,
"remix": 0,
}
License: personal use vs. media​
This section is to offer provisions based on the usage permissions. Only use personalUse or mediaUse - not both.
License option: Personal Use​
Syntax | Description |
---|---|
personalUse | Creators may set the startDate the same as the commercial release date. Add an endDate if creators want to limit how long the audio is available or keep blank to allow unliited time permissions. startDate: yyyy/mm/dd hh:ii:ss endDate: yyyy/mm/dd hh:ii:ss |
territory | Â Territorial limits for this license. Use "worldwide" to include all countries. Add country names on "exclude" to add exceptions. |
Creators could use "startDate" for pre-sale campaigns where NFTs are sold in advance to selected fans and make songs available for every holder at the time of official release.
"license": {
"personalUse":
"period": {
"startDate": "",
"endDate": ""
}
"territory": "worldwide"
}
License option: Media use​
Syntax | Description |
---|---|
mediaUse | mode: specifies the type of media permissions. For action based permissions (i.e. streams, radio plays) use "units" (plays) and "number" (numeric value). For time based permissions (i.e. months, years) use "period". licensePrice: a numeric value of the total license cost for the "mode" conditions. currency: currency used for this transaction (USD, SOL, ETH...). Recommended to use USD for international use. |
territory | Â Territorial limits for this license. Use "worldwide" to include all countries. Add country names on "exclude" to add exceptions. |
scope | License permissions limited by a media type. If no limits, use "all media" as default. |
priority | License priority in ascending order. This filed is important if there are territorial, media or licensing restrictions of any kind. |
"license": [{
"mediaUse": {
"mode": "radio plays/years",
"units": "",
"number": 0,
"mediaLicensePeriod": {
"startDate": "",
"endDate": ""
}
"licensePrice": 0,
"currency": ""
}
"territory": "worldwide",
"scope": "all media"
"priority": 0,
},
...
]
Sharing revenue with holders​
An optional addition. Include this data on the NFT metadata to offer provisions for revenue share. These are provisions for holders revenue share as an optional addition.
Add this information when generating the creators metadata.
Syntax | Description |
---|---|
holder_share | holderAddress: a trasury wallet to receive a holder share holderPercentage: percentage of creator royalties to be paid to holders. |
Add a middleware (treaury) wallet on the creators list that receives the payout for holders. Once the revenues are collected, take a snapshot and distribute royalties from that middleware wallet.