> 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-beta/classes/offering.md).

# Offering

Represents an Asset Offering in the Polymesh blockchain

## Hierarchy

* [Entity](/polymesh-sdk-api-reference/docs-beta/classes/entity.md)‹UniqueIdentifiers, [HumanReadable](https://github.com/PolymathNetwork/polymesh-sdk/blob/docs/beta/docs/interfaces/humanreadable.md)›

  ↳ **Offering**

## Index

### Properties

* [asset](#asset)
* [context](#protected-context)
* [id](#id)
* [uuid](#uuid)

### Methods

* [close](#close)
* [details](#details)
* [exists](#exists)
* [freeze](#freeze)
* [getInvestments](#getinvestments)
* [getInvestmentsV2](#getinvestmentsv2)
* [invest](#invest)
* [isEqual](#isequal)
* [modifyTimes](#modifytimes)
* [toHuman](#tohuman)
* [unfreeze](#unfreeze)
* [generateUuid](#static-generateuuid)
* [unserialize](#static-unserialize)

## Properties

### asset

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

*Defined in* [*src/api/entities/Offering/index.ts:68*](https://github.com/PolymathNetwork/polymesh-sdk/blob/31a16a34/src/api/entities/Offering/index.ts#L68)

Asset being offered

***

### `Protected` context

• **context**: *Context*

*Inherited from* [*CheckpointSchedule*](/polymesh-sdk-api-reference/docs-beta/classes/checkpointschedule.md)*.*[*context*](/polymesh-sdk-api-reference/docs-beta/classes/checkpointschedule.md#protected-context)

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

***

### id

• **id**: *BigNumber*

*Defined in* [*src/api/entities/Offering/index.ts:63*](https://github.com/PolymathNetwork/polymesh-sdk/blob/31a16a34/src/api/entities/Offering/index.ts#L63)

identifier number of the Offering

***

### uuid

• **uuid**: *string*

*Inherited from* [*CheckpointSchedule*](/polymesh-sdk-api-reference/docs-beta/classes/checkpointschedule.md)*.*[*uuid*](/polymesh-sdk-api-reference/docs-beta/classes/checkpointschedule.md#uuid)

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

## Methods

### close

▸ **close**(`opts?`: [ProcedureOpts](https://github.com/PolymathNetwork/polymesh-sdk/blob/docs/beta/docs/interfaces/procedureopts.md)): *Promise‹*[*TransactionQueue*](/polymesh-sdk-api-reference/docs-beta/classes/transactionqueue.md)*‹void››*

*Defined in* [*src/api/entities/Offering/index.ts:161*](https://github.com/PolymathNetwork/polymesh-sdk/blob/31a16a34/src/api/entities/Offering/index.ts#L161)

Close the Offering

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

**Returns:** *Promise‹*[*TransactionQueue*](/polymesh-sdk-api-reference/docs-beta/classes/transactionqueue.md)*‹void››*

***

### details

▸ **details**(): *Promise‹*[*OfferingDetails*](https://github.com/PolymathNetwork/polymesh-sdk/blob/docs/beta/docs/interfaces/offeringdetails.md)*›*

*Defined in* [*src/api/entities/Offering/index.ts:114*](https://github.com/PolymathNetwork/polymesh-sdk/blob/31a16a34/src/api/entities/Offering/index.ts#L114)

Retrieve the Offering's details

**`note`** can be subscribed to

**Returns:** *Promise‹*[*OfferingDetails*](https://github.com/PolymathNetwork/polymesh-sdk/blob/docs/beta/docs/interfaces/offeringdetails.md)*›*

▸ **details**(`callback`: [SubCallback](/polymesh-sdk-api-reference/docs-beta/globals.md#subcallback)‹[OfferingDetails](https://github.com/PolymathNetwork/polymesh-sdk/blob/docs/beta/docs/interfaces/offeringdetails.md)›): *Promise‹*[*UnsubCallback*](/polymesh-sdk-api-reference/docs-beta/globals.md#unsubcallback)*›*

*Defined in* [*src/api/entities/Offering/index.ts:115*](https://github.com/PolymathNetwork/polymesh-sdk/blob/31a16a34/src/api/entities/Offering/index.ts#L115)

**Parameters:**

| Name       | Type                                                                                                                                                                                              |
| ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `callback` | [SubCallback](/polymesh-sdk-api-reference/docs-beta/globals.md#subcallback)‹[OfferingDetails](https://github.com/PolymathNetwork/polymesh-sdk/blob/docs/beta/docs/interfaces/offeringdetails.md)› |

**Returns:** *Promise‹*[*UnsubCallback*](/polymesh-sdk-api-reference/docs-beta/globals.md#unsubcallback)*›*

***

### exists

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

*Overrides* [*Entity*](/polymesh-sdk-api-reference/docs-beta/classes/entity.md)*.*[*exists*](/polymesh-sdk-api-reference/docs-beta/classes/entity.md#abstract-exists)

*Defined in* [*src/api/entities/Offering/index.ts:335*](https://github.com/PolymathNetwork/polymesh-sdk/blob/31a16a34/src/api/entities/Offering/index.ts#L335)

Determine whether this Offering exists on chain

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

***

### freeze

▸ **freeze**(`opts?`: [ProcedureOpts](https://github.com/PolymathNetwork/polymesh-sdk/blob/docs/beta/docs/interfaces/procedureopts.md)): *Promise‹*[*TransactionQueue*](/polymesh-sdk-api-reference/docs-beta/classes/transactionqueue.md)*‹*[*Offering*](/polymesh-sdk-api-reference/docs-beta/classes/offering.md)*››*

*Defined in* [*src/api/entities/Offering/index.ts:171*](https://github.com/PolymathNetwork/polymesh-sdk/blob/31a16a34/src/api/entities/Offering/index.ts#L171)

Freeze the Offering

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

**Returns:** *Promise‹*[*TransactionQueue*](/polymesh-sdk-api-reference/docs-beta/classes/transactionqueue.md)*‹*[*Offering*](/polymesh-sdk-api-reference/docs-beta/classes/offering.md)*››*

***

### getInvestments

▸ **getInvestments**(`opts`: object): *Promise‹*[*ResultSet*](https://github.com/PolymathNetwork/polymesh-sdk/blob/docs/beta/docs/interfaces/resultset.md)*‹*[*Investment*](https://github.com/PolymathNetwork/polymesh-sdk/blob/docs/beta/docs/interfaces/investment.md)*››*

*Defined in* [*src/api/entities/Offering/index.ts:223*](https://github.com/PolymathNetwork/polymesh-sdk/blob/31a16a34/src/api/entities/Offering/index.ts#L223)

Retrieve all investments made on this Offering

**`note`** supports pagination

**`note`** uses the middleware

**Parameters:**

▪`Default value` **opts**: *object*= {}

| Name     | Type      | Description |
| -------- | --------- | ----------- |
| `size?`  | BigNumber | page size   |
| `start?` | BigNumber | page offset |

**Returns:** *Promise‹*[*ResultSet*](https://github.com/PolymathNetwork/polymesh-sdk/blob/docs/beta/docs/interfaces/resultset.md)*‹*[*Investment*](https://github.com/PolymathNetwork/polymesh-sdk/blob/docs/beta/docs/interfaces/investment.md)*››*

***

### getInvestmentsV2

▸ **getInvestmentsV2**(`opts`: object): *Promise‹*[*ResultSet*](https://github.com/PolymathNetwork/polymesh-sdk/blob/docs/beta/docs/interfaces/resultset.md)*‹*[*Investment*](https://github.com/PolymathNetwork/polymesh-sdk/blob/docs/beta/docs/interfaces/investment.md)*››*

*Defined in* [*src/api/entities/Offering/index.ts:286*](https://github.com/PolymathNetwork/polymesh-sdk/blob/31a16a34/src/api/entities/Offering/index.ts#L286)

Retrieve all investments made on this Offering

**`note`** supports pagination

**`note`** uses the middleware V2

**Parameters:**

▪`Default value` **opts**: *object*= {}

| Name     | Type      | Description |
| -------- | --------- | ----------- |
| `size?`  | BigNumber | page size   |
| `start?` | BigNumber | page offset |

**Returns:** *Promise‹*[*ResultSet*](https://github.com/PolymathNetwork/polymesh-sdk/blob/docs/beta/docs/interfaces/resultset.md)*‹*[*Investment*](https://github.com/PolymathNetwork/polymesh-sdk/blob/docs/beta/docs/interfaces/investment.md)*››*

***

### invest

▸ **invest**(`args`: [InvestInOfferingParams](https://github.com/PolymathNetwork/polymesh-sdk/blob/docs/beta/docs/interfaces/investinofferingparams.md), `opts?`: [ProcedureOpts](https://github.com/PolymathNetwork/polymesh-sdk/blob/docs/beta/docs/interfaces/procedureopts.md)): *Promise‹*[*TransactionQueue*](/polymesh-sdk-api-reference/docs-beta/classes/transactionqueue.md)*‹void››*

*Defined in* [*src/api/entities/Offering/index.ts:210*](https://github.com/PolymathNetwork/polymesh-sdk/blob/31a16a34/src/api/entities/Offering/index.ts#L210)

Invest in the Offering

**`note`** required roles:

* Purchase Portfolio Custodian
* Funding Portfolio Custodian

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

**Returns:** *Promise‹*[*TransactionQueue*](/polymesh-sdk-api-reference/docs-beta/classes/transactionqueue.md)*‹void››*

***

### isEqual

▸ **isEqual**(`entity`: [Entity](/polymesh-sdk-api-reference/docs-beta/classes/entity.md)‹unknown, unknown›): *boolean*

*Inherited from* [*CheckpointSchedule*](/polymesh-sdk-api-reference/docs-beta/classes/checkpointschedule.md)*.*[*isEqual*](/polymesh-sdk-api-reference/docs-beta/classes/checkpointschedule.md#isequal)

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

Determine whether this Entity is the same as another one

**Parameters:**

| Name     | Type                                                                                |
| -------- | ----------------------------------------------------------------------------------- |
| `entity` | [Entity](/polymesh-sdk-api-reference/docs-beta/classes/entity.md)‹unknown, unknown› |

**Returns:** *boolean*

***

### modifyTimes

▸ **modifyTimes**(`args`: ModifyStoTimesParams, `opts?`: [ProcedureOpts](https://github.com/PolymathNetwork/polymesh-sdk/blob/docs/beta/docs/interfaces/procedureopts.md)): *Promise‹*[*TransactionQueue*](/polymesh-sdk-api-reference/docs-beta/classes/transactionqueue.md)*‹void››*

*Defined in* [*src/api/entities/Offering/index.ts:196*](https://github.com/PolymathNetwork/polymesh-sdk/blob/31a16a34/src/api/entities/Offering/index.ts#L196)

Modify the start/end time of the Offering

**`throws`** if:

* Trying to modify the start time on an Offering that already started
* Trying to modify anything on an Offering that already ended
* Trying to change start or end time to a past date

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

**Returns:** *Promise‹*[*TransactionQueue*](/polymesh-sdk-api-reference/docs-beta/classes/transactionqueue.md)*‹void››*

***

### toHuman

▸ **toHuman**(): [*HumanReadable*](https://github.com/PolymathNetwork/polymesh-sdk/blob/docs/beta/docs/interfaces/humanreadable.md)

*Overrides* [*Entity*](/polymesh-sdk-api-reference/docs-beta/classes/entity.md)*.*[*toHuman*](/polymesh-sdk-api-reference/docs-beta/classes/entity.md#abstract-tohuman)

*Defined in* [*src/api/entities/Offering/index.ts:353*](https://github.com/PolymathNetwork/polymesh-sdk/blob/31a16a34/src/api/entities/Offering/index.ts#L353)

Return the Offering's ID and Asset ticker

**Returns:** [*HumanReadable*](https://github.com/PolymathNetwork/polymesh-sdk/blob/docs/beta/docs/interfaces/humanreadable.md)

***

### unfreeze

▸ **unfreeze**(`opts?`: [ProcedureOpts](https://github.com/PolymathNetwork/polymesh-sdk/blob/docs/beta/docs/interfaces/procedureopts.md)): *Promise‹*[*TransactionQueue*](/polymesh-sdk-api-reference/docs-beta/classes/transactionqueue.md)*‹*[*Offering*](/polymesh-sdk-api-reference/docs-beta/classes/offering.md)*››*

*Defined in* [*src/api/entities/Offering/index.ts:181*](https://github.com/PolymathNetwork/polymesh-sdk/blob/31a16a34/src/api/entities/Offering/index.ts#L181)

Unfreeze the Offering

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

**Returns:** *Promise‹*[*TransactionQueue*](/polymesh-sdk-api-reference/docs-beta/classes/transactionqueue.md)*‹*[*Offering*](/polymesh-sdk-api-reference/docs-beta/classes/offering.md)*››*

***

### `Static` generateUuid

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

*Inherited from* [*CheckpointSchedule*](/polymesh-sdk-api-reference/docs-beta/classes/checkpointschedule.md)*.*[*generateUuid*](/polymesh-sdk-api-reference/docs-beta/classes/checkpointschedule.md#static-generateuuid)

*Defined in* [*src/api/entities/Entity.ts:14*](https://github.com/PolymathNetwork/polymesh-sdk/blob/31a16a34/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*](/polymesh-sdk-api-reference/docs-beta/classes/checkpointschedule.md)*.*[*unserialize*](/polymesh-sdk-api-reference/docs-beta/classes/checkpointschedule.md#static-unserialize)

*Defined in* [*src/api/entities/Entity.ts:23*](https://github.com/PolymathNetwork/polymesh-sdk/blob/31a16a34/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*
