> 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-v3/classes/requirements.md).

# Requirements

Handles all Security Token Compliance Requirements related functionality

## Hierarchy

* Namespace‹[SecurityToken](/polymesh-sdk-api-reference/docs-v3/classes/securitytoken.md)›

  ↳ **Requirements**

## Index

### Properties

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

### Methods

* [arePaused](/polymesh-sdk-api-reference/docs-v3/classes/requirements.md#arepaused)
* [checkSettle](/polymesh-sdk-api-reference/docs-v3/classes/requirements.md#checksettle)
* [get](/polymesh-sdk-api-reference/docs-v3/classes/requirements.md#get)
* [pause](/polymesh-sdk-api-reference/docs-v3/classes/requirements.md#pause)
* [reset](/polymesh-sdk-api-reference/docs-v3/classes/requirements.md#reset)
* [set](/polymesh-sdk-api-reference/docs-v3/classes/requirements.md#set)
* [unpause](/polymesh-sdk-api-reference/docs-v3/classes/requirements.md#unpause)

## Properties

### `Protected` context

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

*Inherited from void*

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

### `Protected` parent

• **parent**: [*SecurityToken*](/polymesh-sdk-api-reference/docs-v3/classes/securitytoken.md)

*Inherited from void*

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

## Methods

### arePaused

▸ **arePaused**(): *Promise‹boolean›*

*Defined in* [*src/api/entities/SecurityToken/Compliance/Requirements.ts:183*](https://github.com/PolymathNetwork/polymesh-sdk/blob/1221e467/src/api/entities/SecurityToken/Compliance/Requirements.ts#L183)

Check whether asset compliance requirements are paused or not

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

### checkSettle

▸ **checkSettle**(`args`: object): *Promise‹Compliance›*

*Defined in* [*src/api/entities/SecurityToken/Compliance/Requirements.ts:153*](https://github.com/PolymathNetwork/polymesh-sdk/blob/1221e467/src/api/entities/SecurityToken/Compliance/Requirements.ts#L153)

Check whether the sender and receiver Identities in a transfer comply with all the requirements of this asset

**`note`** this does not take balances into account

**Parameters:**

▪ **args**: *object*

| Name    | Type                                                                          | Description                                                  |
| ------- | ----------------------------------------------------------------------------- | ------------------------------------------------------------ |
| `from?` | string \| [Identity](/polymesh-sdk-api-reference/docs-v3/classes/identity.md) | sender Identity (optional, defaults to the current Identity) |
| `to`    | string \| [Identity](/polymesh-sdk-api-reference/docs-v3/classes/identity.md) | receiver Identity                                            |

**Returns:** *Promise‹Compliance›*

### get

▸ **get**(): *Promise‹*[*Requirement*](/polymesh-sdk-api-reference/docs-v3/interfaces/requirement.md)*\[]›*

*Defined in* [*src/api/entities/SecurityToken/Compliance/Requirements.ts:53*](https://github.com/PolymathNetwork/polymesh-sdk/blob/1221e467/src/api/entities/SecurityToken/Compliance/Requirements.ts#L53)

Retrieve all of the Security Token's requirements

**`note`** can be subscribed to

**Returns:** *Promise‹*[*Requirement*](/polymesh-sdk-api-reference/docs-v3/interfaces/requirement.md)*\[]›*

▸ **get**(`callback`: [SubCallback](/polymesh-sdk-api-reference/docs-v3/globals.md#subcallback)‹[Requirement](/polymesh-sdk-api-reference/docs-v3/interfaces/requirement.md)\[]›): *Promise‹*[*UnsubCallback*](/polymesh-sdk-api-reference/docs-v3/globals.md#unsubcallback)*›*

*Defined in* [*src/api/entities/SecurityToken/Compliance/Requirements.ts:54*](https://github.com/PolymathNetwork/polymesh-sdk/blob/1221e467/src/api/entities/SecurityToken/Compliance/Requirements.ts#L54)

**Parameters:**

| Name       | Type                                                                                                                                                       |
| ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `callback` | [SubCallback](/polymesh-sdk-api-reference/docs-v3/globals.md#subcallback)‹[Requirement](/polymesh-sdk-api-reference/docs-v3/interfaces/requirement.md)\[]› |

**Returns:** *Promise‹*[*UnsubCallback*](/polymesh-sdk-api-reference/docs-v3/globals.md#unsubcallback)*›*

### pause

▸ **pause**(): *Promise‹*[*TransactionQueue*](/polymesh-sdk-api-reference/docs-v3/classes/transactionqueue.md)*‹*[*SecurityToken*](/polymesh-sdk-api-reference/docs-v3/classes/securitytoken.md)*››*

*Defined in* [*src/api/entities/SecurityToken/Compliance/Requirements.ts:126*](https://github.com/PolymathNetwork/polymesh-sdk/blob/1221e467/src/api/entities/SecurityToken/Compliance/Requirements.ts#L126)

Pause all the Security Token's requirements. This means that all transfers will be allowed until requirements are unpaused

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

### reset

▸ **reset**(): *Promise‹*[*TransactionQueue*](/polymesh-sdk-api-reference/docs-v3/classes/transactionqueue.md)*‹*[*SecurityToken*](/polymesh-sdk-api-reference/docs-v3/classes/securitytoken.md)*››*

*Defined in* [*src/api/entities/SecurityToken/Compliance/Requirements.ts:115*](https://github.com/PolymathNetwork/polymesh-sdk/blob/1221e467/src/api/entities/SecurityToken/Compliance/Requirements.ts#L115)

Detele all the current requirements for the Security Token.

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

### set

▸ **set**(`args`: [SetAssetRequirementsParams](/polymesh-sdk-api-reference/docs-v3/interfaces/setassetrequirementsparams.md)): *Promise‹*[*TransactionQueue*](/polymesh-sdk-api-reference/docs-v3/classes/transactionqueue.md)*‹*[*SecurityToken*](/polymesh-sdk-api-reference/docs-v3/classes/securitytoken.md)*››*

*Defined in* [*src/api/entities/SecurityToken/Compliance/Requirements.ts:40*](https://github.com/PolymathNetwork/polymesh-sdk/blob/1221e467/src/api/entities/SecurityToken/Compliance/Requirements.ts#L40)

Configure asset compliance requirements for the Security Token. This operation will replace all existing requirements with a new requirement set

This requires two transactions

**`example`** Say A, B, C, D and E are requirements and we arrange them as `[[A, B], [C, D], [E]]`. For a transfer to succeed, it must either comply with A AND B, C AND D, OR E.

**Parameters:**

| Name   | Type                                                                                                       |
| ------ | ---------------------------------------------------------------------------------------------------------- |
| `args` | [SetAssetRequirementsParams](/polymesh-sdk-api-reference/docs-v3/interfaces/setassetrequirementsparams.md) |

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

### unpause

▸ **unpause**(): *Promise‹*[*TransactionQueue*](/polymesh-sdk-api-reference/docs-v3/classes/transactionqueue.md)*‹*[*SecurityToken*](/polymesh-sdk-api-reference/docs-v3/classes/securitytoken.md)*››*

*Defined in* [*src/api/entities/SecurityToken/Compliance/Requirements.ts:137*](https://github.com/PolymathNetwork/polymesh-sdk/blob/1221e467/src/api/entities/SecurityToken/Compliance/Requirements.ts#L137)

Un-pause all the Security Token's current requirements

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