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

# WaaS Configuration

> Configure the Helius wallet-kit provider and choose sign-in methods from the dashboard

## Provider config

Pass a `HeliusWalletConfig` object to the provider's `config` prop — see [Setup](/waas/quickstart#setup).

<ParamField path="apiKey" type="string" required>
  Your Helius API key. Authenticates RPC, transaction sending, and the WaaS
  bootstrap.
</ParamField>

<ParamField path="cluster" type="string">
  The Solana cluster to connect to: `"mainnet-beta"` or `"devnet"`.
</ParamField>

<ParamField path="authMethods" type="object">
  Optional client-side override of the enabled sign-in methods. Normally you set
  these per project in the [dashboard](https://dashboard.helius.dev) under **WaaS
  → Configuration** — see [Configure sign-in methods](#configure-sign-in-methods).
</ParamField>

<Note>
  You don't pass a `projectId` or RPC URLs — the SDK derives your project id and
  key-less Secure RPC URLs from your API key at bootstrap.
</Note>

<ParamField path="theme" type="object">
  Customizes the wallet UI: `darkMode`, `primaryColor`, `borderRadius`,
  `logoLight`, `logoDark`.
</ParamField>

<ParamField path="onError" type="function">
  Callback invoked when the SDK encounters an error: `(error: Error) => void`.
</ParamField>

## Configure sign-in methods

Choose which methods your users see in the [dashboard](https://dashboard.helius.dev)
under **WaaS → Configuration** — toggle each on or off and save. Changes apply the
next time a user signs in; no redeploy needed. The SDK reads your project's
configuration at bootstrap, so you manage this in one place rather than in code.

| Method                  | Key       | Default     |
| ----------------------- | --------- | ----------- |
| Passkey                 | `passkey` | On          |
| Email (one-time code)   | `email`   | On          |
| SMS                     | `sms`     | Off         |
| Connect external wallet | `wallet`  | Off         |
| Google                  | `google`  | Coming soon |
| Apple                   | `apple`   | Coming soon |
| Discord                 | `discord` | Coming soon |
| X                       | `x`       | Coming soon |

<Note>
  Passkey, email, SMS, and external wallet are self-service in the dashboard
  today. Social login (Google, Apple, Discord, X) is coming soon. Keep at least
  one method enabled, or your users won't be able to create wallets. To override
  the project setting from code (e.g. per environment), pass `authMethods` to the
  provider `config`.
</Note>

<Note>
  **External wallet is a sign-in method.** It authenticates a user into their
  embedded Helius wallet — signing always happens with the embedded wallet, not
  the external one. See [Migrating from Privy](/waas/migrating-from-privy#your-users-wallets-and-funds).
</Note>

## Next steps

<CardGroup cols={2}>
  <Card title="Using the wallet" icon="wallet" href="/waas/using-the-wallet">
    Read auth state, sign, send, and read history
  </Card>

  <Card title="Migrating from Privy" icon="arrow-right-arrow-left" href="/waas/migrating-from-privy">
    Move existing Privy wallets to Helius WaaS
  </Card>
</CardGroup>
