- A Vercel account (sign up at https://vercel.com)
- Google OAuth credentials configured
- Stellar testnet account for contract deployment
- Go to Google Cloud Console
- Select your project or create a new one
- Go to "Credentials" → "OAuth 2.0 Client IDs"
- Add authorized redirect URI:
https://your-app-name.vercel.app/api/auth/callback/google - Note your Client ID and Client Secret
# Install Vercel CLI
npm i -g vercel
# Navigate to demo directory
cd demo
# Login to Vercel
vercel login
# Deploy
vercel --prod- Push your code to GitHub
- Go to Vercel Dashboard
- Click "New Project"
- Import your GitHub repository
- Set root directory to
demo - Configure environment variables (see below)
- Click "Deploy"
In your Vercel project settings, add these environment variables:
# Google OAuth (Secret - from Google Cloud Console)
GOOGLE_CLIENT_ID=your-actual-client-id
GOOGLE_CLIENT_SECRET=your-actual-client-secret
# NextAuth Configuration
NEXTAUTH_URL=https://your-app.vercel.app
NEXTAUTH_SECRET=your-generated-secret
# Public Variables (will be embedded in frontend)
NEXT_PUBLIC_APP_URL=https://your-app.vercel.app
NEXT_PUBLIC_STELLAR_RPC_URL=https://soroban-testnet.stellar.org
NEXT_PUBLIC_STELLAR_HORIZON_URL=https://horizon-testnet.stellar.org
NEXT_PUBLIC_FRIENDBOT_URL=https://friendbot.stellar.org
NEXT_PUBLIC_GOOGLE_CLIENT_ID=your-actual-client-idopenssl rand -base64 32Or use: https://generate-secret.vercel.app/32
After deployment, update your Google OAuth settings:
- Go back to Google Cloud Console
- Update authorized redirect URIs to include:
https://your-actual-vercel-domain.vercel.app/api/auth/callback/google
- Visit your deployed site:
https://your-app.vercel.app - Click "Continue with Google"
- Authenticate with your Google account
- Verify wallet creation and dashboard access
Set to: demo
pnpm build.nextpnpm installUse Node.js 20.x or higher (set in Vercel project settings)
| Variable | Type | Description |
|---|---|---|
GOOGLE_CLIENT_ID |
Secret | Google OAuth Client ID |
GOOGLE_CLIENT_SECRET |
Secret | Google OAuth Client Secret |
NEXTAUTH_URL |
Secret | Your production URL |
NEXTAUTH_SECRET |
Secret | Random 32-byte string |
NEXT_PUBLIC_* |
Public | All public variables safe to expose |
- View deployment logs in Vercel Dashboard
- Monitor errors with Vercel Analytics
- Check function logs for serverless API routes
- Ensure your Vercel domain is added to Google Cloud Console
- Check that NEXTAUTH_URL matches your Vercel domain
- Check Node.js version (should be 20+)
- Verify all dependencies are in package.json
- Check build logs in Vercel Dashboard
- Public variables must start with
NEXT_PUBLIC_ - Redeploy after changing environment variables
- Clear build cache if needed
- Google OAuth redirect URIs updated
- All environment variables set in Vercel
- NEXTAUTH_SECRET generated and set
- Custom domain configured (optional)
- SSL certificate active (automatic with Vercel)
- Test wallet creation flow
- Test transaction sending
- Monitor error logs
- Go to Vercel Project Settings → Domains
- Add your custom domain
- Update DNS records as instructed
- Update
NEXTAUTH_URLto your custom domain - Update Google OAuth redirect URIs
For issues:
- Check Vercel deployment logs
- Review Google OAuth configuration
- Verify environment variables are set correctly
- Check browser console for errors
- This demo uses Stellar Testnet (no real funds)
- Wallets are deterministically generated from Google user ID
- All transactions are on testnet only
- For production, implement proper zkLogin with ZK proofs