> For the complete documentation index, see [llms.txt](https://developers.polymath.network/classic-sdk/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/classic-sdk/classes/_entities_securitytoken_transfers_transfers_.transfers.md).

# Transfers

Namespace that handles all Transfer related functionality

## Hierarchy

* [SubModule](/classic-sdk/classes/_entities_securitytoken_submodule_.submodule.md)

  ↳ **Transfers**

## Index

### Constructors

* [constructor](/classic-sdk/classes/_entities_securitytoken_transfers_transfers_.transfers.md#constructor)

### Properties

* [context](/classic-sdk/classes/_entities_securitytoken_transfers_transfers_.transfers.md#protected-context)
* [restrictions](/classic-sdk/classes/_entities_securitytoken_transfers_transfers_.transfers.md#restrictions)
* [securityToken](/classic-sdk/classes/_entities_securitytoken_transfers_transfers_.transfers.md#protected-securitytoken)

### Methods

* [canTransfer](/classic-sdk/classes/_entities_securitytoken_transfers_transfers_.transfers.md#cantransfer)
* [freeze](/classic-sdk/classes/_entities_securitytoken_transfers_transfers_.transfers.md#freeze)
* [frozen](/classic-sdk/classes/_entities_securitytoken_transfers_transfers_.transfers.md#frozen)
* [getStatusCode](/classic-sdk/classes/_entities_securitytoken_transfers_transfers_.transfers.md#private-getstatuscode)
* [signKycData](/classic-sdk/classes/_entities_securitytoken_transfers_transfers_.transfers.md#signkycdata)
* [transfer](/classic-sdk/classes/_entities_securitytoken_transfers_transfers_.transfers.md#transfer)
* [unfreeze](/classic-sdk/classes/_entities_securitytoken_transfers_transfers_.transfers.md#unfreeze)

## Constructors

### constructor

\+ **new Transfers**(`securityToken`: [SecurityToken](/classic-sdk/classes/_entities_securitytoken_securitytoken_.securitytoken.md), `context`: [Context](/classic-sdk/classes/_context_.context.md)): [*Transfers*](/classic-sdk/classes/_entities_securitytoken_transfers_transfers_.transfers.md)

*Overrides* [*SubModule*](/classic-sdk/classes/_entities_securitytoken_submodule_.submodule.md)*.*[*constructor*](/classic-sdk/classes/_entities_securitytoken_submodule_.submodule.md#constructor)

*Defined in* [*src/entities/SecurityToken/Transfers/Transfers.ts:21*](https://github.com/PolymathNetwork/polymath-sdk/blob/e8bbc1e/src/entities/SecurityToken/Transfers/Transfers.ts#L21)

Create a new Transfers instance

**Parameters:**

| Name            | Type                                                                                          |
| --------------- | --------------------------------------------------------------------------------------------- |
| `securityToken` | [SecurityToken](/classic-sdk/classes/_entities_securitytoken_securitytoken_.securitytoken.md) |
| `context`       | [Context](/classic-sdk/classes/_context_.context.md)                                          |

**Returns:** [*Transfers*](/classic-sdk/classes/_entities_securitytoken_transfers_transfers_.transfers.md)

## Properties

### `Protected` context

• **context**: [*Context*](/classic-sdk/classes/_context_.context.md)

*Inherited from* [*SubModule*](/classic-sdk/classes/_entities_securitytoken_submodule_.submodule.md)*.*[*context*](/classic-sdk/classes/_entities_securitytoken_submodule_.submodule.md#protected-context)

*Defined in* [*src/entities/SecurityToken/SubModule.ts:10*](https://github.com/PolymathNetwork/polymath-sdk/blob/e8bbc1e/src/entities/SecurityToken/SubModule.ts#L10)

### restrictions

• **restrictions**: [*Restrictions*](/classic-sdk/classes/_entities_securitytoken_transfers_restrictions_restrictions_.restrictions.md)

*Defined in* [*src/entities/SecurityToken/Transfers/Transfers.ts:21*](https://github.com/PolymathNetwork/polymath-sdk/blob/e8bbc1e/src/entities/SecurityToken/Transfers/Transfers.ts#L21)

### `Protected` securityToken

• **securityToken**: [*SecurityToken*](/classic-sdk/classes/_entities_securitytoken_securitytoken_.securitytoken.md)

*Inherited from* [*SubModule*](/classic-sdk/classes/_entities_securitytoken_submodule_.submodule.md)*.*[*securityToken*](/classic-sdk/classes/_entities_securitytoken_submodule_.submodule.md#protected-securitytoken)

*Defined in* [*src/entities/SecurityToken/SubModule.ts:8*](https://github.com/PolymathNetwork/polymath-sdk/blob/e8bbc1e/src/entities/SecurityToken/SubModule.ts#L8)

## Methods

### canTransfer

▸ **canTransfer**(`args`: object): *Promise‹object›*

*Defined in* [*src/entities/SecurityToken/Transfers/Transfers.ts:130*](https://github.com/PolymathNetwork/polymath-sdk/blob/e8bbc1e/src/entities/SecurityToken/Transfers/Transfers.ts#L130)

Validate if a transfer of Security Tokens can be performed. This takes all present transfer restrictions into account

**Parameters:**

▪ **args**: *object*

| Name    | Type                |
| ------- | ------------------- |
| `data?` | undefined \| string |
| `from?` | undefined \| string |
| `to`    | string              |
| `value` | BigNumber           |

**Returns:** *Promise‹object›*

### freeze

▸ **freeze**(): *Promise‹*[*TransactionQueue*](/classic-sdk/classes/_entities_transactionqueue_.transactionqueue.md)*‹*[*ToggleFreezeTransfersProcedureArgs*](/classic-sdk/interfaces/_types_index_.togglefreezetransfersprocedureargs.md)*, void››*

*Defined in* [*src/entities/SecurityToken/Transfers/Transfers.ts:114*](https://github.com/PolymathNetwork/polymath-sdk/blob/e8bbc1e/src/entities/SecurityToken/Transfers/Transfers.ts#L114)

Freeze transfers of the security token

**Returns:** *Promise‹*[*TransactionQueue*](/classic-sdk/classes/_entities_transactionqueue_.transactionqueue.md)*‹*[*ToggleFreezeTransfersProcedureArgs*](/classic-sdk/interfaces/_types_index_.togglefreezetransfersprocedureargs.md)*, void››*

### frozen

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

*Defined in* [*src/entities/SecurityToken/Transfers/Transfers.ts:89*](https://github.com/PolymathNetwork/polymath-sdk/blob/e8bbc1e/src/entities/SecurityToken/Transfers/Transfers.ts#L89)

Retrieve whether the transfer of tokens is frozen or not Can be modified with `freeze` and `unfreeze`

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

### `Private` getStatusCode

▸ **getStatusCode**(`statusCode`: RawTransferStatusCode): [*TransferStatusCode*](/classic-sdk/enums/_types_index_.transferstatuscode.md)

*Defined in* [*src/entities/SecurityToken/Transfers/Transfers.ts:168*](https://github.com/PolymathNetwork/polymath-sdk/blob/e8bbc1e/src/entities/SecurityToken/Transfers/Transfers.ts#L168)

**Parameters:**

| Name         | Type                  |
| ------------ | --------------------- |
| `statusCode` | RawTransferStatusCode |

**Returns:** [*TransferStatusCode*](/classic-sdk/enums/_types_index_.transferstatuscode.md)

### signKycData

▸ **signKycData**(`args`: object): *Promise‹*[*TransactionQueue*](/classic-sdk/classes/_entities_transactionqueue_.transactionqueue.md)*‹*[*SignTransferDataProcedureArgs*](/classic-sdk/interfaces/_types_index_.signtransferdataprocedureargs.md)*, void››*

*Defined in* [*src/entities/SecurityToken/Transfers/Transfers.ts:47*](https://github.com/PolymathNetwork/polymath-sdk/blob/e8bbc1e/src/entities/SecurityToken/Transfers/Transfers.ts#L47)

Generate a signature string based on dynamic KYC data. This data can be used to:

* Check if a transfer can be made (using `canTransfer`) with different KYC data than is currently present
* Actually make a transfer (using `transfer`) with different KYC data than is currently present (in this case, the existing KYC data will be overwritten)

The signature can be generated by a third party other than the issuer. The signing wallet should have permission to modify KYC data (via the Tokenholders Administrator role) Otherwise, the new data will be disregarded

**Note that, when supplying KYC data for signing, ALL investor entries should be supplied (even those that remain the same)**

**Parameters:**

▪ **args**: *object*

| Name        | Type                                                                                                                                                                                                                                                |
| ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `kycData`   | [Omit](/classic-sdk/external-modules/_types_index_.md#omit)‹[Omit](/classic-sdk/external-modules/_types_index_.md#omit)‹[TokenholderDataEntry](/classic-sdk/interfaces/_types_index_.tokenholderdataentry.md), "canBuyFromSto"›, "isAccredited"›\[] |
| `validFrom` | Date                                                                                                                                                                                                                                                |
| `validTo`   | Date                                                                                                                                                                                                                                                |

**Returns:** *Promise‹*[*TransactionQueue*](/classic-sdk/classes/_entities_transactionqueue_.transactionqueue.md)*‹*[*SignTransferDataProcedureArgs*](/classic-sdk/interfaces/_types_index_.signtransferdataprocedureargs.md)*, void››*

### transfer

▸ **transfer**(`args`: object): *Promise‹*[*TransactionQueue*](/classic-sdk/classes/_entities_transactionqueue_.transactionqueue.md)*‹*[*TransferSecurityTokensProcedureArgs*](/classic-sdk/interfaces/_types_index_.transfersecuritytokensprocedureargs.md)*, void››*

*Defined in* [*src/entities/SecurityToken/Transfers/Transfers.ts:72*](https://github.com/PolymathNetwork/polymath-sdk/blob/e8bbc1e/src/entities/SecurityToken/Transfers/Transfers.ts#L72)

Transfer an amount of Security Tokens to a specified address

**Parameters:**

▪ **args**: *object*

| Name     | Type                |
| -------- | ------------------- |
| `amount` | BigNumber           |
| `data?`  | undefined \| string |
| `from?`  | undefined \| string |
| `to`     | string              |

**Returns:** *Promise‹*[*TransactionQueue*](/classic-sdk/classes/_entities_transactionqueue_.transactionqueue.md)*‹*[*TransferSecurityTokensProcedureArgs*](/classic-sdk/interfaces/_types_index_.transfersecuritytokensprocedureargs.md)*, void››*

### unfreeze

▸ **unfreeze**(): *Promise‹*[*TransactionQueue*](/classic-sdk/classes/_entities_transactionqueue_.transactionqueue.md)*‹*[*ToggleFreezeTransfersProcedureArgs*](/classic-sdk/interfaces/_types_index_.togglefreezetransfersprocedureargs.md)*, void››*

*Defined in* [*src/entities/SecurityToken/Transfers/Transfers.ts:201*](https://github.com/PolymathNetwork/polymath-sdk/blob/e8bbc1e/src/entities/SecurityToken/Transfers/Transfers.ts#L201)

Unfreeze transfers of the security token

**Returns:** *Promise‹*[*TransactionQueue*](/classic-sdk/classes/_entities_transactionqueue_.transactionqueue.md)*‹*[*ToggleFreezeTransfersProcedureArgs*](/classic-sdk/interfaces/_types_index_.togglefreezetransfersprocedureargs.md)*, void››*
