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 everyday people. Orgs, federations of orgs, activists, neighborhoods, stewards of the commons, collectives, and other communities are invited to deploy their own DAO.
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.
You can contact me via Element, Telegram, Twitter, Discord, or LinkedIn.