Skip to main content
Embedded wallets support multiple authentication flows. Each method creates or recovers the same underlying wallet address for that user; a user who signs in with Google and then later with email (if accounts are linked) accesses the same wallet.

Social login

Social login is the recommended flow for consumer-facing fintechs and payment apps. Users authenticate via their existing Google or Apple account. No password or seed phrase is involved.
// In your createConfig call:
google: {
  clientId: process.env.NEXT_PUBLIC_GOOGLE_CLIENT_ID,
},
apple: {
  clientId: process.env.NEXT_PUBLIC_APPLE_CLIENT_ID,
  redirectURI: window.location.origin,
},
The wallet is created automatically on first login using the identity token from the provider. The token is verified inside a secure enclave; neither the app nor Sequence can read it. For Google setup, see the Google OAuth configuration guide on the Sequence docs. For Apple setup, see the Apple configuration guide.

Email OTP

Email OTP is ideal for financial products where users may not have a social account or prefer not to link one. The user enters their email, receives a one-time code, and the wallet is created on verification.
// In your createConfig call:
email: true,
The SDK handles the full OTP flow. No additional backend is required; the code exchange happens between the SDK and Sequence’s Identity Instrument.

Passkeys

Passkeys are the most secure auth option. They use device-bound biometrics (Face ID, Touch ID, Windows Hello) and are phishing-resistant by design. Passkeys are well-suited for high-value payment products where security is paramount. Passkeys are configured in the Polygon project dashboard per project. Once enabled, users can register a passkey during onboarding or as an additional factor. See Recovery for how passkeys integrate with the wallet recovery model.

Guest wallets

Guest wallets create an ephemeral wallet without any login. Useful for anonymous flows or trial experiences before requiring sign-in.
// In your createConfig call:
guest: true,
Guest wallets are tied to the browser session. If the user clears their cache or switches devices, the wallet is not recoverable. Do not use guest wallets for flows involving real funds unless you have a clear upgrade path to a persistent auth method.

Account federation

If a user signs in with two different methods that resolve to different email addresses, they are treated as separate accounts by default. Account federation lets you link multiple auth methods to a single wallet address. This is useful for products where users might sign up via Google and later want to add email OTP or a passkey as a backup. See the account federation documentation on the Sequence docs for implementation details.

Checking sign-in state

import { useAccount } from "wagmi";

export function WalletStatus() {
  const { address, isConnected } = useAccount();

  return isConnected
    ? <p>Signed in: {address}</p>
    : <p>Not signed in</p>;
}