> ## Documentation Index
> Fetch the complete documentation index at: https://docs.startale.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Auth providers overview

> Pair the Startale AA SDK with social login providers like Dynamic and Privy, or any EIP-1193 wallet.

The Startale AA SDK does not authenticate users itself. It accepts a **signer** and turns it into a smart account. Anything that produces a viem `WalletClient`, an EIP-1193 provider, a viem `LocalAccount`, or an `ethers.Wallet` qualifies as a signer, which means you can keep using whichever auth or wallet stack you already trust.

<Note>
  Source: [`StartaleGroup/scs-aa-sdk`](https://github.com/StartaleGroup/scs-aa-sdk). For the full signer matrix, see [Installation and setup](/aa-sdk/tutorials/installation#pick-a-signer).
</Note>

## Where the auth provider fits

```mermaid theme={null}
flowchart LR
  User --> AP[Auth provider]
  AP -->|signer| Acct[toStartaleSmartAccount]
  Acct --> Client[StartaleAccountClient]
  Client --> Bundler[SCS Bundler]
  Client --> Paymaster[SCS Paymaster]
```

The auth provider's only job in this diagram is to produce the **signer** that goes into `toStartaleSmartAccount`. Everything downstream (bundler, paymaster, EntryPoint) is identical regardless of how the user logged in.

## Why social login + AA is a good combination

| Pain point                   | What AA + social login fixes                                                                       |
| ---------------------------- | -------------------------------------------------------------------------------------------------- |
| Users do not have native ETH | Sponsor gas via the SCS paymaster, or charge a stable token.                                       |
| Seed phrase friction         | The auth provider derives keys from the social login; the smart account address is counterfactual. |
| Lost access                  | Use [Social recovery](/aa-sdk/tutorials/social-recovery) so a guardian set can rotate the signer.  |
| Repeated signature prompts   | Issue a [Smart Session](/aa-sdk/tutorials/smart-sessions) so scoped actions skip the prompt.       |

## First-party integrations

<CardGroup cols={2}>
  <Card title="Dynamic" icon="user-check" href="/aa-sdk/auth-providers/dynamic">
    Embedded wallets, social and email login, MPC and WebAuthn key custody. Exposes a viem `WalletClient` directly.
  </Card>

  <Card title="Privy" icon="user-check" href="/aa-sdk/auth-providers/privy">
    Email, OAuth, and external wallet login. Exposes an EIP-1193 provider you can wrap with `createWalletClient`.
  </Card>
</CardGroup>

## Bring your own provider

Any provider that exposes one of the four signer shapes will work. The integration shape is always:

```ts theme={null}
import { http } from "viem"
import { soneiumMinato } from "viem/chains"
import { toStartaleSmartAccount } from "@startale-scs/aa-sdk"

const account = await toStartaleSmartAccount({
  signer,                     // from your auth provider
  chain: soneiumMinato,
  transport: http(),
  index: 0n,
})
```

If your auth provider only gives you an EIP-1193 provider, wrap it with viem before passing it in:

```ts theme={null}
import { createWalletClient, custom } from "viem"
import { soneiumMinato } from "viem/chains"

const signer = createWalletClient({
  account: connectedAddress as `0x${string}`,
  chain: soneiumMinato,
  transport: custom(provider), // any EIP-1193 provider
})
```

| Symbol                          | Source                 | Role                                                |
| ------------------------------- | ---------------------- | --------------------------------------------------- |
| `createWalletClient` / `custom` | `viem`                 | Wrap an EIP-1193 provider as a viem `WalletClient`. |
| `soneiumMinato`                 | `viem/chains`          | Soneium Minato chain definition.                    |
| `toStartaleSmartAccount`        | `@startale-scs/aa-sdk` | Build the modular smart account from the signer.    |

## Next steps

<CardGroup cols={2}>
  <Card title="Dynamic integration" icon="user-check" href="/aa-sdk/auth-providers/dynamic">
    End-to-end Dynamic + Startale AA SDK setup.
  </Card>

  <Card title="Privy integration" icon="user-check" href="/aa-sdk/auth-providers/privy">
    End-to-end Privy + Startale AA SDK setup.
  </Card>

  <Card title="Installation and setup" icon="wrench" href="/aa-sdk/tutorials/installation">
    The full signer matrix and how to choose between options.
  </Card>

  <Card title="Smart account setup" icon="wallet" href="/aa-sdk/tutorials/smart-account-setup">
    Wire the signer into a persisted React provider.
  </Card>
</CardGroup>
