A decentralized autonomous organization (DAO) platform with proposal voting, treasury management, and governance token staking. Built with Angular 18, Node.js, and Solidity smart contracts.
- Create and vote on proposals with timelock execution
- Multi-signature treasury management
- Token locking for enhanced voting power
- Vote delegation system
- Real-time analytics and statistics
- MetaMask integration
- Frontend: Angular 18, TypeScript, Ethers.js
- Backend: Node.js, Express, MongoDB, Socket.io
- Smart Contracts: Solidity, Hardhat, OpenZeppelin
- Node.js v18+
- MongoDB v5+
- MetaMask browser extension
cd contracts && npm install
cd ../backend && npm install
cd ../frontend && npm installcd contracts
npx hardhat nodeIn a new terminal:
cd contracts
npx hardhat run scripts/deploy.js --network localhostCopy the deployed contract addresses from the console output.
cd backend
cp .env.example .envUpdate backend/.env with contract addresses:
MONGODB_URI=mongodb://localhost:27017/dao-platform
RPC_URL=http://127.0.0.1:8545
GOVERNANCE_TOKEN_ADDRESS=<address>
DAO_GOVERNOR_ADDRESS=<address>
DAO_TREASURY_ADDRESS=<address>
VOTE_ESCROW_ADDRESS=<address>
TIMELOCK_ADDRESS=<address>Start MongoDB and run:
npm run devUpdate contract addresses in frontend/src/environments/environment.ts.
Copy contract ABIs:
cp contracts/artifacts/contracts/GovernanceToken.sol/GovernanceToken.json frontend/src/assets/abis/
cp contracts/artifacts/contracts/DAOGovernor.sol/DAOGovernor.json frontend/src/assets/abis/
cp contracts/artifacts/contracts/DAOTreasury.sol/DAOTreasury.json frontend/src/assets/abis/
cp contracts/artifacts/contracts/VoteEscrow.sol/VoteEscrow.json frontend/src/assets/abis/Start the app:
npm startOpen http://localhost:4200 in your browser.