A DAO framework built with Open Zeppelin's Governor contract in combination with NFTs.
Since v0.10.0
, Gov is using non-tranferable membership NFTs ("SBTs"), it is also timestamp-based by default.
Provide a coordination tool that fits the needs of regular users.
pnpm install
pnpm test
Create a .env
on the model of .env.template
:
cp .env.template .env
- Add your own keys in your
.env
file - Edit the
dao.config.ts
file (optional) - Then deploy to Sepolia:
pnpm deploy:sepolia
Then you can interact with your DAO using Tally.
Here are the differences between the Governor/ERC-721 implementations suggested by Open Zeppelin and ours:
The following function is onlyGovernance
, meaning it can only be triggered by a vote.
setManifesto()
updates the CID.
The following functions are onlyOwner
, and since the NFT contract ownership is transferred to the Gov contract, they can only be triggered by a vote.
safeMint()
adds a new member.govBurn()
bans a member.setMetadata()
changes the tokenURI of a given NFT ID.
Network | Chain ID | Documentation |
---|---|---|
Optimism Mainnet | 10 | Documentation |
Base Mainnet | 8453 | Documentation |
Sepolia Testnet | 11155111 | Documentation |
OP Sepolia Testnet | 11155420 | Documentation |
Base Sepolia Testnet | 84532 | Documentation |
Feel free to reach out to Julien: Farcaster, Element, Status, Telegram, Twitter, Discord, or LinkedIn.