-
Notifications
You must be signed in to change notification settings - Fork 483
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add ERC: Sustainable NFT Collections #752
base: master
Are you sure you want to change the base?
Conversation
ERCS/erc-xxxx.md
Outdated
title: Sustainable Collections | ||
description: A standard for managing NFTs with dynamic fees and donation-based engagement. | ||
author: Gustavo Lobo (@gflobo) | ||
discussions-to: <URL> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please create a discussions topic on Eth Magicians: https://ethereum-magicians.org/c/ercs/57
It just needs to be a link to this PR.
ERCS/erc-xxxx.md
Outdated
if (hasRole(DEFAULT_ADMIN_ROLE, msg.sender)) return 0; | ||
uint256 baseFee = mintBaseFee; | ||
uint256 incrementPercentage = mintRateIncrementPercentage; | ||
uint256 userTokenCount = balanceOf(msg.sender); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If NFTs are transferrable, then a holder can just transfer to another account they control prior to minting.
Co-authored-by: Andrew B Coathup <[email protected]>
The commit e265b83 (as a parent of 8c3b27f) contains errors. |
eip: xxxx
title: Sustainable NFT Collections
description: A standard for managing NFTs with dynamic fees and donation-based engagement.
author: Gustavo Lobo (@gfLobo)
discussions-to:
status: Draft
type: Standards Track
category: ERC
created: 2024-12-04
requires: 721
Abstract
This EIP defines a standard for economically sustainable NFTs using features derived from the ERC721 standard. It integrates dynamic minting fees, role-based access control, and donation-based engagement. These mechanisms align tokenomics with principles of scarcity and value attribution while enabling creators to foster community engagement through contributions. Additionally, the standard supports optional features like token raffles to further incentivize community participation.
Motivation
NFT systems often face issues like inflationary supply and lack of mechanisms to incentivize meaningful engagement between creators and contributors. This EIP addresses these gaps by introducing:
Specification
Core Functionalities
Dynamic Minting Fees:
Minting fees increase dynamically based on the number of tokens owned by the user. This discourages hoarding and promotes equitable token distribution.
Donation System:
Contributors can support creators by donating ETH. Upon donation, users may receive the Contributor Role, granting them special access to features like raffles or exclusive minting rights.
Role-Based Access:
Administrative Controls:
Optional Raffle Mechanism (Extra Feature)
Creators can optionally organize raffles to reward contributors. Raffles encourage engagement by allowing contributors to compete for ownership of specific tokens.
Creating a Raffle:
Joining a Raffle:
Random Winner Selection:
block.prevrandao
).Security Considerations
Implements
ReentrancyGuard
to prevent recursive call vulnerabilities in donation and raffle functions.Utilizes OpenZeppelin's
AccessControl
to enforce role-based restrictions.Raffle mechanics use auditable and on-chain randomness for fairness.
Allows administrators to pause the contract in emergencies, ensuring safety during unexpected events.
Rationale
Below are the key considerations and justifications for the design choices:
Dynamic Minting Fees
Donation-Based Engagement
Optional Raffle Mechanism
Backwards Compatibility
This EIP is fully compatible with ERC721. Extensions like dynamic minting fees, donation systems, and optional raffles are modular and do not impact existing ERC721 token functionalities.
Test Cases
Reference Implementation
The reference implementation is provided at Collectible. It includes all specified functionalities, including dynamic fees, donation systems, role-based access, and optional raffle mechanisms.
Backwards Compatibility
This EIP is fully compatible with ERC721. Extensions like dynamic minting fees, donation systems, and optional raffles are modular and do not impact existing ERC721 token functionalities.
Copyright
Copyright and related rights waived via CC0.