Move wallet-to-wallet check to Token Auth Rules as an optional rule #30
Replies: 3 comments
-
The community feedback period for this submission has ended. It will now be converted to MIP-8 and move to a vote on the Metaplex DAO (https://dao.metaplex.com/). The voting period will open on November 17, 2023, and remain open for 14 days. If passed, MIP-8 will be a Metaplex Foundation implementation. |
Beta Was this translation helpful? Give feedback.
-
The Metaplex DAO voted to approve MIP-8. Development for MIP-8, including the accompanying independent security audit, is expected to be completed by the end of January 2024. |
Beta Was this translation helpful? Give feedback.
-
The preliminary work for MIP-8 implementation has been completed and is currently available for viewing in the following Pull Requests: However, implementation of the |
Beta Was this translation helpful? Give feedback.
-
Submitter: daeshawnballard
Email: [email protected]
Submitter wallet: 42qAKsqCA5WXP1c5NeH1FAV8qZe9yyksxZktvZ4hNqPN
Submission transaction: 2ongo25HqcmoUWyxqRDjwVTjDKe61jxTWKT156VGKuAGsbndrmL544LuFSA783dpseSFqw49fxTDMNkp2HRwu4Re
Title: Move wallet-to-wallet check to Token Auth Rules as an optional rule
Links: https://docs.google.com/document/d/1oTravsKL7p17CSElCxyOLoaYSnXsYx_COuXi3fJHEtI/edit?usp=sharing
Metaplex Improvement Proposal (MIP): Move wallet-to-wallet check to Token Auth Rules as an optional rule
By: Daeshawn Ballard
Introduction
This MIP seeks to move the wallet-to-wallet check to Token Auth Rules as an optional rule. The "wallet-to-wallet check" in Metaplex's token authorization rules is a specific condition governing token transfers between wallets. This potential change introduces additional flexibility and use cases to Non-Transferable "Soulbound" Programmable NFTs (pNFTs) for the Solana ecosystem.
Soulbound pNFTs offer a new dimension of digital ownership, enabling innovative applications by building atop Metaplex's Token Metadata program, which supports the Token 2022 Non-Transferable Tokens extension. By enabling more flexibility of Soulbound pNFTs via the wallet-to-wallet check, we can unlock unique use cases and provide creators with more tools regarding the non-transferable digital assets they create.
I am requesting feedback from the broader Solana community and designating this work to be executed and implemented by the Metaplex Foundation.
Summary
The primary objective of this MIP is to "Enable Soulbound pNFTs by moving wallet-to-wallet check to Token Auth Rules as an optional rule." Implementing Soulbound pNFTs, which are non-transferable by design, will unlock new pNFT use cases such as:
• Event Tickets: Non-transferable tickets to exclusive events.
• Certifications: Proof of achievements or qualifications.
• Membership Tokens: Access tokens for exclusive clubs or services.
• Badges: Recognition of accomplishments or participation.
• Credentials: Verification of identity or qualifications.
• Onchain Identity Tokens: Permanent markers of digital identity.
• Game Inventory: Account-bound in-game assets or items.
• Personal Ledger: Record book of milestones, achievements, and stats.
Motivation
• Innovative Use Cases: Soulbound pNFTs pave the way for new pNFT use cases, such as non-transferable badges, credentials, etc.
• Digital Scarcity and Exclusivity: Soulbound pNFTs introduce a new layer of digital scarcity, making certain assets unique and non-transferable.
• Enhanced Security: By limiting transfers, soulbound pNFTs can reduce the risk of unauthorized sales or transfers.
• Empowering Creators: This feature allows creators to dictate the terms of ownership, ensuring their vision for the pNFT is maintained.
• Onchain Identity: Soulbound pNFTs can serve as the foundation for persistent on-chain identity and reputation systems.
Specifications
• Soulbound Auth Rule: Introduce a new authorization rule for Soulbound pNFTs, restricting all transfers post-mint by moving the wallet-to-wallet check to Token Auth Rules.
• Minting Process: Allow creators to designate pNFTs as "Soulbound" during minting, which will automatically apply the Soulbound auth rule.
• Loss Mitigation: Explore mechanisms to permit transfers to another wallet held by the owner of the original wallet in which the Soulbound pNFT was sent in scenarios like wallet migrations or loss recovery. For example, Metaplex could and should also prioritize allowing third-party authorization rules so identity standards can be added for loss mitigation.
• Transparency and Verifiability: Ensure that the Soulbound property of a pNFT is transparently visible and identifiable on-chain. While all interactions with the pNFT, including its Soulbound status changes, are recorded as transactions, it's crucial that the non-transferable nature of Soulbound pNFTs is easily distinguishable and verifiable on the Solana blockchain.
• Soulbound pNFT Burnability: Soulbound pNFTs should be burnable to allow owners to thwart bad actors who may send Soulbound pNFTs deemed inappropriate (NSFW, offensive, etc). Due to the irreversible act of burning pNFTs, in case of accidental burn by an owner, creators can opt to reissue a burned Soulbound pNFT or decide against re-issuance based on their policies.
Risks & Mitigations
• Low User Awareness: Prioritize educating users about the non-transferable nature of Soulbound pNFTs before minting or acquisition.
• Wallet Migration: Develop mechanisms allowing users to migrate their Soulbound pNFTs to new wallets in case of loss or security concerns.
• Avoiding Misuse: Implement safeguards to prevent potential misuse of the Soulbound feature.
• Compatibility: Ensure Soulbound pNFTs remain compatible with existing Metaplex tools and services.
• Burned Soulbound pNFTs: Implement a mechanism only to allow for burned Soulbound pNFTs to be reissued to the original wallet by the creator as per their policy if no identity or verification layer is in place.
• Security: Establish or make apparent vulnerabilities fall under the pre-existing Metaplex bug bounty program or ensure Soulbound Auth Rule(s) fall within a verifiable audit from Sec3 to ensure the safety of creators and owners of Soulbound pNFTs by a trusted third party.
Considerations:
• How will the Soulbound property be stored and accessed?
○ Preliminary Answer:
◘ The Soulbound property will be stored as a metadata attribute within the Token Metadata program. Access to this attribute can be achieved through standard RPC calls to the Solana network, querying the associated Token Metadata account of the pNFT. This paradigm ensures that platforms or services integrating with Metaplex can quickly check the Soulbound status of a pNFT.
• Are there any potential security concerns with the Soulbound feature?
○ Preliminary Answer:
◘ The primary security concern would be ensuring that the Soulbound attribute cannot be altered postmining, except under specific conditions (like wallet migrations).
◘ Rigorous testing of the Token Auth Rules is essential to ensure no vulnerabilities exist. Additionally, user education is crucial to clarify the non-transferable nature of Soulbound pNFTs.
• How can Soulbound pNFTs effectively integrate into the broader ecosystem, including block explorers and APIs, while preserving their unique attributes?
○ Preliminary Answer:
◘ Visibility and Recognition: Implement badges or indicators across the ecosystem to ensure that Soulbound pNFTs are easily distinguishable from regular pNFTs.
◘ Minting Process: Incorporate clear messaging and prompts during the minting process to inform creators about the unique characteristics and implications of designating a pNFT as Soulbound.
Third-party Integration: Adapt the Metaplex API to ensure third-party platforms, especially those that don't require holding a pNFT in escrow, can recognize and respect the Soulbound attribute.
◘ Block Explorers: Update block explorers to recognize and appropriately label Soulbound pNFTs. This update ensures that when users look up their pNFTs or transactions involving them, they can quickly identify the Soulbound status.
◘ DAS API: Enhance the DAS (Digital Asset Standard) API to distinguish and handle Soulbound pNFTs. This enhancement ensures that decentralized applications retrieving data about pNFTs can accurately represent the Soulbound attribute.
◘ Ecosystem Education: Develop and disseminate comprehensive educational resources, tutorials, and documentation on Soulbound pNFTs to foster understanding and promote their adoption within the community.
• Are mutable pNFTS able to become Soulbound post-mint?
○ Preliminary Answer:
◘ Technical Possibility: Mutable pNFTs allow metadata changes post-mint, enabling a shift to Soulbound status. To avoid limiting the technological creativity of the creator, this possibility to shift to a Soulbound status should remain. However, shifting back from Soulbound post-mint should necessitate a fee, owner opt-in, or explicit awareness to potential owners to minimize the threat of bad actors or owner confusion.
◘ User Awareness: Ensuring all pNFT holders are informed and consent to the change or possibility of a change post-mint to Soulbound pNFTs is crucial, given the impact on transferability. Communication mechanisms should be in place to notify holders of any proposed changes before they arise.
◘ Value & Utility Impact: Altering the transferability post-minting could affect the pNFT's perceived value and use cases. This change might influence how users interact with or value the asset, potentially impacting its market dynamics.
• How are Soulbound pNFTs different from NFTs with Freeze Authority enabled?
○ Preliminary Answer:
◘ In essence, while both Soulbound pNFTs and the Freeze Authority aim to control the transferability of tokens, they do so in different manners and for different primary use cases. Soulbound pNFTs offer a more permanent form of non-transferability with specific exceptions, whereas the Freeze Authority provides a more temporary and dynamic form of control over token transferability.
• How does integrating the wallet-to-wallet check into Token Auth Rules enhance Soulbound pNFTs and build upon the Token 2022 Non-Transferable Tokens extension?
○ Preliminary Answer:
◘ By integrating the wallet-to-wallet check into Token Auth Rules, Soulbound pNFTs gain a robust mechanism to enforce their non-transferable nature, ensuring standardized verification across the Solana ecosystem. This technical enhancement, built atop the Token 2022 non-transferable tokens extension, not only solidifies digital scarcity but also streamlines the creation of Soulbound pNFTs via Metaplex's developer tooling. It also promotes interoperability and efficiency. Also, it paves the way for innovative digital ownership use cases, from event tickets to on-chain identity tokens, while accommodating flexible scenarios like wallet migrations.
• How should wallets display and interact with Soulbound pNFTs?
○ Preliminary Answer:
◘ Detailed Asset Information: Wallets should prominently display the Soulbound type or non-transferrable status within the asset's detailed information, avoiding disruptive visual indicators that might overshadow the art.
◘ Activity Stream Integration: Wallets should integrate Soulbound pNFT actions (like receiving or burning) into the user's activity stream, ensuring transparency of all interactions.
◘ User Education & Feedback: Wallets should provide educational onboarding explaining the unique nature of Soulbound pNFTs and offer a feedback mechanism within their existing support systems for users to share their experiences and challenges.
◘ Interactions with Soulbound pNFTs: Wallets should facilitate intuitive interactions with Soulbound pNFTs, emphasizing:
-- A clear burn mechanism with ample warnings and confirmations.
-- Support for controlled transfers, both with and without identity layers.
-- Integration of shortcuts, similar to Phantom's shortcut feature, for quick and efficient actions on Soulbound pNFTs within a wallet’s interface with third-party dApps that would enable escrowless staking and other applicable actions.
◘ Third-party Integration: Wallets should ensure that third-party platforms, especially those that don't require holding an NFT in escrow, can recognize and respect the Soulbound attribute.
• How will this feature interact with existing Metaplex tools and services?
○ Preliminary Answer:
◘ By ensuring seamless integration and interaction between Soulbound pNFTs and the following Metaplex tools, we can provide a robust and user-friendly experience for creators and collectors alike.
◘ Bubblegum: With the introduction of Soulbound pNFTs, the Bubblegum tool, which focuses on compressed pNFTs, may need to be updated to recognize and handle these new pNFT types. Additionally, if a Soulbound pNFT is compressed using Bubblegum, the decompression process should retain its non-transferable nature.
◘ Sugar: As a tool for minting pNFTs, Sugar would need to incorporate the option for creators to designate their pNFTs as Soulbound during the minting process. This incorporation would involve integrating the Soulbound auth rule into the Sugar minting interface.
◘ Guards: Given that Guards is a tool for creating and managing access control lists, it could be crucial in managing the permissions associated with Soulbound pNFTs. For example, ensuring that only the rightful owner or designated entities can obtain, interact with, or modify the Soulbound pNFT.
◘ Hydra: As Hydra focuses on multisignature pNFTs, there's potential for overlap with Soulbound pNFTs. If a pNFT is both multi-signature and Soulbound, it would mean that while multiple signatures are required for specific actions, the pNFT cannot be transferred to another wallet. This interaction would need careful consideration to ensure both properties work harmoniously.
◘ UMI: UMI, being a tool for managing and updating metadata, would need to ensure that updates to metadata do not inadvertently alter the Soulbound status of a pNFT. Additionally, UMI could provide a straightforward interface for users to view the Soulbound status of their pNFTs.
References/Citations:
• Metaplex Documentation on pNFTs
-- https://developers.metaplex.com/token-metadata/pnfts
• Metaplex Documentation on Token Auth Rules
-- https://developers.metaplex.com/token-auth-rules
• Metaplex Documentation on Freeze Authority
-- https://developers.metaplex.com/token-metadata/faq#freeze-authority
• Metaplex WalletToWallet Enum on GitHub
-- https://github.com/metaplex-foundation/mpl-token-auth-rules/blob/deb211f5e555581458bad26c40baff2c823750f7/programs/token-auth-rules/tests/utils/mod.rs#L32
• Metaplex Improvement Proposal on GitHub
-- https://github.com/metaplex-foundation/mip/
• Solana Documentation Non-Transferable Tokens
-- https://spl.solana.com/token-2022/extensions#non-transferable-tokens
• Solana Non-Transferable Tokens Extension on GitHub
-- https://spl.solana.com/token-2022/extensions#non-transferable-tokens
• Social Discourse on Soulbound pNFTs
-- https://twitter.com/search?q=soulbound%20or%20non-transferable%20tokens%20and%20metaplex%20or%20solana%20-%24%20-%23%20-%23solana%20-alpha&src=typed_query&f=top
Beta Was this translation helpful? Give feedback.
All reactions