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

# Unreal Ecosystem Wallet Authentication

> Ecosystem Wallet Documentation for Sequence's Unreal SDK.

Start with an implicit session which is restricted to contracts built by Sequence.
Alternatively, you can choose to add a [Permissions](/sdk/unreal/wallets/ecosystem-wallet/permissions) object to each Sign In call, if you want to connect to an
explicit session directly.

## Sign In with Email

<Tabs>
  <Tab title="Blueprint">
    <Frame>
      <img src="https://mintcdn.com/sequence-0fb8d9e6-6461-checkout-updates/4PRtyLeWilf2Q8cz/images/unreal/ecosystem/sign_in_email.png?fit=max&auto=format&n=4PRtyLeWilf2Q8cz&q=85&s=d6a6a655579c9f0ae5d228b70087a333" width="967" height="500" data-path="images/unreal/ecosystem/sign_in_email.png" />
    </Frame>
  </Tab>

  <Tab title="C++">
    ```cpp theme={null}
    const TSuccessCallback<bool> SuccessCallback = [this, OnSuccess](bool Result) { };
    const FFailureCallback FailureCallback = [OnFailure](const FSequenceError& Error) { };

    USequenceConnect* Connect = NewObject<USequenceConnect>();
    Connect->SignInWithEmail(Email, Permissions, SuccessCallback, FailureCallback);
    ```
  </Tab>
</Tabs>

## Sign In with Google

<Tabs>
  <Tab title="Blueprint">
    <Frame>
      <img src="https://mintcdn.com/sequence-0fb8d9e6-6461-checkout-updates/4PRtyLeWilf2Q8cz/images/unreal/ecosystem/sign_in_google.png?fit=max&auto=format&n=4PRtyLeWilf2Q8cz&q=85&s=f2c20ddf2a00c261c4386e0ea4726a0f" width="967" height="500" data-path="images/unreal/ecosystem/sign_in_google.png" />
    </Frame>
  </Tab>

  <Tab title="C++">
    ```cpp theme={null}
    const TSuccessCallback<bool> SuccessCallback = [this, OnSuccess](bool Result) { };
    const FFailureCallback FailureCallback = [OnFailure](const FSequenceError& Error) { };

    USequenceConnect* Connect = NewObject<USequenceConnect>();
    Connect->SignInWithGoogle(Permissions, SuccessCallback, FailureCallback);
    ```
  </Tab>
</Tabs>

## Sign In with Apple

<Tabs>
  <Tab title="Blueprint">
    <Frame>
      <img src="https://mintcdn.com/sequence-0fb8d9e6-6461-checkout-updates/4PRtyLeWilf2Q8cz/images/unreal/ecosystem/sign_in_apple.png?fit=max&auto=format&n=4PRtyLeWilf2Q8cz&q=85&s=4d9be1438c5fecdaea038afb90b609d9" width="967" height="500" data-path="images/unreal/ecosystem/sign_in_apple.png" />
    </Frame>
  </Tab>

  <Tab title="C++">
    ```cpp theme={null}
    const TSuccessCallback<bool> SuccessCallback = [this, OnSuccess](bool Result) { };
    const FFailureCallback FailureCallback = [OnFailure](const FSequenceError& Error) { };

    USequenceConnect* Connect = NewObject<USequenceConnect>();
    Connect->SignInWithApple(Permissions, SuccessCallback, FailureCallback);
    ```
  </Tab>
</Tabs>

## Sign In with Passkey

<Tabs>
  <Tab title="Blueprint">
    <Frame>
      <img src="https://mintcdn.com/sequence-0fb8d9e6-6461-checkout-updates/4PRtyLeWilf2Q8cz/images/unreal/ecosystem/sign_in_passkey.png?fit=max&auto=format&n=4PRtyLeWilf2Q8cz&q=85&s=1e5d822e1b5441852d1bd4b3c4c4f35d" width="967" height="500" data-path="images/unreal/ecosystem/sign_in_passkey.png" />
    </Frame>
  </Tab>

  <Tab title="C++">
    ```cpp theme={null}
    const TSuccessCallback<bool> SuccessCallback = [this, OnSuccess](bool Result) { };
    const FFailureCallback FailureCallback = [OnFailure](const FSequenceError& Error) { };

    USequenceConnect* Connect = NewObject<USequenceConnect>();
    Connect->SignInWithPasskey(Permissions, SuccessCallback, FailureCallback);
    ```
  </Tab>
</Tabs>

## Sign In with Mnemonic

<Tabs>
  <Tab title="Blueprint">
    <Frame>
      <img src="https://mintcdn.com/sequence-0fb8d9e6-6461-checkout-updates/4PRtyLeWilf2Q8cz/images/unreal/ecosystem/sign_in_mnemonic.png?fit=max&auto=format&n=4PRtyLeWilf2Q8cz&q=85&s=4b52b981bb2263252bbc824fc12a39d6" width="967" height="500" data-path="images/unreal/ecosystem/sign_in_mnemonic.png" />
    </Frame>
  </Tab>

  <Tab title="C++">
    ```cpp theme={null}
    const TSuccessCallback<bool> SuccessCallback = [this, OnSuccess](bool Result) { };
    const FFailureCallback FailureCallback = [OnFailure](const FSequenceError& Error) { };

    USequenceConnect* Connect = NewObject<USequenceConnect>();
    Connect->SignInWithMnemonic(Permissions, SuccessCallback, FailureCallback);
    ```
  </Tab>
</Tabs>
