Bodo connects fitness enthusiasts with charitable causes through a unique blockchain-powered escrow system.
How it works:
The Flow
- Create a Fundraising Campaign
- Users create fundraising campaigns for causes they care about
- Set a target amount and deadline
- Get a shareable link to promote their campaign
- Make Pledges
- Supporters pledge money per kilometer (e.g., $1/km)
- Pledges are secured in a blockchain escrow system
- No money moves until fitness activities are completed
- Connect Fitness Activities
- Fundraisers connect their Strava account to Bodo
- Activities are automatically synced when workouts are completed
- The platform tracks distance, time, and activity type
- Automatic Payouts
- When a fitness activity is logged, the system calculates payouts
-Each supporter's pledge is processed based on the distance covered
- Money is automatically released from escrow to the fundraiser
- Fundraisers can then donate the funds to their chosen cause
Key Features
Secure Escrow: All pledges are held securely until fitness goals are met
Automatic Processing: No manual intervention needed - everything happens automatically
Transparent Tracking: Real-time updates on campaign progress and payouts
Flexible Pledging: Supporters can pledge any amount per kilometer
Supports: running with more activities planned.
Why It Works
This platform solves the motivation problem in fitness fundraising by creating a direct connection between physical effort and charitable impact. Fundraisers are incentivised to stay active, while supporters can be confident their money will only be released when actual fitness activities are completed.
The blockchain escrow ensures trust and transparency, while the Strava integration provides verified activity data, making the entire process automated and reliable.
How It's Made
Tech Stack & Architecture
Frontend: Next.js 14 with App Router, TypeScript, and Tailwind CSS
Modern React patterns with server and client components
Responsive design with mobile-first approach
Real-time updates using React hooks and state management
Backend: Next.js API Routes with Prisma ORM
RESTful API endpoints for all core functionality
PostgreSQL database with Prisma for type-safe database operations
Automatic database migrations and seeding
Authentication: Privy Web3 Authentication
Email-based authentication with embedded wallet creation
Automatic wallet address synchronization
Seamless user onboarding without crypto complexity
Fitness Integration: Strava API
OAuth 2.0 flow for secure account connection
Webhook handling for real-time activity updates
Automatic token refresh and activity syncing
Key Technical Challenges & Solutions
- Blockchain Escrow Simulation
Built a simulated escrow system using Ethers.js for demo purposes
Generates realistic transaction hashes and block numbers
Maintains all database relationships and business logic
Easy to switch to real blockchain networks for production
- Real-time Activity Processing
Webhook endpoints that process Strava activities instantly
Automatic payout calculations based on distance and pledge rates
Database transactions ensure data consistency across multiple tables
- Complex Database Relationships
Designed schema to handle users, wallets, fundraises, pledges, activities, and payouts
Used Prisma's powerful include/select for efficient data fetching
Implemented proper foreign key relationships and cascading deletes
Notable Technical Decisions
Hackathon-Friendly Architecture
Simulated blockchain operations to avoid RPC connection issues during development
Comprehensive error handling and logging for debugging
Environment variable fallbacks for missing configurations
Database Design
Separate Wallet model to support multiple wallet providers (Privy, manual)
EscrowTransaction model for tracking blockchain operations
Payout model for detailed transaction history
API Design
RESTful endpoints with consistent error handling
Zod validation schemas for all incoming data
Proper HTTP status codes and response formats
Partner Technologies & Benefits
Privy: Eliminated the complexity of Web3 authentication while providing embedded wallets
Strava: Provided verified fitness data and real-time activity updates
Prisma: Type-safe database operations with automatic migrations
Tailwind CSS: Rapid UI development with consistent design system
Development Process
Built iteratively starting with core database schema, then adding authentication, fitness integration, and finally the escrow system. Used simulated blockchain operations to focus on user experience and business logic rather than blockchain infrastructure during the hackathon timeframe.
The entire system is containerized and ready for deployment with proper environment variable configuration and database migrations.