From e9bf2137c2e9c7f551f33ab9c92c2739cd3482f1 Mon Sep 17 00:00:00 2001 From: Aurora Poppyseed <30662672+poppyseedDev@users.noreply.github.com> Date: Thu, 14 Mar 2024 13:14:56 +0100 Subject: [PATCH] Lowering Deposit Requirements on Polkadot and Kusama Asset Hub (#45) RFC-00xx-assethub, proposes lowering deposit requirements for NFT collection creation on Polkadot and Kusama Asset Hub to make it more accessible for artists. It draws upon the discussion in the [Polkadot Forum](https://forum.polkadot.network/t/polkadot-assethub-high-nft-collection-deposit/4262). While there are concerns about state bloat, the RFC also considers future governance models to dynamically adjust deposit requirements. --------- Co-authored-by: Oliver Tale-Yazdi Co-authored-by: joe petrowski <25483142+joepetrowski@users.noreply.github.com> Co-authored-by: Viki Val Co-authored-by: joepetrowski --- text/0045-nft-deposits-asset-hub.md | 246 ++++++++++++++++++++++++++++ 1 file changed, 246 insertions(+) create mode 100644 text/0045-nft-deposits-asset-hub.md diff --git a/text/0045-nft-deposits-asset-hub.md b/text/0045-nft-deposits-asset-hub.md new file mode 100644 index 0000000..585bb76 --- /dev/null +++ b/text/0045-nft-deposits-asset-hub.md @@ -0,0 +1,246 @@ +# 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 Hubs. | +| **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 + +This RFC proposes changing the current deposit requirements on the Polkadot and Kusama Asset Hub for +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 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 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 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. + +### Requirements + +- 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 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 + collections, enhancing the overall ecosystem. + +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 configuration of the NFTs pallet on the +Polkadot Asset Hub. The new deposit amounts would be determined by a standard deposit formula. + +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)). + +Based on the storage footprint of these items, this RFC proposes changing them to: + +```rust +pub const NftsCollectionDeposit: Balance = system_para_deposit(1, 130); +pub const NftsItemDeposit: Balance = system_para_deposit(1, 164); +``` + +This results in the following deposits (calculted using [this +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 | + +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 | + +### 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 = 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); +} +``` + +This adjustment would result in the following DOT and KSM deposit values: + +| **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 | + +### 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: + +$$ 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 +items, depending on application. + +## 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. As stated earlier, + the deposit levels proposed here are intentionally low with the thesis that future participants + would pay the standard rate. + +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. + +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 + +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 + +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. + +### Compatibility + +The change does not impact compatibility as a `redeposit` function is already implemented. + +## Unresolved Questions + +If this RFC is accepted, there should not be any unresolved questions regarding how to adapt the +implementation of deposits for NFT collections. + +## Addendum + +Several innovative proposals have been considered to enhance the network's adaptability and manage +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 + +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. + +- **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. + +- **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 Asset Hub. 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. + +- **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.