> 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_controller_.controller.md).

# Controller

Namespace that handles all Controller related functionality

## Hierarchy

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

  ↳ **Controller**

## Index

### Constructors

* [constructor](/classic-sdk/classes/_entities_securitytoken_controller_.controller.md#constructor)

### Properties

* [context](/classic-sdk/classes/_entities_securitytoken_controller_.controller.md#protected-context)
* [securityToken](/classic-sdk/classes/_entities_securitytoken_controller_.controller.md#protected-securitytoken)

### Methods

* [disable](/classic-sdk/classes/_entities_securitytoken_controller_.controller.md#disable)
* [modifyController](/classic-sdk/classes/_entities_securitytoken_controller_.controller.md#modifycontroller)
* [redeem](/classic-sdk/classes/_entities_securitytoken_controller_.controller.md#redeem)
* [signDisableAck](/classic-sdk/classes/_entities_securitytoken_controller_.controller.md#signdisableack)
* [transfer](/classic-sdk/classes/_entities_securitytoken_controller_.controller.md#transfer)

## Constructors

### constructor

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

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

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

Create a new SubModule instance

**Parameters:**

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

**Returns:** [*Controller*](/classic-sdk/classes/_entities_securitytoken_controller_.controller.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)

### `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

### disable

▸ **disable**(`args?`: undefined | object): *Promise‹*[*TransactionQueue*](/classic-sdk/classes/_entities_transactionqueue_.transactionqueue.md)*‹*[*DisableControllerProcedureArgs*](/classic-sdk/interfaces/_types_index_.disablecontrollerprocedureargs.md)*, void››*

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

Permanently disable controller functionality

**Parameters:**

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

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

### modifyController

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

*Defined in* [*src/entities/SecurityToken/Controller.ts:20*](https://github.com/PolymathNetwork/polymath-sdk/blob/e8bbc1e/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*](/classic-sdk/classes/_entities_transactionqueue_.transactionqueue.md)*‹*[*SetControllerProcedureArgs*](/classic-sdk/interfaces/_types_index_.setcontrollerprocedureargs.md)*, void››*

### redeem

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

*Defined in* [*src/entities/SecurityToken/Controller.ts:77*](https://github.com/PolymathNetwork/polymath-sdk/blob/e8bbc1e/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*](/classic-sdk/classes/_entities_transactionqueue_.transactionqueue.md)*‹*[*ControllerRedeemProcedureArgs*](/classic-sdk/interfaces/_types_index_.controllerredeemprocedureargs.md)*, void››*

### signDisableAck

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

*Defined in* [*src/entities/SecurityToken/Controller.ts:95*](https://github.com/PolymathNetwork/polymath-sdk/blob/e8bbc1e/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*](/classic-sdk/classes/_entities_transactionqueue_.transactionqueue.md)*‹*[*SignDisableControllerAckProcedureArgs*](/classic-sdk/interfaces/_types_index_.signdisablecontrollerackprocedureargs.md)*, void››*

### transfer

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

*Defined in* [*src/entities/SecurityToken/Controller.ts:49*](https://github.com/PolymathNetwork/polymath-sdk/blob/e8bbc1e/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*](/classic-sdk/classes/_entities_transactionqueue_.transactionqueue.md)*‹*[*ControllerTransferProcedureArgs*](/classic-sdk/interfaces/_types_index_.controllertransferprocedureargs.md)*, void››*
