From d3f3e16f48e435b4174edd7fc7f3970ecf016613 Mon Sep 17 00:00:00 2001 From: Aurora Poppyseed <30662672+poppyseedDev@users.noreply.github.com> Date: Thu, 2 Nov 2023 12:57:24 +0100 Subject: [PATCH 01/36] Init 000x-assethub.md --- text/000x-assethub.md | 59 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 text/000x-assethub.md diff --git a/text/000x-assethub.md b/text/000x-assethub.md new file mode 100644 index 00000000..e5086b97 --- /dev/null +++ b/text/000x-assethub.md @@ -0,0 +1,59 @@ +# RFC-0000: Feature Name Here + +| | | +| --------------- | ------------------------------------------------------------------------------------------- | +| **Start Date** | Date of initial proposal | +| **Description** | One-sentence description | +| **Authors** | | + +## Summary + +One paragraph summary of the RFC. + +## Motivation + +Longer motivation behind the content of the RFC, presented as a combination of both problems and requirements for the solution. + +## Stakeholders + +A brief catalogue of the primary stakeholder sets of this RFC, with some description of previous socialization of the proposal. + +## Explanation + +Detail-heavy explanation of the RFC, suitable for explanation to an implementer of the changeset. This should address corner cases in detail and provide justification behind decisions, and provide rationale for how the design meets the solution requirements. + +## Drawbacks + +Description of recognized drawbacks to the approach given in the RFC. Non-exhaustively, drawbacks relating to performance, ergonomics, user experience, security, or privacy. + +## Testing, Security, and Privacy + +Describe the the impact of the proposal on these three high-importance areas - how implementations can be tested for adherence, effects that the proposal has on security and privacy per-se, as well as any possible implementation pitfalls which should be clearly avoided. + +## Performance, Ergonomics, and Compatibility + +Describe the impact of the proposal on the exposed functionality of Polkadot. + +### Performance + +Is this an optimization or a necessary pessimization? What steps have been taken to minimize additional overhead? + +### Ergonomics + +If the proposal alters exposed interfaces to developers or end-users, which types of usage patterns have been optimized for? + +### Compatibility + +Does this proposal break compatibility with existing interfaces, older versions of implementations? Summarize necessary migrations or upgrade strategies, if any. + +## Prior Art and References + +Provide references to either prior art or other relevant research for the submitted design. + +## Unresolved Questions + +Provide specific questions to discuss and address before the RFC is voted on by the Fellowship. This should include, for example, alternatives to aspects of the proposed design where the appropriate trade-off to make is unclear. + +## Future Directions and Related Material + +Describe future work which could be enabled by this RFC, if it were accepted, as well as related RFCs. This is a place to brain-dump and explore possibilities, which themselves may become their own RFCs. From 4c90e8e5b78b7cdb2b813e239478d66ec306abd3 Mon Sep 17 00:00:00 2001 From: Aurora Poppyseed <30662672+poppyseedDev@users.noreply.github.com> Date: Thu, 2 Nov 2023 13:07:58 +0100 Subject: [PATCH 02/36] Update 000x-assethub.md - initial text --- text/000x-assethub.md | 34 +++++++++++++--------------------- 1 file changed, 13 insertions(+), 21 deletions(-) diff --git a/text/000x-assethub.md b/text/000x-assethub.md index e5086b97..726d9784 100644 --- a/text/000x-assethub.md +++ b/text/000x-assethub.md @@ -1,59 +1,51 @@ -# RFC-0000: Feature Name Here +# RFC-0000: Lowering Deposit Requirements on Polkadot Asset Hub | | | | --------------- | ------------------------------------------------------------------------------------------- | -| **Start Date** | Date of initial proposal | -| **Description** | One-sentence description | -| **Authors** | | +| **Start Date** | 2 November 2023 | +| **Description** | A proposal to reduce the minimum deposit required for collection creation on the Polkadot Asset Hub, making it more accessible and affordable for artists. | +| **Authors** | Aurora Poppyseed, Just_Luuuu | ## Summary -One paragraph summary of the RFC. +This RFC proposes a change to the current deposit requirements on the Polkadot Asset Hub for creating NFT collections. The objective is to lower the barrier to entry for artists, fostering a more inclusive and vibrant ecosystem, while maintaining network integrity and preventing spam. ## Motivation -Longer motivation behind the content of the RFC, presented as a combination of both problems and requirements for the solution. +The current deposit of 10 DOT for collection creation on the Polkadot Asset Hub presents a significant financial barrier for many artists, especially with the potential volatility in DOT’s price. By lowering the deposit requirements, we aim to encourage more artists to participate in the Polkadot NFT ecosystem, thereby enriching the diversity and vibrancy of the community and its offerings. ## Stakeholders -A brief catalogue of the primary stakeholder sets of this RFC, with some description of previous socialization of the proposal. +- **Artists**: Primary beneficiaries of the proposed change, particularly those who found the current deposit requirements prohibitive. +- **KodaDot**: As the facilitator of artists' relations, KodaDot has a vested interest in making the platform more accessible. +- **Polkadot Community**: Stands to benefit from an influx of artists and diverse NFT collections, enhancing the overall ecosystem. +- **Parity**: The developers of Polkadot, who may need to implement and oversee the changes. + +Previous discussions have been held within the KodaDot community, as well as with artists expressing their concerns about the deposit amounts. ## Explanation -Detail-heavy explanation of the RFC, suitable for explanation to an implementer of the changeset. This should address corner cases in detail and provide justification behind decisions, and provide rationale for how the design meets the solution requirements. ## Drawbacks -Description of recognized drawbacks to the approach given in the RFC. Non-exhaustively, drawbacks relating to performance, ergonomics, user experience, security, or privacy. ## Testing, Security, and Privacy -Describe the the impact of the proposal on these three high-importance areas - how implementations can be tested for adherence, effects that the proposal has on security and privacy per-se, as well as any possible implementation pitfalls which should be clearly avoided. ## Performance, Ergonomics, and Compatibility -Describe the impact of the proposal on the exposed functionality of Polkadot. - ### Performance -Is this an optimization or a necessary pessimization? What steps have been taken to minimize additional overhead? - ### Ergonomics -If the proposal alters exposed interfaces to developers or end-users, which types of usage patterns have been optimized for? - ### Compatibility -Does this proposal break compatibility with existing interfaces, older versions of implementations? Summarize necessary migrations or upgrade strategies, if any. - ## Prior Art and References -Provide references to either prior art or other relevant research for the submitted design. ## Unresolved Questions -Provide specific questions to discuss and address before the RFC is voted on by the Fellowship. This should include, for example, alternatives to aspects of the proposed design where the appropriate trade-off to make is unclear. ## Future Directions and Related Material -Describe future work which could be enabled by this RFC, if it were accepted, as well as related RFCs. This is a place to brain-dump and explore possibilities, which themselves may become their own RFCs. +If accepted, this RFC could pave the way for further discussions and proposals aimed at enhancing the inclusivity and accessibility of the Polkadot ecosystem. Future work could also explore additional mechanisms for spam prevention that do not rely on financial barriers. From a1c6854f27784cf647aadcd593a907f1993c144b Mon Sep 17 00:00:00 2001 From: Aurora Poppyseed <30662672+poppyseedDev@users.noreply.github.com> Date: Thu, 2 Nov 2023 15:30:11 +0100 Subject: [PATCH 03/36] Implementing prices 000x-assethub.md --- text/000x-assethub.md | 37 +++++++++++++++++++++++++++++++++---- 1 file changed, 33 insertions(+), 4 deletions(-) diff --git a/text/000x-assethub.md b/text/000x-assethub.md index 726d9784..d9a0f44e 100644 --- a/text/000x-assethub.md +++ b/text/000x-assethub.md @@ -24,27 +24,56 @@ The current deposit of 10 DOT for collection creation on the Polkadot Asset Hub Previous discussions have been held within the KodaDot community, as well as with artists expressing their concerns about the deposit amounts. ## Explanation +This RFC suggests modifying the smart contract governing collection creation on the Polkadot Asset Hub to require a lower deposit. The exact amount of the reduced deposit is yet to be determined and should be discussed and agreed upon by the stakeholders. The implementation of this change requires careful consideration of the network's integrity and the prevention of spam, possibly through alternative means such as rate limiting or account verification. -## Drawbacks +**Prices on Polkadot Asset Hub:** +``` +| **Name** | **Current price implementation** | **Price if DOT = 5$** | **Price if DOT goes to 50$** | **Proposed Price in DOT** | **Proposed Price if DOT = 5$** | **Proposed Price if DOT goes to 50$** | +|---------------------------|----------------------------------|------------------------|-------------------------------|---------------------------|----------------------------------|-------------------------------------| +| collectionDeposit | 10 DOT | 50 $ | 500 $ | 0.1 DOT | 0.5 $ | 5$ | +| itemDeposit | 0.01 DOT | 0.05 $ | 0.5 $ | 0.001 DOT | 0.005 $ | 0.05$ | +| metadataDepositBase | 0.20129 DOT | 1.00645 $ | 10.0645 $ | 0.0020129 DOT | 0.0100645 $ | 0.100645$ | +| attributeDepositBase | 0.2 DOT | 1 $ | 10 $ | 0.002 DOT | 0.01 $ | 0.1$ | +``` + +**Prices on Kusama Asset Hub:** + +``` +| **Name** | **Current price implementation** | **Price if KSM = 23$** | **Price if KSM goes to 500$** | **Proposed Price in KSM** | **Proposed Price if KSM = 23$** | **Proposed Price if KSM goes to 500$** | +|---------------------------|----------------------------------|------------------------|-------------------------------|---------------------------|----------------------------------|----------------------------------------| +| collectionDeposit | 0.1 KSM | 2.3 $ | 50 $ | 0.01 KSM | 0.23 $ | 5 $ | +| itemDeposit | 0.001 KSM | 0.023 $ | 0.5 $ | TBD KSM | TBD $ | TBD $ | +| metadataDepositBase | 0.006709666617 KSM | 0.15432183319 $ | 3.3548333085 $ | TBD KSM | TBD $ | TBD $ | +| attributeDepositBase | 0.00666666666 KSM | 0.15333333318 $ | 3.333333333 $ | TBD KSM | TBD $ | TBD $ | + +``` -## Testing, Security, and Privacy +## Drawbacks +Lowering the deposit requirements may potentially increase the risk of spam and malicious collections on the platform. This could lead to a cluttered and less secure ecosystem, possibly devaluing legitimate NFT collections. It also puts additional pressure on the network and its maintainers to implement and manage alternative spam prevention mechanisms. + +## Testing, Security, and Privacy ## Performance, Ergonomics, and Compatibility ### Performance +This change is not expected to have a significant impact on the overall performance of the Polkadot Asset Hub. However, it is crucial to monitor the network closely, especially in the initial stages after implementation, to identify and mitigate any potential issues. ### Ergonomics +The proposed change aims to enhance the user experience for artists, making the platform more accessible and user-friendly. It should not alter existing interfaces but may require updates to user documentation and onboarding materials. ### Compatibility +The change should be backward compatible, with no impact on existing collections or users. However, a clear communication plan should be in place to inform all stakeholders of the changes and any required actions on their part. ## Prior Art and References - +References to other blockchain platforms that have successfully implemented similar changes could provide valuable insights and learnings. Examples include Ethereum and Binance Smart Chain, both of which have a wide range of NFT platforms with varying deposit requirements. ## Unresolved Questions - + - What is the optimal new deposit amount that balances accessibility with the need for spam prevention? + - What alternative mechanisms can be implemented to prevent spam without relying on financial barriers? + - How will the change be communicated to the existing users and the wider Polkadot community? ## Future Directions and Related Material From 316cd4565b3c4dd4e8f0c29ff82246fccb9922bb Mon Sep 17 00:00:00 2001 From: Aurora Poppyseed <30662672+poppyseedDev@users.noreply.github.com> Date: Tue, 7 Nov 2023 12:33:48 +0100 Subject: [PATCH 04/36] Update 000x-assethub.md --- text/000x-assethub.md | 71 ++++++++++++++++++++++++------------------- 1 file changed, 40 insertions(+), 31 deletions(-) diff --git a/text/000x-assethub.md b/text/000x-assethub.md index d9a0f44e..960daca4 100644 --- a/text/000x-assethub.md +++ b/text/000x-assethub.md @@ -8,51 +8,58 @@ ## Summary -This RFC proposes a change to the current deposit requirements on the Polkadot Asset Hub for creating NFT collections. The objective is to lower the barrier to entry for artists, fostering a more inclusive and vibrant ecosystem, while maintaining network integrity and preventing spam. +This RFC proposes a change to the current deposit requirements on the Polkadot and Kusama Asset Hub for creating NFT collections. The objective is to lower the barrier to entry for artists, fostering a more inclusive and vibrant ecosystem, while maintaining network integrity and preventing spam. ## Motivation -The current deposit of 10 DOT for collection creation on the Polkadot Asset Hub presents a significant financial barrier for many artists, especially with the potential volatility in DOT’s price. By lowering the deposit requirements, we aim to encourage more artists to participate in the Polkadot NFT ecosystem, thereby enriching the diversity and vibrancy of the community and its offerings. +The current deposit of 10 DOT for collection creation on the Polkadot Asset Hub presents a significant financial barrier for many artists. By lowering the deposit requirements, we aim to encourage more artists to participate in the Polkadot NFT ecosystem, thereby enriching the diversity and vibrancy of the community and its offerings. ## Stakeholders - **Artists**: Primary beneficiaries of the proposed change, particularly those who found the current deposit requirements prohibitive. - **KodaDot**: As the facilitator of artists' relations, KodaDot has a vested interest in making the platform more accessible. -- **Polkadot Community**: Stands to benefit from an influx of artists and diverse NFT collections, enhancing the overall ecosystem. -- **Parity**: The developers of Polkadot, who may need to implement and oversee the changes. +- **Polkadot Community**: Stands to benefit from an influx of artists, creators and diverse NFT collections, enhancing the overall ecosystem. -Previous discussions have been held within the KodaDot community, as well as with artists expressing their concerns about the deposit amounts. +Previous discussions have been held within the KodaDot community, as well as with artists expressing their concerns about the deposit amounts. Referencing to [Polkadot Forum conversation](https://forum.polkadot.network/t/polkadot-assethub-high-nft-collection-deposit/4262) ## Explanation This RFC suggests modifying the smart contract governing collection creation on the Polkadot Asset Hub to require a lower deposit. The exact amount of the reduced deposit is yet to be determined and should be discussed and agreed upon by the stakeholders. The implementation of this change requires careful consideration of the network's integrity and the prevention of spam, possibly through alternative means such as rate limiting or account verification. - -**Prices on Polkadot Asset Hub:** - +**Prices and Proposed Prices on Polkadot Asset Hub:** +_Scroll right_ ``` -| **Name** | **Current price implementation** | **Price if DOT = 5$** | **Price if DOT goes to 50$** | **Proposed Price in DOT** | **Proposed Price if DOT = 5$** | **Proposed Price if DOT goes to 50$** | -|---------------------------|----------------------------------|------------------------|-------------------------------|---------------------------|----------------------------------|-------------------------------------| -| collectionDeposit | 10 DOT | 50 $ | 500 $ | 0.1 DOT | 0.5 $ | 5$ | -| itemDeposit | 0.01 DOT | 0.05 $ | 0.5 $ | 0.001 DOT | 0.005 $ | 0.05$ | -| metadataDepositBase | 0.20129 DOT | 1.00645 $ | 10.0645 $ | 0.0020129 DOT | 0.0100645 $ | 0.100645$ | -| attributeDepositBase | 0.2 DOT | 1 $ | 10 $ | 0.002 DOT | 0.01 $ | 0.1$ | +| **Name** | **Current price implementation** | **Price if DOT = 5$** | **Price if DOT goes to 50$** | **Proposed Price in DOT** | **Proposed Price if DOT = 5$** | **Proposed Price if DOT goes to 50$**| +|---------------------------|----------------------------------|------------------------|-------------------------------|---------------------------|----------------------------------|--------------------------------------| +| collectionDeposit | 10 DOT | 50 $ | 500 $ | 0.1 DOT | 0.5 $ | 5$ | +| itemDeposit | 0.01 DOT | 0.05 $ | 0.5 $ | 0.001 DOT | 0.005 $ | 0.05$ | +| metadataDepositBase | 0.20129 DOT | 1.00645 $ | 10.0645 $ | 0.0020129 DOT | 0.0100645 $ | 0.100645$ | +| attributeDepositBase | 0.2 DOT | 1 $ | 10 $ | 0.002 DOT | 0.01 $ | 0.1$ | ``` -**Prices on Kusama Asset Hub:** - +**Prices and Proposed Prices on Kusama Asset Hub:** +_Scroll right_ ``` -| **Name** | **Current price implementation** | **Price if KSM = 23$** | **Price if KSM goes to 500$** | **Proposed Price in KSM** | **Proposed Price if KSM = 23$** | **Proposed Price if KSM goes to 500$** | +| **Name** | **Current price implementation** | **Price if KSM = 23$** | **Price if KSM goes to 500$** | **Proposed Price in KSM** | **Proposed Price if KSM = 23$** | **Proposed Price if KSM goes to 500$** | |---------------------------|----------------------------------|------------------------|-------------------------------|---------------------------|----------------------------------|----------------------------------------| | collectionDeposit | 0.1 KSM | 2.3 $ | 50 $ | 0.01 KSM | 0.23 $ | 5 $ | -| itemDeposit | 0.001 KSM | 0.023 $ | 0.5 $ | TBD KSM | TBD $ | TBD $ | -| metadataDepositBase | 0.006709666617 KSM | 0.15432183319 $ | 3.3548333085 $ | TBD KSM | TBD $ | TBD $ | -| attributeDepositBase | 0.00666666666 KSM | 0.15333333318 $ | 3.333333333 $ | TBD KSM | TBD $ | TBD $ | +| itemDeposit | 0.001 KSM | 0.023 $ | 0.5 $ | 0.0001 KSM | 0.0023 $ | 0.05 $ | +| metadataDepositBase | 0.006709666617 KSM | 0.15432183319 $ | 3.3548333085 $ | 0.0006709666617 KSM | 0.015432183319 $ | 0.33548333085 $ | +| attributeDepositBase | 0.00666666666 KSM | 0.15333333318 $ | 3.333333333 $ | 0.000666666666 KSM | 0.015333333318 $ | 0.3333333333 $ | ``` - +> Note: This is only a proposal for change and it can be modified upon additional conversation. ## Drawbacks -Lowering the deposit requirements may potentially increase the risk of spam and malicious collections on the platform. This could lead to a cluttered and less secure ecosystem, possibly devaluing legitimate NFT collections. It also puts additional pressure on the network and its maintainers to implement and manage alternative spam prevention mechanisms. + +> But NFT deposits were chosen somewhat arbitrarily at genesis and it’s a good exercise to re-evaluate them and adapt if they are causing pain and if lowering them has little or no negative side effect (or if the trade-off is worth it). +> -> joepetrowski + +> Underestimates mean that state grows faster, although not unbounded - effectively an economic subsidy on activity. Overestimates mean that the state grows slower - effectively an economic depressant on activity. +> -> rphmeier + +> Technical: We want to prevent state bloat, therefore using state should have a cost associated with it. +> -> joepetrowski + ## Testing, Security, and Privacy @@ -60,21 +67,23 @@ Lowering the deposit requirements may potentially increase the risk of spam and ### Performance This change is not expected to have a significant impact on the overall performance of the Polkadot Asset Hub. However, it is crucial to monitor the network closely, especially in the initial stages after implementation, to identify and mitigate any potential issues. + +One of the proposed changes we could also implement is: + +> Just from a technical perspective; I think the best we can do is to use a weak governance origin that is controlled by some consortium (ie. System Collective). +> This origin could then update the NFT deposits any time the market conditions warrant it - obviously while honoring the storage deposit requirements. +> To implement this, we need RFC#12 and the Parameters pallet from @xlc. +> -> OliverTY ### Ergonomics -The proposed change aims to enhance the user experience for artists, making the platform more accessible and user-friendly. It should not alter existing interfaces but may require updates to user documentation and onboarding materials. +The proposed change aims to enhance the user experience for artists, making the platform more accessible and user-friendly. ### Compatibility -The change should be backward compatible, with no impact on existing collections or users. However, a clear communication plan should be in place to inform all stakeholders of the changes and any required actions on their part. - -## Prior Art and References -References to other blockchain platforms that have successfully implemented similar changes could provide valuable insights and learnings. Examples include Ethereum and Binance Smart Chain, both of which have a wide range of NFT platforms with varying deposit requirements. +The change doesn't impact compatibility. ## Unresolved Questions - - What is the optimal new deposit amount that balances accessibility with the need for spam prevention? - - What alternative mechanisms can be implemented to prevent spam without relying on financial barriers? - - How will the change be communicated to the existing users and the wider Polkadot community? + - The question on the optimal new deposit amount that reduces barrior to entry and prevents accessibility with the need for state? ## Future Directions and Related Material -If accepted, this RFC could pave the way for further discussions and proposals aimed at enhancing the inclusivity and accessibility of the Polkadot ecosystem. Future work could also explore additional mechanisms for spam prevention that do not rely on financial barriers. +If accepted, this RFC could pave the way for further discussions and proposals aimed at enhancing the inclusivity and accessibility of the Polkadot ecosystem. Future work could also explore having a weak governance origin for deposits as proposed by Oliver. From 7d5e9c33cff7b79bee37ae00855c6113c55cd17b Mon Sep 17 00:00:00 2001 From: Aurora Poppyseed <30662672+poppyseedDev@users.noreply.github.com> Date: Tue, 7 Nov 2023 12:40:46 +0100 Subject: [PATCH 05/36] Update 000x-assethub.md --- text/000x-assethub.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/text/000x-assethub.md b/text/000x-assethub.md index 960daca4..182f458d 100644 --- a/text/000x-assethub.md +++ b/text/000x-assethub.md @@ -50,6 +50,7 @@ _Scroll right_ > Note: This is only a proposal for change and it can be modified upon additional conversation. ## Drawbacks +The contemplation of modifying deposit requirements necessitates a balanced assessment of the potential drawbacks. Highlighted below are cogent points extracted from the discourse on the [Polkadot Forum conversation](https://forum.polkadot.network/t/polkadot-assethub-high-nft-collection-deposit/4262), which provide critical perspectives on the implications of such changes: > But NFT deposits were chosen somewhat arbitrarily at genesis and it’s a good exercise to re-evaluate them and adapt if they are causing pain and if lowering them has little or no negative side effect (or if the trade-off is worth it). > -> joepetrowski @@ -68,13 +69,15 @@ _Scroll right_ ### Performance This change is not expected to have a significant impact on the overall performance of the Polkadot Asset Hub. However, it is crucial to monitor the network closely, especially in the initial stages after implementation, to identify and mitigate any potential issues. -One of the proposed changes we could also implement is: +Additionally, a supplementary proposal aims to augment the network's adaptability: > Just from a technical perspective; I think the best we can do is to use a weak governance origin that is controlled by some consortium (ie. System Collective). > This origin could then update the NFT deposits any time the market conditions warrant it - obviously while honoring the storage deposit requirements. > To implement this, we need RFC#12 and the Parameters pallet from @xlc. > -> OliverTY +This dynamic governance approach would facilitate a responsive and agile economic model for deposit management, ensuring that the network remains both accessible and robust in the face of market volatility. + ### Ergonomics The proposed change aims to enhance the user experience for artists, making the platform more accessible and user-friendly. @@ -82,7 +85,7 @@ The proposed change aims to enhance the user experience for artists, making the The change doesn't impact compatibility. ## Unresolved Questions - - The question on the optimal new deposit amount that reduces barrior to entry and prevents accessibility with the need for state? +- Determining the optimal new deposit amount that reduces the barrier to entry while preventing state bloat remains a subject for debate. What is the balance that allows for inclusivity without compromising the network's efficiency and security? ## Future Directions and Related Material From 0a217aa3a142caaeca74fe361c50e7a4ac1927c7 Mon Sep 17 00:00:00 2001 From: Aurora Poppyseed <30662672+poppyseedDev@users.noreply.github.com> Date: Tue, 7 Nov 2023 12:43:57 +0100 Subject: [PATCH 06/36] Update 000x-assethub.md - adding usernames --- text/000x-assethub.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/text/000x-assethub.md b/text/000x-assethub.md index 182f458d..6ac86096 100644 --- a/text/000x-assethub.md +++ b/text/000x-assethub.md @@ -1,10 +1,10 @@ # RFC-0000: Lowering Deposit Requirements on Polkadot Asset Hub -| | | -| --------------- | ------------------------------------------------------------------------------------------- | -| **Start Date** | 2 November 2023 | +| | | +| --------------- | -------------------------------------------------------------------------------------------------- | +| **Start Date** | 2 November 2023 | | **Description** | A proposal to reduce the minimum deposit required for collection creation on the Polkadot Asset Hub, making it more accessible and affordable for artists. | -| **Authors** | Aurora Poppyseed, Just_Luuuu | +| **Authors** | [Aurora Poppyseed](https://github.com/poppyseedDev), [Just_Luuuu](https://github.com/justLuuuu) | ## Summary From 4ba607f2e35f71416b3a125e9825ac0fc78040a1 Mon Sep 17 00:00:00 2001 From: Aurora Poppyseed <30662672+poppyseedDev@users.noreply.github.com> Date: Tue, 7 Nov 2023 13:04:14 +0100 Subject: [PATCH 07/36] Update 000x-assethub.md --- text/000x-assethub.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/text/000x-assethub.md b/text/000x-assethub.md index 6ac86096..ca0fbc4a 100644 --- a/text/000x-assethub.md +++ b/text/000x-assethub.md @@ -20,7 +20,7 @@ The current deposit of 10 DOT for collection creation on the Polkadot Asset Hub - **KodaDot**: As the facilitator of artists' relations, KodaDot has a vested interest in making the platform more accessible. - **Polkadot Community**: Stands to benefit from an influx of artists, creators and diverse NFT collections, enhancing the overall ecosystem. -Previous discussions have been held within the KodaDot community, as well as with artists expressing their concerns about the deposit amounts. Referencing to [Polkadot Forum conversation](https://forum.polkadot.network/t/polkadot-assethub-high-nft-collection-deposit/4262) +Previous discussions have been held within the KodaDot community, as well as with artists expressing their concerns about the deposit amounts. Referencing to [Polkadot Forum conversation](https://forum.polkadot.network/t/polkadot-assethub-high-nft-collection-deposit/4262). ## Explanation This RFC suggests modifying the smart contract governing collection creation on the Polkadot Asset Hub to require a lower deposit. The exact amount of the reduced deposit is yet to be determined and should be discussed and agreed upon by the stakeholders. The implementation of this change requires careful consideration of the network's integrity and the prevention of spam, possibly through alternative means such as rate limiting or account verification. @@ -79,7 +79,7 @@ Additionally, a supplementary proposal aims to augment the network's adaptabilit This dynamic governance approach would facilitate a responsive and agile economic model for deposit management, ensuring that the network remains both accessible and robust in the face of market volatility. ### Ergonomics -The proposed change aims to enhance the user experience for artists, making the platform more accessible and user-friendly. +The proposed change aims to enhance the user experience for artists, making Polkadot more accessible and user-friendly. ### Compatibility The change doesn't impact compatibility. From d40dffd144581c2d88c667678078875c35198255 Mon Sep 17 00:00:00 2001 From: Aurora Poppyseed <30662672+poppyseedDev@users.noreply.github.com> Date: Tue, 7 Nov 2023 16:10:33 +0100 Subject: [PATCH 08/36] Update text/000x-assethub.md Update headline Co-authored-by: Oliver Tale-Yazdi --- text/000x-assethub.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/text/000x-assethub.md b/text/000x-assethub.md index ca0fbc4a..423979ac 100644 --- a/text/000x-assethub.md +++ b/text/000x-assethub.md @@ -1,4 +1,4 @@ -# RFC-0000: Lowering Deposit Requirements on Polkadot Asset Hub +# RFC-0000: Lowering NFT Deposits on Polkadot and Kusama Asset Hubs | | | | --------------- | -------------------------------------------------------------------------------------------------- | From 6d297fb2326eccc7bf531abbfabe53e0233dffc0 Mon Sep 17 00:00:00 2001 From: Aurora Poppyseed <30662672+poppyseedDev@users.noreply.github.com> Date: Tue, 7 Nov 2023 16:11:33 +0100 Subject: [PATCH 09/36] Update 000x-assethub.md --- text/000x-assethub.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/text/000x-assethub.md b/text/000x-assethub.md index 423979ac..c9aead1d 100644 --- a/text/000x-assethub.md +++ b/text/000x-assethub.md @@ -3,7 +3,7 @@ | | | | --------------- | -------------------------------------------------------------------------------------------------- | | **Start Date** | 2 November 2023 | -| **Description** | A proposal to reduce the minimum deposit required for collection creation on the Polkadot Asset Hub, making it more accessible and affordable for artists. | +| **Description** | A proposal to reduce the minimum deposit required for collection creation on the Polkadot and Kusama Asset Hub, making it more accessible and affordable for artists. | | **Authors** | [Aurora Poppyseed](https://github.com/poppyseedDev), [Just_Luuuu](https://github.com/justLuuuu) | ## Summary From 0e49a4fd5dc3cbe4d4e326a6ede38c91f000da10 Mon Sep 17 00:00:00 2001 From: Aurora Poppyseed <30662672+poppyseedDev@users.noreply.github.com> Date: Wed, 8 Nov 2023 19:26:19 +0100 Subject: [PATCH 10/36] Update 000x-assethub.md - added vikiival as contributor --- text/000x-assethub.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/text/000x-assethub.md b/text/000x-assethub.md index c9aead1d..bd5df0fb 100644 --- a/text/000x-assethub.md +++ b/text/000x-assethub.md @@ -4,7 +4,7 @@ | --------------- | -------------------------------------------------------------------------------------------------- | | **Start Date** | 2 November 2023 | | **Description** | A proposal to reduce the minimum deposit required for collection creation on the Polkadot and Kusama Asset Hub, making it more accessible and affordable for artists. | -| **Authors** | [Aurora Poppyseed](https://github.com/poppyseedDev), [Just_Luuuu](https://github.com/justLuuuu) | +| **Authors** | [Aurora Poppyseed](https://github.com/poppyseedDev), [Just_Luuuu](https://github.com/justLuuuu), [VikiiVal](https://github.com/vikiival) | ## Summary From 3b48582e216ac8684593fbe9e04339a37cacc848 Mon Sep 17 00:00:00 2001 From: Aurora Poppyseed <30662672+poppyseedDev@users.noreply.github.com> Date: Thu, 16 Nov 2023 11:44:00 +0100 Subject: [PATCH 11/36] Update text/000x-assethub.md Co-authored-by: joe petrowski <25483142+joepetrowski@users.noreply.github.com> --- text/000x-assethub.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/text/000x-assethub.md b/text/000x-assethub.md index bd5df0fb..6df4caa3 100644 --- a/text/000x-assethub.md +++ b/text/000x-assethub.md @@ -16,7 +16,7 @@ The current deposit of 10 DOT for collection creation on the Polkadot Asset Hub ## Stakeholders -- **Artists**: Primary beneficiaries of the proposed change, particularly those who found the current deposit requirements prohibitive. +- **NFT Creators**: Primary beneficiaries of the proposed change, particularly those who found the current deposit requirements prohibitive. - **KodaDot**: As the facilitator of artists' relations, KodaDot has a vested interest in making the platform more accessible. - **Polkadot Community**: Stands to benefit from an influx of artists, creators and diverse NFT collections, enhancing the overall ecosystem. From cef02e1e746f708e327a4d3adcc83ed0e9cf5c9d Mon Sep 17 00:00:00 2001 From: Aurora Poppyseed <30662672+poppyseedDev@users.noreply.github.com> Date: Thu, 16 Nov 2023 11:44:32 +0100 Subject: [PATCH 12/36] Update text/000x-assethub.md Co-authored-by: joe petrowski <25483142+joepetrowski@users.noreply.github.com> --- text/000x-assethub.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/text/000x-assethub.md b/text/000x-assethub.md index 6df4caa3..b38977f9 100644 --- a/text/000x-assethub.md +++ b/text/000x-assethub.md @@ -17,7 +17,7 @@ The current deposit of 10 DOT for collection creation on the Polkadot Asset Hub ## Stakeholders - **NFT Creators**: Primary beneficiaries of the proposed change, particularly those who found the current deposit requirements prohibitive. -- **KodaDot**: As the facilitator of artists' relations, KodaDot has a vested interest in making the platform more accessible. +- **NFT Platforms**: As the facilitator of artists' relations, KodaDot has a vested interest in making the platform more accessible. - **Polkadot Community**: Stands to benefit from an influx of artists, creators and diverse NFT collections, enhancing the overall ecosystem. Previous discussions have been held within the KodaDot community, as well as with artists expressing their concerns about the deposit amounts. Referencing to [Polkadot Forum conversation](https://forum.polkadot.network/t/polkadot-assethub-high-nft-collection-deposit/4262). From 88c0f69485eeae88c008b0eb388fdbe8feddf01f Mon Sep 17 00:00:00 2001 From: Viki Val Date: Tue, 9 Jan 2024 12:01:58 +0100 Subject: [PATCH 13/36] :memo: wording --- text/000x-assethub.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/text/000x-assethub.md b/text/000x-assethub.md index b38977f9..a4eb9370 100644 --- a/text/000x-assethub.md +++ b/text/000x-assethub.md @@ -8,7 +8,7 @@ ## Summary -This RFC proposes a change to the current deposit requirements on the Polkadot and Kusama Asset Hub for creating NFT collections. The objective is to lower the barrier to entry for artists, fostering a more inclusive and vibrant ecosystem, while maintaining network integrity and preventing spam. +This RFC proposes changing the current deposit requirements on the Polkadot and Kusama Asset Hub for creating NFT collections. The objective is to lower the barrier to entry for artists, fostering a more inclusive and vibrant ecosystem while maintaining network integrity and preventing spam. ## Motivation @@ -23,7 +23,7 @@ The current deposit of 10 DOT for collection creation on the Polkadot Asset Hub Previous discussions have been held within the KodaDot community, as well as with artists expressing their concerns about the deposit amounts. Referencing to [Polkadot Forum conversation](https://forum.polkadot.network/t/polkadot-assethub-high-nft-collection-deposit/4262). ## Explanation -This RFC suggests modifying the smart contract governing collection creation on the Polkadot Asset Hub to require a lower deposit. The exact amount of the reduced deposit is yet to be determined and should be discussed and agreed upon by the stakeholders. The implementation of this change requires careful consideration of the network's integrity and the prevention of spam, possibly through alternative means such as rate limiting or account verification. +This RFC suggests modifying the smart contract governing collection creation on the Polkadot Asset Hub to require a lower deposit. The amount of the reduced deposit is yet to be determined. It should be discussed and agreed upon by the stakeholders. Implementing this change requires careful consideration of the network's integrity and the prevention of spam, possibly through alternative means such as rate limiting or account verification. **Prices and Proposed Prices on Polkadot Asset Hub:** _Scroll right_ @@ -50,7 +50,7 @@ _Scroll right_ > Note: This is only a proposal for change and it can be modified upon additional conversation. ## Drawbacks -The contemplation of modifying deposit requirements necessitates a balanced assessment of the potential drawbacks. Highlighted below are cogent points extracted from the discourse on the [Polkadot Forum conversation](https://forum.polkadot.network/t/polkadot-assethub-high-nft-collection-deposit/4262), which provide critical perspectives on the implications of such changes: +Modifying deposit requirements necessitates a balanced assessment of the potential drawbacks. Highlighted below are cogent points extracted from the discourse on the [Polkadot Forum conversation](https://forum.polkadot.network/t/polkadot-assethub-high-nft-collection-deposit/4262), which provide critical perspectives on the implications of such changes: > But NFT deposits were chosen somewhat arbitrarily at genesis and it’s a good exercise to re-evaluate them and adapt if they are causing pain and if lowering them has little or no negative side effect (or if the trade-off is worth it). > -> joepetrowski @@ -67,7 +67,7 @@ The contemplation of modifying deposit requirements necessitates a balanced asse ## Performance, Ergonomics, and Compatibility ### Performance -This change is not expected to have a significant impact on the overall performance of the Polkadot Asset Hub. However, it is crucial to monitor the network closely, especially in the initial stages after implementation, to identify and mitigate any potential issues. +This change is not expected to have a significant impact on the overall performance of the Polkadot Asset Hub. However, monitoring the network closely, especially in the initial stages after implementation, is crucial to identify and mitigate any potential issues. Additionally, a supplementary proposal aims to augment the network's adaptability: @@ -76,7 +76,7 @@ Additionally, a supplementary proposal aims to augment the network's adaptabilit > To implement this, we need RFC#12 and the Parameters pallet from @xlc. > -> OliverTY -This dynamic governance approach would facilitate a responsive and agile economic model for deposit management, ensuring that the network remains both accessible and robust in the face of market volatility. +This dynamic governance approach would facilitate a responsive and agile economic model for deposit management, ensuring that the network remains accessible and robust in the face of market volatility. ### Ergonomics The proposed change aims to enhance the user experience for artists, making Polkadot more accessible and user-friendly. @@ -85,7 +85,7 @@ The proposed change aims to enhance the user experience for artists, making Polk The change doesn't impact compatibility. ## Unresolved Questions -- Determining the optimal new deposit amount that reduces the barrier to entry while preventing state bloat remains a subject for debate. What is the balance that allows for inclusivity without compromising the network's efficiency and security? +- Determining the optimal new deposit amount that reduces the barrier to entry while preventing state bloat remains a subject for debate. What balance allows for inclusivity without compromising the network's efficiency and security? ## Future Directions and Related Material From a15b1bd18f88ac6ad36aa41cf86701d5ca7aea3d Mon Sep 17 00:00:00 2001 From: Viki Val Date: Tue, 9 Jan 2024 12:52:58 +0100 Subject: [PATCH 14/36] :memo: :zap: calculations --- text/000x-assethub.md | 51 ++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 48 insertions(+), 3 deletions(-) diff --git a/text/000x-assethub.md b/text/000x-assethub.md index a4eb9370..40ce53f0 100644 --- a/text/000x-assethub.md +++ b/text/000x-assethub.md @@ -14,24 +14,67 @@ This RFC proposes changing the current deposit requirements on the Polkadot and The current deposit of 10 DOT for collection creation on the Polkadot Asset Hub presents a significant financial barrier for many artists. By lowering the deposit requirements, we aim to encourage more artists to participate in the Polkadot NFT ecosystem, thereby enriching the diversity and vibrancy of the community and its offerings. +Actual implementation of deposit is an arbitrary number coming from [Uniques pallet](). It is not a result of any economic analysis. The current deposit requirements are as follows: + +### Requirements + +- Deposit SHOULD be derived from `deposit` function adjusted by correspoding pricing mechansim. + ## Stakeholders - **NFT Creators**: Primary beneficiaries of the proposed change, particularly those who found the current deposit requirements prohibitive. - **NFT Platforms**: As the facilitator of artists' relations, KodaDot has a vested interest in making the platform more accessible. +- **dApp Developers**: Making the blockspace more accessible will encourage developers to create and build unique dApps in the Polkadot ecosystem. - **Polkadot Community**: Stands to benefit from an influx of artists, creators and diverse NFT collections, enhancing the overall ecosystem. Previous discussions have been held within the KodaDot community, as well as with artists expressing their concerns about the deposit amounts. Referencing to [Polkadot Forum conversation](https://forum.polkadot.network/t/polkadot-assethub-high-nft-collection-deposit/4262). ## Explanation -This RFC suggests modifying the smart contract governing collection creation on the Polkadot Asset Hub to require a lower deposit. The amount of the reduced deposit is yet to be determined. It should be discussed and agreed upon by the stakeholders. Implementing this change requires careful consideration of the network's integrity and the prevention of spam, possibly through alternative means such as rate limiting or account verification. +This RFC suggests modifying deposit constants defined in the `nfts` pallet on the Polkadot Asset Hub to require a lower deposit. The amount of the reduced deposit should be determined by `deposit` adjusted by pricing mechanism (arbitrary number/another pricing function). + +[Current deposit requirements are as follows](https://github.com/paritytech/polkadot-sdk/blob/master/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/lib.rs#L757): + + +```rust +parameter_types! { + // re-use the Uniques deposits + pub const NftsCollectionDeposit: Balance = UniquesCollectionDeposit::get(); + pub const NftsItemDeposit: Balance = UniquesItemDeposit::get(); + pub const NftsMetadataDepositBase: Balance = UniquesMetadataDepositBase::get(); + pub const NftsAttributeDepositBase: Balance = UniquesAttributeDepositBase::get(); + pub const NftsDepositPerByte: Balance = UniquesDepositPerByte::get(); +} + +// +parameter_types! { + pub const UniquesCollectionDeposit: Balance = UNITS / 10; // 1 / 10 UNIT deposit to create a collection + pub const UniquesItemDeposit: Balance = UNITS / 1_000; // 1 / 1000 UNIT deposit to mint an item + pub const UniquesMetadataDepositBase: Balance = deposit(1, 129); + pub const UniquesAttributeDepositBase: Balance = deposit(1, 0); + pub const UniquesDepositPerByte: Balance = deposit(0, 1); +} +``` + +The proposed change would modify the deposit constants to require a lower deposit. The amount of the reduced deposit should be determined by `deposit` adjusted by arbitrary number. + +```rust +parameter_types! { + pub const NftsCollectionDeposit: Balance = deposit(1, 130); + pub const NftsItemDeposit: Balance = deposit(1, 164) / 40; + pub const NftsMetadataDepositBase: Balance = deposit(1, 129) / 10; + pub const NftsAttributeDepositBase: Balance = deposit(1, 0) / 10; + pub const NftsDepositPerByte: Balance = deposit(0, 1); +} +``` + **Prices and Proposed Prices on Polkadot Asset Hub:** _Scroll right_ ``` | **Name** | **Current price implementation** | **Price if DOT = 5$** | **Price if DOT goes to 50$** | **Proposed Price in DOT** | **Proposed Price if DOT = 5$** | **Proposed Price if DOT goes to 50$**| |---------------------------|----------------------------------|------------------------|-------------------------------|---------------------------|----------------------------------|--------------------------------------| -| collectionDeposit | 10 DOT | 50 $ | 500 $ | 0.1 DOT | 0.5 $ | 5$ | -| itemDeposit | 0.01 DOT | 0.05 $ | 0.5 $ | 0.001 DOT | 0.005 $ | 0.05$ | +| collectionDeposit | 10 DOT | 50 $ | 500 $ | 0.20064 DOT | ~1 $ | 10.32$ | +| itemDeposit | 0.01 DOT | 0.05 $ | 0.5 $ | 0.005 DOT | 0.025 $ | 0.251$ | | metadataDepositBase | 0.20129 DOT | 1.00645 $ | 10.0645 $ | 0.0020129 DOT | 0.0100645 $ | 0.100645$ | | attributeDepositBase | 0.2 DOT | 1 $ | 10 $ | 0.002 DOT | 0.01 $ | 0.1$ | ``` @@ -64,6 +107,8 @@ Modifying deposit requirements necessitates a balanced assessment of the potenti ## Testing, Security, and Privacy +The change is backwards compatible. The prevention of "spam" could be prevented by OpenGov proposal to `forceDestoy` list of collections that are not suitable. + ## Performance, Ergonomics, and Compatibility ### Performance From edf6758eebcc67f560646cd5dbaf6dfdf1775340 Mon Sep 17 00:00:00 2001 From: Viki Val Date: Tue, 9 Jan 2024 13:00:19 +0100 Subject: [PATCH 15/36] :memo: update author name --- text/000x-assethub.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/text/000x-assethub.md b/text/000x-assethub.md index 40ce53f0..17739683 100644 --- a/text/000x-assethub.md +++ b/text/000x-assethub.md @@ -4,7 +4,7 @@ | --------------- | -------------------------------------------------------------------------------------------------- | | **Start Date** | 2 November 2023 | | **Description** | A proposal to reduce the minimum deposit required for collection creation on the Polkadot and Kusama Asset Hub, making it more accessible and affordable for artists. | -| **Authors** | [Aurora Poppyseed](https://github.com/poppyseedDev), [Just_Luuuu](https://github.com/justLuuuu), [VikiiVal](https://github.com/vikiival) | +| **Authors** | [Aurora Poppyseed](https://github.com/poppyseedDev), [Just_Luuuu](https://github.com/justLuuuu), [Viki Val](https://github.com/vikiival) | ## Summary From 4079c299374cb28fb74a009efcbc60e99f785862 Mon Sep 17 00:00:00 2001 From: Viki Val Date: Tue, 9 Jan 2024 13:42:39 +0100 Subject: [PATCH 16/36] :zap: :memo: pricing for kusama asset hub --- text/000x-assethub.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/text/000x-assethub.md b/text/000x-assethub.md index 17739683..d774bf10 100644 --- a/text/000x-assethub.md +++ b/text/000x-assethub.md @@ -84,8 +84,8 @@ _Scroll right_ ``` | **Name** | **Current price implementation** | **Price if KSM = 23$** | **Price if KSM goes to 500$** | **Proposed Price in KSM** | **Proposed Price if KSM = 23$** | **Proposed Price if KSM goes to 500$** | |---------------------------|----------------------------------|------------------------|-------------------------------|---------------------------|----------------------------------|----------------------------------------| -| collectionDeposit | 0.1 KSM | 2.3 $ | 50 $ | 0.01 KSM | 0.23 $ | 5 $ | -| itemDeposit | 0.001 KSM | 0.023 $ | 0.5 $ | 0.0001 KSM | 0.0023 $ | 0.05 $ | +| collectionDeposit | 0.1 KSM | 2.3 $ | 50 $ | 0.006688 KSM | 0.154 $ | 3.34 $ | +| itemDeposit | 0.001 KSM | 0.023 $ | 0.5 $ | 0.000167 KSM | 0.00385 $ | 0.0835 $ | | metadataDepositBase | 0.006709666617 KSM | 0.15432183319 $ | 3.3548333085 $ | 0.0006709666617 KSM | 0.015432183319 $ | 0.33548333085 $ | | attributeDepositBase | 0.00666666666 KSM | 0.15333333318 $ | 3.333333333 $ | 0.000666666666 KSM | 0.015333333318 $ | 0.3333333333 $ | From e9a81d4a6462f5925b24646f064b80893ede10bd Mon Sep 17 00:00:00 2001 From: Viki Val Date: Tue, 9 Jan 2024 13:48:14 +0100 Subject: [PATCH 17/36] :memo: wording --- text/000x-assethub.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/text/000x-assethub.md b/text/000x-assethub.md index d774bf10..d049dce2 100644 --- a/text/000x-assethub.md +++ b/text/000x-assethub.md @@ -14,7 +14,7 @@ This RFC proposes changing the current deposit requirements on the Polkadot and The current deposit of 10 DOT for collection creation on the Polkadot Asset Hub presents a significant financial barrier for many artists. By lowering the deposit requirements, we aim to encourage more artists to participate in the Polkadot NFT ecosystem, thereby enriching the diversity and vibrancy of the community and its offerings. -Actual implementation of deposit is an arbitrary number coming from [Uniques pallet](). It is not a result of any economic analysis. The current deposit requirements are as follows: +Actual implementation of deposit is an arbitrary number coming from [Uniques pallet](https://github.com/paritytech/polkadot-sdk/blob/master/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/lib.rs#L757). It is not a result of any economic analysis. The goal of this proposal is to adjust the deposit from constants to the dynamic pricing based on the `deposit` function with respect to stakeholders. ### Requirements @@ -130,7 +130,7 @@ The proposed change aims to enhance the user experience for artists, making Polk The change doesn't impact compatibility. ## Unresolved Questions -- Determining the optimal new deposit amount that reduces the barrier to entry while preventing state bloat remains a subject for debate. What balance allows for inclusivity without compromising the network's efficiency and security? +None. ## Future Directions and Related Material From 28e217a8e8de3e1d1754570c640ae272fc10167c Mon Sep 17 00:00:00 2001 From: Viki Val Date: Tue, 9 Jan 2024 13:55:17 +0100 Subject: [PATCH 18/36] :memo: :bug: wording --- text/000x-assethub.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/text/000x-assethub.md b/text/000x-assethub.md index d049dce2..809f3ab8 100644 --- a/text/000x-assethub.md +++ b/text/000x-assethub.md @@ -14,7 +14,7 @@ This RFC proposes changing the current deposit requirements on the Polkadot and The current deposit of 10 DOT for collection creation on the Polkadot Asset Hub presents a significant financial barrier for many artists. By lowering the deposit requirements, we aim to encourage more artists to participate in the Polkadot NFT ecosystem, thereby enriching the diversity and vibrancy of the community and its offerings. -Actual implementation of deposit is an arbitrary number coming from [Uniques pallet](https://github.com/paritytech/polkadot-sdk/blob/master/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/lib.rs#L757). It is not a result of any economic analysis. The goal of this proposal is to adjust the deposit from constants to the dynamic pricing based on the `deposit` function with respect to stakeholders. +The actual implementation of the deposit is an arbitrary number coming from [Uniques pallet](https://github.com/paritytech/polkadot-sdk/blob/master/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/lib.rs#L757). It is not a result of any economic analysis. This proposal aims to adjust the deposit from constant to dynamic pricing based on the `deposit` function with respect to stakeholders. ### Requirements @@ -23,14 +23,14 @@ Actual implementation of deposit is an arbitrary number coming from [Uniques pal ## Stakeholders - **NFT Creators**: Primary beneficiaries of the proposed change, particularly those who found the current deposit requirements prohibitive. -- **NFT Platforms**: As the facilitator of artists' relations, KodaDot has a vested interest in making the platform more accessible. +- **NFT Platforms**: As the facilitator of artists' relations, NFT Marketplaces has a vested interest in onboarding new users and making the platform more accessible. - **dApp Developers**: Making the blockspace more accessible will encourage developers to create and build unique dApps in the Polkadot ecosystem. - **Polkadot Community**: Stands to benefit from an influx of artists, creators and diverse NFT collections, enhancing the overall ecosystem. -Previous discussions have been held within the KodaDot community, as well as with artists expressing their concerns about the deposit amounts. Referencing to [Polkadot Forum conversation](https://forum.polkadot.network/t/polkadot-assethub-high-nft-collection-deposit/4262). +Previous discussions have been held within the Polkadot Forum community and with artists expressing their concerns about the deposit amounts. [Link](https://forum.polkadot.network/t/polkadot-assethub-high-nft-collection-deposit/4262). ## Explanation -This RFC suggests modifying deposit constants defined in the `nfts` pallet on the Polkadot Asset Hub to require a lower deposit. The amount of the reduced deposit should be determined by `deposit` adjusted by pricing mechanism (arbitrary number/another pricing function). +This RFC suggests modifying deposit constants defined in the `nfts` pallet on the Polkadot Asset Hub to require a lower deposit. The reduced deposit amount should be determined by the `deposit` adjusted by the pricing mechanism (arbitrary number/another pricing function). [Current deposit requirements are as follows](https://github.com/paritytech/polkadot-sdk/blob/master/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/lib.rs#L757): @@ -55,7 +55,7 @@ parameter_types! { } ``` -The proposed change would modify the deposit constants to require a lower deposit. The amount of the reduced deposit should be determined by `deposit` adjusted by arbitrary number. +The proposed change would modify the deposit constants to require a lower deposit. The reduced deposit amount should be determined by `deposit` adjusted by an arbitrary number. ```rust parameter_types! { @@ -90,7 +90,7 @@ _Scroll right_ | attributeDepositBase | 0.00666666666 KSM | 0.15333333318 $ | 3.333333333 $ | 0.000666666666 KSM | 0.015333333318 $ | 0.3333333333 $ | ``` -> Note: This is only a proposal for change and it can be modified upon additional conversation. +> Note: This is only a proposal for change and can be modified upon additional conversation. ## Drawbacks Modifying deposit requirements necessitates a balanced assessment of the potential drawbacks. Highlighted below are cogent points extracted from the discourse on the [Polkadot Forum conversation](https://forum.polkadot.network/t/polkadot-assethub-high-nft-collection-deposit/4262), which provide critical perspectives on the implications of such changes: @@ -127,7 +127,7 @@ This dynamic governance approach would facilitate a responsive and agile economi The proposed change aims to enhance the user experience for artists, making Polkadot more accessible and user-friendly. ### Compatibility -The change doesn't impact compatibility. +The change does not impact compatibility as `redeposit` function is already implemented. ## Unresolved Questions None. From 954184192f5ce61d51bacbb89b5b7311b9b026b0 Mon Sep 17 00:00:00 2001 From: Aurora Poppyseed <30662672+poppyseedDev@users.noreply.github.com> Date: Tue, 9 Jan 2024 14:20:04 +0100 Subject: [PATCH 19/36] Update text/000x-assethub.md --- text/000x-assethub.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/text/000x-assethub.md b/text/000x-assethub.md index 809f3ab8..ba16d042 100644 --- a/text/000x-assethub.md +++ b/text/000x-assethub.md @@ -133,5 +133,5 @@ The change does not impact compatibility as `redeposit` function is already impl None. ## Future Directions and Related Material - +- If accepted, this RFC could pave the way for further discussions and proposals aimed at enhancing the inclusivity and accessibility of the Polkadot ecosystem. Future work could also explore having a weak governance origin for deposits as proposed by Oliver. From 5b34f67612f08fe7ec059c1b8e3ba3ffb812f21b Mon Sep 17 00:00:00 2001 From: Aurora Poppyseed <30662672+poppyseedDev@users.noreply.github.com> Date: Tue, 9 Jan 2024 14:20:12 +0100 Subject: [PATCH 20/36] Update text/000x-assethub.md --- text/000x-assethub.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/text/000x-assethub.md b/text/000x-assethub.md index ba16d042..f951cb29 100644 --- a/text/000x-assethub.md +++ b/text/000x-assethub.md @@ -130,7 +130,7 @@ The proposed change aims to enhance the user experience for artists, making Polk The change does not impact compatibility as `redeposit` function is already implemented. ## Unresolved Questions -None. +- ## Future Directions and Related Material - From a3d3cb1c7210078f07ceba4389d103bf6602ee5b Mon Sep 17 00:00:00 2001 From: Aurora Poppyseed <30662672+poppyseedDev@users.noreply.github.com> Date: Tue, 9 Jan 2024 16:16:21 +0100 Subject: [PATCH 21/36] Update 000x-assethub.md --- text/000x-assethub.md | 133 ++++++++++++++++++++++++++++-------------- 1 file changed, 89 insertions(+), 44 deletions(-) diff --git a/text/000x-assethub.md b/text/000x-assethub.md index f951cb29..a36225d4 100644 --- a/text/000x-assethub.md +++ b/text/000x-assethub.md @@ -30,11 +30,18 @@ The actual implementation of the deposit is an arbitrary number coming from [Uni Previous discussions have been held within the Polkadot Forum community and with artists expressing their concerns about the deposit amounts. [Link](https://forum.polkadot.network/t/polkadot-assethub-high-nft-collection-deposit/4262). ## Explanation +This RFC proposes a revision of the deposit constants in the nfts pallet on the Polkadot Asset Hub. The new deposit amounts would be determined by a standard deposit formula. + This RFC suggests modifying deposit constants defined in the `nfts` pallet on the Polkadot Asset Hub to require a lower deposit. The reduced deposit amount should be determined by the `deposit` adjusted by the pricing mechanism (arbitrary number/another pricing function). -[Current deposit requirements are as follows](https://github.com/paritytech/polkadot-sdk/blob/master/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/lib.rs#L757): +### Current code structure + +[Current deposit requirements are as follows](https://github.com/paritytech/polkadot-sdk/blob/master/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/lib.rs#L757) + +Looking at the current code structure the currently implemented we can find that the pricing re-uses the logic of how Uniques are defined: + ```rust parameter_types! { // re-use the Uniques deposits @@ -44,8 +51,10 @@ parameter_types! { pub const NftsAttributeDepositBase: Balance = UniquesAttributeDepositBase::get(); pub const NftsDepositPerByte: Balance = UniquesDepositPerByte::get(); } +``` -// +And looking back on the code we can find that the Uniques are defined in such a way: +```rust parameter_types! { pub const UniquesCollectionDeposit: Balance = UNITS / 10; // 1 / 10 UNIT deposit to create a collection pub const UniquesItemDeposit: Balance = UNITS / 1_000; // 1 / 1000 UNIT deposit to mint an item @@ -54,9 +63,45 @@ parameter_types! { pub const UniquesDepositPerByte: Balance = deposit(0, 1); } ``` +As we can see in the code definition above the current code does not use the `deposit` funtion when the collection in the following instances: `UniquesCollectionDeposit` and `UniquesItemDeposit`. + +### Modifying the code to by Using the Deposit Function +As The proposed change would modify the deposit constants to require a lower deposit. The reduced deposit amount should be determined by `deposit` adjusted by an arbitrary number. +```rust +parameter_types! { + pub const NftsCollectionDeposit: Balance = deposit(1, 130); + pub const NftsItemDeposit: Balance = deposit(1, 164); + pub const NftsMetadataDepositBase: Balance = deposit(1, 129); + pub const NftsAttributeDepositBase: Balance = deposit(1, 0); + pub const NftsDepositPerByte: Balance = deposit(0, 1); +} +``` + +Calculations viewed bellow were calculated by using the following repository [rfc-pricing](https://github.com/vikiival/rfc-pricing). +**Polkadot** +| **Name** | **Current price implementation** | **Proposed Modified by using the new deposit function** | +|---------------------------|----------------------------------|-------------------------| +| collectionDeposit | 10 DOT | 0.20064 DOT | +| itemDeposit | 0.01 DOT | 0.20081 DOT | +| metadataDepositBase | 0.20129 DOT | 0.20076 DOT | +| attributeDepositBase | 0.2 DOT | 0.2 DOT | + +Similarly the prices for Kusama ecosystem were calculated as: +**Kusama:** +| **Name** | **Current price implementation** | **Proposed Price in KSM** | +|---------------------------|----------------------------------|---------------------------| +| collectionDeposit | 0.1 KSM | 0.006688 KSM | +| itemDeposit | 0.001 KSM | 0.000167 KSM | +| metadataDepositBase | 0.006709666617 KSM | 0.0006709666617 KSM | +| attributeDepositBase | 0.00666666666 KSM | 0.000666666666 KSM | + + +### Additional modifications to further reduce the barrier to entry +We propose reducing the prices further by reducing them by an arbitrary number. This number was chosen to have a reasonable amount to encourage participation even when the prices of Polkadot and Kusama rise. + ```rust parameter_types! { pub const NftsCollectionDeposit: Balance = deposit(1, 130); @@ -67,71 +112,71 @@ parameter_types! { } ``` - **Prices and Proposed Prices on Polkadot Asset Hub:** -_Scroll right_ -``` -| **Name** | **Current price implementation** | **Price if DOT = 5$** | **Price if DOT goes to 50$** | **Proposed Price in DOT** | **Proposed Price if DOT = 5$** | **Proposed Price if DOT goes to 50$**| -|---------------------------|----------------------------------|------------------------|-------------------------------|---------------------------|----------------------------------|--------------------------------------| -| collectionDeposit | 10 DOT | 50 $ | 500 $ | 0.20064 DOT | ~1 $ | 10.32$ | -| itemDeposit | 0.01 DOT | 0.05 $ | 0.5 $ | 0.005 DOT | 0.025 $ | 0.251$ | -| metadataDepositBase | 0.20129 DOT | 1.00645 $ | 10.0645 $ | 0.0020129 DOT | 0.0100645 $ | 0.100645$ | -| attributeDepositBase | 0.2 DOT | 1 $ | 10 $ | 0.002 DOT | 0.01 $ | 0.1$ | -``` -**Prices and Proposed Prices on Kusama Asset Hub:** -_Scroll right_ -``` -| **Name** | **Current price implementation** | **Price if KSM = 23$** | **Price if KSM goes to 500$** | **Proposed Price in KSM** | **Proposed Price if KSM = 23$** | **Proposed Price if KSM goes to 500$** | -|---------------------------|----------------------------------|------------------------|-------------------------------|---------------------------|----------------------------------|----------------------------------------| -| collectionDeposit | 0.1 KSM | 2.3 $ | 50 $ | 0.006688 KSM | 0.154 $ | 3.34 $ | -| itemDeposit | 0.001 KSM | 0.023 $ | 0.5 $ | 0.000167 KSM | 0.00385 $ | 0.0835 $ | -| metadataDepositBase | 0.006709666617 KSM | 0.15432183319 $ | 3.3548333085 $ | 0.0006709666617 KSM | 0.015432183319 $ | 0.33548333085 $ | -| attributeDepositBase | 0.00666666666 KSM | 0.15333333318 $ | 3.333333333 $ | 0.000666666666 KSM | 0.015333333318 $ | 0.3333333333 $ | +**Polkadot** +| **Name** | **Current price implementation** | **Proposed Prices** | +|---------------------------|----------------------------------|---------------------| +| collectionDeposit | 10 DOT | 0.20064 DOT | +| itemDeposit | 0.01 DOT | 0.005 DOT | +| metadataDepositBase | 0.20129 DOT | 0.002 DOT | +| attributeDepositBase | 0.2 DOT | 0.002 DOT | -``` -> Note: This is only a proposal for change and can be modified upon additional conversation. +**Kusama** +| **Name** | **Current price implementation** | **Proposed Price in KSM** | +|---------------------------|----------------------------------|---------------------------| +| collectionDeposit | 0.1 KSM | 0.006688 KSM | +| itemDeposit | 0.001 KSM | 0.000167 KSM | +| metadataDepositBase | 0.006709666617 KSM | 0.0006709666617 KSM | +| attributeDepositBase | 0.00666666666 KSM | 0.000666666666 KSM | + + +## Other proposals +There were some proposals how to augment the network's adaptability: + +### Weak governance origin + +One of the options how to mitigate a bloated state is to introduce a weak governance origin that is controlled by some consortium (ie. System Collective). This origin could then update the NFT deposits any time the market conditions warrant it - obviously while honoring the storage deposit requirements. + +This dynamic governance approach would facilitate a responsive and agile economic model for deposit management, ensuring that the network remains accessible and robust in the face of market volatility. + +Even with such a proposal in place the network could be too slow to act. ## Drawbacks Modifying deposit requirements necessitates a balanced assessment of the potential drawbacks. Highlighted below are cogent points extracted from the discourse on the [Polkadot Forum conversation](https://forum.polkadot.network/t/polkadot-assethub-high-nft-collection-deposit/4262), which provide critical perspectives on the implications of such changes: -> But NFT deposits were chosen somewhat arbitrarily at genesis and it’s a good exercise to re-evaluate them and adapt if they are causing pain and if lowering them has little or no negative side effect (or if the trade-off is worth it). -> -> joepetrowski +The discourse around modifying deposit requirements includes various perspectives: + +Adjusting NFT deposit requirements on Polkadot and Kusama Asset Hubs involves key challenges: -> Underestimates mean that state grows faster, although not unbounded - effectively an economic subsidy on activity. Overestimates mean that the state grows slower - effectively an economic depressant on activity. -> -> rphmeier +1. **State Growth and Technical Concerns**: Lowering deposit requirements can lead to increased blockchain state size, potentially causing state bloat. This growth needs to be managed to prevent strain on the network's resources and maintain operational efficiency. -> Technical: We want to prevent state bloat, therefore using state should have a cost associated with it. -> -> joepetrowski +2. **Network Security and Market Response**: Reduced deposits might increase transaction volume, potentially bloating the state, thereby impacting network security. Additionally, adapting to the cryptocurrency market's volatility is crucial. The mechanism for setting deposit amounts must be responsive yet stable, avoiding undue complexity for users. +3. **Economic Impact on Stakeholders**: The change could have varied economic effects on creators, platform operators, and investors. Balancing these interests is essential to ensure the adjustment benefits the ecosystem without negatively impacting its value dynamics. However in the particular case of Polkadot and Kusama Asset Hub this does not pose a concern since there are very few collections currently. As of date 9th January 2024 there are 42 collections on Polkadot Asset Hub and 191 on Kusama Asset Hub with a relatively low volume. ## Testing, Security, and Privacy -The change is backwards compatible. The prevention of "spam" could be prevented by OpenGov proposal to `forceDestoy` list of collections that are not suitable. -## Performance, Ergonomics, and Compatibility +### Security concerns -### Performance -This change is not expected to have a significant impact on the overall performance of the Polkadot Asset Hub. However, monitoring the network closely, especially in the initial stages after implementation, is crucial to identify and mitigate any potential issues. - -Additionally, a supplementary proposal aims to augment the network's adaptability: +The prevention of "spam" could be prevented by OpenGov proposal to `forceDestoy` list of collections that are not suitable. -> Just from a technical perspective; I think the best we can do is to use a weak governance origin that is controlled by some consortium (ie. System Collective). -> This origin could then update the NFT deposits any time the market conditions warrant it - obviously while honoring the storage deposit requirements. -> To implement this, we need RFC#12 and the Parameters pallet from @xlc. -> -> OliverTY +## Performance, Ergonomics, and Compatibility -This dynamic governance approach would facilitate a responsive and agile economic model for deposit management, ensuring that the network remains accessible and robust in the face of market volatility. +### Performance +The only forseeable impact on performance araise from the state being too bloated from the potential and impacting performance of the chain. ### Ergonomics -The proposed change aims to enhance the user experience for artists, making Polkadot more accessible and user-friendly. +The proposed change aims to enhance the user experience for artists, traders and utilizers of Kusama and Polkadot asset hub. Making Polkadot and Kusama more accessible and user-friendly. ### Compatibility The change does not impact compatibility as `redeposit` function is already implemented. +### Compatibility +The change is backwards compatible. ## Unresolved Questions -- +/ ## Future Directions and Related Material -- -If accepted, this RFC could pave the way for further discussions and proposals aimed at enhancing the inclusivity and accessibility of the Polkadot ecosystem. Future work could also explore having a weak governance origin for deposits as proposed by Oliver. +If accepted, this RFC could pave the way for further discussions and proposals aimed at enhancing the inclusivity and accessibility of the Polkadot ecosystem. From 731d0c1e01fbf4df9787dc111a820b3ddba3605b Mon Sep 17 00:00:00 2001 From: Aurora Poppyseed <30662672+poppyseedDev@users.noreply.github.com> Date: Wed, 10 Jan 2024 11:24:43 +0100 Subject: [PATCH 22/36] Update 000x-assethub.md --- text/000x-assethub.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/text/000x-assethub.md b/text/000x-assethub.md index a36225d4..c9dcc6e5 100644 --- a/text/000x-assethub.md +++ b/text/000x-assethub.md @@ -8,11 +8,11 @@ ## Summary -This RFC proposes changing the current deposit requirements on the Polkadot and Kusama Asset Hub for creating NFT collections. The objective is to lower the barrier to entry for artists, fostering a more inclusive and vibrant ecosystem while maintaining network integrity and preventing spam. +This RFC proposes changing the current deposit requirements on the Polkadot and Kusama Asset Hub for creating NFT collection, minting an individual NFT, and lowering it's coresponding metadata and attribute deposit. The objective is to lower the barrier to entry for NFT creators, fostering a more inclusive and vibrant ecosystem while maintaining network integrity and preventing spam. ## Motivation -The current deposit of 10 DOT for collection creation on the Polkadot Asset Hub presents a significant financial barrier for many artists. By lowering the deposit requirements, we aim to encourage more artists to participate in the Polkadot NFT ecosystem, thereby enriching the diversity and vibrancy of the community and its offerings. +The current deposit of 10 DOT for collection creation (along with 0.01 DOT for item deposit and 0.2 DOT for metadata and attribute deposit) on the Polkadot Asset Hub and 0.1 KSM on Kusama Asset Hub presents a significant financial barrier for many NFT creators. By lowering the deposit requirements, we aim to encourage more NFT creators to participate in the Polkadot NFT ecosystem, thereby enriching the diversity and vibrancy of the community and its offerings. The actual implementation of the deposit is an arbitrary number coming from [Uniques pallet](https://github.com/paritytech/polkadot-sdk/blob/master/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/lib.rs#L757). It is not a result of any economic analysis. This proposal aims to adjust the deposit from constant to dynamic pricing based on the `deposit` function with respect to stakeholders. From d16fa29618be41db2e4788bc175e6c94656b8617 Mon Sep 17 00:00:00 2001 From: Aurora Poppyseed <30662672+poppyseedDev@users.noreply.github.com> Date: Thu, 11 Jan 2024 15:25:52 +0100 Subject: [PATCH 23/36] Update 000x-assethub.md --- text/000x-assethub.md | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/text/000x-assethub.md b/text/000x-assethub.md index c9dcc6e5..8f40b515 100644 --- a/text/000x-assethub.md +++ b/text/000x-assethub.md @@ -135,12 +135,26 @@ parameter_types! { There were some proposals how to augment the network's adaptability: ### Weak governance origin - One of the options how to mitigate a bloated state is to introduce a weak governance origin that is controlled by some consortium (ie. System Collective). This origin could then update the NFT deposits any time the market conditions warrant it - obviously while honoring the storage deposit requirements. This dynamic governance approach would facilitate a responsive and agile economic model for deposit management, ensuring that the network remains accessible and robust in the face of market volatility. -Even with such a proposal in place the network could be too slow to act. +However after discussions, we found that such a proposal lacks in certain areas: + 1. Actors could be too slow to act, having a delayed response and thus endagering the networks security + 2. In attempting to provide stability it actually removes it because the DOT-based deposit can change so often that NFT issuers don't even know how much DOT they should acquire in order to plan a few weeks in advance. + 3. It does not scale. There are deposits all over the system. These actors could find themselves perpetually changing multiple deposits. + +### Having the price of the deposit imitate a function +A clever idea on how to encourage initial participation and then let slowly rise the prices to prevent bloating the network is to introduce a function that will slowly raise the prices. Initially an exponential was proposed, however upon further consideration a logarithmic or a sigmoid function would be more appropriate, since the nature of such functions are that they would never be so high to completely obliterate participation. + +Considering such a function the question araises on how to adjust the constants properly to have an appropriate rising of the prices too avoid having the state too big and simultaneously not to have the prices too high. A good rule of thumb is to have one of the constants be correlated with the number of all NFTS on AssetHub. + +### Linking deposit to USD(x) value +There arises also a possibility to have the deposit be a value that is based in USD. Since the nature of having the prices in a native currency doesn't represent predictability for the network users. It would make sense to stabilize the price with a stable coin like based on a currency like USD. + +There are two trains of thoughts one that with the fluctuatining currency there will be naturally more people and the prices will rise accordingly thus, disincentivising people to spam the network and only incouraging more pricier collections. Another train of thought is if the DOT/KSM will raise and people like to participate and engage with the network we should just let them. + +Having prices based in USD might introduce a level of complexity and unintended consequences if porly implemented. ## Drawbacks Modifying deposit requirements necessitates a balanced assessment of the potential drawbacks. Highlighted below are cogent points extracted from the discourse on the [Polkadot Forum conversation](https://forum.polkadot.network/t/polkadot-assethub-high-nft-collection-deposit/4262), which provide critical perspectives on the implications of such changes: @@ -157,7 +171,6 @@ Adjusting NFT deposit requirements on Polkadot and Kusama Asset Hubs involves ke ## Testing, Security, and Privacy - ### Security concerns The prevention of "spam" could be prevented by OpenGov proposal to `forceDestoy` list of collections that are not suitable. @@ -176,7 +189,9 @@ The change does not impact compatibility as `redeposit` function is already impl The change is backwards compatible. ## Unresolved Questions -/ +The unresolved questions are related to having the price of the deposit imitate a function and linking deposit to USD(x) value. ## Future Directions and Related Material +We suggest lowering the deposit as to the recommended levels and then if seen it's needed continuing the discussion if having the price of the deposit imitate a function or linking deposit to USD(x) value are needed. + If accepted, this RFC could pave the way for further discussions and proposals aimed at enhancing the inclusivity and accessibility of the Polkadot ecosystem. From c464459e84cc5f06e27d227bac47945963d6d22c Mon Sep 17 00:00:00 2001 From: Aurora Poppyseed <30662672+poppyseedDev@users.noreply.github.com> Date: Thu, 11 Jan 2024 17:33:18 +0100 Subject: [PATCH 24/36] Update and rename 000x-assethub.md to 000x-lowering-deposits-assethub.md --- ....md => 000x-lowering-deposits-assethub.md} | 36 ++++++++++--------- 1 file changed, 19 insertions(+), 17 deletions(-) rename text/{000x-assethub.md => 000x-lowering-deposits-assethub.md} (80%) diff --git a/text/000x-assethub.md b/text/000x-lowering-deposits-assethub.md similarity index 80% rename from text/000x-assethub.md rename to text/000x-lowering-deposits-assethub.md index 8f40b515..ff9563cc 100644 --- a/text/000x-assethub.md +++ b/text/000x-lowering-deposits-assethub.md @@ -131,30 +131,32 @@ parameter_types! { | attributeDepositBase | 0.00666666666 KSM | 0.000666666666 KSM | -## Other proposals -There were some proposals how to augment the network's adaptability: +## Discussion of Other Proposals +Several innovative proposals have been considered to enhance the network's adaptability and manage deposit requirements more effectively: -### Weak governance origin -One of the options how to mitigate a bloated state is to introduce a weak governance origin that is controlled by some consortium (ie. System Collective). This origin could then update the NFT deposits any time the market conditions warrant it - obviously while honoring the storage deposit requirements. +### Enhanced Weak Governance Origin Model +The concept of a weak governance origin, controlled by a consortium like the System Collective, has been proposed. This model would allow for dynamic adjustments of NFT deposit requirements in response to market conditions, adhering to storage deposit norms. -This dynamic governance approach would facilitate a responsive and agile economic model for deposit management, ensuring that the network remains accessible and robust in the face of market volatility. +**Enhancements and Concerns:** +- **Responsiveness**: To address concerns about delayed responses, the model could incorporate automated triggers based on predefined market indicators, ensuring timely adjustments. +- **Stability vs. Flexibility**: Balancing stability with the need for flexibility is challenging. To mitigate the issue of frequent changes in DOT-based deposits, a mechanism for gradual and predictable adjustments could be introduced. +- **Scalability**: The model's scalability is a concern, given the numerous deposits across the system. A more centralized approach to deposit management might be needed to avoid constant, decentralized adjustments. -However after discussions, we found that such a proposal lacks in certain areas: - 1. Actors could be too slow to act, having a delayed response and thus endagering the networks security - 2. In attempting to provide stability it actually removes it because the DOT-based deposit can change so often that NFT issuers don't even know how much DOT they should acquire in order to plan a few weeks in advance. - 3. It does not scale. There are deposits all over the system. These actors could find themselves perpetually changing multiple deposits. +### Function-Based Pricing Model +Another proposal is to use a mathematical function to regulate deposit prices, initially allowing low prices to encourage participation, followed by a gradual increase to prevent network bloat. -### Having the price of the deposit imitate a function -A clever idea on how to encourage initial participation and then let slowly rise the prices to prevent bloating the network is to introduce a function that will slowly raise the prices. Initially an exponential was proposed, however upon further consideration a logarithmic or a sigmoid function would be more appropriate, since the nature of such functions are that they would never be so high to completely obliterate participation. +**Refinements:** +- **Choice of Function**: A logarithmic or sigmoid function is favored over an exponential one, as these functions increase prices at a rate that encourages participation while preventing prohibitive costs. +- **Adjustment of Constants**: To finely tune the pricing rise, one of the function's constants could correlate with the total number of NFTs on AssetHub. This would align the deposit requirements with the actual usage and growth of the network. -Considering such a function the question araises on how to adjust the constants properly to have an appropriate rising of the prices too avoid having the state too big and simultaneously not to have the prices too high. A good rule of thumb is to have one of the constants be correlated with the number of all NFTS on AssetHub. +### Linking Deposit to USD(x) Value +This approach suggests pegging the deposit value to a stable currency like the USD, introducing predictability and stability for network users. -### Linking deposit to USD(x) value -There arises also a possibility to have the deposit be a value that is based in USD. Since the nature of having the prices in a native currency doesn't represent predictability for the network users. It would make sense to stabilize the price with a stable coin like based on a currency like USD. +**Considerations and Challenges:** +- **Market Dynamics**: One perspective is that fluctuations in native currency value naturally balance user participation and pricing, deterring network spam while encouraging higher-value collections. Conversely, there's an argument for allowing broader participation if the DOT/KSM value increases. +- **Complexity and Risks**: Implementing a USD-based pricing system could add complexity and potential risks. The implementation needs to be carefully designed to avoid unintended consequences, such as excessive reliance on external financial systems or currencies. -There are two trains of thoughts one that with the fluctuatining currency there will be naturally more people and the prices will rise accordingly thus, disincentivising people to spam the network and only incouraging more pricier collections. Another train of thought is if the DOT/KSM will raise and people like to participate and engage with the network we should just let them. - -Having prices based in USD might introduce a level of complexity and unintended consequences if porly implemented. +Each of these proposals offers unique advantages and challenges. The optimal approach may involve a combination of these ideas, carefully adjusted to address the specific needs and dynamics of the Polkadot and Kusama networks. ## Drawbacks Modifying deposit requirements necessitates a balanced assessment of the potential drawbacks. Highlighted below are cogent points extracted from the discourse on the [Polkadot Forum conversation](https://forum.polkadot.network/t/polkadot-assethub-high-nft-collection-deposit/4262), which provide critical perspectives on the implications of such changes: From 17b5448f33cbe3378f937381dea8a19cc452e7ff Mon Sep 17 00:00:00 2001 From: Aurora Poppyseed <30662672+poppyseedDev@users.noreply.github.com> Date: Thu, 11 Jan 2024 17:44:41 +0100 Subject: [PATCH 25/36] Update 000x-lowering-deposits-assethub.md --- text/000x-lowering-deposits-assethub.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/text/000x-lowering-deposits-assethub.md b/text/000x-lowering-deposits-assethub.md index ff9563cc..e4f75268 100644 --- a/text/000x-lowering-deposits-assethub.md +++ b/text/000x-lowering-deposits-assethub.md @@ -169,7 +169,7 @@ Adjusting NFT deposit requirements on Polkadot and Kusama Asset Hubs involves ke 2. **Network Security and Market Response**: Reduced deposits might increase transaction volume, potentially bloating the state, thereby impacting network security. Additionally, adapting to the cryptocurrency market's volatility is crucial. The mechanism for setting deposit amounts must be responsive yet stable, avoiding undue complexity for users. -3. **Economic Impact on Stakeholders**: The change could have varied economic effects on creators, platform operators, and investors. Balancing these interests is essential to ensure the adjustment benefits the ecosystem without negatively impacting its value dynamics. However in the particular case of Polkadot and Kusama Asset Hub this does not pose a concern since there are very few collections currently. As of date 9th January 2024 there are 42 collections on Polkadot Asset Hub and 191 on Kusama Asset Hub with a relatively low volume. +3. **Economic Impact on Previous Stakeholders**: The change could have varied economic effects on previous (before the change) creators, platform operators, and investors. Balancing these interests is essential to ensure the adjustment benefits the ecosystem without negatively impacting its value dynamics. However in the particular case of Polkadot and Kusama Asset Hub this does not pose a concern since there are very few collections currently and thus previous stakeholders wouldn't be much affected. As of date 9th January 2024 there are 42 collections on Polkadot Asset Hub and 191 on Kusama Asset Hub with a relatively low volume. ## Testing, Security, and Privacy From 3328781ca679e9e4eaf8b9a2f01af0cc7a46cafb Mon Sep 17 00:00:00 2001 From: Aurora Poppyseed <30662672+poppyseedDev@users.noreply.github.com> Date: Thu, 11 Jan 2024 18:06:13 +0100 Subject: [PATCH 26/36] Update 000x-lowering-deposits-assethub.md --- text/000x-lowering-deposits-assethub.md | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/text/000x-lowering-deposits-assethub.md b/text/000x-lowering-deposits-assethub.md index e4f75268..ccd4f3c4 100644 --- a/text/000x-lowering-deposits-assethub.md +++ b/text/000x-lowering-deposits-assethub.md @@ -34,8 +34,6 @@ This RFC proposes a revision of the deposit constants in the nfts pallet on the This RFC suggests modifying deposit constants defined in the `nfts` pallet on the Polkadot Asset Hub to require a lower deposit. The reduced deposit amount should be determined by the `deposit` adjusted by the pricing mechanism (arbitrary number/another pricing function). - - ### Current code structure [Current deposit requirements are as follows](https://github.com/paritytech/polkadot-sdk/blob/master/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/lib.rs#L757) @@ -53,7 +51,8 @@ parameter_types! { } ``` -And looking back on the code we can find that the Uniques are defined in such a way: +In the existing setup, the Uniques are defined with specific deposit values for different elements: + ```rust parameter_types! { pub const UniquesCollectionDeposit: Balance = UNITS / 10; // 1 / 10 UNIT deposit to create a collection @@ -65,10 +64,9 @@ parameter_types! { ``` As we can see in the code definition above the current code does not use the `deposit` funtion when the collection in the following instances: `UniquesCollectionDeposit` and `UniquesItemDeposit`. -### Modifying the code to by Using the Deposit Function +### Proposed Modification Using the Deposit Function -As -The proposed change would modify the deposit constants to require a lower deposit. The reduced deposit amount should be determined by `deposit` adjusted by an arbitrary number. +This proposed modification adjusts the deposits to use the `deposit` function instead of using an arbitrary number. ```rust parameter_types! { @@ -99,9 +97,10 @@ Similarly the prices for Kusama ecosystem were calculated as: | attributeDepositBase | 0.00666666666 KSM | 0.000666666666 KSM | -### Additional modifications to further reduce the barrier to entry -We propose reducing the prices further by reducing them by an arbitrary number. This number was chosen to have a reasonable amount to encourage participation even when the prices of Polkadot and Kusama rise. +### Enhanced Approach to Further Lower Barriers for Entry +In an effort to further lower barriers to entry and foster greater inclusivity, we propose additional modifications to the pricing structure. These proposed reductions are based on a collaborative and calculated approach, involving the consensus of leading NFT creators within the Polkadot and Kusama Asset Hub communities. The adjustments to deposit amounts are not made arbitrarily. Instead, they are the result of detailed discussions and analyses conducted with prominent NFT creators. +**Proposed Code Adjustments** ```rust parameter_types! { pub const NftsCollectionDeposit: Balance = deposit(1, 130); From 33194da982a065a8887535b3234af05445a7d021 Mon Sep 17 00:00:00 2001 From: Aurora Poppyseed <30662672+poppyseedDev@users.noreply.github.com> Date: Thu, 11 Jan 2024 18:12:15 +0100 Subject: [PATCH 27/36] Update 000x-lowering-deposits-assethub.md changing the ending changing the ending --- text/000x-lowering-deposits-assethub.md | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/text/000x-lowering-deposits-assethub.md b/text/000x-lowering-deposits-assethub.md index ccd4f3c4..94c30fe8 100644 --- a/text/000x-lowering-deposits-assethub.md +++ b/text/000x-lowering-deposits-assethub.md @@ -179,20 +179,19 @@ The prevention of "spam" could be prevented by OpenGov proposal to `forceDestoy` ## Performance, Ergonomics, and Compatibility ### Performance -The only forseeable impact on performance araise from the state being too bloated from the potential and impacting performance of the chain. +The primary performance consideration stems from the potential for state bloat due to increased activity from lower deposit requirements. It's vital to monitor and manage this to avoid any negative impact on the chain's performance. Strategies for mitigating state bloat, including efficient data management and periodic reviews of storage requirements, will be essential. ### Ergonomics The proposed change aims to enhance the user experience for artists, traders and utilizers of Kusama and Polkadot asset hub. Making Polkadot and Kusama more accessible and user-friendly. ### Compatibility The change does not impact compatibility as `redeposit` function is already implemented. -### Compatibility -The change is backwards compatible. ## Unresolved Questions -The unresolved questions are related to having the price of the deposit imitate a function and linking deposit to USD(x) value. +There remain unresolved questions regarding the implementation of a function-based pricing model for deposits and the feasibility of linking deposits to a USD(x) value. These aspects require further exploration and discussion to ascertain their viability and potential impact on the ecosystem. ## Future Directions and Related Material -We suggest lowering the deposit as to the recommended levels and then if seen it's needed continuing the discussion if having the price of the deposit imitate a function or linking deposit to USD(x) value are needed. +We recommend initially lowering the deposit to the suggested levels. Subsequently, based on the outcomes and feedback, we can continue discussions on more complex models such as function-based pricing or currency-linked deposits. + If accepted, this RFC could pave the way for further discussions and proposals aimed at enhancing the inclusivity and accessibility of the Polkadot ecosystem. From c6e99705f085358d5e04a770e338be369686046d Mon Sep 17 00:00:00 2001 From: Aurora Poppyseed <30662672+poppyseedDev@users.noreply.github.com> Date: Thu, 18 Jan 2024 18:40:15 +0100 Subject: [PATCH 28/36] Update text/000x-lowering-deposits-assethub.md --- text/000x-lowering-deposits-assethub.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/text/000x-lowering-deposits-assethub.md b/text/000x-lowering-deposits-assethub.md index 94c30fe8..8cfb0a3b 100644 --- a/text/000x-lowering-deposits-assethub.md +++ b/text/000x-lowering-deposits-assethub.md @@ -36,7 +36,7 @@ This RFC suggests modifying deposit constants defined in the `nfts` pallet on th ### Current code structure -[Current deposit requirements are as follows](https://github.com/paritytech/polkadot-sdk/blob/master/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/lib.rs#L757) +[Current deposit requirements are as follows](https://github.com/polkadot-fellows/runtimes/commit/c2a3c9881c0ee6393d1665fefd9671d040215188#diff-32714ab945a24cbcc5979fd9065e0c13e0beb59f7533b38e2e97a872b23cb125R596-R600) Looking at the current code structure the currently implemented we can find that the pricing re-uses the logic of how Uniques are defined: From f519da0d1324c59267201de3c9147bae826d8261 Mon Sep 17 00:00:00 2001 From: Viki Val Date: Fri, 19 Jan 2024 10:43:32 +0100 Subject: [PATCH 29/36] :: Co-authored-by: Aurora Poppyseed <30662672+poppyseedDev@users.noreply.github.com> --- text/000x-lowering-deposits-assethub.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/text/000x-lowering-deposits-assethub.md b/text/000x-lowering-deposits-assethub.md index 8cfb0a3b..ba7763f2 100644 --- a/text/000x-lowering-deposits-assethub.md +++ b/text/000x-lowering-deposits-assethub.md @@ -14,7 +14,7 @@ This RFC proposes changing the current deposit requirements on the Polkadot and The current deposit of 10 DOT for collection creation (along with 0.01 DOT for item deposit and 0.2 DOT for metadata and attribute deposit) on the Polkadot Asset Hub and 0.1 KSM on Kusama Asset Hub presents a significant financial barrier for many NFT creators. By lowering the deposit requirements, we aim to encourage more NFT creators to participate in the Polkadot NFT ecosystem, thereby enriching the diversity and vibrancy of the community and its offerings. -The actual implementation of the deposit is an arbitrary number coming from [Uniques pallet](https://github.com/paritytech/polkadot-sdk/blob/master/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/lib.rs#L757). It is not a result of any economic analysis. This proposal aims to adjust the deposit from constant to dynamic pricing based on the `deposit` function with respect to stakeholders. +The actual implementation of the deposit is an arbitrary number coming from [Uniques pallet](https://github.com/polkadot-fellows/runtimes/commit/c2a3c9881c0ee6393d1665fefd9671d040215188#diff-32714ab945a24cbcc5979fd9065e0c13e0beb59f7533b38e2e97a872b23cb125R596-R600). It is not a result of any economic analysis. This proposal aims to adjust the deposit from constant to dynamic pricing based on the `deposit` function with respect to stakeholders. ### Requirements From f4fa857906c2cc84b3ebf8deef87e7143aa207df Mon Sep 17 00:00:00 2001 From: joepetrowski Date: Wed, 31 Jan 2024 12:59:29 +0100 Subject: [PATCH 30/36] rename with rfc number --- ...wering-deposits-assethub.md => 0045-nft-deposits-asset-hub.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename text/{000x-lowering-deposits-assethub.md => 0045-nft-deposits-asset-hub.md} (100%) diff --git a/text/000x-lowering-deposits-assethub.md b/text/0045-nft-deposits-asset-hub.md similarity index 100% rename from text/000x-lowering-deposits-assethub.md rename to text/0045-nft-deposits-asset-hub.md From a8dcdf287d5f446b8ee797d663f362b533deb465 Mon Sep 17 00:00:00 2001 From: joepetrowski Date: Wed, 31 Jan 2024 13:04:58 +0100 Subject: [PATCH 31/36] break lines --- text/0045-nft-deposits-asset-hub.md | 182 +++++++++++++++++++++------- 1 file changed, 137 insertions(+), 45 deletions(-) diff --git a/text/0045-nft-deposits-asset-hub.md b/text/0045-nft-deposits-asset-hub.md index ba7763f2..538a64ff 100644 --- a/text/0045-nft-deposits-asset-hub.md +++ b/text/0045-nft-deposits-asset-hub.md @@ -1,20 +1,30 @@ -# RFC-0000: Lowering NFT Deposits on Polkadot and Kusama Asset Hubs +# RFC-0045: Lowering NFT Deposits on Asset Hub -| | | -| --------------- | -------------------------------------------------------------------------------------------------- | -| **Start Date** | 2 November 2023 | -| **Description** | A proposal to reduce the minimum deposit required for collection creation on the Polkadot and Kusama Asset Hub, making it more accessible and affordable for artists. | -| **Authors** | [Aurora Poppyseed](https://github.com/poppyseedDev), [Just_Luuuu](https://github.com/justLuuuu), [Viki Val](https://github.com/vikiival) | +| | | +| --------------- | ----------------------------------------------------------------------------- | +| **Start Date** | 2 November 2023 | +| **Description** | A proposal to reduce the minimum deposit required for collection creation on the Polkadot and Kusama Asset Hubs. | +| **Authors** | [Aurora Poppyseed](https://github.com/poppyseedDev), [Just_Luuuu](https://github.com/justLuuuu), [Viki Val](https://github.com/vikiival) | ## Summary -This RFC proposes changing the current deposit requirements on the Polkadot and Kusama Asset Hub for creating NFT collection, minting an individual NFT, and lowering it's coresponding metadata and attribute deposit. The objective is to lower the barrier to entry for NFT creators, fostering a more inclusive and vibrant ecosystem while maintaining network integrity and preventing spam. +This RFC proposes changing the current deposit requirements on the Polkadot and Kusama Asset Hub for +creating NFT collection, minting an individual NFT, and lowering it's coresponding metadata and +attribute deposit. The objective is to lower the barrier to entry for NFT creators, fostering a more +inclusive and vibrant ecosystem while maintaining network integrity and preventing spam. ## Motivation -The current deposit of 10 DOT for collection creation (along with 0.01 DOT for item deposit and 0.2 DOT for metadata and attribute deposit) on the Polkadot Asset Hub and 0.1 KSM on Kusama Asset Hub presents a significant financial barrier for many NFT creators. By lowering the deposit requirements, we aim to encourage more NFT creators to participate in the Polkadot NFT ecosystem, thereby enriching the diversity and vibrancy of the community and its offerings. +The current deposit of 10 DOT for collection creation (along with 0.01 DOT for item deposit and 0.2 +DOT for metadata and attribute deposit) on the Polkadot Asset Hub and 0.1 KSM on Kusama Asset Hub +presents a significant financial barrier for many NFT creators. By lowering the deposit +requirements, we aim to encourage more NFT creators to participate in the Polkadot NFT ecosystem, +thereby enriching the diversity and vibrancy of the community and its offerings. -The actual implementation of the deposit is an arbitrary number coming from [Uniques pallet](https://github.com/polkadot-fellows/runtimes/commit/c2a3c9881c0ee6393d1665fefd9671d040215188#diff-32714ab945a24cbcc5979fd9065e0c13e0beb59f7533b38e2e97a872b23cb125R596-R600). It is not a result of any economic analysis. This proposal aims to adjust the deposit from constant to dynamic pricing based on the `deposit` function with respect to stakeholders. +The actual implementation of the deposit is an arbitrary number coming from [Uniques +pallet](https://github.com/polkadot-fellows/runtimes/commit/c2a3c9881c0ee6393d1665fefd9671d040215188#diff-32714ab945a24cbcc5979fd9065e0c13e0beb59f7533b38e2e97a872b23cb125R596-R600). +It is not a result of any economic analysis. This proposal aims to adjust the deposit from constant +to dynamic pricing based on the `deposit` function with respect to stakeholders. ### Requirements @@ -22,23 +32,35 @@ The actual implementation of the deposit is an arbitrary number coming from [Uni ## Stakeholders -- **NFT Creators**: Primary beneficiaries of the proposed change, particularly those who found the current deposit requirements prohibitive. -- **NFT Platforms**: As the facilitator of artists' relations, NFT Marketplaces has a vested interest in onboarding new users and making the platform more accessible. -- **dApp Developers**: Making the blockspace more accessible will encourage developers to create and build unique dApps in the Polkadot ecosystem. -- **Polkadot Community**: Stands to benefit from an influx of artists, creators and diverse NFT collections, enhancing the overall ecosystem. +- **NFT Creators**: Primary beneficiaries of the proposed change, particularly those who found the + current deposit requirements prohibitive. +- **NFT Platforms**: As the facilitator of artists' relations, NFT Marketplaces has a vested + interest in onboarding new users and making the platform more accessible. +- **dApp Developers**: Making the blockspace more accessible will encourage developers to create and + build unique dApps in the Polkadot ecosystem. +- **Polkadot Community**: Stands to benefit from an influx of artists, creators and diverse NFT + collections, enhancing the overall ecosystem. -Previous discussions have been held within the Polkadot Forum community and with artists expressing their concerns about the deposit amounts. [Link](https://forum.polkadot.network/t/polkadot-assethub-high-nft-collection-deposit/4262). +Previous discussions have been held within the Polkadot Forum community and with artists expressing +their concerns about the deposit amounts. +[Link](https://forum.polkadot.network/t/polkadot-assethub-high-nft-collection-deposit/4262). ## Explanation -This RFC proposes a revision of the deposit constants in the nfts pallet on the Polkadot Asset Hub. The new deposit amounts would be determined by a standard deposit formula. -This RFC suggests modifying deposit constants defined in the `nfts` pallet on the Polkadot Asset Hub to require a lower deposit. The reduced deposit amount should be determined by the `deposit` adjusted by the pricing mechanism (arbitrary number/another pricing function). +This RFC proposes a revision of the deposit constants in the nfts pallet on the Polkadot Asset Hub. +The new deposit amounts would be determined by a standard deposit formula. + +This RFC suggests modifying deposit constants defined in the `nfts` pallet on the Polkadot Asset Hub +to require a lower deposit. The reduced deposit amount should be determined by the `deposit` +adjusted by the pricing mechanism (arbitrary number/another pricing function). ### Current code structure -[Current deposit requirements are as follows](https://github.com/polkadot-fellows/runtimes/commit/c2a3c9881c0ee6393d1665fefd9671d040215188#diff-32714ab945a24cbcc5979fd9065e0c13e0beb59f7533b38e2e97a872b23cb125R596-R600) +[Current deposit requirements are as +follows](https://github.com/polkadot-fellows/runtimes/commit/c2a3c9881c0ee6393d1665fefd9671d040215188#diff-32714ab945a24cbcc5979fd9065e0c13e0beb59f7533b38e2e97a872b23cb125R596-R600) -Looking at the current code structure the currently implemented we can find that the pricing re-uses the logic of how Uniques are defined: +Looking at the current code structure the currently implemented we can find that the pricing re-uses +the logic of how Uniques are defined: ```rust parameter_types! { @@ -62,11 +84,13 @@ parameter_types! { pub const UniquesDepositPerByte: Balance = deposit(0, 1); } ``` -As we can see in the code definition above the current code does not use the `deposit` funtion when the collection in the following instances: `UniquesCollectionDeposit` and `UniquesItemDeposit`. +As we can see in the code definition above the current code does not use the `deposit` funtion when +the collection in the following instances: `UniquesCollectionDeposit` and `UniquesItemDeposit`. ### Proposed Modification Using the Deposit Function -This proposed modification adjusts the deposits to use the `deposit` function instead of using an arbitrary number. +This proposed modification adjusts the deposits to use the `deposit` function instead of using an +arbitrary number. ```rust parameter_types! { @@ -78,7 +102,9 @@ parameter_types! { } ``` -Calculations viewed bellow were calculated by using the following repository [rfc-pricing](https://github.com/vikiival/rfc-pricing). +Calculations viewed bellow were calculated by using the following repository +[rfc-pricing](https://github.com/vikiival/rfc-pricing). + **Polkadot** | **Name** | **Current price implementation** | **Proposed Modified by using the new deposit function** | |---------------------------|----------------------------------|-------------------------| @@ -88,6 +114,7 @@ Calculations viewed bellow were calculated by using the following repository [rf | attributeDepositBase | 0.2 DOT | 0.2 DOT | Similarly the prices for Kusama ecosystem were calculated as: + **Kusama:** | **Name** | **Current price implementation** | **Proposed Price in KSM** | |---------------------------|----------------------------------|---------------------------| @@ -98,9 +125,16 @@ Similarly the prices for Kusama ecosystem were calculated as: ### Enhanced Approach to Further Lower Barriers for Entry -In an effort to further lower barriers to entry and foster greater inclusivity, we propose additional modifications to the pricing structure. These proposed reductions are based on a collaborative and calculated approach, involving the consensus of leading NFT creators within the Polkadot and Kusama Asset Hub communities. The adjustments to deposit amounts are not made arbitrarily. Instead, they are the result of detailed discussions and analyses conducted with prominent NFT creators. + +In an effort to further lower barriers to entry and foster greater inclusivity, we propose +additional modifications to the pricing structure. These proposed reductions are based on a +collaborative and calculated approach, involving the consensus of leading NFT creators within the +Polkadot and Kusama Asset Hub communities. The adjustments to deposit amounts are not made +arbitrarily. Instead, they are the result of detailed discussions and analyses conducted with +prominent NFT creators. **Proposed Code Adjustments** + ```rust parameter_types! { pub const NftsCollectionDeposit: Balance = deposit(1, 130); @@ -114,6 +148,7 @@ parameter_types! { **Prices and Proposed Prices on Polkadot Asset Hub:** **Polkadot** + | **Name** | **Current price implementation** | **Proposed Prices** | |---------------------------|----------------------------------|---------------------| | collectionDeposit | 10 DOT | 0.20064 DOT | @@ -122,6 +157,7 @@ parameter_types! { | attributeDepositBase | 0.2 DOT | 0.002 DOT | **Kusama** + | **Name** | **Current price implementation** | **Proposed Price in KSM** | |---------------------------|----------------------------------|---------------------------| | collectionDeposit | 0.1 KSM | 0.006688 KSM | @@ -131,67 +167,123 @@ parameter_types! { ## Discussion of Other Proposals -Several innovative proposals have been considered to enhance the network's adaptability and manage deposit requirements more effectively: + +Several innovative proposals have been considered to enhance the network's adaptability and manage +deposit requirements more effectively: ### Enhanced Weak Governance Origin Model -The concept of a weak governance origin, controlled by a consortium like the System Collective, has been proposed. This model would allow for dynamic adjustments of NFT deposit requirements in response to market conditions, adhering to storage deposit norms. + +The concept of a weak governance origin, controlled by a consortium like the System Collective, has +been proposed. This model would allow for dynamic adjustments of NFT deposit requirements in +response to market conditions, adhering to storage deposit norms. **Enhancements and Concerns:** -- **Responsiveness**: To address concerns about delayed responses, the model could incorporate automated triggers based on predefined market indicators, ensuring timely adjustments. -- **Stability vs. Flexibility**: Balancing stability with the need for flexibility is challenging. To mitigate the issue of frequent changes in DOT-based deposits, a mechanism for gradual and predictable adjustments could be introduced. -- **Scalability**: The model's scalability is a concern, given the numerous deposits across the system. A more centralized approach to deposit management might be needed to avoid constant, decentralized adjustments. + +- **Responsiveness**: To address concerns about delayed responses, the model could incorporate + automated triggers based on predefined market indicators, ensuring timely adjustments. +- **Stability vs. Flexibility**: Balancing stability with the need for flexibility is challenging. + To mitigate the issue of frequent changes in DOT-based deposits, a mechanism for gradual and + predictable adjustments could be introduced. +- **Scalability**: The model's scalability is a concern, given the numerous deposits across the + system. A more centralized approach to deposit management might be needed to avoid constant, + decentralized adjustments. ### Function-Based Pricing Model -Another proposal is to use a mathematical function to regulate deposit prices, initially allowing low prices to encourage participation, followed by a gradual increase to prevent network bloat. + +Another proposal is to use a mathematical function to regulate deposit prices, initially allowing +low prices to encourage participation, followed by a gradual increase to prevent network bloat. **Refinements:** -- **Choice of Function**: A logarithmic or sigmoid function is favored over an exponential one, as these functions increase prices at a rate that encourages participation while preventing prohibitive costs. -- **Adjustment of Constants**: To finely tune the pricing rise, one of the function's constants could correlate with the total number of NFTs on AssetHub. This would align the deposit requirements with the actual usage and growth of the network. + +- **Choice of Function**: A logarithmic or sigmoid function is favored over an exponential one, as + these functions increase prices at a rate that encourages participation while preventing + prohibitive costs. +- **Adjustment of Constants**: To finely tune the pricing rise, one of the function's constants + could correlate with the total number of NFTs on AssetHub. This would align the deposit + requirements with the actual usage and growth of the network. ### Linking Deposit to USD(x) Value -This approach suggests pegging the deposit value to a stable currency like the USD, introducing predictability and stability for network users. + +This approach suggests pegging the deposit value to a stable currency like the USD, introducing +predictability and stability for network users. **Considerations and Challenges:** -- **Market Dynamics**: One perspective is that fluctuations in native currency value naturally balance user participation and pricing, deterring network spam while encouraging higher-value collections. Conversely, there's an argument for allowing broader participation if the DOT/KSM value increases. -- **Complexity and Risks**: Implementing a USD-based pricing system could add complexity and potential risks. The implementation needs to be carefully designed to avoid unintended consequences, such as excessive reliance on external financial systems or currencies. -Each of these proposals offers unique advantages and challenges. The optimal approach may involve a combination of these ideas, carefully adjusted to address the specific needs and dynamics of the Polkadot and Kusama networks. +- **Market Dynamics**: One perspective is that fluctuations in native currency value naturally + balance user participation and pricing, deterring network spam while encouraging higher-value + collections. Conversely, there's an argument for allowing broader participation if the DOT/KSM + value increases. +- **Complexity and Risks**: Implementing a USD-based pricing system could add complexity and + potential risks. The implementation needs to be carefully designed to avoid unintended + consequences, such as excessive reliance on external financial systems or currencies. + +Each of these proposals offers unique advantages and challenges. The optimal approach may involve a +combination of these ideas, carefully adjusted to address the specific needs and dynamics of the +Polkadot and Kusama networks. ## Drawbacks -Modifying deposit requirements necessitates a balanced assessment of the potential drawbacks. Highlighted below are cogent points extracted from the discourse on the [Polkadot Forum conversation](https://forum.polkadot.network/t/polkadot-assethub-high-nft-collection-deposit/4262), which provide critical perspectives on the implications of such changes: -The discourse around modifying deposit requirements includes various perspectives: +Modifying deposit requirements necessitates a balanced assessment of the potential drawbacks. +Highlighted below are cogent points extracted from the discourse on the [Polkadot Forum +conversation](https://forum.polkadot.network/t/polkadot-assethub-high-nft-collection-deposit/4262), +which provide critical perspectives on the implications of such changes. Adjusting NFT deposit requirements on Polkadot and Kusama Asset Hubs involves key challenges: -1. **State Growth and Technical Concerns**: Lowering deposit requirements can lead to increased blockchain state size, potentially causing state bloat. This growth needs to be managed to prevent strain on the network's resources and maintain operational efficiency. +1. **State Growth and Technical Concerns**: Lowering deposit requirements can lead to increased + blockchain state size, potentially causing state bloat. This growth needs to be managed to + prevent strain on the network's resources and maintain operational efficiency. -2. **Network Security and Market Response**: Reduced deposits might increase transaction volume, potentially bloating the state, thereby impacting network security. Additionally, adapting to the cryptocurrency market's volatility is crucial. The mechanism for setting deposit amounts must be responsive yet stable, avoiding undue complexity for users. +2. **Network Security and Market Response**: Reduced deposits might increase transaction volume, + potentially bloating the state, thereby impacting network security. Additionally, adapting to the + cryptocurrency market's volatility is crucial. The mechanism for setting deposit amounts must be + responsive yet stable, avoiding undue complexity for users. -3. **Economic Impact on Previous Stakeholders**: The change could have varied economic effects on previous (before the change) creators, platform operators, and investors. Balancing these interests is essential to ensure the adjustment benefits the ecosystem without negatively impacting its value dynamics. However in the particular case of Polkadot and Kusama Asset Hub this does not pose a concern since there are very few collections currently and thus previous stakeholders wouldn't be much affected. As of date 9th January 2024 there are 42 collections on Polkadot Asset Hub and 191 on Kusama Asset Hub with a relatively low volume. +3. **Economic Impact on Previous Stakeholders**: The change could have varied economic effects on + previous (before the change) creators, platform operators, and investors. Balancing these + interests is essential to ensure the adjustment benefits the ecosystem without negatively + impacting its value dynamics. However in the particular case of Polkadot and Kusama Asset Hub + this does not pose a concern since there are very few collections currently and thus previous + stakeholders wouldn't be much affected. As of date 9th January 2024 there are 42 collections on + Polkadot Asset Hub and 191 on Kusama Asset Hub with a relatively low volume. ## Testing, Security, and Privacy ### Security concerns -The prevention of "spam" could be prevented by OpenGov proposal to `forceDestoy` list of collections that are not suitable. +The prevention of "spam" could be prevented by OpenGov proposal to `forceDestoy` list of collections +that are not suitable. ## Performance, Ergonomics, and Compatibility ### Performance -The primary performance consideration stems from the potential for state bloat due to increased activity from lower deposit requirements. It's vital to monitor and manage this to avoid any negative impact on the chain's performance. Strategies for mitigating state bloat, including efficient data management and periodic reviews of storage requirements, will be essential. + +The primary performance consideration stems from the potential for state bloat due to increased +activity from lower deposit requirements. It's vital to monitor and manage this to avoid any +negative impact on the chain's performance. Strategies for mitigating state bloat, including +efficient data management and periodic reviews of storage requirements, will be essential. ### Ergonomics -The proposed change aims to enhance the user experience for artists, traders and utilizers of Kusama and Polkadot asset hub. Making Polkadot and Kusama more accessible and user-friendly. + +The proposed change aims to enhance the user experience for artists, traders and utilizers of Kusama +and Polkadot asset hub. Making Polkadot and Kusama more accessible and user-friendly. ### Compatibility + The change does not impact compatibility as `redeposit` function is already implemented. ## Unresolved Questions -There remain unresolved questions regarding the implementation of a function-based pricing model for deposits and the feasibility of linking deposits to a USD(x) value. These aspects require further exploration and discussion to ascertain their viability and potential impact on the ecosystem. + +There remain unresolved questions regarding the implementation of a function-based pricing model for +deposits and the feasibility of linking deposits to a USD(x) value. These aspects require further +exploration and discussion to ascertain their viability and potential impact on the ecosystem. ## Future Directions and Related Material -We recommend initially lowering the deposit to the suggested levels. Subsequently, based on the outcomes and feedback, we can continue discussions on more complex models such as function-based pricing or currency-linked deposits. + +We recommend initially lowering the deposit to the suggested levels. Subsequently, based on the +outcomes and feedback, we can continue discussions on more complex models such as function-based +pricing or currency-linked deposits. -If accepted, this RFC could pave the way for further discussions and proposals aimed at enhancing the inclusivity and accessibility of the Polkadot ecosystem. +If accepted, this RFC could pave the way for further discussions and proposals aimed at enhancing +the inclusivity and accessibility of the Polkadot ecosystem. From 3ad68dd73658c8649c3f8d635f987346297b0078 Mon Sep 17 00:00:00 2001 From: joepetrowski Date: Wed, 31 Jan 2024 17:01:27 +0100 Subject: [PATCH 32/36] change some wording and typos --- text/0045-nft-deposits-asset-hub.md | 296 +++++++++++----------------- 1 file changed, 117 insertions(+), 179 deletions(-) diff --git a/text/0045-nft-deposits-asset-hub.md b/text/0045-nft-deposits-asset-hub.md index 538a64ff..a6990883 100644 --- a/text/0045-nft-deposits-asset-hub.md +++ b/text/0045-nft-deposits-asset-hub.md @@ -9,162 +9,173 @@ ## Summary This RFC proposes changing the current deposit requirements on the Polkadot and Kusama Asset Hub for -creating NFT collection, minting an individual NFT, and lowering it's coresponding metadata and -attribute deposit. The objective is to lower the barrier to entry for NFT creators, fostering a more -inclusive and vibrant ecosystem while maintaining network integrity and preventing spam. +creating an NFT collection, minting an individual NFT, and lowering its corresponding metadata and +attribute deposits. The objective is to lower the barrier to entry for NFT creators, fostering a +more inclusive and vibrant ecosystem while maintaining network integrity and preventing spam. ## Motivation The current deposit of 10 DOT for collection creation (along with 0.01 DOT for item deposit and 0.2 -DOT for metadata and attribute deposit) on the Polkadot Asset Hub and 0.1 KSM on Kusama Asset Hub +DOT for metadata and attribute deposits) on the Polkadot Asset Hub and 0.1 KSM on Kusama Asset Hub presents a significant financial barrier for many NFT creators. By lowering the deposit requirements, we aim to encourage more NFT creators to participate in the Polkadot NFT ecosystem, thereby enriching the diversity and vibrancy of the community and its offerings. -The actual implementation of the deposit is an arbitrary number coming from [Uniques -pallet](https://github.com/polkadot-fellows/runtimes/commit/c2a3c9881c0ee6393d1665fefd9671d040215188#diff-32714ab945a24cbcc5979fd9065e0c13e0beb59f7533b38e2e97a872b23cb125R596-R600). -It is not a result of any economic analysis. This proposal aims to adjust the deposit from constant -to dynamic pricing based on the `deposit` function with respect to stakeholders. +The initial introduction of a 10 DOT deposit was an arbitrary starting point that does not consider +the actual storage footprint of an NFT collection. This proposal aims to adjust the deposit first to +a value based on the `deposit` function, which calculates a deposit based on the number of keys +introduced to storage and the size of corresponding values stored. + +Further, it suggests some directions for a future of calculating deposits variably based on adoption +and/or market conditions. There is a discussion on tradeoffs of setting deposits too high or too +low. ### Requirements -- Deposit SHOULD be derived from `deposit` function adjusted by correspoding pricing mechansim. +- Deposits SHOULD be derived from `deposit` function, adjusted by correspoding pricing mechansim. ## Stakeholders - **NFT Creators**: Primary beneficiaries of the proposed change, particularly those who found the current deposit requirements prohibitive. -- **NFT Platforms**: As the facilitator of artists' relations, NFT Marketplaces has a vested - interest in onboarding new users and making the platform more accessible. +- **NFT Platforms**: As the facilitator of artists' relations, NFT marketplaces have a vested + interest in onboarding new users and making their platforms more accessible. - **dApp Developers**: Making the blockspace more accessible will encourage developers to create and build unique dApps in the Polkadot ecosystem. -- **Polkadot Community**: Stands to benefit from an influx of artists, creators and diverse NFT +- **Polkadot Community**: Stands to benefit from an influx of artists, creators, and diverse NFT collections, enhancing the overall ecosystem. -Previous discussions have been held within the Polkadot Forum community and with artists expressing -their concerns about the deposit amounts. -[Link](https://forum.polkadot.network/t/polkadot-assethub-high-nft-collection-deposit/4262). +Previous discussions have been held within the [Polkadot +Forum](https://forum.polkadot.network/t/polkadot-assethub-high-nft-collection-deposit/4262), with +artists expressing their concerns about the deposit amounts. ## Explanation -This RFC proposes a revision of the deposit constants in the nfts pallet on the Polkadot Asset Hub. -The new deposit amounts would be determined by a standard deposit formula. - -This RFC suggests modifying deposit constants defined in the `nfts` pallet on the Polkadot Asset Hub -to require a lower deposit. The reduced deposit amount should be determined by the `deposit` -adjusted by the pricing mechanism (arbitrary number/another pricing function). +This RFC proposes a revision of the deposit constants in the configuration of the NFTs pallet on the +Polkadot Asset Hub. The new deposit amounts would be determined by a standard deposit formula. -### Current code structure +As of v1.1.1, the Collection Deposit is 10 DOT and the Item Deposit is 0.01 DOT (see +[here](https://github.com/polkadot-fellows/runtimes/blob/v1.1.1/system-parachains/asset-hubs/asset-hub-polkadot/src/lib.rs#L687)). -[Current deposit requirements are as -follows](https://github.com/polkadot-fellows/runtimes/commit/c2a3c9881c0ee6393d1665fefd9671d040215188#diff-32714ab945a24cbcc5979fd9065e0c13e0beb59f7533b38e2e97a872b23cb125R596-R600) - -Looking at the current code structure the currently implemented we can find that the pricing re-uses -the logic of how Uniques are defined: +Based on the storage footprint of these items, this RFC proposes changing them to: ```rust -parameter_types! { - // re-use the Uniques deposits - pub const NftsCollectionDeposit: Balance = UniquesCollectionDeposit::get(); - pub const NftsItemDeposit: Balance = UniquesItemDeposit::get(); - pub const NftsMetadataDepositBase: Balance = UniquesMetadataDepositBase::get(); - pub const NftsAttributeDepositBase: Balance = UniquesAttributeDepositBase::get(); - pub const NftsDepositPerByte: Balance = UniquesDepositPerByte::get(); -} +pub const NftsCollectionDeposit: Balance = system_para_deposit(1, 130); +pub const NftsItemDeposit: Balance = system_para_deposit(1, 164); ``` -In the existing setup, the Uniques are defined with specific deposit values for different elements: +This results in the following deposits (calculted using [this +repository](https://github.com/vikiival/rfc-pricing)): -```rust -parameter_types! { - pub const UniquesCollectionDeposit: Balance = UNITS / 10; // 1 / 10 UNIT deposit to create a collection - pub const UniquesItemDeposit: Balance = UNITS / 1_000; // 1 / 1000 UNIT deposit to mint an item - pub const UniquesMetadataDepositBase: Balance = deposit(1, 129); - pub const UniquesAttributeDepositBase: Balance = deposit(1, 0); - pub const UniquesDepositPerByte: Balance = deposit(0, 1); -} -``` -As we can see in the code definition above the current code does not use the `deposit` funtion when -the collection in the following instances: `UniquesCollectionDeposit` and `UniquesItemDeposit`. +**Polkadot** -### Proposed Modification Using the Deposit Function +| **Name** | **Current Rate (DOT)** | **Proposed Rate (DOT)** | +|---------------------------|:----------------------:|:-----------------------:| +| `collectionDeposit` | 10 | 0.20064 | +| `itemDeposit` | 0.01 | 0.20081 | +| `metadataDepositBase` | 0.20129 | 0.20076 | +| `attributeDepositBase` | 0.2 | 0.2 | -This proposed modification adjusts the deposits to use the `deposit` function instead of using an -arbitrary number. +Similarly, the prices for Kusama were calculated as: + +**Kusama:** + +| **Name** | **Current Rate (KSM)** | **Proposed Rate (KSM)** | +|---------------------------|:----------------------:|:-----------------------:| +| `collectionDeposit` | 0.1 | 0.006688 | +| `itemDeposit` | 0.001 | 0.000167 | +| `metadataDepositBase` | 0.006709666617 | 0.0006709666617 | +| `attributeDepositBase` | 0.00666666666 | 0.000666666666 | + +### Enhanced Approach to Further Lower Barriers for Entry + +This RFC proposes further lowering these deposits below the rate normally charged for such a storage +footprint. This is based on the economic argument that sub-rate deposits are a subsididy for growth +and adoption of a specific technology. If the NFT functionality on Polkadot gains adoption, it makes +it more attractive for future entrants, who would be willing to pay the non-subsidized rate because +of the existing community. + +**Proposed Rate Adjustments** ```rust parameter_types! { - pub const NftsCollectionDeposit: Balance = deposit(1, 130); - pub const NftsItemDeposit: Balance = deposit(1, 164); - pub const NftsMetadataDepositBase: Balance = deposit(1, 129); - pub const NftsAttributeDepositBase: Balance = deposit(1, 0); - pub const NftsDepositPerByte: Balance = deposit(0, 1); + pub const NftsCollectionDeposit: Balance = system_para_deposit(1, 130); + pub const NftsItemDeposit: Balance = system_para_deposit(1, 164) / 40; + pub const NftsMetadataDepositBase: Balance = system_para_deposit(1, 129) / 10; + pub const NftsAttributeDepositBase: Balance = system_para_deposit(1, 0) / 10; + pub const NftsDepositPerByte: Balance = system_para_deposit(0, 1); } ``` -Calculations viewed bellow were calculated by using the following repository -[rfc-pricing](https://github.com/vikiival/rfc-pricing). +This adjustment would result in the following DOT and KSM deposit values: -**Polkadot** -| **Name** | **Current price implementation** | **Proposed Modified by using the new deposit function** | -|---------------------------|----------------------------------|-------------------------| -| collectionDeposit | 10 DOT | 0.20064 DOT | -| itemDeposit | 0.01 DOT | 0.20081 DOT | -| metadataDepositBase | 0.20129 DOT | 0.20076 DOT | -| attributeDepositBase | 0.2 DOT | 0.2 DOT | +| **Name** | **Proposed Rate Polkadot** | **Proposed Rate Kusama** | +|---------------------------|:--------------------------:|:------------------------:| +| `collectionDeposit` | 0.20064 DOT | 0.006688 KSM | +| `itemDeposit` | 0.005 DOT | 0.000167 KSM | +| `metadataDepositBase` | 0.002 DOT | 0.0006709666617 KSM | +| `attributeDepositBase` | 0.002 DOT | 0.000666666666 KSM | -Similarly the prices for Kusama ecosystem were calculated as: +## Drawbacks -**Kusama:** -| **Name** | **Current price implementation** | **Proposed Price in KSM** | -|---------------------------|----------------------------------|---------------------------| -| collectionDeposit | 0.1 KSM | 0.006688 KSM | -| itemDeposit | 0.001 KSM | 0.000167 KSM | -| metadataDepositBase | 0.006709666617 KSM | 0.0006709666617 KSM | -| attributeDepositBase | 0.00666666666 KSM | 0.000666666666 KSM | +Modifying deposit requirements necessitates a balanced assessment of the potential drawbacks. +Highlighted below are cogent points extracted from the discourse on the [Polkadot Forum +conversation](https://forum.polkadot.network/t/polkadot-assethub-high-nft-collection-deposit/4262), +which provide critical perspectives on the implications of such changes. +Adjusting NFT deposit requirements on Polkadot and Kusama Asset Hubs involves key challenges: -### Enhanced Approach to Further Lower Barriers for Entry +1. **State Growth and Technical Concerns**: Lowering deposit requirements can lead to increased + blockchain state size, potentially causing state bloat. This growth needs to be managed to + prevent strain on the network's resources and maintain operational efficiency. As stated earlier, + the deposit levels proposed here are intentionally low with the thesis that future participants + would pay the standard rate. -In an effort to further lower barriers to entry and foster greater inclusivity, we propose -additional modifications to the pricing structure. These proposed reductions are based on a -collaborative and calculated approach, involving the consensus of leading NFT creators within the -Polkadot and Kusama Asset Hub communities. The adjustments to deposit amounts are not made -arbitrarily. Instead, they are the result of detailed discussions and analyses conducted with -prominent NFT creators. +2. **Network Security and Market Response**: Adapting to the cryptocurrency market's volatility is + crucial. The mechanism for setting deposit amounts must be responsive yet stable, avoiding undue + complexity for users. -**Proposed Code Adjustments** +3. **Economic Impact on Previous Stakeholders**: The change could have varied economic effects on + previous (before the change) creators, platform operators, and investors. Balancing these + interests is essential to ensure the adjustment benefits the ecosystem without negatively + impacting its value dynamics. However in the particular case of Polkadot and Kusama Asset Hub + this does not pose a concern since there are very few collections currently and thus previous + stakeholders wouldn't be much affected. As of date 9th January 2024 there are 42 collections on + Polkadot Asset Hub and 191 on Kusama Asset Hub with a relatively low volume. -```rust -parameter_types! { - pub const NftsCollectionDeposit: Balance = deposit(1, 130); - pub const NftsItemDeposit: Balance = deposit(1, 164) / 40; - pub const NftsMetadataDepositBase: Balance = deposit(1, 129) / 10; - pub const NftsAttributeDepositBase: Balance = deposit(1, 0) / 10; - pub const NftsDepositPerByte: Balance = deposit(0, 1); -} -``` +## Testing, Security, and Privacy -**Prices and Proposed Prices on Polkadot Asset Hub:** +### Security concerns -**Polkadot** +As noted above, state bloat is a security concern. In the case of abuse, governance could adapt by +increasing deposit rates and/or using `forceDestroy` on collections agreed to be spam. + +## Performance, Ergonomics, and Compatibility + +### Performance + +The primary performance consideration stems from the potential for state bloat due to increased +activity from lower deposit requirements. It's vital to monitor and manage this to avoid any +negative impact on the chain's performance. Strategies for mitigating state bloat, including +efficient data management and periodic reviews of storage requirements, will be essential. + +### Ergonomics -| **Name** | **Current price implementation** | **Proposed Prices** | -|---------------------------|----------------------------------|---------------------| -| collectionDeposit | 10 DOT | 0.20064 DOT | -| itemDeposit | 0.01 DOT | 0.005 DOT | -| metadataDepositBase | 0.20129 DOT | 0.002 DOT | -| attributeDepositBase | 0.2 DOT | 0.002 DOT | +The proposed change aims to enhance the user experience for artists, traders, and utilizers of +Kusama and Polkadot Asset Hubs, making Polkadot and Kusama more accessible and user-friendly. -**Kusama** +### Compatibility + +The change does not impact compatibility as a `redeposit` function is already implemented. + +## Unresolved Questions -| **Name** | **Current price implementation** | **Proposed Price in KSM** | -|---------------------------|----------------------------------|---------------------------| -| collectionDeposit | 0.1 KSM | 0.006688 KSM | -| itemDeposit | 0.001 KSM | 0.000167 KSM | -| metadataDepositBase | 0.006709666617 KSM | 0.0006709666617 KSM | -| attributeDepositBase | 0.00666666666 KSM | 0.000666666666 KSM | +There remain unresolved questions regarding the implementation of a function-based pricing model for +deposits and the feasibility of linking deposits to a USD(x) value. These aspects require further +exploration and discussion to ascertain their viability and potential impact on the ecosystem. See +below. +## Future Directions and Related Material ## Discussion of Other Proposals @@ -173,12 +184,10 @@ deposit requirements more effectively: ### Enhanced Weak Governance Origin Model -The concept of a weak governance origin, controlled by a consortium like the System Collective, has +The concept of a weak governance origin, controlled by a consortium like a system collective, has been proposed. This model would allow for dynamic adjustments of NFT deposit requirements in response to market conditions, adhering to storage deposit norms. -**Enhancements and Concerns:** - - **Responsiveness**: To address concerns about delayed responses, the model could incorporate automated triggers based on predefined market indicators, ensuring timely adjustments. - **Stability vs. Flexibility**: Balancing stability with the need for flexibility is challenging. @@ -193,13 +202,11 @@ response to market conditions, adhering to storage deposit norms. Another proposal is to use a mathematical function to regulate deposit prices, initially allowing low prices to encourage participation, followed by a gradual increase to prevent network bloat. -**Refinements:** - - **Choice of Function**: A logarithmic or sigmoid function is favored over an exponential one, as these functions increase prices at a rate that encourages participation while preventing prohibitive costs. - **Adjustment of Constants**: To finely tune the pricing rise, one of the function's constants - could correlate with the total number of NFTs on AssetHub. This would align the deposit + could correlate with the total number of NFTs on Asset Hub. This would align the deposit requirements with the actual usage and growth of the network. ### Linking Deposit to USD(x) Value @@ -207,8 +214,6 @@ low prices to encourage participation, followed by a gradual increase to prevent This approach suggests pegging the deposit value to a stable currency like the USD, introducing predictability and stability for network users. -**Considerations and Challenges:** - - **Market Dynamics**: One perspective is that fluctuations in native currency value naturally balance user participation and pricing, deterring network spam while encouraging higher-value collections. Conversely, there's an argument for allowing broader participation if the DOT/KSM @@ -220,70 +225,3 @@ predictability and stability for network users. Each of these proposals offers unique advantages and challenges. The optimal approach may involve a combination of these ideas, carefully adjusted to address the specific needs and dynamics of the Polkadot and Kusama networks. - -## Drawbacks - -Modifying deposit requirements necessitates a balanced assessment of the potential drawbacks. -Highlighted below are cogent points extracted from the discourse on the [Polkadot Forum -conversation](https://forum.polkadot.network/t/polkadot-assethub-high-nft-collection-deposit/4262), -which provide critical perspectives on the implications of such changes. - -Adjusting NFT deposit requirements on Polkadot and Kusama Asset Hubs involves key challenges: - -1. **State Growth and Technical Concerns**: Lowering deposit requirements can lead to increased - blockchain state size, potentially causing state bloat. This growth needs to be managed to - prevent strain on the network's resources and maintain operational efficiency. - -2. **Network Security and Market Response**: Reduced deposits might increase transaction volume, - potentially bloating the state, thereby impacting network security. Additionally, adapting to the - cryptocurrency market's volatility is crucial. The mechanism for setting deposit amounts must be - responsive yet stable, avoiding undue complexity for users. - -3. **Economic Impact on Previous Stakeholders**: The change could have varied economic effects on - previous (before the change) creators, platform operators, and investors. Balancing these - interests is essential to ensure the adjustment benefits the ecosystem without negatively - impacting its value dynamics. However in the particular case of Polkadot and Kusama Asset Hub - this does not pose a concern since there are very few collections currently and thus previous - stakeholders wouldn't be much affected. As of date 9th January 2024 there are 42 collections on - Polkadot Asset Hub and 191 on Kusama Asset Hub with a relatively low volume. - -## Testing, Security, and Privacy - -### Security concerns - -The prevention of "spam" could be prevented by OpenGov proposal to `forceDestoy` list of collections -that are not suitable. - -## Performance, Ergonomics, and Compatibility - -### Performance - -The primary performance consideration stems from the potential for state bloat due to increased -activity from lower deposit requirements. It's vital to monitor and manage this to avoid any -negative impact on the chain's performance. Strategies for mitigating state bloat, including -efficient data management and periodic reviews of storage requirements, will be essential. - -### Ergonomics - -The proposed change aims to enhance the user experience for artists, traders and utilizers of Kusama -and Polkadot asset hub. Making Polkadot and Kusama more accessible and user-friendly. - -### Compatibility - -The change does not impact compatibility as `redeposit` function is already implemented. - -## Unresolved Questions - -There remain unresolved questions regarding the implementation of a function-based pricing model for -deposits and the feasibility of linking deposits to a USD(x) value. These aspects require further -exploration and discussion to ascertain their viability and potential impact on the ecosystem. - -## Future Directions and Related Material - -We recommend initially lowering the deposit to the suggested levels. Subsequently, based on the -outcomes and feedback, we can continue discussions on more complex models such as function-based -pricing or currency-linked deposits. - - -If accepted, this RFC could pave the way for further discussions and proposals aimed at enhancing -the inclusivity and accessibility of the Polkadot ecosystem. From 823013e4db00022e3f94f7a7b42a1e2eb9c7cf36 Mon Sep 17 00:00:00 2001 From: joepetrowski Date: Sun, 11 Feb 2024 20:45:58 +0100 Subject: [PATCH 33/36] add decision on sigmoid function --- text/0045-nft-deposits-asset-hub.md | 37 ++++++++++++++++++++++------- 1 file changed, 28 insertions(+), 9 deletions(-) diff --git a/text/0045-nft-deposits-asset-hub.md b/text/0045-nft-deposits-asset-hub.md index a6990883..8d55dd48 100644 --- a/text/0045-nft-deposits-asset-hub.md +++ b/text/0045-nft-deposits-asset-hub.md @@ -26,7 +26,7 @@ the actual storage footprint of an NFT collection. This proposal aims to adjust a value based on the `deposit` function, which calculates a deposit based on the number of keys introduced to storage and the size of corresponding values stored. -Further, it suggests some directions for a future of calculating deposits variably based on adoption +Further, it suggests a direction for a future of calculating deposits variably based on adoption and/or market conditions. There is a discussion on tradeoffs of setting deposits too high or too low. @@ -116,6 +116,28 @@ This adjustment would result in the following DOT and KSM deposit values: | `metadataDepositBase` | 0.002 DOT | 0.0006709666617 KSM | | `attributeDepositBase` | 0.002 DOT | 0.000666666666 KSM | +### Short- and Long-Term Plans + +The plan presented above is recommended as an immediate step to make Polkadot a more attractive +place to launch NFTs, although one would note that a forty fold reduction in the Item Deposit is +just as arbitrary as the value it was replacing. As explained earlier, this is meant as a subsidy to +gain more momentum for NFTs on Polkadot. + +In the long term, an implementation should account for what should happen to the deposit rates +assuming that the subsidy is successful and attracts a lot of deployments. Many options are +discussed in the [Addendum](#addendum). + +The deposit should be calculated as a function of the number of existing collections with maximum +DOT and stablecoin values limiting the amount. With asset rates available via the Asset Conversion +pallet, the system could take the lower value required. A sigmoid curve would make sense for this +application to avoid sudden rate changes, as in: + +$$ \frac{\mathrm{min(DOT deposit, stable deposit)} }{\mathrm{1 + e^{a - b * x}} }$$ + +where the constant `a` moves the inflection to lower or higher `x` values, the constant `b` adjusts +the rate of the deposit increase, and the independent variable `x` is the number of collections or +items, depending on application. + ## Drawbacks Modifying deposit requirements necessitates a balanced assessment of the potential drawbacks. @@ -170,17 +192,14 @@ The change does not impact compatibility as a `redeposit` function is already im ## Unresolved Questions -There remain unresolved questions regarding the implementation of a function-based pricing model for -deposits and the feasibility of linking deposits to a USD(x) value. These aspects require further -exploration and discussion to ascertain their viability and potential impact on the ecosystem. See -below. - -## Future Directions and Related Material +If this RFC is accepted, there should not be any unresolved questions regarding how to adapt the +implementation of deposits for NFT collections. -## Discussion of Other Proposals +## Addendum Several innovative proposals have been considered to enhance the network's adaptability and manage -deposit requirements more effectively: +deposit requirements more effectively. The RFC recommends a mixture of the function-based model and +the stablecoin model, but some tradeoffs of each are maintained here for those interested. ### Enhanced Weak Governance Origin Model From 0bb0f601ff365c1059fe678a071a74c733a4ec05 Mon Sep 17 00:00:00 2001 From: joe petrowski <25483142+joepetrowski@users.noreply.github.com> Date: Mon, 12 Feb 2024 19:08:48 +0100 Subject: [PATCH 34/36] Apply suggestions from code review Co-authored-by: Aurora Poppyseed <30662672+poppyseedDev@users.noreply.github.com> --- text/0045-nft-deposits-asset-hub.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/text/0045-nft-deposits-asset-hub.md b/text/0045-nft-deposits-asset-hub.md index 8d55dd48..7793ce31 100644 --- a/text/0045-nft-deposits-asset-hub.md +++ b/text/0045-nft-deposits-asset-hub.md @@ -69,7 +69,7 @@ repository](https://github.com/vikiival/rfc-pricing)): **Polkadot** -| **Name** | **Current Rate (DOT)** | **Proposed Rate (DOT)** | +| **Name** | **Current Rate (DOT)** | **Calculated with Function (DOT)** | |---------------------------|:----------------------:|:-----------------------:| | `collectionDeposit` | 10 | 0.20064 | | `itemDeposit` | 0.01 | 0.20081 | @@ -80,7 +80,7 @@ Similarly, the prices for Kusama were calculated as: **Kusama:** -| **Name** | **Current Rate (KSM)** | **Proposed Rate (KSM)** | +| **Name** | **Current Rate (KSM)** | **Calculated with Function (KSM)** | |---------------------------|:----------------------:|:-----------------------:| | `collectionDeposit` | 0.1 | 0.006688 | | `itemDeposit` | 0.001 | 0.000167 | From a7319f0f0034593888b039d1573965b0fbff2774 Mon Sep 17 00:00:00 2001 From: joepetrowski Date: Mon, 12 Feb 2024 19:10:50 +0100 Subject: [PATCH 35/36] table format --- text/0045-nft-deposits-asset-hub.md | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/text/0045-nft-deposits-asset-hub.md b/text/0045-nft-deposits-asset-hub.md index 7793ce31..fe8a9b09 100644 --- a/text/0045-nft-deposits-asset-hub.md +++ b/text/0045-nft-deposits-asset-hub.md @@ -70,22 +70,22 @@ repository](https://github.com/vikiival/rfc-pricing)): **Polkadot** | **Name** | **Current Rate (DOT)** | **Calculated with Function (DOT)** | -|---------------------------|:----------------------:|:-----------------------:| -| `collectionDeposit` | 10 | 0.20064 | -| `itemDeposit` | 0.01 | 0.20081 | -| `metadataDepositBase` | 0.20129 | 0.20076 | -| `attributeDepositBase` | 0.2 | 0.2 | +|---------------------------|:----------------------:|:----------------------------------:| +| `collectionDeposit` | 10 | 0.20064 | +| `itemDeposit` | 0.01 | 0.20081 | +| `metadataDepositBase` | 0.20129 | 0.20076 | +| `attributeDepositBase` | 0.2 | 0.2 | Similarly, the prices for Kusama were calculated as: **Kusama:** | **Name** | **Current Rate (KSM)** | **Calculated with Function (KSM)** | -|---------------------------|:----------------------:|:-----------------------:| -| `collectionDeposit` | 0.1 | 0.006688 | -| `itemDeposit` | 0.001 | 0.000167 | -| `metadataDepositBase` | 0.006709666617 | 0.0006709666617 | -| `attributeDepositBase` | 0.00666666666 | 0.000666666666 | +|---------------------------|:----------------------:|:----------------------------------:| +| `collectionDeposit` | 0.1 | 0.006688 | +| `itemDeposit` | 0.001 | 0.000167 | +| `metadataDepositBase` | 0.006709666617 | 0.0006709666617 | +| `attributeDepositBase` | 0.00666666666 | 0.000666666666 | ### Enhanced Approach to Further Lower Barriers for Entry @@ -132,7 +132,7 @@ DOT and stablecoin values limiting the amount. With asset rates available via th pallet, the system could take the lower value required. A sigmoid curve would make sense for this application to avoid sudden rate changes, as in: -$$ \frac{\mathrm{min(DOT deposit, stable deposit)} }{\mathrm{1 + e^{a - b * x}} }$$ +$$ minDeposit + \frac{\mathrm{min(DotDeposit, StableDeposit) - minDeposit} }{\mathrm{1 + e^{a - b * x}} }$$ where the constant `a` moves the inflection to lower or higher `x` values, the constant `b` adjusts the rate of the deposit increase, and the independent variable `x` is the number of collections or From c7edfc33ccb57e881557a5cbbeed478e0d4efc1a Mon Sep 17 00:00:00 2001 From: Aurora Poppyseed <30662672+poppyseedDev@users.noreply.github.com> Date: Tue, 13 Feb 2024 10:37:52 +0100 Subject: [PATCH 36/36] Update text/0045-nft-deposits-asset-hub.md Co-authored-by: Oliver Tale-Yazdi --- text/0045-nft-deposits-asset-hub.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/text/0045-nft-deposits-asset-hub.md b/text/0045-nft-deposits-asset-hub.md index fe8a9b09..585bb765 100644 --- a/text/0045-nft-deposits-asset-hub.md +++ b/text/0045-nft-deposits-asset-hub.md @@ -4,7 +4,7 @@ | --------------- | ----------------------------------------------------------------------------- | | **Start Date** | 2 November 2023 | | **Description** | A proposal to reduce the minimum deposit required for collection creation on the Polkadot and Kusama Asset Hubs. | -| **Authors** | [Aurora Poppyseed](https://github.com/poppyseedDev), [Just_Luuuu](https://github.com/justLuuuu), [Viki Val](https://github.com/vikiival) | +| **Authors** | [Aurora Poppyseed](https://github.com/poppyseedDev), [Just_Luuuu](https://github.com/justLuuuu), [Viki Val](https://github.com/vikiival), [Joe Petrowski](https://github.com/joepetrowski) | ## Summary