Skip to main content
Social login

Dynamic

Dynamic provides seamless social sign-in authentication for web3 applications, enabling users to sign in with familiar social platforms and, if you enable Embedded Wallets, get a wallet for Linea without installing a browser extension.

Supported social providers​

Dynamic supports authentication through many popular social platforms:

  • Apple
  • Coinbase
  • Discord
  • Epic Games
  • Farcaster
  • Facebook
  • GitHub
  • Google
  • Kraken
  • LINE
  • Shopify
  • Spotify
  • Telegram
  • TikTok
  • Twitch
  • Twitter/X

See the social providers overview for Dynamic's current list of options and provider-specific setup requirements.

How social sign-in works​

When users choose social authentication, Dynamic handles the complete OAuth flow:

  1. User selection: Users choose a social provider in the Dynamic UI.
  2. OAuth flow: Dynamic redirects to, or opens a popup for, the chosen social platform.
  3. Permission approval: Users approve the requested access on the provider's site.
  4. Session creation: Dynamic creates or updates the user's profile and returns them to your dapp.

Social sign-in authenticates the user. If you also enable Embedded Wallets, Dynamic can create a non-custodial wallet for the user during sign-up on the chains you enabled, including Linea and Linea Sepolia. Embedded Wallets are not mandatory; you can use social sign-in on its own, pair it with external wallets, or enable both options so users can choose the flow that fits them.

Setup and configuration​

1. Configure your Dynamic environment​

Configure the features your dapp needs in the Dynamic Dashboard:

  1. Enable Linea, and Linea Sepolia if you need a testnet, under Chains & Networks. See Dynamic's chain configuration guide.
  2. Enable the social providers you want to offer under the dashboard's sign-in and user profile settings.
  3. Configure OAuth credentials for each provider that requires them.
  4. Copy your environment ID from Developers > SDK & API Keys.

For web apps, add your local and production origins in the dashboard's Allowed CORS Origin settings. If you want Dynamic to create wallets after social sign-in, enable Embedded Wallets, choose the chains where wallets should be created, and check the "Create on Sign up" setting. See Dynamic's wallet creation guide for the current automatic and manual wallet creation options.

2. Provider-specific configuration​

Each social provider has its own OAuth setup process. Some providers are simple toggles in the Dynamic Dashboard, while others require a client ID, client secret, redirect URL, paid developer account, or review by the provider.

Detailed setup instructions for each provider are available in the Dynamic social provider docs.

3. SDK integration​

With the configuration complete, you can start to integrate the Dynamic widget into your dapp.

First, install the Dynamic React SDK and the EVM wallet connectors:

npm install @dynamic-labs/sdk-react-core @dynamic-labs/ethereum

Then, configure the Dynamic provider and render the widget:

import {
DynamicContextProvider,
DynamicWidget,
} from "@dynamic-labs/sdk-react-core";
import { EthereumWalletConnectors } from "@dynamic-labs/ethereum";

export default function App() {
return (
<DynamicContextProvider
settings={{
environmentId: "YOUR_ENVIRONMENT_ID",
walletConnectors: [EthereumWalletConnectors],
social: { strategy: "popup" },
}}>
<DynamicWidget />
{/* Your app components */}
</DynamicContextProvider>
);
}

Replace YOUR_ENVIRONMENT_ID with your Dynamic environment ID. The social.strategy option can be popup or redirect, depending on how you want OAuth to open for users.

Next steps​

You can also complement your users' social sign-in with email and SMS authentication, and configure multi-factor authentication (MFA) with TOTP authenticator apps and passkeys.

Was this page helpful?