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

# TurnkeyProviderConfig

export const NestedParam = ({parentKey, childKey, type, required, description, children}) => {
  const fullKey = `${parentKey}.${childKey}`;
  const anchorId = `body-${fullKey.replace(/\./g, '-')}`;
  return <div className="py-6 border-gray-100 dark:border-gray-800 border-b last:border-b-0">
  <div className="flex font-mono text-sm group/param-head param-head break-all relative" id={anchorId}>
    <div className="flex-1 flex content-start py-0.5 mr-5">
      <div className="flex items-center flex-wrap gap-2">
        <div className="absolute -top-1.5">
          <a href={`#${anchorId}`} className="-ml-[2.1rem] flex items-center opacity-0 border-0 group-hover/param-head:opacity-100 py-2 [.expandable-content_&]:-ml-[2.1rem]" aria-label="Navigate to header">
            <div className="w-6 h-6 text-gray-400 rounded-md flex items-center justify-center zinc-box bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20">
              <svg xmlns="http://www.w3.org/2000/svg" fill="gray" height="12px" viewBox="0 0 576 512">
                <path d="M0 256C0 167.6 71.6 96 160 96h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C98.1 144 48 194.1 48 256s50.1 112 112 112h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C71.6 416 0 344.4 0 256zm576 0c0 88.4-71.6 160-160 160H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c61.9 0 112-50.1 112-112s-50.1-112-112-112H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c88.4 0 160 71.6 160 160zM184 232H392c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24z"></path>
              </svg>
            </div>
          </a>
        </div>
        <div className="font-semibold text-primary dark:text-primary-light cursor-pointer overflow-wrap-anywhere">
          <span className="text-gray-500 dark:text-gray-400">{parentKey}.</span>
          {childKey}
        </div>
        <div className="inline items-center gap-2 text-xs font-medium [&_div]:inline [&_div]:mr-2 [&_div]:leading-5">
          <div className="flex items-center px-2 py-0.5 rounded-md bg-gray-100/50 dark:bg-white/5 text-gray-600 dark:text-gray-200 font-medium break-all">
            <span>{type}</span>
          </div>
          {required && <span className="px-2 py-0.5 rounded-md bg-red-100/50 dark:bg-red-400/10 text-red-600 dark:text-red-300 font-medium whitespace-nowrap">
              required
            </span>}
        </div>
      </div>
    </div>
  </div>
  {children && <div className="mt-4">
      <div className="prose prose-sm prose-gray dark:prose-invert">
        {children}
      </div>
    </div>}
</div>;
};

export const H3Bordered = ({text}) => <h3 id={text.toLowerCase()} className="border-b pb-2.5 border-gray-100 dark:border-gray-800">
    {text}
  </h3>;

<H3Bordered text="Overview" />

Configuration for the TurnkeyProvider. This interface extends the TurnkeySDKClientConfig to include additional UI and auth configurations. It is used to initialize the TurnkeyProvider with various options such as colors, dark mode, auth methods, and more.

TurnkeyProviderConfig

<p><strong>Package:</strong> <code>react-wallet-kit</code></p>

<p><strong>Defined in:</strong> <a href="https://github.com/tkhq/sdk/blob/v2026.3.1/packages/react-wallet-kit/src/types/base.ts#L40">react-wallet-kit/src/types/base.ts:40</a></p>

<H3Bordered text="Properties" />

<ParamField body="apiBaseUrl" type="string" required={false}>
  base URL for the Turnkey API.
</ParamField>

