A Dapp that enables NFT Creators to distribute revenues to all NFT owners dynamically even when there is a change of NFT ownership.
What if an NFT project becomes a source of investment? Is that possible? I believe that an NFTâs value can be increased if theyâre launched as a brand. With a strong brand, NFT creators can easily craft business ideas to generate consistent revenues. For example, if an NFT creator creates regular online content and actively engages his community, itâs not hard to generate income through social media monetization, merch sales, and brand collaboration. However, itâs challenging to reach that level of achievements without a strong group of supporters and investors. Therefore, the project can be crafted as an âinvestmentâ with the promise of rewarding NFT owners financially.
This project aims to build a Dapp that allows NFT Project creators to send and distribute funds to all their NFT owners. By utilizing the Polygon network, transaction fees are kept to a minimum with maximum transparency. In addition, NFT owners who received these funds can also withdraw these funds from the same Dapp.
The rationale of this idea is to reward hardcore fans and early investors. This project targets serious long-term NFT project creators, brand builders, entrepreneurs, and existing business owners. This project can also be used along with crowd-funded projects to reward project supporters as well.
To bring this project to life, I built the following:
By using OpenZeppelinâs Payment Splitter as a reference, I wrote a new smart contract that can handle split payment dynamically. The payee are all my projectâs NFT owners. Whenever I initiate a payment, the smart contract will split the payment based on the number of NFTs own to all owners. In addition, this smart contract is also âsmartâ enough to handle the change of ownership. For example, if someone sell the NFT, he will not receive the revenue/payment for the next distribution.
To make the function of Dynamic Payment Splitter more universal, I âwrappedâ it inside a given NFT Smart Contract. As a result, the same functions can be used to any NFT project that is compatible with ETH and Polygon i.e. any NFT creators can easily distribute revenues to their NFT owners using this smart contract.
For testing purpose, I also deployed two NFT smart contracts with minting function so that I can test and simulate dynamic payment splitter and revenue distribution during NFT ownership transfer.
Both contract are verified and can be used directly via Mumbai Testnet Explorer. However, I thought it would be more convenient if I can create a website that automatically fetches and compiles the wallet address of all NFT owners. Then, the same set of wallet addresses can be sent to the smart contract for revenue distribution. To retrieve all NFT token ownerâs wallet address, I used Moralisâ API, which made the whole process straightforward.
To initiate a fund/revenue distribution, the users (NFT creators) select a blockchain network, specify the NFT smart contract add, indicate the payment amount, and click âDistributeâ. Upon the completion of this transaction, the distributed amount will be stored in the smart contract until it is withdrawn by the NFT owners.
I also built a âRevenue Receivedâ dashboard so that NFT owners can have a glance on all NFT projects that they have supported. To show all the revenues that has been transferred, I used Moralis to interact with the Distributed Revenue smart contract to retrieve stats and transaction history. Furthermore, NFT owners can also withdraw funds from the same website, making it a one-stop solution to send and receive distributed revenues.