# 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››*


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://developers.polymath.network/classic-sdk/beta/external-modules/_entities_securitytoken_controller_.controller.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