<ParamField body="auth" type="object" required={false} path="auth">
  configuration for authentication methods.

  <Expandable title="auth details">
    <NestedParam parentKey="auth" childKey="autoRefreshSession" type="boolean" required={false}>
      whether to automatically refresh the session.
    </NestedParam>

    <NestedParam parentKey="auth" childKey="createSuborgParams" type="object" required={false}>
      parameters for creating a sub-organization for each authentication method.
    </NestedParam>

    <Expandable title="createSuborgParams details">
      <NestedParam parentKey="auth.createSuborgParams" childKey="emailOtpAuth" type="CreateSubOrgParams" required={false}>
        parameters for email OTP authentication.
      </NestedParam>

      <NestedParam parentKey="auth.createSuborgParams" childKey="oauth" type="CreateSubOrgParams" required={false}>
        parameters for OAuth authentication.
      </NestedParam>

      <NestedParam parentKey="auth.createSuborgParams" childKey="passkeyAuth" type="CreateSubOrgParams & object" required={false}>
        parameters for passkey authentication.
      </NestedParam>

      <NestedParam parentKey="auth.createSuborgParams" childKey="smsOtpAuth" type="CreateSubOrgParams" required={false}>
        parameters for SMS OTP authentication.
      </NestedParam>

      <NestedParam parentKey="auth.createSuborgParams" childKey="walletAuth" type="CreateSubOrgParams" required={false}>
        parameters for wallet authentication.
      </NestedParam>
    </Expandable>

    <NestedParam parentKey="auth" childKey="methodOrder" type="&#x22;socials&#x22; | &#x22;email&#x22; | &#x22;sms&#x22; | &#x22;passkey&#x22; | &#x22;wallet&#x22;[]" required={false}>
      order of authentication methods.
    </NestedParam>

    <NestedParam parentKey="auth" childKey="methods" type="object" required={false}>
      enables or disables specific authentication methods.
    </NestedParam>

    <Expandable title="methods details">
      <NestedParam parentKey="auth.methods" childKey="appleOauthEnabled" type="boolean" required={false} />

      <NestedParam parentKey="auth.methods" childKey="discordOauthEnabled" type="boolean" required={false} />

      <NestedParam parentKey="auth.methods" childKey="emailOtpAuthEnabled" type="boolean" required={false} />

      <NestedParam parentKey="auth.methods" childKey="facebookOauthEnabled" type="boolean" required={false} />

      <NestedParam parentKey="auth.methods" childKey="googleOauthEnabled" type="boolean" required={false} />

      <NestedParam parentKey="auth.methods" childKey="passkeyAuthEnabled" type="boolean" required={false} />

      <NestedParam parentKey="auth.methods" childKey="smsOtpAuthEnabled" type="boolean" required={false} />

      <NestedParam parentKey="auth.methods" childKey="walletAuthEnabled" type="boolean" required={false} />

      <NestedParam parentKey="auth.methods" childKey="xOauthEnabled" type="boolean" required={false} />
    </Expandable>

    <NestedParam parentKey="auth" childKey="oauthConfig" type="object" required={false}>
      configuration for OAuth authentication.
    </NestedParam>

    <Expandable title="oauthConfig details">
      <NestedParam parentKey="auth.oauthConfig" childKey="appleClientId" type="string" required={false}>
        client ID for Apple OAuth.
      </NestedParam>

      <NestedParam parentKey="auth.oauthConfig" childKey="discordClientId" type="string" required={false}>
        client ID for Discord OAuth.
      </NestedParam>

      <NestedParam parentKey="auth.oauthConfig" childKey="facebookClientId" type="string" required={false}>
        client ID for Facebook OAuth.
      </NestedParam>

      <NestedParam parentKey="auth.oauthConfig" childKey="googleClientId" type="string" required={false}>
        client ID for Google OAuth.
      </NestedParam>

      <NestedParam parentKey="auth.oauthConfig" childKey="oauthRedirectUri" type="string" required={false}>
        redirect URI for OAuth.
      </NestedParam>

      <NestedParam parentKey="auth.oauthConfig" childKey="openOauthInPage" type="boolean" required={false}>
        whether to open OAuth in the same page. Always true on mobile.
      </NestedParam>

      <NestedParam parentKey="auth.oauthConfig" childKey="xClientId" type="string" required={false}>
        client ID for X (formerly Twitter) OAuth.
      </NestedParam>
    </Expandable>

    <NestedParam parentKey="auth" childKey="oauthOrder" type="&#x22;google&#x22; | &#x22;apple&#x22; | &#x22;facebook&#x22; | &#x22;x&#x22; | &#x22;discord&#x22;[]" required={false}>
      order of OAuth authentication methods.
    </NestedParam>

    <NestedParam parentKey="auth" childKey="otpAlphanumeric" type="boolean" required={false}>
      If otp sent will be alphanumeric. If using the auth proxy, you must configure this setting through the dashboard. Changing this through the TurnkeyProvider will have no effect.
    </NestedParam>

    <NestedParam parentKey="auth" childKey="otpLength" type="string" required={false}>
      length of the OTP. If using the auth proxy, you must configure this setting through the dashboard. Changing this through the TurnkeyProvider will have no effect.
    </NestedParam>

    <NestedParam parentKey="auth" childKey="sessionExpirationSeconds" type="string" required={false}>
      session expiration time in seconds. If using the auth proxy, you must configure this setting through the dashboard. Changing this through the TurnkeyProvider will have no effect.
    </NestedParam>

    <NestedParam parentKey="auth" childKey="verifyWalletOnSignup" type="boolean" required={false}>
      whether to verify the app proof generated by a proxySignup request if the request includes wallet account creation. The end user will see a modal during this process.
    </NestedParam>
  </Expandable>
