Individuals create donation campaigns, sponsors add incentivization, proof of donation is stored.
š How It Works
Campaign Creation Anyone can create a campaign by setting a funding goal in RON (Ronin's native token) Campaigns include title, description, images (served via Walrus decentralized storage), and funding targets No deadlines - campaigns remain active until creators manually end them Creators can withdraw funds at any time once pledges are made
Pledge System with Soulbound NFTs Donors pledge RON to support campaigns they believe in Every pledge automatically mints a unique Soulbound NFT as proof of contribution These NFTs are non-transferable and contain: Campaign metadata (title, ID, pledge amount) Timestamp of donation Beautiful on-chain SVG artwork Donor's contribution history
Dual Lottery System š° Daily Raffle (5% Platform Fee) 5% of every pledge goes into a daily raffle pool Anyone who pledged in the last 24 hours is automatically entered Winners are selected using weighted probability based on their lifetime total pledges Winner takes the entire daily pool Uses Ronin VRF for provably fair randomness
š Campaign Prize Raffles Anyone can sponsor prizes for active campaigns (ERC20 tokens, NFTs, ERC1155s) When campaign creators end their campaigns, all sponsored prizes are distributed Winners selected via weighted random selection based on their pledge amounts to that specific campaign Multiple prizes = multiple winners per campaign
šÆ Smart Contract Layer (Solidity) Core Contracts: PledgeToCreate.sol - Main crowdfunding contract with integrated VRF lottery system SoulboundPledgeNFT.sol - ERC-721 contract for non-transferable pledge certificates VRFConsumer.sol - Ronin VRF integration for provably fair randomness
ā” Frontend Stack (Next.js 15) Technologies Used: Next.js 15 with App Router and React 19 TailwindCSS for styling Framer Motion for animations Wagmi v2 + Viem for blockchain interactions Sky Mavis Integration: Tanto Widget for seamless Ronin wallet connections Native support for Ronin (mainnet) and Saigon (testnet)
Until today I didnt know about Ronin VRF, and I have to say at a fraction of the price its working as reliably if not better than the Chainlink VRF on Ronin. First time using Walrus as well, and being able to attach files into storage over a single simple HTTP request is extremely powerful.
I was wondering about creating a backend with a cron-job for the daily raffle, but I ended up deciding against it and instead putting a big button that anyone can call on the campaign page, I think it plays nicely with the open ethos of the blockchain rather than having a background system running.