Inspiration
We've all tried habit apps. We've all failed habit apps. The problem isn't motivation, it's that the stakes are fake. Losing a streak in Duolingo feels bad for about 30 seconds. We wanted to build something where the accountability is real, the verification is tamper-proof, and here's the twist nobody else does — you can actually win money for showing up. We asked: what if your discipline could pay you back?
What it does
Get Staked is a social accountability app where users stake real SOL on their habits and compete in groups.The core loop: you join a "Stake Pool" with up to 10 people committing to the same habit - say, gym 5x a week for 2 weeks. Everyone deposits SOL into a trustless Solana escrow smart contract. Each day, you submit photo proof of completion. Gemini AI verifies your proof is legitimate (not a screenshot, not a stock photo). At the end of the challenge, the smart contract automatically splits the losers' stakes among the winners. An ElevenLabs AI voice coach trash-talks, hypes, and warns you throughout the challenge depending on your chosen persona - Drill Sergeant, Hype Beast, or Gentle Guide. Snowflake analytics tell you your strongest days, peak performance hours, and streak risk level before you even break.No middleman. No honor system. Just blockchain-verified accountability with real money on the line.
How we built it
We built Get Staked as an Android-first Progressive Web App (PWA) so we could skip the App Store entirely while still getting full camera, GPS, and notification access. Frontend — Next.js 14 with the App Router, TypeScript, TailwindCSS, and shadcn/ui components. State management via Zustand. The PWA manifest makes it installable directly from Android Chrome. Blockchain — Solana smart contract written in Rust using the Anchor framework, deployed to Devnet. The escrow program handles pool creation, player deposits, verification recording (via a backend oracle), and automatic winner payouts. Phantom wallet serves as the user's identity — connecting your wallet is logging in. AI Verification — Google Gemini 2.0 Flash receives compressed photo uploads alongside the habit name and proof requirements. It returns a structured JSON verdict with a confidence score, reasoning, and any suspicious flags. 70%+ confidence auto-approves; below that triggers peer review or rejection. Voice Coach — ElevenLabs TTS generates dynamic audio coaching messages tied to in-app events: joining a pool, submitting proof, streaks at risk, someone else failing, and final payouts. Common phrases are pre-cached to conserve API quota. Analytics — Snowflake's REST API ingests proof submission events and surfaces insights: best day of the week, peak performance hour, streak risk predictions, and pool-level success rates. Backend — Next.js API routes handle all external API calls server-side (protecting keys, avoiding CORS), with MongoDB Atlas storing users, pools, proofs, and voice logs.
Challenges we ran into
Phantom on mobile was the first wall. Phantom on Android doesn't inject into Chrome the way it does on desktop - it requires deep links and works best inside Phantom's own in-app browser. We solved this by using @solana/wallet-adapter-react which handles the redirect flow, and defaulting our demo to run directly inside Phantom's built-in dApp browser. Solana program complexity nearly derailed our timeline. Writing, testing, and debugging Rust on a one-day schedule is brutal. We landed on a hybrid approach: a real on-chain escrow holds actual Devnet SOL (impressive to judges, verifiable on the explorer), while the pool game logic - streaks, winner calculation, failure tracking - runs off-chain in our backend acting as a trusted oracle. This saved hours without sacrificing the core trustless value prop.
Accomplishments that we're proud of
A fully working end-to-end flow: wallet connect → stake SOL → submit photo → AI verifies → voice coach responds → leaderboard updates → smart contract pays out, all in under 24 hours Real Devnet SOL sitting in a real on-chain escrow, verifiable on Solana Explorer — not a mock, not a simulation Gemini multimodal verification that actually rejects bad proofs (we tested it with screenshots and stock photos — it catches them) Three distinct ElevenLabs voice personas with dynamically generated, context-aware coaching messages A PWA that installs on Android and feels like a native app with full camera access Predictive streak risk scores from Snowflake that surface before a user breaks their habit
What we learned
Blockchain + AI + real-time media in 24 hours is a humbling scope check. The biggest lesson: plan your fallbacks before your primary paths. Every integration - Solana, Gemini, ElevenLabs, Snowflake, the PWA camera - had a realistic failure mode, and having a pre-decided fallback for each one meant we never got stuck, we just routed around the problem. We also learned that Gemini Flash is genuinely fast and capable enough for production-grade multimodal verification - the confidence scoring and reasoning it returns is more nuanced than we expected. And Anchor/Rust will punish you for every assumption you make about account ownership, PDA seeds, and lamport arithmetic. Rust doesn't negotiate.
What's next for GetStaked
Mainnet launch with real USDC/SOL stakes (currently Devnet only) Native iOS + Android apps to remove the Phantom browser workaround and get full push notification support Streak Insurance mechanic - pay a small premium upfront to bank one guilt-free skip day Soul-bound NFT trophies minted on pool completion - a permanent on-chain record of your discipline SOS Lifeline - a pool-wide distress signal that lets members send encouragement when someone's streak is at risk Platform revenue model - a small protocol fee on pool settlements to sustain development while keeping the trustless core intact
Built With
- base64
- elevenlabs
- eslint
- expo-router
- git
- google-gemeni
- lucide-react
- nativewind
- next.js
- postgresql
- radix
- react-native
- react-navigation
- solana
- supabase
- tailwind.css
- typescript
Log in or sign up for Devpost to join the conversation.