> For the complete documentation index, see [llms.txt](https://developers.polymath.network/polymesh-sdk-api-reference/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developers.polymath.network/polymesh-sdk-api-reference/docs-v9/classes/tokenpermissions.md).

# TokenPermissions

Handles all Token Permissions (External Agents) related functionality on the Identity side

## Hierarchy

* Namespace‹[Identity](/polymesh-sdk-api-reference/docs-v9/classes/identity.md)›

  ↳ **TokenPermissions**

## Index

### Properties

* [context](/polymesh-sdk-api-reference/docs-v9/classes/tokenpermissions.md#protected-context)
* [parent](/polymesh-sdk-api-reference/docs-v9/classes/tokenpermissions.md#protected-parent)

### Methods

* [enabledAt](/polymesh-sdk-api-reference/docs-v9/classes/tokenpermissions.md#enabledat)
* [get](/polymesh-sdk-api-reference/docs-v9/classes/tokenpermissions.md#get)
* [getGroup](/polymesh-sdk-api-reference/docs-v9/classes/tokenpermissions.md#getgroup)
* [hasPermissions](/polymesh-sdk-api-reference/docs-v9/classes/tokenpermissions.md#haspermissions)
* [setGroup](/polymesh-sdk-api-reference/docs-v9/classes/tokenpermissions.md#setgroup)
* [waive](/polymesh-sdk-api-reference/docs-v9/classes/tokenpermissions.md#waive)

## Properties

### `Protected` context

• **context**: [*Context*](/polymesh-sdk-api-reference/docs-v9/classes/context.md)

*Inherited from void*

*Defined in* [*src/api/entities/Namespace.ts:11*](https://github.com/PolymathNetwork/polymesh-sdk/blob/56921667/src/api/entities/Namespace.ts#L11)

### `Protected` parent

• **parent**: [*Identity*](/polymesh-sdk-api-reference/docs-v9/classes/identity.md)

*Inherited from void*

*Defined in* [*src/api/entities/Namespace.ts:9*](https://github.com/PolymathNetwork/polymesh-sdk/blob/56921667/src/api/entities/Namespace.ts#L9)

## Methods

### enabledAt

▸ **enabledAt**(`__namedParameters`: object): *Promise‹*[*EventIdentifier*](/polymesh-sdk-api-reference/docs-v9/interfaces/eventidentifier.md) *| null›*

*Defined in* [*src/api/entities/Identity/TokenPermissions.ts:264*](https://github.com/PolymathNetwork/polymesh-sdk/blob/56921667/src/api/entities/Identity/TokenPermissions.ts#L264)

Retrieve the identifier data (block number, date and event index) of the event that was emitted when this Identity was enabled/added as an Agent with permissions over a specific Security Token

**`note`** uses the middleware

**`note`** there is a possibility that the data is not ready by the time it is requested. In that case, `null` is returned

**Parameters:**

▪ **\_\_namedParameters**: *object*

| Name    | Type                                                                                      |
| ------- | ----------------------------------------------------------------------------------------- |
| `token` | string \| [SecurityToken](/polymesh-sdk-api-reference/docs-v9/classes/securitytoken.md)‹› |

**Returns:** *Promise‹*[*EventIdentifier*](/polymesh-sdk-api-reference/docs-v9/interfaces/eventidentifier.md) *| null›*

### get

▸ **get**(): *Promise‹*[*TokenWithGroup*](/polymesh-sdk-api-reference/docs-v9/interfaces/tokenwithgroup.md)*\[]›*

*Defined in* [*src/api/entities/Identity/TokenPermissions.ts:72*](https://github.com/PolymathNetwork/polymesh-sdk/blob/56921667/src/api/entities/Identity/TokenPermissions.ts#L72)

Retrieve all the Security Tokens over which this Identity has permissions, with the corresponding Permission Group

**Returns:** *Promise‹*[*TokenWithGroup*](/polymesh-sdk-api-reference/docs-v9/interfaces/tokenwithgroup.md)*\[]›*

### getGroup

▸ **getGroup**(`__namedParameters`: object): *Promise‹*[*CustomPermissionGroup*](/polymesh-sdk-api-reference/docs-v9/classes/custompermissiongroup.md) *|* [*KnownPermissionGroup*](/polymesh-sdk-api-reference/docs-v9/classes/knownpermissiongroup.md)*›*

*Defined in* [*src/api/entities/Identity/TokenPermissions.ts:224*](https://github.com/PolymathNetwork/polymesh-sdk/blob/56921667/src/api/entities/Identity/TokenPermissions.ts#L224)

Retrieve this Identity's Permission Group for a specific Security Token

**Parameters:**

▪ **\_\_namedParameters**: *object*

| Name    | Type                                                                                      |
| ------- | ----------------------------------------------------------------------------------------- |
| `token` | string \| [SecurityToken](/polymesh-sdk-api-reference/docs-v9/classes/securitytoken.md)‹› |

**Returns:** *Promise‹*[*CustomPermissionGroup*](/polymesh-sdk-api-reference/docs-v9/classes/custompermissiongroup.md) *|* [*KnownPermissionGroup*](/polymesh-sdk-api-reference/docs-v9/classes/knownpermissiongroup.md)*›*

### hasPermissions

▸ **hasPermissions**(`args`: object): *Promise‹boolean›*

*Defined in* [*src/api/entities/Identity/TokenPermissions.ts:101*](https://github.com/PolymathNetwork/polymesh-sdk/blob/56921667/src/api/entities/Identity/TokenPermissions.ts#L101)

Check whether this Identity has specific transaction Permissions over a Security Token

**Parameters:**

▪ **args**: *object*

| Name           | Type                                                                                    |
| -------------- | --------------------------------------------------------------------------------------- |
| `token`        | [SecurityToken](/polymesh-sdk-api-reference/docs-v9/classes/securitytoken.md) \| string |
| `transactions` | TxTag\[] \| null                                                                        |

**Returns:** *Promise‹boolean›*

### setGroup

▸ **setGroup**(`args`: [SetPermissionGroupParams](/polymesh-sdk-api-reference/docs-v9/interfaces/setpermissiongroupparams.md), `opts?`: [ProcedureOpts](/polymesh-sdk-api-reference/docs-v9/interfaces/procedureopts.md)): *Promise‹*[*TransactionQueue*](/polymesh-sdk-api-reference/docs-v9/classes/transactionqueue.md)*‹*[*CustomPermissionGroup*](/polymesh-sdk-api-reference/docs-v9/classes/custompermissiongroup.md) *|* [*KnownPermissionGroup*](/polymesh-sdk-api-reference/docs-v9/classes/knownpermissiongroup.md)*››*

*Defined in* [*src/api/entities/Identity/TokenPermissions.ts:301*](https://github.com/PolymathNetwork/polymesh-sdk/blob/56921667/src/api/entities/Identity/TokenPermissions.ts#L301)

Assign this Identity to a different Permission Group for a given Security Token

**`note`** this method is of type [ProcedureMethod](/polymesh-sdk-api-reference/docs-v9/interfaces/proceduremethod.md), which means you can call `setGroup.checkAuthorization` on it to see whether the Current Account has the required permissions to run it

**Parameters:**

| Name    | Type                                                                                                   |
| ------- | ------------------------------------------------------------------------------------------------------ |
| `args`  | [SetPermissionGroupParams](/polymesh-sdk-api-reference/docs-v9/interfaces/setpermissiongroupparams.md) |
| `opts?` | [ProcedureOpts](/polymesh-sdk-api-reference/docs-v9/interfaces/procedureopts.md)                       |

**Returns:** *Promise‹*[*TransactionQueue*](/polymesh-sdk-api-reference/docs-v9/classes/transactionqueue.md)*‹*[*CustomPermissionGroup*](/polymesh-sdk-api-reference/docs-v9/classes/custompermissiongroup.md) *|* [*KnownPermissionGroup*](/polymesh-sdk-api-reference/docs-v9/classes/knownpermissiongroup.md)*››*

### waive

▸ **waive**(`args`: [WaivePermissionsParams](/polymesh-sdk-api-reference/docs-v9/interfaces/waivepermissionsparams.md), `opts?`: [ProcedureOpts](/polymesh-sdk-api-reference/docs-v9/interfaces/procedureopts.md)): *Promise‹*[*TransactionQueue*](/polymesh-sdk-api-reference/docs-v9/classes/transactionqueue.md)*‹void››*

*Defined in* [*src/api/entities/Identity/TokenPermissions.ts:291*](https://github.com/PolymathNetwork/polymesh-sdk/blob/56921667/src/api/entities/Identity/TokenPermissions.ts#L291)

Abdicate from the current Permissions Group for a given Security Token. This means that this Identity will no longer have any permissions over said Token

**`note`** this method is of type [ProcedureMethod](/polymesh-sdk-api-reference/docs-v9/interfaces/proceduremethod.md), which means you can call `waive.checkAuthorization` on it to see whether the Current Account has the required permissions to run it

**Parameters:**

| Name    | Type                                                                                               |
| ------- | -------------------------------------------------------------------------------------------------- |
| `args`  | [WaivePermissionsParams](/polymesh-sdk-api-reference/docs-v9/interfaces/waivepermissionsparams.md) |
| `opts?` | [ProcedureOpts](/polymesh-sdk-api-reference/docs-v9/interfaces/procedureopts.md)                   |

**Returns:** *Promise‹*[*TransactionQueue*](/polymesh-sdk-api-reference/docs-v9/classes/transactionqueue.md)*‹void››*
