Inspiration The inspiration was noticing how hard it is for people (including us) to stay consistent with workouts, even when they want to. We wanted to use money, accountability, and friendly competition to turn “I should work out more” into real action, not just talk. What it does FitWager lets users create and join on-chain fitness challenges on Solana, staking SOL or USDC into a shared prize pool. Performance is based on real data from Google Fit and Strava, and at the end of the challenge the smart contract pays out the winners automatically. How we built it We built a Solana program with Anchor that manages challenges, participants, escrow vaults, and payouts for both SOL and USDC. On top of that, we built a Next.js + React + Tailwind frontend that connects wallets, creates/join challenges, and shows a dashboard of competitions. The design includes an off-chain layer that pulls fitness data from Google Fit / Strava, computes scores, and submits them on-chain. Challenges we ran into We had to carefully design the bridge between Web2 fitness APIs and Web3 smart contracts so scores are trustworthy but large datasets stay off-chain. Another big challenge was getting the on-chain state (challenges, participants, escrow) and the React/TypeScript frontend to stay in sync while handling different challenge types and tokens. Accomplishments that we're proud of We’re proud that we built a full end-to-end flow: create challenge → join → verify scores → pay out from an escrow pool. We also like that our design supports multiple challenge types and both SOL and USDC, making the system flexible instead of hardcoded to one use case. What we learned We learned how important it is to choose what must live on-chain (money, rules, results) versus what can safely stay off-chain (raw fitness data). We also deepened our understanding of Anchor, PDAs, wallet UX, and how to keep a modern React/Next app happy alongside a rapidly evolving Solana backend. What's next for FitWager Next, we want to fully wire up Google Fit and Strava OAuth so users can connect once and reuse their accounts across challenges. We also want to add more challenge formats, social features (friend groups, invite links, public leaderboards), and refine the USDC-focused fee and payout model for real-world use.

What's next for FitWager

Built With

Share this project:

Updates