</ParamField>

<ParamField body="authProxyConfigId" type="string" required={false}>
  ID for the auth proxy configuration.
</ParamField>

<ParamField body="authProxyUrl" type="string" required={false}>
  URL for the auth proxy.
</ParamField>

<ParamField body="autoFetchWalletKitConfig" type="boolean" required={false}>
  whether to automatically fetch the wallet kit config on initialization.
</ParamField>

<ParamField body="autoRefreshManagedState" type="boolean" required={false}>
  whether to automatically refresh managed state variables
</ParamField>

<ParamField body="defaultStamperType" type="StamperType" required={false}>
  default stamper type to use for requests that require stamping.
</ParamField>

<ParamField body="exportIframeUrl" type="string" required={false}>
  URL for the export iframe.
</ParamField>

<ParamField body="importIframeUrl" type="string" required={false}>
  URL for the import iframe.
</ParamField>

<ParamField body="organizationId" type="string" required={true}>
  ID of the organization.
</ParamField>

<ParamField body="passkeyConfig" type="TPasskeyStamperConfig" required={false}>
  configuration for the passkey stamper.
</ParamField>

<ParamField body="ui" type="object" required={false} path="ui">
  UI configuration.

  <Expandable title="ui details">
    <NestedParam parentKey="ui" childKey="backgroundBlur" type="string | number" required={false}>
      background blur for UI elements.
    </NestedParam>

    <NestedParam parentKey="ui" childKey="borderRadius" type="string | number" required={false}>
      border radius for UI elements.
    </NestedParam>

    <NestedParam parentKey="ui" childKey="colors" type="object" required={false}>
      color scheme configuration.
    </NestedParam>

    <Expandable title="colors details">
      <NestedParam parentKey="ui.colors" childKey="dark" type="Partial<ThemeOverrides>" required={false}>
        dark color scheme overrides.
      </NestedParam>

      <NestedParam parentKey="ui.colors" childKey="light" type="Partial<ThemeOverrides>" required={false}>
        light color scheme overrides.
      </NestedParam>
    </Expandable>

    <NestedParam parentKey="ui" childKey="darkMode" type="boolean" required={false}>
      enables or disables dark mode.
    </NestedParam>

    <NestedParam parentKey="ui" childKey="logoDark" type="string" required={false} />

    <NestedParam parentKey="ui" childKey="logoLight" type="string" required={false}>
      logo for the auth component
    </NestedParam>

    <NestedParam parentKey="ui" childKey="preferLargeActionButtons" type="boolean" required={false}>
      whether to use large action buttons.
    </NestedParam>

    <NestedParam parentKey="ui" childKey="renderModalInProvider" type="boolean" required={false}>
      whether to render the modal in the provider.
    </NestedParam>

    <NestedParam parentKey="ui" childKey="supressMissingStylesError" type="boolean" required={false}>
      whether to suppress missing styles error.
    </NestedParam>
  </Expandable>
</ParamField>

<ParamField body="walletConfig" type="TWalletManagerConfig" required={false}>
  configuration for the wallet manager.
</ParamField>
