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

# React Native Manage Sessions

> Restore sessions, manage access, and sign out with the React Native OMS Wallet SDK.

Use the React Native SDK session APIs after `configure` to restore wallet state, issue ID tokens, and manage credential access. The underlying native SDKs persist completed wallet-session metadata and signing state with platform storage.

## Get Wallet Address

Read the active wallet address after configuration and session restore.

```typescript theme={null}
import { getWalletAddress } from '@0xsequence/oms-react-native-sdk'

const walletAddress = await getWalletAddress()

if (walletAddress) {
  console.log('Restored wallet:', walletAddress)
}
```

**Parameters**

Takes no parameters.

**Returns**

Returns `Promise<string | null>`.

## Get Session

Read completed wallet-session metadata.

```typescript theme={null}
import { getSession } from '@0xsequence/oms-react-native-sdk'

const session = await getSession()

console.log(session.walletAddress, session.expiresAt, session.loginType)
```

**Parameters**

Takes no parameters.

**Returns**

Returns `Promise<OmsClientSessionState>`.

| Field           | Type                                           | Description                                               |
| --------------- | ---------------------------------------------- | --------------------------------------------------------- |
| `walletAddress` | `string` or `null`                             | Active wallet address, when a session is restored.        |
| `expiresAt`     | `string` or `null`                             | Session expiration timestamp.                             |
| `loginType`     | `'Email'`, `'GoogleAuth'`, `'Oidc'`, or `null` | Login method for the session.                             |
| `sessionEmail`  | `string` or `null`                             | Email address associated with the session when available. |

## Get ID Token

Request an ID token for the active wallet session. Send this token to your backend when using backend wallet verification.

```typescript theme={null}
import { getIdToken } from '@0xsequence/oms-react-native-sdk'

const idToken = await getIdToken({
  ttlSeconds: 300,
})
```

**Parameters**

| Parameter      | Type                                            | Description                                     |
| -------------- | ----------------------------------------------- | ----------------------------------------------- |
| `ttlSeconds`   | `number`, `null`, or undefined                  | Optional token lifetime in seconds.             |
| `customClaims` | `Record<string, unknown>`, `null`, or undefined | Optional custom claims to include in the token. |

**Returns**

Returns `Promise<string>`.

## List Access

List credentials that currently have access to the active wallet.

```typescript theme={null}
import { listAccess } from '@0xsequence/oms-react-native-sdk'

const credentials = await listAccess({ pageSize: 25 })

for (const credential of credentials) {
  console.log(credential.credentialId, credential.expiresAt, credential.isCaller)
}
```

**Parameters**

| Parameter  | Type                           | Description                                                 |
| ---------- | ------------------------------ | ----------------------------------------------------------- |
| `pageSize` | `number`, `null`, or undefined | Optional page size used while following Wallet API cursors. |

**Returns**

Returns `Promise<OmsCredentialInfo[]>`.

## List Access Pages

Use `listAccessPages` when your UI should render credential access one page at a time.

```typescript theme={null}
import { listAccessPages } from '@0xsequence/oms-react-native-sdk'

for await (const page of listAccessPages({ pageSize: 25 })) {
  for (const credential of page.credentials) {
    console.log(credential.credentialId, credential.isCaller)
  }
}
```

**Parameters**

| Parameter  | Type                           | Description                                     |
| ---------- | ------------------------------ | ----------------------------------------------- |
| `pageSize` | `number`, `null`, or undefined | Optional page size for each Wallet API request. |

**Returns**

Returns `AsyncGenerator<OmsListAccessResponse, void, void>`.

## List Access Page

Fetch one credential access page with an optional cursor.

```typescript theme={null}
import { listAccessPage } from '@0xsequence/oms-react-native-sdk'

const page = await listAccessPage({
  pageSize: 25,
  cursor: null,
})

console.log('Credential count:', page.credentials.length)
```

**Parameters**

| Parameter  | Type                           | Description                                     |
| ---------- | ------------------------------ | ----------------------------------------------- |
| `pageSize` | `number`, `null`, or undefined | Optional page size for this Wallet API request. |
| `cursor`   | `string`, `null`, or undefined | Cursor returned by a previous page.             |

**Returns**

Returns `Promise<OmsListAccessResponse>`.

| Field         | Type                      | Description                                               |
| ------------- | ------------------------- | --------------------------------------------------------- |
| `credentials` | `OmsCredentialInfo[]`     | Credentials returned for the page.                        |
| `page`        | `OmsAccessPage` or `null` | Pagination metadata, including `limit` and next `cursor`. |

## Revoke Access

Revoke another credential's access to the active wallet.

```typescript theme={null}
import { revokeAccess } from '@0xsequence/oms-react-native-sdk'

await revokeAccess('credential-id')
```

**Parameters**

| Parameter            | Type     | Description                             |
| -------------------- | -------- | --------------------------------------- |
| `targetCredentialId` | `string` | Credential ID returned by `listAccess`. |

**Returns**

Returns `Promise<void>`.

## Sign Out

Clear the active wallet session.

```typescript theme={null}
import { signOut } from '@0xsequence/oms-react-native-sdk'

await signOut()
```

**Parameters**

Takes no parameters.

**Returns**

Returns `Promise<void>`.
