🌱 Inspiration

Traditional crowdfunding platforms are centralized, restrictive, and opaque. They decide who can raise funds, take high fees, and give contributors no cryptographic guarantee that their money is safe. I wanted to build a platform where fundraising is permissionless, transparent, and provably fair — entirely enforced by code, not by a corporation.
Polkadot’s ink! ecosystem and its Rust-based smart contract safety inspired me to build InkFundMe as a fully on-chain alternative.


💡 What it does

InkFundMe is a decentralized crowdfunding platform where anyone can:

  • Create fundraising campaigns
  • Contribute using a custom on-chain token
  • Finalize campaigns when deadlines end
  • Automatically receive refunds if a campaign fails
  • Mint test tokens via a built-in faucet
  • View all events and updates in real-time

All logic is executed by ink! smart contracts, ensuring complete transparency and eliminating the need for third-party trust.


🏗️ How we built it

Smart Contracts (ink!)

  • Built two ink! contracts:
    • A custom ERC20-like token (INKFUNDME)
    • The core crowdfunding contract
  • Implemented contribution tracking, deadlines, funding goals, and refund logic
  • Designed safe contract state transitions using Rust patterns
  • Exposed query and mutation endpoints consumed directly by the frontend
  • Implemented events for real-time UI updates via subscriptions

Frontend (React + PAPI + ReactiveDOT)

  • Developed a modern UI using React 19 + Vite
  • Styled with TailwindCSS and shadcn/ui
  • Integrated with Polkadot API via PAPI for type-safe contract calls
  • Used ReactiveDOT to watch chain updates and sync the UI instantly
  • Added responsive components, notifications, and loading states
  • Deployed on Vercel for global accessibility

🧱 Challenges we ran into

  • Cross-contract calls with ink!’s transfer_from and mint required careful structuring
  • Managing real-time updates with ReactiveDOT without UI flicker
  • Ensuring contributors could only refund under correct conditions
  • Handling deadline and campaign state edge cases
  • Mapping between SS58 addresses and EVM-like addresses for token logic
  • Providing a smooth UX despite blockchain confirmation delays
  • Designing clear and safe error handling across contracts

🏆 Accomplishments that we're proud of

  • Built a fully functioning decentralized crowdfunding dApp end-to-end
  • Implemented safe ink! contract logic from scratch
  • Achieved seamless blockchain interactions with zero backend
  • Delivered a clean, modern UI with real-time updates
  • Created a complete tutorial for new developers learning ink!
  • Successfully deployed contracts and frontend to a public testnet

📚 What we learned

  • Advanced ink! development: storage management, event-driven design, cross-contract calls
  • Building reactive UIs driven entirely by blockchain state
  • Managing asynchronous workflows and user feedback in Web3 contexts
  • Substrate account systems and address derivation
  • The importance of designing smart contract logic like a state machine
  • Best practices for safe contract architecture and predictable user experience

🚀 What's next for InkFundMe

  • Multi-token support: allow campaigns in any whitelisted asset
  • Milestone-based payouts with on-chain verification
  • Social features (profiles, comments, campaign endorsements)
  • IPFS integration for decentralized campaign metadata
  • Campaign discovery & categories
  • DAO governance for community curation
  • Mobile-first UI enhancements

InkFundMe is a strong foundation for a fully decentralized fundraising ecosystem — and we’re just getting started.

Built With

Share this project:

Updates