Key Concept
DRB721 ← Block → 20Modules
Launch ModuleRedeem ModuleHalting ModuleDevelopers
Contract ArchitectureUser Guide
TeamRoadmapGlossaryFAQsBrand AssetsContract Architecture
Contract Architecture Overview
ProtoDAO is a decentralized autonomous organization (DAO) platform that enables the creation of art projects through smart contracts. Under this contract architecture, the user interacts with the ProtoDAOCreateProjectProxy contract to create the DAO, which calls the createProjectProxy method of the ProtoDAOProtocol contract. The ProtoDAOProtocol contract is linked to three external libraries (ProtoDAO, ProtoDAOCanvas, and ProtoDAOProject) to make specific calls, and the ProtoDAOReward contract is internally linked to the ProtoDAOProtocol contract. The ProtoDAODRB contract controls the token rewards based on block time and is located at the lowest level. Other user actions, such as creating a canvas, casting NFTs, and receiving token rewards, directly interact with the ProtoDAOProtocol and ProtoDAOClaimer contracts. The setting contract controls important parameters such as the royalty fee ratio, the maximum supply of ERC20 tokens, and the floor price of ERC721 tokens. The main contracts that users interact with in ProtoDAO are the ProtoDAOCreateProjectProxy, ProtoDAOProtocol, and ProtoDAOClaimercontracts.
ProtoDAO Smart Contract Details
ProtoDAOCreateProjectProxy Contract
Users can create a DAO by calling the createProject
method of the ProtoDAOCreateProjectProxy contract. Within the DAO, the corresponding an ERC20 contract, an ERC721 contract, a asset fee pool contract and a royalty auto-splitting contract will also be created. The ProtoDAO offcial is able to create a DAO with a specific index number by calling the createOwnerProject
method.
ProtoDAOProtocol Contract
The user can create a "Canvas" under a selected DAO by calling the createCanvas
method. Once the canvas creator uploads an unminted work, the user can call the mintNFT
method to mint the work.
ProtoDAOClaimer Contract
After the user selects some projects and canvases of which he’s eligible to receive rewards, the front-end will set the parameters and call the claimMultiReward
method to receive the corresponding ERC20 reward. The user can also choose to receive the rewards and exchanging them for ETH in one transaction by calling the claimMultiRewardWithETH
method.
ProtoDAOFeePool Contract
The DAO creator will create a ProtoDAOFeePool subordinate contract during the creation of the DAO. All royalty shares will be transferred to this contract, and the transfer
method can be used to specify the address of the ERC20 token. If the ERC20 address is set to the zero address (0x0), ETH will be transferred instead.
name | address |
ProtoDAODRB | 0xcD261f16720e9dcc42fEe0690bC7A5450b9686ba |
WETH | 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 |
ProtoDAOSetting | 0xB3Baf093cc3cC66Bf4Da344611Bd4928153de631 |
ProtoDAOERC20Factory | 0xdD5486F75Ac33B3ED79dE3700A40D7d285B60664 |
ProtoDAOERC721WithFilterFactory | 0xce4ede94fA8314589C506e3636Bd8EE4Cc04325C |
ProtoDAOFeePoolFactory | 0xDC48A603CfDA59b2D960c7d096B2aF1852b67401 |
NaiveOwner_proxy | 0x106B1E01633296fA6a4e5d362a1C96904eA3DFCA |
NaiveOwner_impl | 0xa07b0b53c5911aa0174c1D58322414473D087a00 |
ProtoDAOProtocol_proxy | 0x7995198FE6A9668911927c67C8184BbF24E42774 |
ProtoDAOProtocol_impl | 0x81D92C8C5C1d6Cc33d3F0E1AecD85740E51AeC99 |
ProtoDAOCreateProjectProxy | 0xdf4c1E54a61e074750618243480cEAa14CEC883f |
ProtoDAOClaimer | 0x2a3Ab2be61D7119A76Fb231a4a213A05F3fF7B2E |
ProtoDAOProject | 0x9A8470E167De102260f4714bE9C98e544B6c7A39 |
ProtoDAOPrice | 0x22A4123074ab35dBCFd26628FA2b46DfBD9b88E0 |
ProtoDAOCanvas | 0xeEA534DD2CD5562413ACC6FD31a21c63a0916CEA |
← Previous
Add link here
Next →
Add link here