Royalty Enforcement Asset Class Proposal #878
Replies: 7 comments 44 replies
-
Thanks @austbot for opening up some discussion. I can add some thoughts from our perspective at Cardinal. We are quite familiar with the possible approaches here and the specific details so open to providing our view. We’d initially like to encourage discussion here around 5 points in the proposal
If Metaplex feels strongly that all transfers should be going through token-metadata, we believe there is an extendable model that could be based around something like a token type called “Permissioned” token that allows another program to plug in rules to transfer given a programID, to/from account and instructions sysvar, and all additional accounts in the transfer instruction as mutable. Anyone (including metaplex) could provide custom transfer logic in a composing program. However I'd also ask what thought has been given to client interfaces for token transfer in general allowing new programs to seamlessly implement the same client interface that wallets / dApps can use. With the core points listed above, we can further explain an approach to how we have been rolling out royalty enforcement using existing protocols. The solution Cardinal proposes isn't focused on just solving royalties, but can be used more broadly as a way for creators to have some control over their tokens by program permissioning but in a creator controlled way. Ultimately the balance of creator control is fragile but we think providing knobs for creators to set permissions on their token to guide their holders on where and how their tokens can be used across the ecosystem is a feature that many NFT creators want and need. Happy to share more details on this as well but those are some thoughts on the current MIP |
Beta Was this translation helpful? Give feedback.
-
Hi,
|
Beta Was this translation helpful? Give feedback.
-
Thanks @jpbogle for your response here and thank you for your work on Cardinal. I'll try to clear up some things and bring more clarity to things we have already told you in meetings we have had when we proposed the initial design to you some time ago. For the rest of Github, I would like to give some context. Because Cardinal was a team we have worked with in the past, we showed them a proposal before we made it public to get their initial feedback as another great builder in the space. Some of the current proposal takes into account their feedback. Since I'm directly responding to a great dev @jpbogle I will refer back to some of those meetings in an attempt to clarify our engineering position. In general this proposed design is very different from the initial design we proposed, marketplaces and other companies such as yours gave feedback and we listened. Some of the ideas listed in the doc were in direct response to a collaborative process with Cardinal. The current proposal represents our interpretation of what the community + marketplaces were hoping as an initial state and as the solution gains traction things like the whitelist fall away. I'll address your points below. 1.
The managed whitelist idea is bad(personal opinion), we are in favor of creator driven lists(our original proposal to you and others). But as creators will need help and sensible defaults we propose launching with a list to take that burden off them. And we propose adding an open market system to encourage self regulation. Without an open market where participants can arbitrate against bad actors for monetary incentive such as the scenario when a marketplace that uses the protocol to enforce royalties tries to game by selling way below floor "0.001" sol and then sends the money to the seller in a separate transaction. Our initial proposal contained a whitelist that was managed by the creator, but there was some negative feedback by the initial marketplaces we showed it too. It's not easy to strike the balance between everyones desires. 2.Identity will not be built into the same program and that was never in the proposal. Also whitelists are not involved here. This is at the very least a signature system(similar to the below bonfida idea) that allows self transfers and at most a decentralized profile system with public and private data scopes. I dont think that the comment about the program whitelist being a solve for self transfers is technically sound. A malicious set of actors could easily build and OTC system of transfer and pay to bypass royalties. The creator driven whitelist of programs is not something that can influence self transfers. It is meant to allow the creator to decide where their IP is allowed to be sold. 3.There are two points here, The Master Edition system always had this update Authority system where the creator or update authority can change things unless this was immutable. Perhaps some points of the proposal were missed. We propose optionality. In the doc we say There are two main scenarios for the migration of existing collections:
4.I guess it's the same as Cardinals "God Mode". In the Cardinal protocol your developers have the ability to mint another instance of the SFT that is being used as an NFT. I think pointing out that Metaplex can change the contract is the same as saying Cardinal can change their contracts. We have built things for the community, taken 0 fees. In contrast Cardinal takes % based fees. And there is nothing wrong with that but let's level set on the actual solution. In the original proposal we showed that RuleSets are managed by the creator. And this is always the goal to get to. Preliminary feedback indicated that creators may have trouble managing these lists. When we received this feedback we proposed launching an initial set of Rules that enforce royalties. In which the creator can add to , but to have a default set of rules: Identity Transfers->Full transfers without sale or Utility operations must be ID->ID Sale Delegate must be a PDA of a Program that is on the Creator Driven Marketplace whitelist, 5.We worked with @joncinque at solana extensively to see if Token 2022 made sense for Metaplex protocols. And there has not been much interest in a transfer authority extension until now with all the royalties meta flowing around. The Token 2022 program is an amazing piece of tech and while we see a path for it being helpful for new collections, existing collections wont be able to take advantage of this without the Mint ids changing for the entire collection. The mint Id changing is a HUGE deal for the long tail of indexers, rarity tools, uis. When using the Sized MCC it becomes less of an issue but we still see alot of integration pain. We are currently working with Solana Labs team on how we can accomplish some wrapping to make this better. Your feedback thus far logically has one thoughtful point, "how do we minimize scope and integration pain". We are also thinking about this, on top of all these changes introducing another token program is a typical project night mare and immediately wont have wallet support or existing program support.
This is indeed the first proposal we put in front of you, I'm glad to see you have changed your position on this and is something you are interested in. We proposed "AuthorityManaged" where the authority is the creator. We also believe that the Rulesets System can be extended to allow composable program restrictions just like you are talking about. We deeply care about composability which is why we have created the following composability systems: Token Metadata Authority Delegates -> Uses and Collections, this functionality allows delegation and I believe at one point was being used by your progams. As always @jpbogle thanks for your comments |
Beta Was this translation helpful? Give feedback.
-
Including identity in the same proposal as royalty enhancement seems like scope-creep. This type of requirement would also open up to a naming-service from the protocol. Does linking social accounts potentially to NFTs concern the community around provenance vs. anonymity ? Identity is a first-class citizen that should be composable instead of adjacent to a functional enhancement around NFT configuration. The mention of ZK having a place in this is appreciated. |
Beta Was this translation helpful? Give feedback.
-
The transfer instruction should work similar to Candy Machine bot tax where if the program_id of the transaction is not part of the allowlist set by the creator it is rejected. The transfer instruction should let any transfer go through as long as it does not include a system program transfer instruction in the same transaction. I understand this check can be circumvented by the marketplace sending 1 transaction to process the transfer of SOL (or SPL token) and another for the NFT but that workflow is fragile and requires a user experience that I believe will deter the growth of such marketplaces. This simplified logic removes the need to include the identity NFT in this proposal. Though I support the addition of an identity mechanism I don't think it should be used to govern the transfer of NFTs.
|
Beta Was this translation helpful? Give feedback.
-
Re: Delegate Utility:
This means that use cases like options, loans & rentals would no longer be possible? Please correct me if I am misunderstanding here, but the ability to collateralize a digital asset requires the ability to liquidate that asset and send to a lender. |
Beta Was this translation helpful? Give feedback.
-
Thanks @austbot for the proposal and all the work that Metaplex is doing to support a thriving NFT ecosystem on Solana. I'll give a quick tldr of our feedback here and link to a more extensive document in the end. tl;dr;We believe that currently proposed royalty enforcement solutions, including MIP-1:
Our proposed amendment to MIP-1 is to use denylists, not allowlists as the main controlling primitive and more specifically a single global denylist for the first iteration. The most important thing is to keep Solana NFTs permissionless by default. We acknowledge that our proposal doesn’t close every door to evading royalties - but we believe in the iterative approach:
The main goals here are speed and simplicity. We want to get something out fast that solves the issue and gets creators paid, while also being the least amount of work for both Metaplex and 3rd party Solana developers. Detailed docYou can find our detailed proposal over here. We're totally open to conversation. Ultimately we just want what's best for ecosystem - the creators, the devs, and the community. Talk to us about what you like/don't like and let's find a solution where everyone wins. |
Beta Was this translation helpful? Give feedback.
-
UPDATE Nov 23 2022
The Doc has been updated and we moved it to a new location where we will begin MIPs in public.
https://github.com/metaplex-foundation/mip/blob/main/mip-1.md
Please read through the proposal and discuss it further here.
Beta Was this translation helpful? Give feedback.
All reactions