# Asset

Class used to manage all Asset functionality

## Hierarchy

* [Entity](https://developers.polymath.network/polymesh-sdk-api-reference/classes/entity)‹UniqueIdentifiers, string›

  ↳ **Asset**

## Index

### Properties

* [assetHolders](#assetholders)
* [checkpoints](#checkpoints)
* [compliance](#compliance)
* [context](#protected-context)
* [corporateActions](#corporateactions)
* [did](#did)
* [documents](#documents)
* [issuance](#issuance)
* [offerings](#offerings)
* [permissions](#permissions)
* [settlements](#settlements)
* [ticker](#ticker)
* [transferRestrictions](#transferrestrictions)
* [uuid](#uuid)

### Methods

* [controllerTransfer](#controllertransfer)
* [createdAt](#createdat)
* [currentFundingRound](#currentfundinground)
* [details](#details)
* [exists](#exists)
* [freeze](#freeze)
* [getIdentifiers](#getidentifiers)
* [getOperationHistory](#getoperationhistory)
* [investorCount](#investorcount)
* [isEqual](#isequal)
* [isFrozen](#isfrozen)
* [modify](#modify)
* [modifyPrimaryIssuanceAgent](#modifyprimaryissuanceagent)
* [redeem](#redeem)
* [removePrimaryIssuanceAgent](#removeprimaryissuanceagent)
* [toJson](#tojson)
* [transferOwnership](#transferownership)
* [unfreeze](#unfreeze)
* [generateUuid](#static-generateuuid)
* [unserialize](#static-unserialize)

## Properties

### assetHolders

• **assetHolders**: [*AssetHolders*](https://developers.polymath.network/polymesh-sdk-api-reference/classes/assetholders)

*Defined in* [*src/api/entities/Asset/index.ts:113*](https://github.com/PolymeshAssociation/polymesh-sdk/blob/46845947/src/api/entities/Asset/index.ts#L113)

***

### checkpoints

• **checkpoints**: [*Checkpoints*](https://developers.polymath.network/polymesh-sdk-api-reference/classes/checkpoints)

*Defined in* [*src/api/entities/Asset/index.ts:118*](https://github.com/PolymeshAssociation/polymesh-sdk/blob/46845947/src/api/entities/Asset/index.ts#L118)

***

### compliance

• **compliance**: *Compliance*

*Defined in* [*src/api/entities/Asset/index.ts:115*](https://github.com/PolymeshAssociation/polymesh-sdk/blob/46845947/src/api/entities/Asset/index.ts#L115)

***

### `Protected` context

• **context**: *Context*

*Inherited from* [*CheckpointSchedule*](https://developers.polymath.network/polymesh-sdk-api-reference/classes/checkpointschedule)*.*[*context*](https://developers.polymath.network/polymesh-sdk-api-reference/checkpointschedule#protected-context)

*Defined in* [*src/api/entities/Entity.ts:48*](https://github.com/PolymeshAssociation/polymesh-sdk/blob/46845947/src/api/entities/Entity.ts#L48)

***

### corporateActions

• **corporateActions**: [*CorporateActions*](https://developers.polymath.network/polymesh-sdk-api-reference/classes/corporateactions)

*Defined in* [*src/api/entities/Asset/index.ts:119*](https://github.com/PolymeshAssociation/polymesh-sdk/blob/46845947/src/api/entities/Asset/index.ts#L119)

***

### did

• **did**: *string*

*Defined in* [*src/api/entities/Asset/index.ts:103*](https://github.com/PolymeshAssociation/polymesh-sdk/blob/46845947/src/api/entities/Asset/index.ts#L103)

Identity ID of the Asset (used for Claims)

***

### documents

• **documents**: [*Documents*](https://developers.polymath.network/polymesh-sdk-api-reference/classes/documents)

*Defined in* [*src/api/entities/Asset/index.ts:111*](https://github.com/PolymeshAssociation/polymesh-sdk/blob/46845947/src/api/entities/Asset/index.ts#L111)

***

### issuance

• **issuance**: [*Issuance*](https://developers.polymath.network/polymesh-sdk-api-reference/classes/issuance)

*Defined in* [*src/api/entities/Asset/index.ts:114*](https://github.com/PolymeshAssociation/polymesh-sdk/blob/46845947/src/api/entities/Asset/index.ts#L114)

***

### offerings

• **offerings**: [*Offerings*](https://developers.polymath.network/polymesh-sdk-api-reference/classes/offerings)

*Defined in* [*src/api/entities/Asset/index.ts:117*](https://github.com/PolymeshAssociation/polymesh-sdk/blob/46845947/src/api/entities/Asset/index.ts#L117)

***

### permissions

• **permissions**: *Permissions*

*Defined in* [*src/api/entities/Asset/index.ts:120*](https://github.com/PolymeshAssociation/polymesh-sdk/blob/46845947/src/api/entities/Asset/index.ts#L120)

***

### settlements

• **settlements**: [*Settlements*](https://developers.polymath.network/polymesh-sdk-api-reference/classes/settlements)

*Defined in* [*src/api/entities/Asset/index.ts:112*](https://github.com/PolymeshAssociation/polymesh-sdk/blob/46845947/src/api/entities/Asset/index.ts#L112)

***

### ticker

• **ticker**: *string*

*Defined in* [*src/api/entities/Asset/index.ts:108*](https://github.com/PolymeshAssociation/polymesh-sdk/blob/46845947/src/api/entities/Asset/index.ts#L108)

ticker of the Asset

***

### transferRestrictions

• **transferRestrictions**: [*TransferRestrictions*](https://developers.polymath.network/polymesh-sdk-api-reference/classes/transferrestrictions)

*Defined in* [*src/api/entities/Asset/index.ts:116*](https://github.com/PolymeshAssociation/polymesh-sdk/blob/46845947/src/api/entities/Asset/index.ts#L116)

***

### uuid

• **uuid**: *string*

*Inherited from* [*CheckpointSchedule*](https://developers.polymath.network/polymesh-sdk-api-reference/classes/checkpointschedule)*.*[*uuid*](https://developers.polymath.network/polymesh-sdk-api-reference/checkpointschedule#uuid)

*Defined in* [*src/api/entities/Entity.ts:46*](https://github.com/PolymeshAssociation/polymesh-sdk/blob/46845947/src/api/entities/Entity.ts#L46)

## Methods

### controllerTransfer

▸ **controllerTransfer**(`args`: [ControllerTransferParams](https://github.com/PolymeshAssociation/polymesh-sdk/blob/docs/v14/docs/interfaces/controllertransferparams.md), `opts?`: [ProcedureOpts](https://github.com/PolymeshAssociation/polymesh-sdk/blob/docs/v14/docs/interfaces/procedureopts.md)): *Promise‹*[*TransactionQueue*](https://developers.polymath.network/polymesh-sdk-api-reference/classes/transactionqueue)*‹void››*

*Defined in* [*src/api/entities/Asset/index.ts:549*](https://github.com/PolymeshAssociation/polymesh-sdk/blob/46845947/src/api/entities/Asset/index.ts#L549)

Force a transfer from a given Portfolio to the caller’s default Portfolio

**`note`** this method is of type [ProcedureMethod](https://github.com/PolymeshAssociation/polymesh-sdk/blob/docs/v14/docs/interfaces/proceduremethod.md), which means you can call [controllerTransfer.checkAuthorization](https://github.com/PolymeshAssociation/polymesh-sdk/blob/docs/v14/docs/interfaces/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`  | [ControllerTransferParams](https://github.com/PolymeshAssociation/polymesh-sdk/blob/docs/v14/docs/interfaces/controllertransferparams.md) |
| `opts?` | [ProcedureOpts](https://github.com/PolymeshAssociation/polymesh-sdk/blob/docs/v14/docs/interfaces/procedureopts.md)                       |

**Returns:** *Promise‹*[*TransactionQueue*](https://developers.polymath.network/polymesh-sdk-api-reference/classes/transactionqueue)*‹void››*

***

### createdAt

▸ **createdAt**(): *Promise‹*[*EventIdentifier*](https://github.com/PolymeshAssociation/polymesh-sdk/blob/docs/v14/docs/interfaces/eventidentifier.md) *| null›*

*Defined in* [*src/api/entities/Asset/index.ts:391*](https://github.com/PolymeshAssociation/polymesh-sdk/blob/46845947/src/api/entities/Asset/index.ts#L391)

Retrieve the identifier data (block number, date and event index) of the event that was emitted when the token was created

**`note`** uses the middleware

**`note`** there is a possibility that the data is not ready by the time it is requested. In that case, `null` is returned

**Returns:** *Promise‹*[*EventIdentifier*](https://github.com/PolymeshAssociation/polymesh-sdk/blob/docs/v14/docs/interfaces/eventidentifier.md) *| null›*

***

### currentFundingRound

▸ **currentFundingRound**(): *Promise‹string | null›*

*Defined in* [*src/api/entities/Asset/index.ts:316*](https://github.com/PolymeshAssociation/polymesh-sdk/blob/46845947/src/api/entities/Asset/index.ts#L316)

Retrieve the Asset's funding round

**`note`** can be subscribed to

**Returns:** *Promise‹string | null›*

▸ **currentFundingRound**(`callback`: [SubCallback](https://developers.polymath.network/polymesh-sdk-api-reference/globals#subcallback)‹string | null›): *Promise‹*[*UnsubCallback*](https://developers.polymath.network/polymesh-sdk-api-reference/globals#unsubcallback)*›*

*Defined in* [*src/api/entities/Asset/index.ts:317*](https://github.com/PolymeshAssociation/polymesh-sdk/blob/46845947/src/api/entities/Asset/index.ts#L317)

**Parameters:**

| Name       | Type                                                                                                              |
| ---------- | ----------------------------------------------------------------------------------------------------------------- |
| `callback` | [SubCallback](https://developers.polymath.network/polymesh-sdk-api-reference/globals#subcallback)‹string \| null› |

**Returns:** *Promise‹*[*UnsubCallback*](https://developers.polymath.network/polymesh-sdk-api-reference/globals#unsubcallback)*›*

***

### details

▸ **details**(): *Promise‹*[*AssetDetails*](https://github.com/PolymeshAssociation/polymesh-sdk/blob/docs/v14/docs/interfaces/assetdetails.md)*›*

*Defined in* [*src/api/entities/Asset/index.ts:215*](https://github.com/PolymeshAssociation/polymesh-sdk/blob/46845947/src/api/entities/Asset/index.ts#L215)

Retrieve the Asset's data

**`note`** can be subscribed to

**Returns:** *Promise‹*[*AssetDetails*](https://github.com/PolymeshAssociation/polymesh-sdk/blob/docs/v14/docs/interfaces/assetdetails.md)*›*

▸ **details**(`callback`: [SubCallback](https://developers.polymath.network/polymesh-sdk-api-reference/globals#subcallback)‹[AssetDetails](https://github.com/PolymeshAssociation/polymesh-sdk/blob/docs/v14/docs/interfaces/assetdetails.md)›): *Promise‹*[*UnsubCallback*](https://developers.polymath.network/polymesh-sdk-api-reference/globals#unsubcallback)*›*

*Defined in* [*src/api/entities/Asset/index.ts:216*](https://github.com/PolymeshAssociation/polymesh-sdk/blob/46845947/src/api/entities/Asset/index.ts#L216)

**Parameters:**

| Name       | Type                                                                                                                                                                                                                 |
| ---------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `callback` | [SubCallback](https://developers.polymath.network/polymesh-sdk-api-reference/globals#subcallback)‹[AssetDetails](https://github.com/PolymeshAssociation/polymesh-sdk/blob/docs/v14/docs/interfaces/assetdetails.md)› |

**Returns:** *Promise‹*[*UnsubCallback*](https://developers.polymath.network/polymesh-sdk-api-reference/globals#unsubcallback)*›*

***

### exists

▸ **exists**(): *Promise‹boolean›*

*Overrides* [*Entity*](https://developers.polymath.network/polymesh-sdk-api-reference/classes/entity)*.*[*exists*](https://developers.polymath.network/polymesh-sdk-api-reference/entity#abstract-exists)

*Defined in* [*src/api/entities/Asset/index.ts:641*](https://github.com/PolymeshAssociation/polymesh-sdk/blob/46845947/src/api/entities/Asset/index.ts#L641)

Determine whether this Asset exists on chain

**Returns:** *Promise‹boolean›*

***

### freeze

▸ **freeze**(`opts?`: [ProcedureOpts](https://github.com/PolymeshAssociation/polymesh-sdk/blob/docs/v14/docs/interfaces/procedureopts.md)): *Promise‹*[*TransactionQueue*](https://developers.polymath.network/polymesh-sdk-api-reference/classes/transactionqueue)*‹*[*Asset*](https://developers.polymath.network/polymesh-sdk-api-reference/classes/asset)*››*

*Defined in* [*src/api/entities/Asset/index.ts:413*](https://github.com/PolymeshAssociation/polymesh-sdk/blob/46845947/src/api/entities/Asset/index.ts#L413)

Freeze transfers and minting of the Asset

**`note`** this method is of type [NoArgsProcedureMethod](https://github.com/PolymeshAssociation/polymesh-sdk/blob/docs/v14/docs/interfaces/noargsproceduremethod.md), which means you can call [freeze.checkAuthorization](https://github.com/PolymeshAssociation/polymesh-sdk/blob/docs/v14/docs/interfaces/noargsproceduremethod.md#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://github.com/PolymeshAssociation/polymesh-sdk/blob/docs/v14/docs/interfaces/procedureopts.md) |

**Returns:** *Promise‹*[*TransactionQueue*](https://developers.polymath.network/polymesh-sdk-api-reference/classes/transactionqueue)*‹*[*Asset*](https://developers.polymath.network/polymesh-sdk-api-reference/classes/asset)*››*

***

### getIdentifiers

▸ **getIdentifiers**(): *Promise‹*[*SecurityIdentifier*](https://github.com/PolymeshAssociation/polymesh-sdk/blob/docs/v14/docs/interfaces/securityidentifier.md)*\[]›*

*Defined in* [*src/api/entities/Asset/index.ts:354*](https://github.com/PolymeshAssociation/polymesh-sdk/blob/46845947/src/api/entities/Asset/index.ts#L354)

Retrieve the Asset's identifiers list

**`note`** can be subscribed to

**Returns:** *Promise‹*[*SecurityIdentifier*](https://github.com/PolymeshAssociation/polymesh-sdk/blob/docs/v14/docs/interfaces/securityidentifier.md)*\[]›*

▸ **getIdentifiers**(`callback?`: [SubCallback](https://developers.polymath.network/polymesh-sdk-api-reference/globals#subcallback)‹[SecurityIdentifier](https://github.com/PolymeshAssociation/polymesh-sdk/blob/docs/v14/docs/interfaces/securityidentifier.md)\[]›): *Promise‹*[*UnsubCallback*](https://developers.polymath.network/polymesh-sdk-api-reference/globals#unsubcallback)*›*

*Defined in* [*src/api/entities/Asset/index.ts:355*](https://github.com/PolymeshAssociation/polymesh-sdk/blob/46845947/src/api/entities/Asset/index.ts#L355)

**Parameters:**

| Name        | Type                                                                                                                                                                                                                                |
| ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `callback?` | [SubCallback](https://developers.polymath.network/polymesh-sdk-api-reference/globals#subcallback)‹[SecurityIdentifier](https://github.com/PolymeshAssociation/polymesh-sdk/blob/docs/v14/docs/interfaces/securityidentifier.md)\[]› |

**Returns:** *Promise‹*[*UnsubCallback*](https://developers.polymath.network/polymesh-sdk-api-reference/globals#unsubcallback)*›*

***

### getOperationHistory

▸ **getOperationHistory**(): *Promise‹*[*HistoricAgentOperation*](https://github.com/PolymeshAssociation/polymesh-sdk/blob/docs/v14/docs/interfaces/historicagentoperation.md)*\[]›*

*Defined in* [*src/api/entities/Asset/index.ts:560*](https://github.com/PolymeshAssociation/polymesh-sdk/blob/46845947/src/api/entities/Asset/index.ts#L560)

Retrieve this Asset's Operation History

**`note`** Operations are grouped by the agent Identity who performed them

**`note`** uses the middleware

**Returns:** *Promise‹*[*HistoricAgentOperation*](https://github.com/PolymeshAssociation/polymesh-sdk/blob/docs/v14/docs/interfaces/historicagentoperation.md)*\[]›*

***

### investorCount

▸ **investorCount**(): *Promise‹BigNumber›*

*Defined in* [*src/api/entities/Asset/index.ts:512*](https://github.com/PolymeshAssociation/polymesh-sdk/blob/46845947/src/api/entities/Asset/index.ts#L512)

Retrieve the amount of unique investors that hold this Asset

**`note`** this takes into account the Scope ID of Investor Uniqueness Claims. If an investor holds balances of this Asset in two or more different Identities, but they all have Investor Uniqueness Claims with the same Scope ID, then they will only be counted once for the purposes of this result

**`note`** can be subscribed to

**Returns:** *Promise‹BigNumber›*

▸ **investorCount**(`callback`: [SubCallback](https://developers.polymath.network/polymesh-sdk-api-reference/globals#subcallback)‹BigNumber›): *Promise‹*[*UnsubCallback*](https://developers.polymath.network/polymesh-sdk-api-reference/globals#unsubcallback)*›*

*Defined in* [*src/api/entities/Asset/index.ts:513*](https://github.com/PolymeshAssociation/polymesh-sdk/blob/46845947/src/api/entities/Asset/index.ts#L513)

**Parameters:**

| Name       | Type                                                                                                         |
| ---------- | ------------------------------------------------------------------------------------------------------------ |
| `callback` | [SubCallback](https://developers.polymath.network/polymesh-sdk-api-reference/globals#subcallback)‹BigNumber› |

**Returns:** *Promise‹*[*UnsubCallback*](https://developers.polymath.network/polymesh-sdk-api-reference/globals#unsubcallback)*›*

***

### isEqual

▸ **isEqual**(`entity`: [Entity](https://developers.polymath.network/polymesh-sdk-api-reference/classes/entity)‹unknown, unknown›): *boolean*

*Inherited from* [*CheckpointSchedule*](https://developers.polymath.network/polymesh-sdk-api-reference/classes/checkpointschedule)*.*[*isEqual*](https://developers.polymath.network/polymesh-sdk-api-reference/checkpointschedule#isequal)

*Defined in* [*src/api/entities/Entity.ts:61*](https://github.com/PolymeshAssociation/polymesh-sdk/blob/46845947/src/api/entities/Entity.ts#L61)

Determine whether this Entity is the same as another one

**Parameters:**

| Name     | Type                                                                                                      |
| -------- | --------------------------------------------------------------------------------------------------------- |
| `entity` | [Entity](https://developers.polymath.network/polymesh-sdk-api-reference/classes/entity)‹unknown, unknown› |

**Returns:** *boolean*

***

### isFrozen

▸ **isFrozen**(): *Promise‹boolean›*

*Defined in* [*src/api/entities/Asset/index.ts:432*](https://github.com/PolymeshAssociation/polymesh-sdk/blob/46845947/src/api/entities/Asset/index.ts#L432)

Check whether transfers are frozen for the Asset

**`note`** can be subscribed to

**Returns:** *Promise‹boolean›*

▸ **isFrozen**(`callback`: [SubCallback](https://developers.polymath.network/polymesh-sdk-api-reference/globals#subcallback)‹boolean›): *Promise‹*[*UnsubCallback*](https://developers.polymath.network/polymesh-sdk-api-reference/globals#unsubcallback)*›*

*Defined in* [*src/api/entities/Asset/index.ts:433*](https://github.com/PolymeshAssociation/polymesh-sdk/blob/46845947/src/api/entities/Asset/index.ts#L433)

**Parameters:**

| Name       | Type                                                                                                       |
| ---------- | ---------------------------------------------------------------------------------------------------------- |
| `callback` | [SubCallback](https://developers.polymath.network/polymesh-sdk-api-reference/globals#subcallback)‹boolean› |

**Returns:** *Promise‹*[*UnsubCallback*](https://developers.polymath.network/polymesh-sdk-api-reference/globals#unsubcallback)*›*

***

### modify

▸ **modify**(`args`: [ModifyAssetParams](https://developers.polymath.network/polymesh-sdk-api-reference/globals#modifyassetparams), `opts?`: [ProcedureOpts](https://github.com/PolymeshAssociation/polymesh-sdk/blob/docs/v14/docs/interfaces/procedureopts.md)): *Promise‹*[*TransactionQueue*](https://developers.polymath.network/polymesh-sdk-api-reference/classes/transactionqueue)*‹*[*Asset*](https://developers.polymath.network/polymesh-sdk-api-reference/classes/asset)*››*

*Defined in* [*src/api/entities/Asset/index.ts:206*](https://github.com/PolymeshAssociation/polymesh-sdk/blob/46845947/src/api/entities/Asset/index.ts#L206)

Modify some properties of the Asset

**`throws`** if the passed values result in no changes being made to the Asset

**`note`** this method is of type [ProcedureMethod](https://github.com/PolymeshAssociation/polymesh-sdk/blob/docs/v14/docs/interfaces/proceduremethod.md), which means you can call [modify.checkAuthorization](https://github.com/PolymeshAssociation/polymesh-sdk/blob/docs/v14/docs/interfaces/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`  | [ModifyAssetParams](https://developers.polymath.network/polymesh-sdk-api-reference/globals#modifyassetparams)       |
| `opts?` | [ProcedureOpts](https://github.com/PolymeshAssociation/polymesh-sdk/blob/docs/v14/docs/interfaces/procedureopts.md) |

**Returns:** *Promise‹*[*TransactionQueue*](https://developers.polymath.network/polymesh-sdk-api-reference/classes/transactionqueue)*‹*[*Asset*](https://developers.polymath.network/polymesh-sdk-api-reference/classes/asset)*››*

***

### modifyPrimaryIssuanceAgent

▸ **modifyPrimaryIssuanceAgent**(`args`: [ModifyPrimaryIssuanceAgentParams](https://github.com/PolymeshAssociation/polymesh-sdk/blob/docs/v14/docs/interfaces/modifyprimaryissuanceagentparams.md), `opts?`: [ProcedureOpts](https://github.com/PolymeshAssociation/polymesh-sdk/blob/docs/v14/docs/interfaces/procedureopts.md)): *Promise‹*[*TransactionQueue*](https://developers.polymath.network/polymesh-sdk-api-reference/classes/transactionqueue)*‹void››*

*Defined in* [*src/api/entities/Asset/index.ts:473*](https://github.com/PolymeshAssociation/polymesh-sdk/blob/46845947/src/api/entities/Asset/index.ts#L473)

Assign a new primary issuance agent for the Asset

**`note`** this will create an [Authorization Request](https://developers.polymath.network/polymesh-sdk-api-reference/classes/authorizationrequest) which has to be accepted by the `target` Identity. An [Account](https://github.com/PolymeshAssociation/polymesh-sdk/blob/docs/v14/docs/enums/signertype.md#account) or [Identity](https://github.com/PolymeshAssociation/polymesh-sdk/blob/docs/v14/docs/enums/roletype.md#identity) can fetch its pending Authorization Requests by calling [authorizations.getReceived](https://developers.polymath.network/polymesh-sdk-api-reference/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/authorizations#getone)

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

**`note`** this method is of type [ProcedureMethod](https://github.com/PolymeshAssociation/polymesh-sdk/blob/docs/v14/docs/interfaces/proceduremethod.md), which means you can call [modifyPrimaryIssuanceAgent.checkAuthorization](https://github.com/PolymeshAssociation/polymesh-sdk/blob/docs/v14/docs/interfaces/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`  | [ModifyPrimaryIssuanceAgentParams](https://github.com/PolymeshAssociation/polymesh-sdk/blob/docs/v14/docs/interfaces/modifyprimaryissuanceagentparams.md) |
| `opts?` | [ProcedureOpts](https://github.com/PolymeshAssociation/polymesh-sdk/blob/docs/v14/docs/interfaces/procedureopts.md)                                       |

**Returns:** *Promise‹*[*TransactionQueue*](https://developers.polymath.network/polymesh-sdk-api-reference/classes/transactionqueue)*‹void››*

***

### redeem

▸ **redeem**(`args`: [RedeemTokensParams](https://github.com/PolymeshAssociation/polymesh-sdk/blob/docs/v14/docs/interfaces/redeemtokensparams.md), `opts?`: [ProcedureOpts](https://github.com/PolymeshAssociation/polymesh-sdk/blob/docs/v14/docs/interfaces/procedureopts.md)): *Promise‹*[*TransactionQueue*](https://developers.polymath.network/polymesh-sdk-api-reference/classes/transactionqueue)*‹void››*

*Defined in* [*src/api/entities/Asset/index.ts:499*](https://github.com/PolymeshAssociation/polymesh-sdk/blob/46845947/src/api/entities/Asset/index.ts#L499)

Redeem (burn) an amount of this Asset's tokens

**`note`** tokens are removed from the caller's Default Portfolio

**`note`** this method is of type [ProcedureMethod](https://github.com/PolymeshAssociation/polymesh-sdk/blob/docs/v14/docs/interfaces/proceduremethod.md), which means you can call [redeem.checkAuthorization](https://github.com/PolymeshAssociation/polymesh-sdk/blob/docs/v14/docs/interfaces/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`  | [RedeemTokensParams](https://github.com/PolymeshAssociation/polymesh-sdk/blob/docs/v14/docs/interfaces/redeemtokensparams.md) |
| `opts?` | [ProcedureOpts](https://github.com/PolymeshAssociation/polymesh-sdk/blob/docs/v14/docs/interfaces/procedureopts.md)           |

**Returns:** *Promise‹*[*TransactionQueue*](https://developers.polymath.network/polymesh-sdk-api-reference/classes/transactionqueue)*‹void››*

***

### removePrimaryIssuanceAgent

▸ **removePrimaryIssuanceAgent**(`opts?`: [ProcedureOpts](https://github.com/PolymeshAssociation/polymesh-sdk/blob/docs/v14/docs/interfaces/procedureopts.md)): *Promise‹*[*TransactionQueue*](https://developers.polymath.network/polymesh-sdk-api-reference/classes/transactionqueue)*‹void››*

*Defined in* [*src/api/entities/Asset/index.ts:487*](https://github.com/PolymeshAssociation/polymesh-sdk/blob/46845947/src/api/entities/Asset/index.ts#L487)

Remove the primary issuance agent of the Asset

**`note`** if primary issuance agent is not set, Asset owner would be used by default

**`deprecated`**

**`note`** this method is of type [NoArgsProcedureMethod](https://github.com/PolymeshAssociation/polymesh-sdk/blob/docs/v14/docs/interfaces/noargsproceduremethod.md), which means you can call [removePrimaryIssuanceAgent.checkAuthorization](https://github.com/PolymeshAssociation/polymesh-sdk/blob/docs/v14/docs/interfaces/noargsproceduremethod.md#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://github.com/PolymeshAssociation/polymesh-sdk/blob/docs/v14/docs/interfaces/procedureopts.md) |

**Returns:** *Promise‹*[*TransactionQueue*](https://developers.polymath.network/polymesh-sdk-api-reference/classes/transactionqueue)*‹void››*

***

### toJson

▸ **toJson**(): *string*

*Overrides* [*Entity*](https://developers.polymath.network/polymesh-sdk-api-reference/classes/entity)*.*[*toJson*](https://developers.polymath.network/polymesh-sdk-api-reference/entity#abstract-tojson)

*Defined in* [*src/api/entities/Asset/index.ts:654*](https://github.com/PolymeshAssociation/polymesh-sdk/blob/46845947/src/api/entities/Asset/index.ts#L654)

Return the Asset's ticker

**Returns:** *string*

***

### transferOwnership

▸ **transferOwnership**(`args`: [TransferAssetOwnershipParams](https://github.com/PolymeshAssociation/polymesh-sdk/blob/docs/v14/docs/interfaces/transferassetownershipparams.md), `opts?`: [ProcedureOpts](https://github.com/PolymeshAssociation/polymesh-sdk/blob/docs/v14/docs/interfaces/procedureopts.md)): *Promise‹*[*TransactionQueue*](https://developers.polymath.network/polymesh-sdk-api-reference/classes/transactionqueue)*‹*[*AuthorizationRequest*](https://developers.polymath.network/polymesh-sdk-api-reference/classes/authorizationrequest)*››*

*Defined in* [*src/api/entities/Asset/index.ts:195*](https://github.com/PolymeshAssociation/polymesh-sdk/blob/46845947/src/api/entities/Asset/index.ts#L195)

Transfer ownership of the Asset to another Identity. This generates an authorization request that must be accepted by the recipient

**`note`** this will create [Authorization Request](https://developers.polymath.network/polymesh-sdk-api-reference/classes/authorizationrequest) which has to be accepted by the `target` Identity. An [Account](https://github.com/PolymeshAssociation/polymesh-sdk/blob/docs/v14/docs/enums/signertype.md#account) or [Identity](https://github.com/PolymeshAssociation/polymesh-sdk/blob/docs/v14/docs/enums/roletype.md#identity) can fetch its pending Authorization Requests by calling [authorizations.getReceived](https://developers.polymath.network/polymesh-sdk-api-reference/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/authorizations#getone)

**`note`** this method is of type [ProcedureMethod](https://github.com/PolymeshAssociation/polymesh-sdk/blob/docs/v14/docs/interfaces/proceduremethod.md), which means you can call [transferOwnership.checkAuthorization](https://github.com/PolymeshAssociation/polymesh-sdk/blob/docs/v14/docs/interfaces/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`  | [TransferAssetOwnershipParams](https://github.com/PolymeshAssociation/polymesh-sdk/blob/docs/v14/docs/interfaces/transferassetownershipparams.md) |
| `opts?` | [ProcedureOpts](https://github.com/PolymeshAssociation/polymesh-sdk/blob/docs/v14/docs/interfaces/procedureopts.md)                               |

**Returns:** *Promise‹*[*TransactionQueue*](https://developers.polymath.network/polymesh-sdk-api-reference/classes/transactionqueue)*‹*[*AuthorizationRequest*](https://developers.polymath.network/polymesh-sdk-api-reference/classes/authorizationrequest)*››*

***

### unfreeze

▸ **unfreeze**(`opts?`: [ProcedureOpts](https://github.com/PolymeshAssociation/polymesh-sdk/blob/docs/v14/docs/interfaces/procedureopts.md)): *Promise‹*[*TransactionQueue*](https://developers.polymath.network/polymesh-sdk-api-reference/classes/transactionqueue)*‹*[*Asset*](https://developers.polymath.network/polymesh-sdk-api-reference/classes/asset)*››*

*Defined in* [*src/api/entities/Asset/index.ts:423*](https://github.com/PolymeshAssociation/polymesh-sdk/blob/46845947/src/api/entities/Asset/index.ts#L423)

Unfreeze transfers and minting of the Asset

**`note`** this method is of type [NoArgsProcedureMethod](https://github.com/PolymeshAssociation/polymesh-sdk/blob/docs/v14/docs/interfaces/noargsproceduremethod.md), which means you can call [unfreeze.checkAuthorization](https://github.com/PolymeshAssociation/polymesh-sdk/blob/docs/v14/docs/interfaces/noargsproceduremethod.md#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://github.com/PolymeshAssociation/polymesh-sdk/blob/docs/v14/docs/interfaces/procedureopts.md) |

**Returns:** *Promise‹*[*TransactionQueue*](https://developers.polymath.network/polymesh-sdk-api-reference/classes/transactionqueue)*‹*[*Asset*](https://developers.polymath.network/polymesh-sdk-api-reference/classes/asset)*››*

***

### `Static` generateUuid

▸ **generateUuid**‹**Identifiers**›(`identifiers`: Identifiers): *string*

*Inherited from* [*CheckpointSchedule*](https://developers.polymath.network/polymesh-sdk-api-reference/classes/checkpointschedule)*.*[*generateUuid*](https://developers.polymath.network/polymesh-sdk-api-reference/checkpointschedule#static-generateuuid)

*Defined in* [*src/api/entities/Entity.ts:14*](https://github.com/PolymeshAssociation/polymesh-sdk/blob/46845947/src/api/entities/Entity.ts#L14)

Generate the Entity's UUID from its identifying properties

**Type parameters:**

▪ **Identifiers**

**Parameters:**

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

**Returns:** *string*

***

### `Static` unserialize

▸ **unserialize**‹**Identifiers**›(`serialized`: string): *Identifiers*

*Inherited from* [*CheckpointSchedule*](https://developers.polymath.network/polymesh-sdk-api-reference/classes/checkpointschedule)*.*[*unserialize*](https://developers.polymath.network/polymesh-sdk-api-reference/checkpointschedule#static-unserialize)

*Defined in* [*src/api/entities/Entity.ts:23*](https://github.com/PolymeshAssociation/polymesh-sdk/blob/46845947/src/api/entities/Entity.ts#L23)

Unserialize a UUID into its Unique Identifiers

**Type parameters:**

▪ **Identifiers**

**Parameters:**

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

**Returns:** *Identifiers*
