# Tech architecture

<figure><img src="https://3671592714-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fy3BU6XjkMvE5ZpghiFRu%2Fuploads%2F7kFfEu9WVq2j2XakYFEe%2F1%201.jpg?alt=media&#x26;token=c4d6a47b-75ce-448a-a21d-5f8c96c4cf17" alt=""><figcaption></figcaption></figure>

Smart contracts are at the core of the Protocol. The main idea is to make it as straightforward and automated as possible to execute different functions within the DAO.

Smart contracts implement the logic for making and executing a collective decision.

**DAOs can be governed via:**

* **ERC20** token
* **ERC721** token (NFT)
* both **ERC20** & **ERC721**

### Functional Overview

Pool tokens determine membership in the DAO community, granting users the right to vote and participate in the collective decision-making process. Additionally, token holders can propose ideas that can be approved or rejected by the rest of the DAO members (i.e. governance).

The scheme below shows a high-level overview of the various smart contract blocks comprising our infrastructure.

### **DLSL**

This is the meta-level, with a record of all contracts and DAOs and a way to create DAOs via the Protocol.

**ContractsRegistry** - a registry of all the smart contracts used by all the DAOs built via the Protocol.

**PoolFactory** - this is where new DAOs get created.

**PoolRegistry** - a registry of all the DAOs created via the Protocol.

### **DAO**

Once the DAO is created via the PoolFactory smart contract, it gets deployed into the DAO block of our smart contracts.

**DAOPool** - the central governing smart contract of each DAO.

**DAOToken** - the creation and registry of the token the DAO decided to apply/create for its governance.

**UserKeeper** - a registry of the DAOs user wallets.

**Settings** - contains all the current settings of the DAO (changeable via proposal).

**Validators** - a registry of this DAO's validators.

**ValidatorsToken** - validators get their own token for validator-only voting.

**DAO Modules** - within the DAO, there are six main processes divided into six smart contracts:

* _Voting_ - contracts governing voting in its various aspects.
* _Experts_ - contains the rules and mechanisms for the all-important meritocratic component of our DAO governance model.&#x20;
* _Commissions_ - incentives only work when everybody is fairly compensated, and there is good circulation of funds; this is the smart contract with fee rules.&#x20;
* _Staking_ - the smart contract that keeps track of staking programs and rewards.&#x20;
* _Delegation_ - this smart contract keeps track of the complex delegation formulas that make effective governance possible and rewarding.&#x20;
* _Rewards_ - the smart contract specifically focused on tracking and properly distributing rewards.

### **Proposals**

When the DAOPool smart contract executes the voting function, the internal logic turns to the Proposals block. The Settings smart contract is also involved via its voting settings component.

**DistributionProposal** - most funds distribution types (from salary compensation to partnership investments) go through this smart contract.

**TokensaleProposal** - token sales have complex mechanics and require a separate smart contract to govern them.

**CustomProposal** - DAO members are free to define new types of proposals, and this smart contract helps them do that.

### **External Tokens**

DAOs can be governed via tokens, NFTs, or both. The following block of smart contracts is dedicated to them.

**ERC721Multiplier** - here, the general voting power multiplier for governance NFTs (as ERC-721 tokens) is defined and recorded.

**ERC721Power** - depending on the NFT holder's status and actions within the DAO, the actual voting power of their governance NFT can vary, as defined and recorded in this smart contract.

**ERC721Experts** - this governs the special voting power of expert sub-DAOs when applicable.

### **Security**

The Protocol has been audited by renowned security companies, including Cyfrin, CertiK, Ambisafe, Hacken, and numerous auditions by developers related to Protocol’s development. The reports from these audits are available for review. The Protocol contracts repository has undergone over 1000 units, integration, and simulation tests, achieving 100% coverage.

The smart contract code for the Protocol is open-source, and we welcome members of the technical community to review and verify our code.
