Skip to main content
Configure how users authenticate through the Para Modal, including OAuth providers, email/phone options, and layout customization.

OAuth Methods

paraModalConfig={{
  oAuthMethods: ["GOOGLE", "TWITTER", "DISCORD", "APPLE"]
}}
Available OAuth providers:
  • GOOGLE - Google OAuth
  • TWITTER - Twitter/X OAuth
  • APPLE - Apple OAuth
  • DISCORD - Discord OAuth
  • FACEBOOK - Facebook OAuth
  • FARCASTER - Farcaster OAuth
  • TELEGRAM - Telegram OAuth

Email and Phone Login

paraModalConfig={{
  disableEmailLogin: false,
  disablePhoneLogin: true, // Only allow email and OAuth
  oAuthMethods: ["GOOGLE", "TWITTER"]
}}

Default Authentication Identifier

paraModalConfig={{
  defaultAuthIdentifier: "user@example.com" // or "+15555555555"
}}
Phone numbers should be in international format: +15555555555

Authentication Layout

paraModalConfig={{
  authLayout: ["AUTH:CONDENSED", "EXTERNAL:FULL"]
}}
Available layout options:
  • AUTH:FULL - Full authentication component
  • AUTH:CONDENSED - Condensed authentication component
  • EXTERNAL:FULL - Full external wallet component
  • EXTERNAL:CONDENSED - Condensed external wallet component
Use our to visualize different layout configurations before implementing them.

Guest Mode

paraModalConfig={{
  isGuestModeEnabled: true
}}
Guest mode allows users to interact with your application without completing full authentication. Users receive provisional wallets that can later be upgraded to full accounts.

Complete Authentication Example

<ParaProvider
  paraClientConfig={{
    apiKey: process.env.REACT_APP_PARA_API_KEY || "",
  }}
  config={{
    appName: "Your App Name"
  }}
  paraModalConfig={{
    // OAuth providers
    oAuthMethods: ["GOOGLE", "TWITTER", "DISCORD"],

    // Email/phone configuration
    disablePhoneLogin: false,
    disableEmailLogin: false,
    defaultAuthIdentifier: "user@example.com",

    // Layout
    authLayout: ["AUTH:FULL", "EXTERNAL:CONDENSED"],

    // Guest mode
    isGuestModeEnabled: false
  }}
>
  {children}
</ParaProvider>