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

# Manage Unity Ecosystem Wallet Sessions

> Ecosystem Wallet Documentation for Sequence's Unity SDK.

### Add Session

Add additional sessions to your existing login method. Every session shares the same wallet address with the possibility
of assigning different permissions for each session. You must provide a `IPermissions` object whenever you call `AddSession`.

[Learn how to construct permissions.](/sdk/unity/wallets/ecosystem-wallet/permissions)

```csharp theme={null}
Address contractAddress = new Address("0x33985d320809E26274a72E03268c8a29927Bc6dA");
BigInteger deadline = new BigInteger(DateTimeOffset.UtcNow.ToUnixTimeSeconds() * 1000 + 1000 * 60 * 5000);

IPermissions permissions = new ContractPermissions(Chain.TestnetAbitrumSepolia, contractAddress, deadline, 0);
await wallet.AddSession(permissions);
```

### Disconnect

Sign out will clear the local storage.

```csharp theme={null}
wallet.Disconnect();
```

### Get All Session Wallets

Get all available sessions that you are currently connected to.

```csharp theme={null}
Address[] signerAddresses = wallet.GetAllSigners();
```

## Events

### On Wallet Created

The `WalletCreated` event is called whenever you sign in or you recover a wallet from storage.

```csharp theme={null}
SequenceWallet.WalletCreated += wallet =>
{
    // Integrate your own logic to handle wallet creations.
}
```

### On Wallet Disconnected

The Disconnected event is called whenever you hit `wallet.Disconnect()`. This means, you need to re-connect.

```csharp theme={null}
SequenceWallet.Disconnected += () =>
{
    // Integrate your own logic to handle disconnects.
}
```
