> For the complete documentation index, see [llms.txt](https://developers.polymath.network/polymesh-sdk-api-reference/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/polymesh-sdk-api-reference/docs-alpha/classes/api_entities_corporateactionbase.corporateactionbase.md).

# api\_entities\_CorporateActionBase.CorporateActionBase

[@polymeshassociation/polymesh-sdk](/polymesh-sdk-api-reference/docs-alpha/classes.md) / [Modules](/polymesh-sdk-api-reference/docs-alpha/modules.md) / [api/entities/CorporateActionBase](/polymesh-sdk-api-reference/docs-alpha/modules-1/api_entities_corporateactionbase.md) / CorporateActionBase

## Class: CorporateActionBase

[api/entities/CorporateActionBase](/polymesh-sdk-api-reference/docs-alpha/modules-1/api_entities_corporateactionbase.md).CorporateActionBase

Represents an action initiated by the issuer of an Asset which may affect the positions of the Asset Holders

### Hierarchy

* [`Entity`](/polymesh-sdk-api-reference/docs-alpha/classes/api_entities_entity.entity.md)<[`UniqueIdentifiers`](/polymesh-sdk-api-reference/docs-alpha/interfaces/api_entities_corporateactionbase.uniqueidentifiers.md), `unknown`>

  ↳ **`CorporateActionBase`**

  ↳↳ [`CorporateAction`](/polymesh-sdk-api-reference/docs-alpha/classes/api_entities_corporateaction.corporateaction.md)

  ↳↳ [`DividendDistribution`](/polymesh-sdk-api-reference/docs-alpha/classes/api_entities_dividenddistribution.dividenddistribution.md)

### Table of contents

#### Properties

* [asset](#asset)
* [declarationDate](#declarationdate)
* [defaultTaxWithholding](#defaulttaxwithholding)
* [description](#description)
* [id](#id)
* [targets](#targets)
* [taxWithholdings](#taxwithholdings)
* [uuid](#uuid)

#### Methods

* [checkpoint](#checkpoint)
* [exists](#exists)
* [isEqual](#isequal)
* [linkDocuments](#linkdocuments)
* [modifyCheckpoint](#modifycheckpoint)
* [toHuman](#tohuman)
* [generateUuid](#generateuuid)
* [unserialize](#unserialize)

### Properties

#### asset

• **asset**: [`Asset`](/polymesh-sdk-api-reference/docs-alpha/classes/api_entities_asset.asset.md)

Asset affected by this Corporate Action

**Defined in**

[api/entities/CorporateActionBase/index.ts:77](https://github.com/PolymathNetwork/polymesh-sdk/blob/31dfa0dc/src/api/entities/CorporateActionBase/index.ts#L77)

***

#### declarationDate

• **declarationDate**: `Date`

date at which the Corporate Action was created

**Defined in**

[api/entities/CorporateActionBase/index.ts:82](https://github.com/PolymathNetwork/polymesh-sdk/blob/31dfa0dc/src/api/entities/CorporateActionBase/index.ts#L82)

***

#### defaultTaxWithholding

• **defaultTaxWithholding**: `BigNumber`

default percentage (0-100) of tax withholding for this Corporate Action

**Defined in**

[api/entities/CorporateActionBase/index.ts:98](https://github.com/PolymathNetwork/polymesh-sdk/blob/31dfa0dc/src/api/entities/CorporateActionBase/index.ts#L98)

***

#### description

• **description**: `string`

brief text description of the Corporate Action

**Defined in**

[api/entities/CorporateActionBase/index.ts:87](https://github.com/PolymathNetwork/polymesh-sdk/blob/31dfa0dc/src/api/entities/CorporateActionBase/index.ts#L87)

***

#### id

• **id**: `BigNumber`

internal Corporate Action ID

**Defined in**

[api/entities/CorporateActionBase/index.ts:72](https://github.com/PolymathNetwork/polymesh-sdk/blob/31dfa0dc/src/api/entities/CorporateActionBase/index.ts#L72)

***

#### targets

• **targets**: [`CorporateActionTargets`](/polymesh-sdk-api-reference/docs-alpha/interfaces/api_entities_corporateactionbase_types.corporateactiontargets.md)

Asset Holder Identities related to this Corporate action. If the treatment is `Exclude`, the Identities in the array will not be targeted by the Action, Identities not in the array will be targeted, and vice versa

**Defined in**

[api/entities/CorporateActionBase/index.ts:93](https://github.com/PolymathNetwork/polymesh-sdk/blob/31dfa0dc/src/api/entities/CorporateActionBase/index.ts#L93)

***

#### taxWithholdings

• **taxWithholdings**: [`TaxWithholding`](/polymesh-sdk-api-reference/docs-alpha/interfaces/api_entities_corporateactionbase_types.taxwithholding.md)\[]

percentage (0-100) of tax withholding per Identity. Any Identity not present in this array uses the default tax withholding percentage

**Defined in**

[api/entities/CorporateActionBase/index.ts:104](https://github.com/PolymathNetwork/polymesh-sdk/blob/31dfa0dc/src/api/entities/CorporateActionBase/index.ts#L104)

***

#### uuid

• **uuid**: `string`

**Inherited from**

[Entity](/polymesh-sdk-api-reference/docs-alpha/classes/api_entities_entity.entity.md).[uuid](/polymesh-sdk-api-reference/docs-alpha/classes/api_entities_entity.entity.md#uuid)

**Defined in**

[api/entities/Entity.ts:46](https://github.com/PolymathNetwork/polymesh-sdk/blob/31dfa0dc/src/api/entities/Entity.ts#L46)

### Methods

#### checkpoint

▸ **checkpoint**(): `Promise`<`null` | [`CheckpointSchedule`](/polymesh-sdk-api-reference/docs-alpha/classes/api_entities_checkpointschedule.checkpointschedule.md) | [`Checkpoint`](/polymesh-sdk-api-reference/docs-alpha/classes/api_entities_checkpoint.checkpoint.md)>

Retrieve the Checkpoint associated with this Corporate Action. If the Checkpoint is scheduled and has not been created yet, the corresponding CheckpointSchedule is returned instead. A null value means the Corporate Action was created without an associated Checkpoint

**Returns**

`Promise`<`null` | [`CheckpointSchedule`](/polymesh-sdk-api-reference/docs-alpha/classes/api_entities_checkpointschedule.checkpointschedule.md) | [`Checkpoint`](/polymesh-sdk-api-reference/docs-alpha/classes/api_entities_checkpoint.checkpoint.md)>

**Defined in**

[api/entities/CorporateActionBase/index.ts:183](https://github.com/PolymathNetwork/polymesh-sdk/blob/31dfa0dc/src/api/entities/CorporateActionBase/index.ts#L183)

***

#### exists

▸ **exists**(): `Promise`<`boolean`>

Determine whether this Corporate Action exists on chain

**Returns**

`Promise`<`boolean`>

**Overrides**

[Entity](/polymesh-sdk-api-reference/docs-alpha/classes/api_entities_entity.entity.md).[exists](/polymesh-sdk-api-reference/docs-alpha/classes/api_entities_entity.entity.md#exists)

**Defined in**

[api/entities/CorporateActionBase/index.ts:172](https://github.com/PolymathNetwork/polymesh-sdk/blob/31dfa0dc/src/api/entities/CorporateActionBase/index.ts#L172)

***

#### isEqual

▸ **isEqual**(`entity`): `boolean`

Determine whether this Entity is the same as another one

**Parameters**

| Name     | Type                                                                                                           |
| -------- | -------------------------------------------------------------------------------------------------------------- |
| `entity` | [`Entity`](/polymesh-sdk-api-reference/docs-alpha/classes/api_entities_entity.entity.md)<`unknown`, `unknown`> |

**Returns**

`boolean`

**Inherited from**

[Entity](/polymesh-sdk-api-reference/docs-alpha/classes/api_entities_entity.entity.md).[isEqual](/polymesh-sdk-api-reference/docs-alpha/classes/api_entities_entity.entity.md#isequal)

**Defined in**

[api/entities/Entity.ts:61](https://github.com/PolymathNetwork/polymesh-sdk/blob/31dfa0dc/src/api/entities/Entity.ts#L61)

***

#### linkDocuments

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

Link a list of documents to this corporate action

**`note`** any previous links are removed in favor of the new list

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

**Parameters**

| Name    | Type                                                                                                                  |
| ------- | --------------------------------------------------------------------------------------------------------------------- |
| `args`  | [`LinkCaDocsParams`](/polymesh-sdk-api-reference/docs-alpha/interfaces/api_procedures_linkcadocs.linkcadocsparams.md) |
| `opts?` | [`ProcedureOpts`](/polymesh-sdk-api-reference/docs-alpha/interfaces/types.procedureopts.md)                           |

**Returns**

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

**Defined in**

[api/entities/CorporateActionBase/index.ts:152](https://github.com/PolymathNetwork/polymesh-sdk/blob/31dfa0dc/src/api/entities/CorporateActionBase/index.ts#L152)

***

#### modifyCheckpoint

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

Modify the Corporate Action's Checkpoint

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

**Parameters**

| Name    | Type                                                                                                                                                                                                                                                                |
| ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `args`  | [`Modify`](/polymesh-sdk-api-reference/docs-alpha/modules-1/types_utils.md#modify)<`ModifyCaCheckpointParams`, { `checkpoint`: [`InputCaCheckpoint`](/polymesh-sdk-api-reference/docs-alpha/modules-1/api_entities_asset_checkpoints_types.md#inputcacheckpoint) }> |
| `opts?` | [`ProcedureOpts`](/polymesh-sdk-api-reference/docs-alpha/interfaces/types.procedureopts.md)                                                                                                                                                                         |

**Returns**

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

**Defined in**

[api/entities/CorporateActionBase/index.ts:162](https://github.com/PolymathNetwork/polymesh-sdk/blob/31dfa0dc/src/api/entities/CorporateActionBase/index.ts#L162)

***

#### toHuman

▸ **toHuman**(): [`HumanReadable`](/polymesh-sdk-api-reference/docs-alpha/interfaces/api_entities_corporateactionbase.humanreadable.md)

Return the Corporate Action's static data

**Returns**

[`HumanReadable`](/polymesh-sdk-api-reference/docs-alpha/interfaces/api_entities_corporateactionbase.humanreadable.md)

**Overrides**

[Entity](/polymesh-sdk-api-reference/docs-alpha/classes/api_entities_entity.entity.md).[toHuman](/polymesh-sdk-api-reference/docs-alpha/classes/api_entities_entity.entity.md#tohuman)

**Defined in**

[api/entities/CorporateActionBase/index.ts:262](https://github.com/PolymathNetwork/polymesh-sdk/blob/31dfa0dc/src/api/entities/CorporateActionBase/index.ts#L262)

***

#### generateUuid

▸ `Static` **generateUuid**<`Identifiers`>(`identifiers`): `string`

Generate the Entity's UUID from its identifying properties

**Type parameters**

| Name          |
| ------------- |
| `Identifiers` |

**Parameters**

| Name          | Type          |
| ------------- | ------------- |
| `identifiers` | `Identifiers` |

**Returns**

`string`

**Inherited from**

[Entity](/polymesh-sdk-api-reference/docs-alpha/classes/api_entities_entity.entity.md).[generateUuid](/polymesh-sdk-api-reference/docs-alpha/classes/api_entities_entity.entity.md#generateuuid)

**Defined in**

[api/entities/Entity.ts:14](https://github.com/PolymathNetwork/polymesh-sdk/blob/31dfa0dc/src/api/entities/Entity.ts#L14)

***

#### unserialize

▸ `Static` **unserialize**<`Identifiers`>(`serialized`): `Identifiers`

Unserialize a UUID into its Unique Identifiers

**Type parameters**

| Name          |
| ------------- |
| `Identifiers` |

**Parameters**

| Name         | Type     | Description         |
| ------------ | -------- | ------------------- |
| `serialized` | `string` | UUID to unserialize |

**Returns**

`Identifiers`

**Inherited from**

[Entity](/polymesh-sdk-api-reference/docs-alpha/classes/api_entities_entity.entity.md).[unserialize](/polymesh-sdk-api-reference/docs-alpha/classes/api_entities_entity.entity.md#unserialize)

**Defined in**

[api/entities/Entity.ts:23](https://github.com/PolymathNetwork/polymesh-sdk/blob/31dfa0dc/src/api/entities/Entity.ts#L23)
