<!-- Canonical: https://docs.linea.build/network/build/tools/social-login/dynamic -->

> For the complete Linea documentation index, see [llms.txt](/llms.txt).
> Agents can fetch this page as Markdown at [https://docs.linea.build/network/build/tools/social-login/dynamic.md](https://docs.linea.build/network/build/tools/social-login/dynamic.md).

# 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](https://www.dynamic.xyz/docs/overview/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

### Section 1. Configure your Dynamic environment

Configure the features your dapp needs in the [Dynamic Dashboard](https://app.dynamic.xyz/dashboard):

1.  Enable Linea, and Linea Sepolia if you need a testnet, under Chains & Networks. See Dynamic's [chain configuration guide](https://www.dynamic.xyz/docs/react/chains/enabling-chains).
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](https://app.dynamic.xyz/dashboard/developer/api).

For web apps, add your local and production origins in the dashboard's [Allowed CORS Origin settings](https://www.dynamic.xyz/docs/overview/developer-dashboard/security#allowed-cors-origin). 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](https://www.dynamic.xyz/docs/react/wallets/embedded-wallets/mpc/creating-wallets) for the current automatic and manual wallet creation options.

### Section 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](https://www.dynamic.xyz/docs/overview/social-providers/overview).

### Section 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:

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

Then, configure the Dynamic provider and render the widget:

```tsx
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

-   Visit the [Dynamic Dashboard](https://app.dynamic.xyz/dashboard) to configure social authentication
-   Review [social provider configurations](https://www.dynamic.xyz/docs/overview/social-providers/overview) for platform-specific setup
-   Explore [wallet creation](https://www.dynamic.xyz/docs/react/wallets/embedded-wallets/mpc/creating-wallets) for seamless web3 integration
-   Check out the [Dynamic Documentation](https://www.dynamic.xyz/docs/) for advanced customization options

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.
