# Advanced configuration

> Web3Auth Unreal SDK - Advanced Configuration | Embedded Wallets

The Embedded Wallets SDK provides extensive configuration options that allow you to customize authentication flows, UI appearance, blockchain integrations, and security features to meet your Unreal application's specific requirements.

## Configuration structure

When setting up Web3Auth, you'll pass in the options to the constructor. This consists of:

```cpp
#include "Web3AuthSDK.h"

// focus-start
FWeb3AuthOptions Options;
Options.ClientId = TEXT("YOUR_CLIENT_ID"); // Get your Client ID from the MetaMask Developer Dashboard
Options.Network = TEXT("sapphire_mainnet"); // or "sapphire_devnet"
Options.RedirectUrl = TEXT("YOUR_SCHEMA://YOUR_APP_PACKAGE_NAME");

UWeb3AuthSDK::GetInstance()->Initialize(Options);
// focus-end
```

### `FWeb3AuthOptions`

The Web3Auth Constructor takes an object with `FWeb3AuthOptions` as input.

<Tabs
  defaultValue="table"
  values={[
    { label: "Table", value: "table" },
    { label: "Struct", value: "struct" },
  ]}
>

<TabItem value="table">

| Parameter            | Description                                                                                                                                     |
| -------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| `ClientId`           | Your Web3Auth Client ID from the [Dashboard](https://developer.metamask.io/). It's a mandatory field of type `FString`.                         |
| `Network`            | Web3Auth Network: `"sapphire_mainnet"`, `"sapphire_devnet"`, `"mainnet"`, `"cyan"`, `"aqua"` or `"testnet"`. Mandatory field of type `FString`. |
| `RedirectUrl`        | URL that Web3Auth will redirect API responses upon successful authentication. It's a mandatory field of type `FString`.                         |
| `WhiteLabelOptions?` | Whitelabel options for custom UI, branding, and translations. Takes `FWeb3AuthWhiteLabelOptions` as a value.                                    |
| `SessionTime?`       | Configure session management time in seconds. Default is 86400 seconds (1 day). Max 30 days.                                                    |

</TabItem>

<TabItem value="struct">

```cpp
USTRUCT(BlueprintType)
struct FWeb3AuthOptions
{
    GENERATED_BODY()

    UPROPERTY(EditAnywhere, BlueprintReadWrite)
    FString ClientId;

    UPROPERTY(EditAnywhere, BlueprintReadWrite)
    FString Network;

    UPROPERTY(EditAnywhere, BlueprintReadWrite)
    FString RedirectUrl;

    UPROPERTY(EditAnywhere, BlueprintReadWrite)
    FWeb3AuthWhiteLabelOptions WhiteLabelOptions;

    UPROPERTY(EditAnywhere, BlueprintReadWrite)
    int32 SessionTime = 86400;
};
```

</TabItem>
</Tabs>

## Session management

Control how long users stay authenticated and how sessions persist in Unreal Engine.

**Key Configuration Options:**

- `SessionTime` - Session duration in seconds. Controls how long users remain authenticated before needing to log in again.
  - Minimum: 1 second (`1`).
  - Maximum: 30 days (`86400 * 30`).
  - Default: 1 day (`86400`).

```cpp
FWeb3AuthOptions Options;
Options.ClientId = TEXT("YOUR_CLIENT_ID");
Options.Network = TEXT("sapphire_mainnet");
Options.SessionTime = 86400 * 7; // 7 days (in seconds)
Options.RedirectUrl = TEXT("YOUR_SCHEMA://YOUR_APP_PACKAGE_NAME");

UWeb3AuthSDK::GetInstance()->Initialize(Options);
```

## Custom authentication methods

Control the login options presented to your users. For detailed configuration options and implementation examples, see the [custom authentication](./custom-authentication.mdx) section.

## UI customization

Create a seamless brand experience by customizing the Web3Auth Login Screens to match your Unreal application's design. For complete customization options, refer to the [whitelabeling and UI customization](./whitelabel.mdx) section.

## Multi-Factor Authentication (MFA)

Add additional security layers to protect user accounts with two-factor authentication. For detailed configuration options and implementation examples, see the [Multi-Factor Authentication](./mfa.mdx) section.

**Key Configuration Options:**

- `MfaSettings` - Configure MFA settings for different authentication flows
- `MfaLevel` - Control when users are prompted to set up MFA
