> 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-v5/classes/sto.md).

# Sto

Represents a Security Token Offering in the Polymesh blockchain

## Hierarchy

* [Entity](/polymesh-sdk-api-reference/docs-v5/classes/entity.md)‹UniqueIdentifiers›

  ↳ **Sto**

## Index

### Properties

* [close](/polymesh-sdk-api-reference/docs-v5/classes/sto.md#close)
* [context](/polymesh-sdk-api-reference/docs-v5/classes/sto.md#protected-context)
* [freeze](/polymesh-sdk-api-reference/docs-v5/classes/sto.md#freeze)
* [id](/polymesh-sdk-api-reference/docs-v5/classes/sto.md#id)
* [invest](/polymesh-sdk-api-reference/docs-v5/classes/sto.md#invest)
* [modifyTimes](/polymesh-sdk-api-reference/docs-v5/classes/sto.md#modifytimes)
* [ticker](/polymesh-sdk-api-reference/docs-v5/classes/sto.md#ticker)
* [unfreeze](/polymesh-sdk-api-reference/docs-v5/classes/sto.md#unfreeze)
* [uuid](/polymesh-sdk-api-reference/docs-v5/classes/sto.md#uuid)

### Methods

* [details](/polymesh-sdk-api-reference/docs-v5/classes/sto.md#details)
* [getInvestments](/polymesh-sdk-api-reference/docs-v5/classes/sto.md#getinvestments)
* [isEqual](/polymesh-sdk-api-reference/docs-v5/classes/sto.md#isequal)
* [generateUuid](/polymesh-sdk-api-reference/docs-v5/classes/sto.md#static-generateuuid)
* [unserialize](/polymesh-sdk-api-reference/docs-v5/classes/sto.md#static-unserialize)

## Properties

### close

• **close**: *ProcedureMethod‹void, void›*

*Defined in* [*src/api/entities/Sto/index.ts:143*](https://github.com/PolymathNetwork/polymesh-sdk/blob/524b0225/src/api/entities/Sto/index.ts#L143)

Close the STO

### `Protected` context

• **context**: [*Context*](/polymesh-sdk-api-reference/docs-v5/classes/context.md)

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

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

### freeze

• **freeze**: *ProcedureMethod‹void,* [*Sto*](/polymesh-sdk-api-reference/docs-v5/classes/sto.md)*›*

*Defined in* [*src/api/entities/Sto/index.ts:151*](https://github.com/PolymathNetwork/polymesh-sdk/blob/524b0225/src/api/entities/Sto/index.ts#L151)

Freeze the STO

**`note`** required role:

* Security Token Primary Issuance Agent

### id

• **id**: *BigNumber*

*Defined in* [*src/api/entities/Sto/index.ts:48*](https://github.com/PolymathNetwork/polymesh-sdk/blob/524b0225/src/api/entities/Sto/index.ts#L48)

identifier number of the Offering

### invest

• **invest**: *ProcedureMethod‹*[*InvestInStoParams*](/polymesh-sdk-api-reference/docs-v5/interfaces/investinstoparams.md)*, void›*

*Defined in* [*src/api/entities/Sto/index.ts:189*](https://github.com/PolymathNetwork/polymesh-sdk/blob/524b0225/src/api/entities/Sto/index.ts#L189)

Invest in the STO

**`param`** portfolio in which the purchased Tokens will be stored

**`param`** portfolio from which funds will be withdrawn to pay for the Tokens

**`param`** amount of tokens to purchase

**`param`** maximum average price to pay per Token (optional)

**`note`** required roles:

* Purchase Portfolio Custodian
* Funding Portfolio Custodian

### modifyTimes

• **modifyTimes**: *ProcedureMethod‹*[*ModifyStoTimesParams*](/polymesh-sdk-api-reference/docs-v5/globals.md#modifystotimesparams)*, void›*

*Defined in* [*src/api/entities/Sto/index.ts:175*](https://github.com/PolymathNetwork/polymesh-sdk/blob/524b0225/src/api/entities/Sto/index.ts#L175)

Modify the start/end time of the STO

**`param`** new start time (optional, will be left the same if not passed)

**`param`** new end time (optional, will be left th same if not passed). A null value means the STO doesn't end

**`throws`** if:

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

**`note`** required role:

* Security Token Primary Issuance Agent

### ticker

• **ticker**: *string*

*Defined in* [*src/api/entities/Sto/index.ts:53*](https://github.com/PolymathNetwork/polymesh-sdk/blob/524b0225/src/api/entities/Sto/index.ts#L53)

ticker of the Security Token being offered

### unfreeze

• **unfreeze**: *ProcedureMethod‹void,* [*Sto*](/polymesh-sdk-api-reference/docs-v5/classes/sto.md)*›*

*Defined in* [*src/api/entities/Sto/index.ts:159*](https://github.com/PolymathNetwork/polymesh-sdk/blob/524b0225/src/api/entities/Sto/index.ts#L159)

Unfreeze the STO

**`note`** required role:

* Security Token Primary Issuance Agent

### uuid

• **uuid**: *string*

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

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

## Methods

### details

▸ **details**(): *Promise‹*[*StoDetails*](/polymesh-sdk-api-reference/docs-v5/interfaces/stodetails.md)*›*

*Defined in* [*src/api/entities/Sto/index.ts:93*](https://github.com/PolymathNetwork/polymesh-sdk/blob/524b0225/src/api/entities/Sto/index.ts#L93)

Retrieve the STO's details

**`note`** can be subscribed to

**Returns:** *Promise‹*[*StoDetails*](/polymesh-sdk-api-reference/docs-v5/interfaces/stodetails.md)*›*

▸ **details**(`callback`: [SubCallback](/polymesh-sdk-api-reference/docs-v5/globals.md#subcallback)‹[StoDetails](/polymesh-sdk-api-reference/docs-v5/interfaces/stodetails.md)›): *Promise‹*[*UnsubCallback*](/polymesh-sdk-api-reference/docs-v5/globals.md#unsubcallback)*›*

*Defined in* [*src/api/entities/Sto/index.ts:94*](https://github.com/PolymathNetwork/polymesh-sdk/blob/524b0225/src/api/entities/Sto/index.ts#L94)

**Parameters:**

| Name       | Type                                                                                                                                                  |
| ---------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
| `callback` | [SubCallback](/polymesh-sdk-api-reference/docs-v5/globals.md#subcallback)‹[StoDetails](/polymesh-sdk-api-reference/docs-v5/interfaces/stodetails.md)› |

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

### getInvestments

▸ **getInvestments**(`opts`: object): *Promise‹*[*ResultSet*](/polymesh-sdk-api-reference/docs-v5/interfaces/resultset.md)*‹*[*Investment*](/polymesh-sdk-api-reference/docs-v5/interfaces/investment.md)*››*

*Defined in* [*src/api/entities/Sto/index.ts:200*](https://github.com/PolymathNetwork/polymesh-sdk/blob/524b0225/src/api/entities/Sto/index.ts#L200)

Retrieve all investments made on this STO

**`note`** supports pagination

**`note`** uses the middleware

**Parameters:**

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

| Name     | Type                | Description |
| -------- | ------------------- | ----------- |
| `size?`  | undefined \| number | page size   |
| `start?` | undefined \| number | page offset |

**Returns:** *Promise‹*[*ResultSet*](/polymesh-sdk-api-reference/docs-v5/interfaces/resultset.md)*‹*[*Investment*](/polymesh-sdk-api-reference/docs-v5/interfaces/investment.md)*››*

### isEqual

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

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

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

Whether this Entity is the same as another one

**Parameters:**

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

**Returns:** *boolean*

### `Static` generateUuid

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

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

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

Generate the Entity's UUID from its identifying properties

**Type parameters:**

▪ **Identifiers**: *object*

**Parameters:**

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

**Returns:** *string*

### `Static` unserialize

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

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

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

Unserialize a UUID into its Unique Identifiers

**Type parameters:**

▪ **Identifiers**: *object*

**Parameters:**

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

**Returns:** *Identifiers*
