/DAOminichain

Primary LanguageTypeScriptMIT LicenseMIT

Other Repos

Main Repo(Solidity) : https://github.com/jrcarlos2000/Omnichain-governor-standard

Simple Server ( chainlink functions ): https://github.com/technophile-04/chainlink-func-server

Omnichain governor standard

TL;DR:

Discover an advanced smart contract standard enabling seamless omnichain governance integration into DAOs. Experience heightened scalability and cross-chain collaboration within decentralized ecosystems. Embrace this cutting-edge standard to elevate decentralized governance to new heights.

How's made

Composed of 5 core smart contracts :

  1. MultichainGovernor.sol

    This contract is inherited and deployed on the settlement chain (i.e. Polygon)

  2. MultichainGovernorAdapter.sol

    This contract is deployed on side chains (i.e. BSC)

  3. MultichainGovernorFunctionsConsumer

    This contract is deployed on settlement chain (i.e. Polygon)

  4. MultichainGovernorVotes

    This contract is deployed on settlement chain (i.e. Polygon)

  5. MultichainGovernorVotesAdapter

    This contract is deployed on side chains (i.e. BSC)

IMPORTANT : Contracts and their adapters deployed on side chains will have similar ABIs for seemless integration in the FE.

alt text

Technologies Used

Zetachain

Zetachain offers seamless integration for cross chain messaging, which enables us to implement our new standard. We used it here

Chainlink

Chainlink offers an alternative for integrating cross chain messaging : CCIP which enables us to implement our new standard. We used chainlink functions here

Worldcoin

IDKit for Identity Verification: IDKit is used for identity verification within FootyDAO (our PoC for omnichain governor standard) . As DAOs often require participants to comply with specific rules and regulations, verifying the identity of participants could be essential for ensuring fair and transparent operations. here

Push

The PUSH protocol in FootyDAO (our PoC for omnichain governor standard) is used for real-time communication , updates, match notifications etc, the code is here

Polygon

We used polygon as our settlement layer due to the vast applications and protocols it has.

Deployed Contracts

Contract Goerli Mumbai
MultichainGovernor.sol X link
MultichainGovernorAdapter.sol link X
MultichainGovernorFunctionsConsumer X link
MultichainGovernorVotes X link
MultichainGovernorVotesAdapter here X

DEMO

https://youtu.be/j8k2N8XCMbg

PoC Live

Add Link

Pitch Deck

https://pitch.com/public/33ee1122-099f-413c-9f86-3b41af5230d3

DeployScripts

// polygonMumbai
forge script script/Main.s.sol:ScriptPolygon --rpc-url polygonMumbai --etherscan-api-key NDZZQB529Q8HQAUXZEARWCHGZBRGDMSEYC --verifier-url https://api-testnet.polygonscan.com/api --broadcast --verify --legacy
// bscTesnet 
forge script script/Main.s.sol:ScriptBsc --rpc-url bscTestnet --etherscan-api-key IG2WK5KH5CFH1DRYU42MXHHCCCJDWX65RD --verifier-url https://api-testnet.bscscan.com/api --broadcast --verify --legacy
// goerli
forge script script/Main.s.sol:ScriptGoerli --rpc-url goerli --etherscan-api-key Y6H9S7521BGREFMGSETVA72F1HT74FE3M5 --verifier-url https://api-goerli.etherscan.io/api --broadcast --verify --legacy