Decentralized bug bounty platform - A protocol-friendly, researcher-friendly, and judge-based vulnerability reporting system built on Celo.
VaultGuard is a decentralized bug bounty platform where protocols create vaults with custom payout tiers, security researchers submit vulnerabilities, and trusted judges verify submissions through multisig voting. Built with Solidity for the Web3 ecosystem.
- β Custom Payout Tiers - Set LOW/MEDIUM/HIGH/CRITICAL payout percentages
- β Choose Your Judges - Select trusted security firms, auditors, or community members
- β Multisig Voting - Configurable approval threshold for submissions
- β Flexible Funding - Deposit more funds anytime to your vault
- β Vault Management - Close vault and withdraw remaining funds anytime
- β IPFS Integration - Submit vulnerability reports via IPFS hash (privacy-first)
- β Automatic Payout Calculation - Based on severity and vault configuration
- β Low Platform Fee - Only 2.5% platform fee (vs 10-20% on centralized platforms)
- β Trustless - Can't be censored or denied unfairly
- β Transparent - All submissions and payouts visible on-chain
- β Decentralized Verification - Multisig voting by trusted judges
- β One Rejection = Denied - Prevents bad reports from being approved
- β Threshold Approvals - Automatic payout when threshold is met
- β Transparent Voting - All votes recorded on-chain
- π Funds Locked - Funds locked in contract until approved
- π Protocol Control - Protocol can close vault and withdraw remaining funds
- π Transparent History - All submissions visible on-chain
- π No Censorship - Decentralized platform can't arbitrarily deny claims
- LOW - Minor issues (typically 1-10% of vault)
- MEDIUM - Moderate issues (typically 5-25% of vault)
- HIGH - Critical issues (typically 20-50% of vault)
- CRITICAL - Severe vulnerabilities (typically 50-100% of vault)
createVault(judges, requiredApprovals, payouts)- Create a new bug bounty vaultdepositFunds(vaultId)- Add more funds to an existing vaultcloseVault(vaultId)- Close vault and withdraw remaining funds
submitVulnerability(vaultId, reportHash, severity)- Submit a vulnerability reportvoteOnSubmission(submissionId, approved)- Judge votes on a submissionclaimPayout(submissionId)- Claim payout for approved submission
getVaultJudges(vaultId)- Get list of judges for a vaultgetVaultSubmissions(vaultId)- Get all submissions for a vaultgetSubmissionDetails(submissionId)- Get detailed submission informationgetPayoutPercentage(vaultId, severity)- Get payout percentage for severity level
- Node.js (v16 or higher)
- npm or yarn
- Hardhat
- CELO tokens for gas fees (for deployment)
- Clone the repository:
git clone https://github.com/Gbangbolaoluwagbemiga/GuidlVault.git
cd GuidlVault- Install dependencies:
npm install- Create a
.envfile in the root directory:
PRIVATE_KEY=your_private_key_here
CELOSCAN_API_KEY=your_celoscan_api_key_here
CELO_RPC_URL=https://forno.celo.orgnpm run compilenpm run testnpm run deploy:celo:mainnetnpm run deploy:celo:alfajores// Example: Create a vault with 3 judges, requiring 2 approvals
address[] memory judges = [judge1, judge2, judge3];
uint256 requiredApprovals = 2;
uint256[4] memory payouts = [
100, // 1% for LOW
500, // 5% for MEDIUM
2000, // 20% for HIGH
5000 // 50% for CRITICAL
];
vaultGuard.createVault(judges, requiredApprovals, payouts, {
value: ethers.parseEther("10") // 10 CELO initial deposit
});// Submit with IPFS hash of encrypted report
vaultGuard.submitVulnerability(
vaultId,
"QmYourIPFSHashHere",
Severity.HIGH
);// Judge approves submission
vaultGuard.voteOnSubmission(submissionId, true);
// Judge rejects submission (immediate rejection)
vaultGuard.voteOnSubmission(submissionId, false);// Researcher claims approved payout
vaultGuard.claimPayout(submissionId);Celo Mainnet:
- Contract Address:
0x7C1486c50A729DDbf5a812C490a075053522EE43 - Explorer: https://celoscan.io/address/0x7C1486c50A729DDbf5a812C490a075053522EE43
- Platform Fee: 2.5% (250 basis points)
Base Mainnet:
- Contract Address:
0x9B1A83cE71a3AC986e5646E500b9257260Bd4D4b - Explorer: https://basescan.org/address/0x9B1A83cE71a3AC986e5646E500b9257260Bd4D4b#code
- Platform Fee: 2.5% (250 basis points)
| Network | Chain ID | Explorer | RPC URL |
|---|---|---|---|
| Celo Mainnet | 42220 | CeloScan | https://forno.celo.org |
| Celo Alfajores | 44787 | CeloScan Alfajores | https://alfajores-forno.celo-testnet.org |
| Base Mainnet | 8453 | BaseScan | https://mainnet.base.org |
| Base Sepolia | 84532 | BaseScan Sepolia | https://sepolia.base.org |
β οΈ Never commit your.envfile or private keys- β All withdrawals require multisig approval
- β One judge rejection = immediate denial
- β Funds locked until approval
- β Protocol can close vault anytime
- β Transparent on-chain history
GuidlVault/
βββ contracts/
β βββ VaultGuard.sol # Main bug bounty contract
β βββ MockERC20.sol # Mock token for testing
βββ scripts/
β βββ deploy.js # Deployment script
βββ test/
β βββ VaultGuard.test.js # Test suite
βββ hardhat.config.js # Hardhat configuration
βββ package.json
βββ README.md
- Real Problem: HackerOne/Immunefi take huge cuts (10-20%) and can arbitrarily deny claims
- Composable: Other protocols can query past submissions for researcher reputation
- Transparent: All payouts/rejections visible on-chain
- Demo-able: Easy to show vault creation β submission β voting β payout flow
- Low Fees: Only 2.5% platform fee vs 10-20% on centralized platforms
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Celo - For the carbon-negative blockchain
- OpenZeppelin - For secure, audited smart contract patterns
- Hardhat - For the amazing development environment
- π Analytics and reporting dashboard
- π Recurring vault funding
- π₯ Multi-vault management interface
- π·οΈ Tagging and categorization
- π§ Event notifications
- π Integration with governance tokens
- β‘ Gasless transactions (meta-transactions)
- π± Mobile app integration
- π Multi-language support
Built with β€οΈ for the Web3 security ecosystem
Decentralized, transparent, and fair bug bounty platform. π