React + Vite example using MetaMask Embedded Wallets (powered by Web3Auth) with a grouped connection that combines Google OAuth and email passwordless login, both surfaced through the built-in modal UI. A grouped connection ensures the same user always gets the same wallet address regardless of whether they sign in with Google or their email.
Without grouping, a user who signs in with Google and later with email passwordless would end up with two separate wallets.
- Node.js 20+
- npm
- A Client ID from the Dashboard
- A grouped connection on the Dashboard combining Google and email passwordless (Grouped Connections guide)
git clone https://github.com/Web3Auth/web3auth-examples.git
cd web3auth-examples/custom-authentication/grouped-connection/modal-google-email-passwordless-grouped-examplenpm installcp .env.example .envEdit .env:
VITE_WEB3AUTH_CLIENT_ID=YOUR_CLIENT_ID
npm run devVisit http://localhost:5173 in your browser.
MIT