Where Prediction Markets Meet Crowdfunding Bet on project milestones. Winners fund the future. Everyone wins.
Where Prediction Markets Meet Crowdfunding
Bet on project milestones. Winners fund the future. Everyone wins.
PulsePool is a decentralized platform that revolutionizes project funding by combining prediction markets with crowdfunding. Users bet on whether projects will achieve their milestones - losing bets automatically fund the projects, while winners earn MNT rewards and token allocation rights:
🎲 Prediction Markets - Bet on whether projects will hit their milestones
💰 Crowdfunding - Losing bets automatically fund winning projects
🏆 Reputation System - Top predictors earn rewards & token allocation rights
⚡ Zero Waste - Every MNT staked either rewards winners or funds projects
Traditional crowdfunding lacks market validation, while prediction markets don't create real-world impact. We merge both: the wisdom of the crowd validates AND funds breakthrough projects.
Projects Submit - Entrepreneurs set milestones & funding goals
Community Predicts - Users bet MNT on milestone achievement
Smart Contracts Decide - Oracles verify milestone completion
Winners Fund - Losing bets fund projects; winners get MNT + token rights
Earn MNT rewards from accurate predictions
Gain early token allocation rights in funded projects
Build on-chain reputation with NFT badges
Access exclusive prediction markets
Get funding validated by market sentiment
No upfront costs - only pay if you succeed
Built-in community of engaged supporters
Milestone-based funding reduces risk
ProjectRegistry.sol - Project & milestone management
PredictionMarket.sol - Binary outcome prediction markets
FundingPool.sol - Automated fund distribution
ReputationNFT.sol - On-chain reputation tracking
Upgradeable - Built for Mantle's modular L2 architecture
Solidity 0.8.20
Hardhat 3 (development & testing)
OpenZeppelin (security & upgradeability)
Chainlink (oracles for milestone verification)
React 18 + TypeScript
Vite (blazing fast dev server)
Tailwind CSS (modern styling)
Wagmi + Viem (Web3 integration)
RainbowKit (wallet connection)
Network: Mantle Network (Modular Ethereum L2)
Testnet: Mantle Sepolia (Chain ID: 5003)
Mainnet: Mantle (Chain ID: 5000)
Explorer: Mantle Explorer
Node.js 22+ (LTS recommended)
npm or yarn
MetaMask wallet
MNT testnet tokens from Mantle Faucet
git clone https://github.com/Ted1166/pulsepool.git
cd oraculumcd contracts
# Install dependencies
npm install
# Compile contracts
npx hardhat compile
# Run tests
npx hardhat test
# Deploy to Mantle Sepolia testnet
npm run deploy:mantle-sepolia
# Deploy to Mantle mainnet (when ready)
npm run deploy:mantle-mainnetcd client
# Install dependencies
npm install
# Create .env filecp .env.example .env
# Add contract addresses from deployment
# Start development server
npm run dev
# Open http://localhost:5173cd contracts
# Run all tests
npx hardhat test
# Run with gas reporting
REPORT_GAS=true npx hardhat test
# Run with coverage
npx hardhat coveragecd client
npm run testcd contracts
# Deploy to Mantle Sepolia
npm run deploy:mantle-sepolia
# Verify contracts on Mantle Explorer
npx hardhat verify --network mantleSepolia <CONTRACT_ADDRESS> <CONSTRUCTOR_ARGS>cd client
npm run build
vercel deploy