DAO Bounty System: Smart Contracts, Integration, Audit
You are launching a DAO to distribute bounties, but fear that the majority may change terms after tasks are completed. Minorities demand protection. We solve this problem using a Moloch-like structure with rage-quit. Our experience — more than 20 successful DAO projects, from grant programs to investment clubs, with a total treasury of over 10,000 ETH. Typical project cost: $30k–$120k.
Mechanics of the bounty system: shares, loot, and rage-quit
The basic Moloch DAO mechanics are built on two types of shares: shares (voting) and loot (non-voting). A member receives shares for contribution and loot for financial investment. Bounty tasks are formalized through proposals. After voting and the grace period, the member receives a payout from the treasury. The main protection is rage-quit: if a proposal passes but a member disagrees, they can exit before execution and reclaim their share. This ensures that even minorities do not lose funds.
Alice: 100 shares out of 1000 total = 10% treasury Treasury: 10 ETH + 50,000 USDC Alice rage-quits: receives 1 ETH + 5,000 USDC, her shares are destroyed Why Moloch is better than Governor for bounty systems
Moloch minimizes the attack surface: the v1 code is about 400 lines of Solidity — 5 times shorter than Governor from OpenZeppelin (2000 lines). This reduces the chance of bugs. Rage-quit makes the system safe even with a malicious majority: the executor is confident that the reward will not be expropriated. According to the MolochDAO whitepaper, the rage-quit mechanism protects minorities 3 times more effectively than any other scheme.
Architecture of Moloch v2
A proposal goes through: submit → sponsor → voting → grace period → process. The grace period is the key window for rage-quit.
// Simplified proposal structure in Moloch v2 struct Proposal { address applicant; uint256 sharesRequested; uint256 lootRequested; uint256 tributeOffered; address tributeToken; uint256 paymentRequested; address paymentToken; uint256 startingPeriod; uint256 yesVotes; uint256 noVotes; bool[6] flags; bytes32 details; } The guild bank stores only whitelisted tokens. To add a new token, a proposal for whitelisting must be submitted.
Integration options
| Option | Timeline | Customization | Cost estimate |
|---|---|---|---|
| DAOhaus (no-code) | 1–2 days | Minimal | $5k–$15k |
| Baal + custom shaman | 2–4 weeks | High | $30k–$80k |
| Moloch v2 fork | 4–6 weeks + audit | Full | $60k–$120k |
How to integrate a custom shaman with Baal?
Integration starts with writing a shaman contract that implements the required logic (e.g., streaming shares). Then the shaman is attached to a Baal instance via the setShaman call. After activation, the shaman gets mint/burn shares permissions. In a typical scenario, setup takes 1-2 days of development and a week of testing. A team of 2 engineers can handle it in 2-3 weeks.
// Example shaman for streaming shares contract StreamingShaman { IBaal public baal; mapping(address => StreamConfig) public streams; struct StreamConfig { uint256 sharesPerSecond; uint256 startTime; uint256 endTime; uint256 lastMintTime; } function claim(address recipient) external { StreamConfig storage stream = streams[recipient]; uint256 elapsed = min(block.timestamp, stream.endTime) - stream.lastMintTime; uint256 sharesToMint = elapsed * stream.sharesPerSecond; stream.lastMintTime = block.timestamp; address[] memory recipients = new address[](1); recipients[0] = recipient; uint256[] memory amounts = new uint256[](1); amounts[0] = sharesToMint; baal.mintShares(recipients, amounts); } } What security measures do we apply?
We use static analysis with Slither and Mythril, fuzzing with Echidna, and formal verification of critical functions. Test coverage is at least 95%. For Moloch forks, we additionally verify the correctness of the rage-quit mechanism and external call handling. External audits from partners with DeFi experience are done if needed (cost: $10k–$30k), but we guarantee that our contracts have passed all internal checks.
Scope of work
- Documentation: contract specifications, logic description, architecture diagram.
- Smart contracts: Solidity 0.8.x + Foundry, test coverage >90%.
- Integration: frontend (React + wagmi), subgraphs (The Graph).
- Access: source repository, deployment scripts, admin panel.
- Training: documentation for DAO users, workshop for the team.
- Support: 6 months warranty, critical bug fixes.
Typical cases from our practice
Grant DAO for a foundation. The client wanted to distribute grants transparently. We deployed Baal with a custom shaman that automatically allocated shares after milestone completion. Rage-quit protected the grantee in case of disputes. Result: over 50 grants without a single conflict, average voting time — 3 days. Cost: $45k.
Investment club. Members deposited ETH in exchange for shares. All investment decisions were made via funding proposals. Rage-quit allowed dissenters to exit while retaining their share. Compared to a corporate structure, on-chain transparency eliminated disputes. Cost: $35k.
Service DAO. Shares were allocated for completed work, loot for financial contributions. Separating voting rights from economic rights enabled a merit-based organization without governance dilution. Cost: $50k.
Development roadmap for a bounty system
- Requirements analysis — choose a template (DAOhaus, Baal, or fork) based on member count and bounty types.
- Design — define the shares/loot structure, create proposal and role schemas.
- Development — write smart contracts using Foundry, cover with tests (unit + integration).
- Integration — connect frontend (React + wagmi) and subgraphs, set up notifications.
- Audit — internal audit with Slither/Mythril, external if needed.
- Deployment — deploy on the chosen L2 (Arbitrum, Optimism) with multisig.
- Support — monitoring, updates, member assistance.
This process reduces time-to-market by 40% compared to building from scratch.
Comparison of Moloch and Governor
| Characteristic | Moloch v2 | Governor (OpenZeppelin) |
|---|---|---|
| Code size | ~400 lines | ~2000 lines |
| Rage-quit | Built-in | Missing |
| Proposals | 6 types | Custom |
| Flexibility | Limited | High |
| Security | Higher due to smaller code | Requires more testing |
Get an estimate for your project. We are ready to analyze your task and suggest the optimal architecture. Contact us for a free consultation. Order development and get an audit as a gift. We deliver turnkey solutions within 2–6 weeks. Write to us for a free project assessment.







