> ## 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-native-wallet-kit</code></p>

<p><strong>Defined in:</strong> <a href="https://github.com/tkhq/sdk/blob/v2026.3.1/packages/react-native-wallet-kit/src/types/base.ts#L46">react-native-wallet-kit/src/types/base.ts:46</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>
    </Expandable>

    <NestedParam parentKey="auth" childKey="oauth" type="object" required={false}>
      OAuth settings per provider
    </NestedParam>

    <Expandable title="oauth details">
      <NestedParam parentKey="auth.oauth" childKey="apple" type="OauthProviderConfig" required={false} />

      <NestedParam parentKey="auth.oauth" childKey="appScheme" type="string" required={false}>
        application deep link scheme used to complete OAuth in React Native (e.g., "myapp").
      </NestedParam>

      <NestedParam parentKey="auth.oauth" childKey="discord" type="OauthProviderConfig" required={false} />

      <NestedParam parentKey="auth.oauth" childKey="facebook" type="OauthProviderConfig" required={false} />

      <NestedParam parentKey="auth.oauth" childKey="google" type="OauthProviderConfig" required={false}>
        provider enablement/configuration (boolean enables; object configures and enables)
      </NestedParam>

      <NestedParam parentKey="auth.oauth" childKey="redirectUri" type="string" required={false}>
        shared default redirect URI for OAuth providers
      </NestedParam>

      <NestedParam parentKey="auth.oauth" childKey="x" type="OauthProviderConfig" required={false} />
    </Expandable>

    <NestedParam parentKey="auth" childKey="otp" type="object" required={false}>
      one-time password (OTP) settings and enablement
    </NestedParam>

    <Expandable title="otp details">
      <NestedParam parentKey="auth.otp" childKey="alphanumeric" type="boolean" required={false}>
        OTP alphanumeric mode (proxy controlled if using auth proxy)
      </NestedParam>

      <NestedParam parentKey="auth.otp" childKey="email" type="boolean" required={false}>
        enable email OTP
      </NestedParam>

      <NestedParam parentKey="auth.otp" childKey="length" type="string" required={false}>
        OTP length (proxy controlled if using auth proxy)
      </NestedParam>

      <NestedParam parentKey="auth.otp" childKey="sms" type="boolean" required={false}>
        enable SMS OTP
      </NestedParam>
    </Expandable>

    <NestedParam parentKey="auth" childKey="passkey" type="boolean | object" required={false}>
      passkey enablement and options
    </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>
  </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="organizationId" type="string" required={true}>
  ID of the organization.
</ParamField>

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