# api\_entities\_CorporateActionBase.CorporateActionBase

[@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/CorporateActionBase](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/modules-1/api_entities_corporateactionbase) / CorporateActionBase

## Class: CorporateActionBase

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

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

### Hierarchy

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

  ↳ **`CorporateActionBase`**

  ↳↳ [`CorporateAction`](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/classes/api_entities_corporateaction.corporateaction)

  ↳↳ [`DividendDistribution`](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/classes/api_entities_dividenddistribution.dividenddistribution)

### 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`](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/classes/api_entities_asset.asset)

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`](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/interfaces/api_entities_corporateactionbase_types.corporateactiontargets)

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`](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/interfaces/api_entities_corporateactionbase_types.taxwithholding)\[]

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](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/classes/api_entities_entity.entity).[uuid](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/api_entities_entity.entity#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`](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/classes/api_entities_checkpointschedule.checkpointschedule) | [`Checkpoint`](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/classes/api_entities_checkpoint.checkpoint)>

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`](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/classes/api_entities_checkpointschedule.checkpointschedule) | [`Checkpoint`](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/classes/api_entities_checkpoint.checkpoint)>

**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](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/classes/api_entities_entity.entity).[exists](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/api_entities_entity.entity#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`](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/classes/api_entities_entity.entity)<`unknown`, `unknown`> |

**Returns**

`boolean`

**Inherited from**

[Entity](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/classes/api_entities_entity.entity).[isEqual](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/api_entities_entity.entity#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](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/interfaces/types.proceduremethod), which means you can call [linkDocuments.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`  | [`LinkCaDocsParams`](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/interfaces/api_procedures_linkcadocs.linkcadocsparams) |
| `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/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](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/interfaces/types.proceduremethod), which means you can call [modifyCheckpoint.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`  | [`Modify`](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/modules-1/types_utils#modify)<`ModifyCaCheckpointParams`, { `checkpoint`: [`InputCaCheckpoint`](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/modules-1/api_entities_asset_checkpoints_types#inputcacheckpoint) }> |
| `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/CorporateActionBase/index.ts:162](https://github.com/PolymathNetwork/polymesh-sdk/blob/31dfa0dc/src/api/entities/CorporateActionBase/index.ts#L162)

***

#### toHuman

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

Return the Corporate Action's static data

**Returns**

[`HumanReadable`](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/interfaces/api_entities_corporateactionbase.humanreadable)

**Overrides**

[Entity](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/classes/api_entities_entity.entity).[toHuman](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/api_entities_entity.entity#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](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/classes/api_entities_entity.entity).[generateUuid](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/api_entities_entity.entity#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](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/classes/api_entities_entity.entity).[unserialize](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/api_entities_entity.entity#unserialize)

**Defined in**

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