If you're getting the "Failed to verify login code" error, it's because the thirdweb API credentials are not configured. Here's how to fix it:
Create a .env file in the project root with your actual credentials:
# Copy the example file
cp env.example .envThen edit .env with your real values:
# thirdweb Configuration (REQUIRED)
VITE_THIRDWEB_CLIENT_ID=your_actual_thirdweb_client_id
# Supabase Configuration (REQUIRED for user data)
VITE_SUPABASE_URL=your_supabase_project_url
VITE_SUPABASE_ANON_KEY=your_supabase_anon_key
# The rest can stay as defaults for testing
VITE_ETHEREUM_USDC_ADDRESS=0xA0b86a33E6776e2d98D24083B2E4AB4E8fCD5918
VITE_POLYGON_USDC_ADDRESS=0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174
VITE_BASE_USDC_ADDRESS=0x833589fcd6edb6e08f4c7c32d4f71b54bda02913- Go to thirdweb.com
- Create an account and new project
- Go to Settings → API Keys
- Copy your Client ID (not secret key)
- Add it to your
.envfile
- Go to supabase.com
- Create a new project
- Get your project URL and anon key from Settings → API
- Add them to your
.envfile - Run the SQL schema from
sql/supabase-schema.sqlin the Supabase SQL editor
- Restart the dev server:
npm run dev - Open the app in your browser
- Try logging in with your email
- Check the browser console for any remaining errors
- "Client ID is not set": Make sure your
.envfile exists and has the correct variable names - "404" error: Double-check your thirdweb Client ID
- "403" error: Make sure your domain is allowlisted in thirdweb dashboard
- Network errors: Check your internet connection and thirdweb service status
Once authentication works:
- Set up your Supabase database
- Choose a username
- Start sending test payments!
The app will show you your wallet balances and let you send stablecoins to other users by username.