> ## Documentation Index
> Fetch the complete documentation index at: https://sequence-0fb8d9e6-codex-update-discord-invite.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Manage Sessions

> Documentation for Unreal SDK API to manage sessions for the Sequence infrastructure stack for web3 gaming.

<Warning>
  The examples below apply to versions 2.x.x.
  If you’re using version 3, use the SequenceEmbeddedWalletBP (Blueprints) and SequenceEmbeddedWallet (C++) classes instead.
</Warning>

## Get Id Token

A common use case is to verify the user identity on your backend after the user has finished the login process in your app client.
Get a Sequence Id Token from your users to send it to your backend for verification using any JWKS library.
Read our [Backend Verification Guide](/sdk/headless-wallet/verification) for more information.

<Tabs>
  <Tab title="Blueprint">
    <Frame>
      <img src="https://mintcdn.com/sequence-0fb8d9e6-codex-update-discord-invite/FTpX4UAFpHQ_Qb4p/images/unreal/get_id_token.png?fit=max&auto=format&n=FTpX4UAFpHQ_Qb4p&q=85&s=0083d39a58d7a829e02b052ae54aa3bf" width="2118" height="1198" data-path="images/unreal/get_id_token.png" />
    </Frame>
  </Tab>

  <Tab title="C++">
    ```cpp theme={null}
    const TFunction<void (FSeqIdTokenResponse_Data)> OnApiSuccess = [OnSuccess](const FSeqIdTokenResponse_Data& Data) { };
    const TFunction<void (FSequenceError)> OnApiFailure = [OnFailure](const FSequenceError& Err) { };

    USequenceWallet* Wallet = NewObject<USequenceWallet>();
    Wallet->GetIdToken(Nonce, OnApiSuccess, OnApiFailure);
    ```
  </Tab>
</Tabs>

## Check Existing Session

Check if your client has an existing session stored.

<Tabs>
  <Tab title="Blueprint">
    <Frame>
      <img src="https://mintcdn.com/sequence-0fb8d9e6-codex-update-discord-invite/FTpX4UAFpHQ_Qb4p/images/unreal/check_existing_session.png?fit=max&auto=format&n=FTpX4UAFpHQ_Qb4p&q=85&s=84e2c1dce3c582b0f46b5753766ad9dc" width="2242" height="1184" data-path="images/unreal/check_existing_session.png" />
    </Frame>
  </Tab>

  <Tab title="C++">
    ```cpp theme={null}
    USequenceSessions* Sessions = NewObject<USequenceSessions>();
    const bool Exists = Sessions->CheckExistingSession();
    ```
  </Tab>
</Tabs>

## Sign Out

Clear the credentials cache and sign out the current user.

<Tabs>
  <Tab title="Blueprint">
    <Frame>
      <img src="https://mintcdn.com/sequence-0fb8d9e6-codex-update-discord-invite/WI2CxbnlYZro4UIi/images/unreal/sign_out.png?fit=max&auto=format&n=WI2CxbnlYZro4UIi&q=85&s=9db9a18c92381490b2fd44d73817a45f" width="2242" height="1184" data-path="images/unreal/sign_out.png" />
    </Frame>
  </Tab>

  <Tab title="C++">
    ```cpp theme={null}
    USequenceWallet* Wallet = NewObject<USequenceWallet>();
    Wallet->SignOut();
    ```
  </Tab>
</Tabs>

## List Sessions

List the active sessions.

<Tabs>
  <Tab title="Blueprint">
    <Frame>
      <img src="https://mintcdn.com/sequence-0fb8d9e6-codex-update-discord-invite/FTpX4UAFpHQ_Qb4p/images/unreal/list_sessions.png?fit=max&auto=format&n=FTpX4UAFpHQ_Qb4p&q=85&s=effce153c744c17ee21e1c099e111fa5" width="2242" height="1184" data-path="images/unreal/list_sessions.png" />
    </Frame>
  </Tab>

  <Tab title="C++">
    ```cpp theme={null}
    const TFunction<void (TArray<FSeqListSessions_Session>)> OnApiSuccess = [OnSuccess](const TArray<FSeqListSessions_Session>& Sessions) { };
    const TFunction<void (FSequenceError)> OnApiFailure = [OnFailure](const FSequenceError& Err) { };

    USequenceWallet* Wallet = NewObject<USequenceWallet>();
    Wallet->GetIdToken(Nonce, OnApiSuccess, OnApiFailure);
    ```
  </Tab>
</Tabs>

## List Accounts

List your accounts.

<Tabs>
  <Tab title="Blueprint">
    <Frame>
      <img src="https://mintcdn.com/sequence-0fb8d9e6-codex-update-discord-invite/FTpX4UAFpHQ_Qb4p/images/unreal/list_accounts.png?fit=max&auto=format&n=FTpX4UAFpHQ_Qb4p&q=85&s=6956a1c41d1cd34186112aebc9167828" width="2242" height="1184" data-path="images/unreal/list_accounts.png" />
    </Frame>
  </Tab>

  <Tab title="C++">
    ```cpp theme={null}
    const TFunction<void (FSeqListAccountsResponse_Data)> OnApiSuccess = [OnSuccess](const FSeqListAccountsResponse_Data& Sessions) { };
    const TFunction<void (FSequenceError)> OnApiFailure = [OnFailure](const FSequenceError& Err) { };

    USequenceWallet* Wallet = NewObject<USequenceWallet>();
    Wallet->GetIdToken(Nonce, OnApiSuccess, OnApiFailure);
    ```
  </Tab>
</Tabs>
