[PERS SDK - v2.3.26](/sdk-reference/readme) / [Exports](/sdk-reference/modules) / PersEventsClient

# Class: PersEventsClient

## Table of contents

### Constructors

- [constructor](/sdk-reference/classes/perseventsclient#constructor)


### Methods

- [connect](/sdk-reference/classes/perseventsclient#connect)
- [disconnect](/sdk-reference/classes/perseventsclient#disconnect)
- [subscribeWallets](/sdk-reference/classes/perseventsclient#subscribewallets)
- [subscribeChains](/sdk-reference/classes/perseventsclient#subscribechains)
- [unsubscribeWallets](/sdk-reference/classes/perseventsclient#unsubscribewallets)
- [unsubscribeChains](/sdk-reference/classes/perseventsclient#unsubscribechains)
- [getSubscriptionState](/sdk-reference/classes/perseventsclient#getsubscriptionstate)
- [bindNotificationChannel](/sdk-reference/classes/perseventsclient#bindnotificationchannel)
- [updateNotificationChannel](/sdk-reference/classes/perseventsclient#updatenotificationchannel)
- [getNotificationContext](/sdk-reference/classes/perseventsclient#getnotificationcontext)
- [onNotificationPending](/sdk-reference/classes/perseventsclient#onnotificationpending)
- [on](/sdk-reference/classes/perseventsclient#on)
- [onStateChange](/sdk-reference/classes/perseventsclient#onstatechange)
- [getState](/sdk-reference/classes/perseventsclient#getstate)
- [getConnectionInfo](/sdk-reference/classes/perseventsclient#getconnectioninfo)


## Constructors

### constructor

• **new PersEventsClient**(`config`): [`PersEventsClient`](/sdk-reference/classes/perseventsclient)

#### Parameters

| Name | Type |
|  --- | --- |
| `config` | [`EventsClientConfig`](/sdk-reference/interfaces/eventsclientconfig) |


#### Returns

[`PersEventsClient`](/sdk-reference/classes/perseventsclient)

#### Defined in

[events/pers-events-client.ts:108](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/events/pers-events-client.ts#L108)

## Methods

### connect

▸ **connect**(`token`): `Promise`<`void`>

Connect to the WS relay server

#### Parameters

| Name | Type | Description |
|  --- | --- | --- |
| `token` | `string` | JWT token for authentication (wallets no longer required in JWT) |


#### Returns

`Promise`<`void`>

#### Defined in

[events/pers-events-client.ts:116](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/events/pers-events-client.ts#L116)

### disconnect

▸ **disconnect**(): `void`

Disconnect from the server

#### Returns

`void`

#### Defined in

[events/pers-events-client.ts:188](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/events/pers-events-client.ts#L188)

### subscribeWallets

▸ **subscribeWallets**(`wallets`): `Promise`<`SubscribedPayload`>

Subscribe to wallet events (User SDK)

Receives events only for the specified wallet addresses.
Can be called multiple times to add more wallets.

#### Parameters

| Name | Type | Description |
|  --- | --- | --- |
| `wallets` | `WalletInfo`[] | Array of wallet info (address + chainId) |


#### Returns

`Promise`<`SubscribedPayload`>

Promise that resolves when subscription is confirmed

#### Defined in

[events/pers-events-client.ts:207](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/events/pers-events-client.ts#L207)

### subscribeChains

▸ **subscribeChains**(`chains`): `Promise`<`SubscribedPayload`>

Subscribe to chain events (Admin Dashboard)

Receives ALL events on the specified chains.
Use for admin dashboards that need to monitor all activity.

#### Parameters

| Name | Type | Description |
|  --- | --- | --- |
| `chains` | `number`[] | Array of chain IDs to subscribe to |


#### Returns

`Promise`<`SubscribedPayload`>

Promise that resolves when subscription is confirmed

#### Defined in

[events/pers-events-client.ts:220](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/events/pers-events-client.ts#L220)

### unsubscribeWallets

▸ **unsubscribeWallets**(`wallets`): `Promise`<`SubscribedPayload`>

Unsubscribe from wallet events

#### Parameters

| Name | Type | Description |
|  --- | --- | --- |
| `wallets` | `WalletInfo`[] | Array of wallet info to unsubscribe from |


#### Returns

`Promise`<`SubscribedPayload`>

Promise that resolves when unsubscription is confirmed

#### Defined in

[events/pers-events-client.ts:230](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/events/pers-events-client.ts#L230)

### unsubscribeChains

▸ **unsubscribeChains**(`chains`): `Promise`<`SubscribedPayload`>

Unsubscribe from chain events

#### Parameters

| Name | Type | Description |
|  --- | --- | --- |
| `chains` | `number`[] | Array of chain IDs to unsubscribe from |


#### Returns

`Promise`<`SubscribedPayload`>

Promise that resolves when unsubscription is confirmed

#### Defined in

[events/pers-events-client.ts:240](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/events/pers-events-client.ts#L240)

### getSubscriptionState

▸ **getSubscriptionState**(): `SubscribedPayload`

Get current subscription state

#### Returns

`SubscribedPayload`

#### Defined in

[events/pers-events-client.ts:247](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/events/pers-events-client.ts#L247)

### bindNotificationChannel

▸ **bindNotificationChannel**(`channelId`, `topicIds?`): `void`

Bind this socket to a personal notification channelId (from `GET /notifications/channel-id`).

The relay auto-resolves the channelId server-side on connect, so this is an optimization
for immediate binding rather than a requirement — safe to call any time after connect().
If not yet connected, the channelId is sent as soon as the connection opens.

#### Parameters

| Name | Type |
|  --- | --- |
| `channelId` | `string` |
| `topicIds?` | `string`[] |


#### Returns

`void`

#### Defined in

[events/pers-events-client.ts:262](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/events/pers-events-client.ts#L262)

### updateNotificationChannel

▸ **updateNotificationChannel**(`channelId`): `void`

Rebind the personal notification channelId on an already-connected socket
(e.g. after re-auth resolves a new channelId).

#### Parameters

| Name | Type |
|  --- | --- |
| `channelId` | `string` |


#### Returns

`void`

#### Defined in

[events/pers-events-client.ts:274](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/events/pers-events-client.ts#L274)

### getNotificationContext

▸ **getNotificationContext**(): [`NotificationContext`](/sdk-reference/interfaces/notificationcontext)

Get the notification routing context (channelId + topicIds) resolved for this socket.

#### Returns

[`NotificationContext`](/sdk-reference/interfaces/notificationcontext)

#### Defined in

[events/pers-events-client.ts:285](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/events/pers-events-client.ts#L285)

### onNotificationPending

▸ **onNotificationPending**(`handler`): `BlockchainEventUnsubscribe`

Subscribe to real-time notification wake signals.

The signal carries no notification content — always follow up with
`sdk.notifications.list()` / `getUnreadCount()`.

#### Parameters

| Name | Type |
|  --- | --- |
| `handler` | [`NotificationPendingHandler`](/sdk-reference/modules#notificationpendinghandler) |


#### Returns

`BlockchainEventUnsubscribe`

#### Defined in

[events/pers-events-client.ts:295](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/events/pers-events-client.ts#L295)

### on

▸ **on**(`eventType`, `handler`): `BlockchainEventUnsubscribe`

Subscribe to blockchain events

#### Parameters

| Name | Type | Description |
|  --- | --- | --- |
| `eventType` | `string` | Event type to listen for, or '*' for all events |
| `handler` | `BlockchainEventHandler` | Event handler function |


#### Returns

`BlockchainEventUnsubscribe`

Unsubscribe function

#### Defined in

[events/pers-events-client.ts:310](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/events/pers-events-client.ts#L310)

### onStateChange

▸ **onStateChange**(`handler`): `BlockchainEventUnsubscribe`

Subscribe to connection state changes

#### Parameters

| Name | Type |
|  --- | --- |
| `handler` | (`state`: `EventConnectionState`) => `void` |


#### Returns

`BlockchainEventUnsubscribe`

#### Defined in

[events/pers-events-client.ts:324](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/events/pers-events-client.ts#L324)

### getState

▸ **getState**(): `EventConnectionState`

Get current connection state

#### Returns

`EventConnectionState`

#### Defined in

[events/pers-events-client.ts:332](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/events/pers-events-client.ts#L332)

### getConnectionInfo

▸ **getConnectionInfo**(): `null` | { `userId`: `string` ; `wallets`: `WalletInfo`[] ; `activeChains`: `number`[]  }

Get connection info (userId, initial wallets, activeChains)

#### Returns

`null` | { `userId`: `string` ; `wallets`: `WalletInfo`[] ; `activeChains`: `number`[]  }

#### Defined in

[events/pers-events-client.ts:339](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/events/pers-events-client.ts#L339)