Nested Royalties UI explained
Ever since Singular has been updated to support sending any NFT into any other NFT, a common question the team has recieved is "why is it required to list the price of every child NFT when selling a parent?"
This is only required when child items have royalties:
We realize this is inconvenient, and the reason for this is sometimes hard to understand, but at the core of the issue is artist protection and enforcement of fair royalties.
Let us explain with an example.
Example
Let's assume Bob mints "Fruit Crate" NFTs, and 100 "Green Apple" NFTs. He set the royalties on each of those at 5%.
Assuming Alice obtains 1 of each, she now has a Green Apple and a Fruit Basket.
Later on, Charlie mints 5 "Gold Apple" NFTs, and Alice obtains one. The royalty is 10%.
Assume now that she puts the apples into the basket.
Now, let's assume Alice wants to sell her fruit basket, containing the apples.
She must list a price for the apples and the parent separately. Why?
If Alice lists just the Fruit Basket for 100 KSM, then only Bob would get 5 KSM of royalties from that, and Charlie would get nothing.
If Alice lists the Fruit Basket at 50 KSM, the Green Apple for 5 KSM, and the Gold Apple for 45 KSM, we achieve the following:
- Charlie gets 4.5 KSM because the royalty can now be applied to his work too.
- Bob gets 2.75 KSM, as 5% of 55 KSM (Green Apple + Basket)
Caveats
Granted, there are caveats with this approach.
- Each child is buyable separately if listed with its own price. This is by design, because if we do not do this, it is easy to set the price of the Gold Apple as 1 KSM instead of its actual value of 45 KSM in order to rob Charlie of his royalties. As such, the apple MUST be buyable separately.
- When all the children have the same issuer and royalty, it is not necessary to list the child prices individually, but we do not currently reflect this in the UI. We are working on this improvment.
- For convenience with NFTs that contain a lot of low-value child NFTs, we will also add an "apply price to all children" button to speed up the listing process. U