revenue-sharing-contract
Version:
The revenue sharing contract for Mitama NFT project
34 lines (28 loc) • 1.52 kB
Markdown
# Donation-scheme NTF project
The name is reveiled when public sale starts.
## Feature of project
- Donation NFT:
- Distination is determined depending on the attribute type of each NFT.(ex, water -> NPO Ocean protect)
- Marketplace: Opensea
- each time a NFT item is sold, revenue is shared to 3 entities; team, donation, and holders(past NFT holder of that NFT). HolderPass is a provenance of poof-of-hold of the NFT Token. Up to last 7 holders are available to receive the revenue.
## Technical feature of NFT
- Dynamic NFT: NFT contract those tokenLevel is able to upgrade depending on the token sold price.
- RevenueBuffer at revenue-sharing:
- max 10% revenue is distibuted to 3 eneities; team, donation, and holders at Opensea's creator earning.
- in case of donation and holders, the RevenueBuffer contract is configured above.
- `RevenueBuffer` stores all received ETH on the contract. Provider job posts Request to RevenueBuffer on the item sold event at Opensea. `RevenueBuffer` distibutes stored ETH to all requested receipients on being called with `batchWithdraw()` which only Provider role wallet can call.
- provider/index.js: Provider job
- watch itemSoldEvent of Opensea
- call request to `RevenueBuffer`
- call upgradeTokenLEvel of `DynamicNFT`
- call mint `HolderPassNFT`
## Future work
- make all contract upgradable
## Basic Hardhat template
```shell
npx hardhat help
npx hardhat test
GAS_REPORT=true npx hardhat test
npx hardhat node
npx hardhat run scripts/deploy.js
```