# api\_entities\_Asset\_CorporateActions.CorporateActions

[@polymeshassociation/polymesh-sdk](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/classes) / [Modules](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/modules) / [api/entities/Asset/CorporateActions](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/modules-1/api_entities_asset_corporateactions) / CorporateActions

## Class: CorporateActions

[api/entities/Asset/CorporateActions](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/modules-1/api_entities_asset_corporateactions).CorporateActions

Handles all Asset Corporate Actions related functionality

### Hierarchy

* `Namespace`<[`Asset`](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/classes/api_entities_asset.asset)>

  ↳ **`CorporateActions`**

### Table of contents

#### Properties

* [distributions](#distributions)

#### Methods

* [getAgents](#getagents)
* [getDefaultConfig](#getdefaultconfig)
* [remove](#remove)
* [removeAgent](#removeagent)
* [setAgent](#setagent)
* [setDefaultConfig](#setdefaultconfig)

### Properties

#### distributions

• **distributions**: [`Distributions`](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/classes/api_entities_asset_corporateactions_distributions.distributions)

**Defined in**

[api/entities/Asset/CorporateActions/index.ts:35](https://github.com/PolymathNetwork/polymesh-sdk/blob/31dfa0dc/src/api/entities/Asset/CorporateActions/index.ts#L35)

### Methods

#### getAgents

▸ **getAgents**(): `Promise`<[`Identity`](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/classes/api_entities_identity.identity)\[]>

Retrieve a list of agent Identities

**Returns**

`Promise`<[`Identity`](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/classes/api_entities_identity.identity)\[]>

**Defined in**

[api/entities/Asset/CorporateActions/index.ts:125](https://github.com/PolymathNetwork/polymesh-sdk/blob/31dfa0dc/src/api/entities/Asset/CorporateActions/index.ts#L125)

***

#### getDefaultConfig

▸ **getDefaultConfig**(): `Promise`<[`CorporateActionDefaultConfig`](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/interfaces/api_entities_asset_corporateactions_types.corporateactiondefaultconfig)>

Retrieve default config comprising of targets, global tax withholding percentage and per-Identity tax withholding percentages.

**`note`** This config is applied to every Corporate Action that is created until they are modified. Modifying the default config does not impact existing Corporate Actions. When creating a Corporate Action, values passed explicitly will override this default config

**Returns**

`Promise`<[`CorporateActionDefaultConfig`](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/interfaces/api_entities_asset_corporateactions_types.corporateactiondefaultconfig)>

**Defined in**

[api/entities/Asset/CorporateActions/index.ts:160](https://github.com/PolymathNetwork/polymesh-sdk/blob/31dfa0dc/src/api/entities/Asset/CorporateActions/index.ts#L160)

***

#### remove

▸ **remove**(`args`, `opts?`): `Promise`<`TransactionQueue`<`void`, `void`, `unknown`\[]\[]>>

Remove a Corporate Action

**`note`** this method is of type [ProcedureMethod](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/interfaces/types.proceduremethod), which means you can call [remove.checkAuthorization](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/interfaces/types.proceduremethod#checkauthorization) on it to see whether the signing Account and Identity have the required roles and permissions to run it

**Parameters**

| Name    | Type                                                                                                                                                                                   |
| ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `args`  | [`RemoveCorporateActionParams`](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/interfaces/api_procedures_removecorporateaction.removecorporateactionparams) |
| `opts?` | [`ProcedureOpts`](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/interfaces/types.procedureopts)                                                            |

**Returns**

`Promise`<`TransactionQueue`<`void`, `void`, `unknown`\[]\[]>>

**Defined in**

[api/entities/Asset/CorporateActions/index.ts:118](https://github.com/PolymathNetwork/polymesh-sdk/blob/31dfa0dc/src/api/entities/Asset/CorporateActions/index.ts#L118)

***

#### removeAgent

▸ **removeAgent**(`opts?`): `Promise`<`TransactionQueue`<`void`, `void`, `unknown`\[]\[]>>

Remove the Corporate Actions Agent of the Asset

**`note`** this action will leave the Asset owner as the Corporate Actions Agent

**`deprecated`**

**`note`** this method is of type [NoArgsProcedureMethod](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/interfaces/types.noargsproceduremethod), which means you can call [removeAgent.checkAuthorization](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/interfaces/types.noargsproceduremethod#checkauthorization) on it to see whether the signing Account and Identity have the required roles and permissions to run it

**Parameters**

| Name    | Type                                                                                                                        |
| ------- | --------------------------------------------------------------------------------------------------------------------------- |
| `opts?` | [`ProcedureOpts`](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/interfaces/types.procedureopts) |

**Returns**

`Promise`<`TransactionQueue`<`void`, `void`, `unknown`\[]\[]>>

**Defined in**

[api/entities/Asset/CorporateActions/index.ts:108](https://github.com/PolymathNetwork/polymesh-sdk/blob/31dfa0dc/src/api/entities/Asset/CorporateActions/index.ts#L108)

***

#### setAgent

▸ **setAgent**(`args`, `opts?`): `Promise`<`TransactionQueue`<`void`, `void`, `unknown`\[]\[]>>

Assign a new Corporate Actions Agent for the Asset

**`note`** this may create [Authorization Requests](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/classes/api_entities_authorizationrequest.authorizationrequest) which have to be accepted by the `target` Identity. An [Account](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/classes/api_entities_account.account) or [Identity](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/classes/api_entities_identity.identity) can fetch its pending Authorization Requests by calling [authorizations.getReceived](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/api_entities_common_namespaces_authorizations.authorizations#getreceived). Also, an Account or Identity can directly fetch the details of an Authorization Request by calling [authorizations.getOne](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/api_entities_common_namespaces_authorizations.authorizations#getone)

**`deprecated`** in favor of `inviteAgent`

**`note`** this method is of type [ProcedureMethod](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/interfaces/types.proceduremethod), which means you can call [setAgent.checkAuthorization](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/interfaces/types.proceduremethod#checkauthorization) on it to see whether the signing Account and Identity have the required roles and permissions to run it

**Parameters**

| Name    | Type                                                                                                                                                                                                     |
| ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `args`  | [`ModifyCorporateActionsAgentParams`](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/interfaces/api_procedures_modifycorporateactionsagent.modifycorporateactionsagentparams) |
| `opts?` | [`ProcedureOpts`](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/interfaces/types.procedureopts)                                                                              |

**Returns**

`Promise`<`TransactionQueue`<`void`, `void`, `unknown`\[]\[]>>

**Defined in**

[api/entities/Asset/CorporateActions/index.ts:94](https://github.com/PolymathNetwork/polymesh-sdk/blob/31dfa0dc/src/api/entities/Asset/CorporateActions/index.ts#L94)

***

#### setDefaultConfig

▸ **setDefaultConfig**(`args`, `opts?`): `Promise`<`TransactionQueue`<`void`, `void`, `unknown`\[]\[]>>

Assign default config values(targets, global tax withholding percentage and per-Identity tax withholding percentages)

**`note`** These config values are applied to every Corporate Action that is created until they are modified. Modifying these values does not impact existing Corporate Actions. When creating a Corporate Action, values passed explicitly will override these default config values

**`note`** this method is of type [ProcedureMethod](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/interfaces/types.proceduremethod), which means you can call [setDefaultConfig.checkAuthorization](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/interfaces/types.proceduremethod#checkauthorization) on it to see whether the signing Account and Identity have the required roles and permissions to run it

**Parameters**

| Name    | Type                                                                                                                                                                                  |
| ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `args`  | [`ModifyCaDefaultConfigParams`](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/modules-1/api_procedures_modifycadefaultconfig#modifycadefaultconfigparams) |
| `opts?` | [`ProcedureOpts`](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/interfaces/types.procedureopts)                                                           |

**Returns**

`Promise`<`TransactionQueue`<`void`, `void`, `unknown`\[]\[]>>

**Defined in**

[api/entities/Asset/CorporateActions/index.ts:78](https://github.com/PolymathNetwork/polymesh-sdk/blob/31dfa0dc/src/api/entities/Asset/CorporateActions/index.ts#L78)
