Integrations
Privy
Privy powers optional embedded wallet login in Executive Lounge — email or Google sign-in, non-custodial Solana + Base wallets, and x402 USDC payments without Phantom or OKX extensions.
Status: Integrated (enable with PRIVY_APP_ID + PRIVY_CLIENT_ID in Vercel)
Dashboard: dashboard.privy.io ↗
Docs: docs.privy.io ↗
What it does in the Lounge
- Login — Wallet modal → Privy → email OTP or Google OAuth
- Embedded wallets — auto-provision Solana + EVM (Base) addresses after sign-in
- x402 payments — same 0.1 USDC unlocks and Concierge calls as Phantom/OKX
- Coexists — Phantom and OKX remain available; users pick one provider per session
Source: lib/privy-wallet-bridge.ts, lib/x402-browser-client.ts, public/executive-lounge.html
Public API
| Route | Purpose |
|---|---|
GET /api/privy-config | Client-safe Privy app ID + client ID (when configured) |
GET /api/x402-config | privyWalletEnabled flag |
Enable (operators)
- Create an app at Privy Dashboard ↗
- Enable Embedded wallets for Solana and Ethereum
- Under Login methods → Socials, toggle Google on (required for the Google button in Lounge)
- Add your production origin (e.g.
https://conc-exe.xyz) under allowed domains - Copy App ID and Client ID (Settings → Clients)
# Vercel environment variables
PRIVY_APP_ID=your_privy_app_id
PRIVY_CLIENT_ID=your_privy_client_id
Redeploy after setting env vars. The Privy option appears in the Lounge wallet modal when both values are present.
Verify integration
curl -s https://conc-exe.xyz/api/privy-config | jq '.enabled, .appId'
curl -s https://conc-exe.xyz/api/x402-config | jq '.privyWalletEnabled'
Related
- x402 Protocol — payment flow unchanged
- Executive Lounge — wallet UI
- Agent Identity — separate browser-generated agent keys