> 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/beta/external-modules/_entities_securitytoken_controller_.controller.md).

# Controller

Namespace that handles all Controller related functionality

## Hierarchy

* [SubModule](broken://pages/-M-tw-_imoK_Iy9YVBmV)

  ↳ **Controller**

## Index

### Constructors

* [constructor](broken://pages/-M-tw-__FdooZQkZiJyi#constructor)

### Properties

* [context](broken://pages/-M-tw-__FdooZQkZiJyi#protected-context)
* [securityToken](broken://pages/-M-tw-__FdooZQkZiJyi#protected-securitytoken)

### Methods

* [disable](broken://pages/-M-tw-__FdooZQkZiJyi#disable)
* [modifyController](broken://pages/-M-tw-__FdooZQkZiJyi#modifycontroller)
* [redeem](broken://pages/-M-tw-__FdooZQkZiJyi#redeem)
* [signDisableAck](broken://pages/-M-tw-__FdooZQkZiJyi#signdisableack)
* [transfer](broken://pages/-M-tw-__FdooZQkZiJyi#transfer)

## Constructors

### constructor

\+ **new Controller**(`securityToken`: [SecurityToken](broken://pages/-M-tw-_gGGX7EAygI8FP), `context`: [Context](broken://pages/-M-tw-_Q7PZbtE8P8eVD)): [*Controller*](broken://pages/-M-tw-__FdooZQkZiJyi)

*Inherited from* [*SubModule*](broken://pages/-M-tw-_imoK_Iy9YVBmV)*.*[*constructor*](broken://pages/-M-tw-_imoK_Iy9YVBmV#constructor)

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

Create a new SubModule instance

**Parameters:**

| Name            | Type                                                 |
| --------------- | ---------------------------------------------------- |
| `securityToken` | [SecurityToken](broken://pages/-M-tw-_gGGX7EAygI8FP) |
| `context`       | [Context](broken://pages/-M-tw-_Q7PZbtE8P8eVD)       |

**Returns:** [*Controller*](broken://pages/-M-tw-__FdooZQkZiJyi)

## Properties

### `Protected` context

• **context**: [*Context*](broken://pages/-M-tw-_Q7PZbtE8P8eVD)

*Inherited from* [*SubModule*](broken://pages/-M-tw-_imoK_Iy9YVBmV)*.*[*context*](broken://pages/-M-tw-_imoK_Iy9YVBmV#protected-context)

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

### `Protected` securityToken

• **securityToken**: [*SecurityToken*](broken://pages/-M-tw-_gGGX7EAygI8FP)

*Inherited from* [*SubModule*](broken://pages/-M-tw-_imoK_Iy9YVBmV)*.*[*securityToken*](broken://pages/-M-tw-_imoK_Iy9YVBmV#protected-securitytoken)

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

## Methods

### disable

▸ **disable**(`args?`: undefined | object): *Promise‹*[*TransactionQueue*](broken://pages/-M-tw-_ttRjEt_eA5M8H)*‹*[*DisableControllerProcedureArgs*](broken://pages/-M-tw-cJql_6Cvx3JwYt)*, void››*

*Defined in* [*src/entities/SecurityToken/Controller.ts:33*](https://github.com/PolymathNetwork/polymath-sdk/blob/550676f/src/entities/SecurityToken/Controller.ts#L33)

Permanently disable controller functionality

**Parameters:**

| Name    | Type                |
| ------- | ------------------- |
| `args?` | undefined \| object |

**Returns:** *Promise‹*[*TransactionQueue*](broken://pages/-M-tw-_ttRjEt_eA5M8H)*‹*[*DisableControllerProcedureArgs*](broken://pages/-M-tw-cJql_6Cvx3JwYt)*, void››*

### modifyController

▸ **modifyController**(`args`: object): *Promise‹*[*TransactionQueue*](broken://pages/-M-tw-_ttRjEt_eA5M8H)*‹*[*SetControllerProcedureArgs*](broken://pages/-M-tw-cpg-3PSJohmW2t)*, void››*

*Defined in* [*src/entities/SecurityToken/Controller.ts:20*](https://github.com/PolymathNetwork/polymath-sdk/blob/550676f/src/entities/SecurityToken/Controller.ts#L20)

Set the address of the Security Token's Controller. The controller may perform forced transfers

**Parameters:**

▪ **args**: *object*

| Name         | Type   |
| ------------ | ------ |
| `controller` | string |

**Returns:** *Promise‹*[*TransactionQueue*](broken://pages/-M-tw-_ttRjEt_eA5M8H)*‹*[*SetControllerProcedureArgs*](broken://pages/-M-tw-cpg-3PSJohmW2t)*, void››*

### redeem

▸ **redeem**(`args`: object): *Promise‹*[*TransactionQueue*](broken://pages/-M-tw-_ttRjEt_eA5M8H)*‹*[*ControllerRedeemProcedureArgs*](broken://pages/-M-tw-cDgEfVjlyktL2c)*, void››*

*Defined in* [*src/entities/SecurityToken/Controller.ts:77*](https://github.com/PolymathNetwork/polymath-sdk/blob/550676f/src/entities/SecurityToken/Controller.ts#L77)

Redeem (burn) an amount of tokens from a token holder. Only the Security Token's controller can call this This operation is subject to transfer restrictions and the amount is limited by the token holder's balance. `balanceOf(tokenHolder)` tokens) and potentially also need to respect other transfer restrictions.

**Parameters:**

▪ **args**: *object*

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

**Returns:** *Promise‹*[*TransactionQueue*](broken://pages/-M-tw-_ttRjEt_eA5M8H)*‹*[*ControllerRedeemProcedureArgs*](broken://pages/-M-tw-cDgEfVjlyktL2c)*, void››*

### signDisableAck

▸ **signDisableAck**(): *Promise‹*[*TransactionQueue*](broken://pages/-M-tw-_ttRjEt_eA5M8H)*‹*[*SignDisableControllerAckProcedureArgs*](broken://pages/-M-tw-cuN58Y4-8BD_YP)*, void››*

*Defined in* [*src/entities/SecurityToken/Controller.ts:95*](https://github.com/PolymathNetwork/polymath-sdk/blob/550676f/src/entities/SecurityToken/Controller.ts#L95)

Generate a signature string that can be used to permanently disable the Security Token's controller functionality

**Note that only the owner's signature is valid for this operation**

**Returns:** *Promise‹*[*TransactionQueue*](broken://pages/-M-tw-_ttRjEt_eA5M8H)*‹*[*SignDisableControllerAckProcedureArgs*](broken://pages/-M-tw-cuN58Y4-8BD_YP)*, void››*

### transfer

▸ **transfer**(`args`: object): *Promise‹*[*TransactionQueue*](broken://pages/-M-tw-_ttRjEt_eA5M8H)*‹*[*ControllerTransferProcedureArgs*](broken://pages/-M-tw-cE_fWqfoUNWygE)*, void››*

*Defined in* [*src/entities/SecurityToken/Controller.ts:49*](https://github.com/PolymathNetwork/polymath-sdk/blob/550676f/src/entities/SecurityToken/Controller.ts#L49)

Perform a forced transfer of tokens from one address to another. You must be the Security Token's controller to do this

**Parameters:**

▪ **args**: *object*

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

**Returns:** *Promise‹*[*TransactionQueue*](broken://pages/-M-tw-_ttRjEt_eA5M8H)*‹*[*ControllerTransferProcedureArgs*](broken://pages/-M-tw-cE_fWqfoUNWygE)*, void››*
