Contract Architecture

Contract Architecture

Contract 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 (ProtoDAOProtoDAOCanvas, 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 ProtoDAOCreateProjectProxyProtoDAOProtocol, and ProtoDAOClaimercontracts.

Contract Architecture of
Contract Architecture of ProtoDAO

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 claimMultiRewardWithETHmethod.

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