# SessionKey

Defined in: [packages/synapse-sdk/src/session/key.ts:51](https://github.com/FilOzone/synapse-sdk/blob/6cf8b3ed2dd3ae76ed05cb86995d711a08a298a6/packages/synapse-sdk/src/session/key.ts#L51)

## Constructors

### Constructor

> **new SessionKey**(`provider`, `sessionKeyRegistryAddress`, `signer`, `owner`, `multicall3Address`): `SessionKey`

Defined in: [packages/synapse-sdk/src/session/key.ts:58](https://github.com/FilOzone/synapse-sdk/blob/6cf8b3ed2dd3ae76ed05cb86995d711a08a298a6/packages/synapse-sdk/src/session/key.ts#L58)

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `provider` | `Provider` |
| `sessionKeyRegistryAddress` | `string` |
| `signer` | `Signer` |
| `owner` | `Signer` |
| `multicall3Address` | `string` \| `null` |

#### Returns

`SessionKey`

## Methods

### fetchExpiries()

> **fetchExpiries**(`permissions`): [`Promise`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\<[`Record`](https://www.typescriptlang.org/docs/handbook/utility-types.html#recordkeys-type)\<`string`, `bigint`\>\>

Defined in: [packages/synapse-sdk/src/session/key.ts:81](https://github.com/FilOzone/synapse-sdk/blob/6cf8b3ed2dd3ae76ed05cb86995d711a08a298a6/packages/synapse-sdk/src/session/key.ts#L81)

Queries current permission expiries from the registry

#### Parameters

| Parameter | Type | Default value | Description |
| ------ | ------ | ------ | ------ |
| `permissions` | `string`[] | `PDP_PERMISSIONS` | Expiries to fetch, as a list of bytes32 hex strings |

#### Returns

[`Promise`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\<[`Record`](https://www.typescriptlang.org/docs/handbook/utility-types.html#recordkeys-type)\<`string`, `bigint`\>\>

map of each permission to its expiry for this session key

***

### getSigner()

> **getSigner**(): `Signer`

Defined in: [packages/synapse-sdk/src/session/key.ts:72](https://github.com/FilOzone/synapse-sdk/blob/6cf8b3ed2dd3ae76ed05cb86995d711a08a298a6/packages/synapse-sdk/src/session/key.ts#L72)

#### Returns

`Signer`

***

### login()

> **login**(`expiry`, `permissions`, `origin`): [`Promise`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\<`TransactionResponse`\>

Defined in: [packages/synapse-sdk/src/session/key.ts:133](https://github.com/FilOzone/synapse-sdk/blob/6cf8b3ed2dd3ae76ed05cb86995d711a08a298a6/packages/synapse-sdk/src/session/key.ts#L133)

Authorize signer with permissions until expiry. This can also be used to
renew existing authorization by updating the expiry.

#### Parameters

| Parameter | Type | Default value | Description |
| ------ | ------ | ------ | ------ |
| `expiry` | `bigint` | `undefined` | unix time (block.timestamp) that the permissions expire |
| `permissions` | `string`[] | `PDP_PERMISSIONS` | list of permissions granted to the signer, as a list of bytes32 hex strings |
| `origin` | `string` | `DEFAULT_ORIGIN` | the name of the application prompting this login |

#### Returns

[`Promise`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\<`TransactionResponse`\>

signed and broadcasted login transaction details

***

### revoke()

> **revoke**(`permissions`): [`Promise`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\<`TransactionResponse`\>

Defined in: [packages/synapse-sdk/src/session/key.ts:147](https://github.com/FilOzone/synapse-sdk/blob/6cf8b3ed2dd3ae76ed05cb86995d711a08a298a6/packages/synapse-sdk/src/session/key.ts#L147)

Invalidate signer permissions, setting their expiry to zero.

#### Parameters

| Parameter | Type | Default value | Description |
| ------ | ------ | ------ | ------ |
| `permissions` | `string`[] | `PDP_PERMISSIONS` | list of permissions removed from the signer, as a list of bytes32 hex strings |

#### Returns

[`Promise`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\<`TransactionResponse`\>

signed and broadcasted revoke transaction details