# Sto

Represents a Security Token Offering in the Polymesh blockchain

## Hierarchy

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

  ↳ **Sto**

## Index

### Properties

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

### Methods

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

## Properties

### `Protected` context

• **context**: [*Context*](https://developers.polymath.network/polymesh-sdk-api-reference/docs-v6/classes/context)

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

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

### id

• **id**: *BigNumber*

*Defined in* [*src/api/entities/Sto/index.ts:55*](https://github.com/PolymathNetwork/polymesh-sdk/blob/23062de4/src/api/entities/Sto/index.ts#L55)

identifier number of the Offering

### ticker

• **ticker**: *string*

*Defined in* [*src/api/entities/Sto/index.ts:60*](https://github.com/PolymathNetwork/polymesh-sdk/blob/23062de4/src/api/entities/Sto/index.ts#L60)

ticker of the Security Token being offered

### uuid

• **uuid**: *string*

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

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

## Methods

### close

▸ **close**(`args`: void): *Promise‹*[*TransactionQueue*](https://developers.polymath.network/polymesh-sdk-api-reference/docs-v6/classes/transactionqueue)*‹void››*

*Defined in* [*src/api/entities/Sto/index.ts:153*](https://github.com/PolymathNetwork/polymesh-sdk/blob/23062de4/src/api/entities/Sto/index.ts#L153)

Close the STO

**`note`** this method is of type [ProcedureMethod](https://developers.polymath.network/polymesh-sdk-api-reference/docs-v6/interfaces/proceduremethod), which means you can call `close.checkAuthorization` on it to see whether the Current Account has the required permissions to run it

**Parameters:**

| Name   | Type |
| ------ | ---- |
| `args` | void |

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

### details

▸ **details**(): *Promise‹*[*StoDetails*](https://developers.polymath.network/polymesh-sdk-api-reference/docs-v6/interfaces/stodetails)*›*

*Defined in* [*src/api/entities/Sto/index.ts:100*](https://github.com/PolymathNetwork/polymesh-sdk/blob/23062de4/src/api/entities/Sto/index.ts#L100)

Retrieve the STO's details

**`note`** can be subscribed to

**Returns:** *Promise‹*[*StoDetails*](https://developers.polymath.network/polymesh-sdk-api-reference/docs-v6/interfaces/stodetails)*›*

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

*Defined in* [*src/api/entities/Sto/index.ts:101*](https://github.com/PolymathNetwork/polymesh-sdk/blob/23062de4/src/api/entities/Sto/index.ts#L101)

**Parameters:**

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

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

### freeze

▸ **freeze**(`args`: void): *Promise‹*[*TransactionQueue*](https://developers.polymath.network/polymesh-sdk-api-reference/docs-v6/classes/transactionqueue)*‹*[*Sto*](https://developers.polymath.network/polymesh-sdk-api-reference/docs-v6/classes/sto)*››*

*Defined in* [*src/api/entities/Sto/index.ts:166*](https://github.com/PolymathNetwork/polymesh-sdk/blob/23062de4/src/api/entities/Sto/index.ts#L166)

Freeze the STO

**`note`** required role:

* Security Token Primary Issuance Agent

**`note`** this method is of type [ProcedureMethod](https://developers.polymath.network/polymesh-sdk-api-reference/docs-v6/interfaces/proceduremethod), which means you can call `freeze.checkAuthorization` on it to see whether the Current Account has the required permissions to run it

**Parameters:**

| Name   | Type |
| ------ | ---- |
| `args` | void |

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

### getInvestments

▸ **getInvestments**(`opts`: object): *Promise‹*[*ResultSet*](https://developers.polymath.network/polymesh-sdk-api-reference/docs-v6/interfaces/resultset)*‹*[*Investment*](https://developers.polymath.network/polymesh-sdk-api-reference/docs-v6/interfaces/investment)*››*

*Defined in* [*src/api/entities/Sto/index.ts:224*](https://github.com/PolymathNetwork/polymesh-sdk/blob/23062de4/src/api/entities/Sto/index.ts#L224)

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*](https://developers.polymath.network/polymesh-sdk-api-reference/docs-v6/interfaces/resultset)*‹*[*Investment*](https://developers.polymath.network/polymesh-sdk-api-reference/docs-v6/interfaces/investment)*››*

### invest

▸ **invest**(`args`: [InvestInStoParams](https://developers.polymath.network/polymesh-sdk-api-reference/docs-v6/interfaces/investinstoparams)): *Promise‹*[*TransactionQueue*](https://developers.polymath.network/polymesh-sdk-api-reference/docs-v6/classes/transactionqueue)*‹void››*

*Defined in* [*src/api/entities/Sto/index.ts:211*](https://github.com/PolymathNetwork/polymesh-sdk/blob/23062de4/src/api/entities/Sto/index.ts#L211)

Invest in the STO

**`note`** required roles:

* Purchase Portfolio Custodian
* Funding Portfolio Custodian

**`note`** this method is of type [ProcedureMethod](https://developers.polymath.network/polymesh-sdk-api-reference/docs-v6/interfaces/proceduremethod), which means you can call `invest.checkAuthorization` on it to see whether the Current Account has the required permissions to run it

**Parameters:**

| Name   | Type                                                                                                                     |
| ------ | ------------------------------------------------------------------------------------------------------------------------ |
| `args` | [InvestInStoParams](https://developers.polymath.network/polymesh-sdk-api-reference/docs-v6/interfaces/investinstoparams) |

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

### isEqual

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

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

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

Whether this Entity is the same as another one

**Parameters:**

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

**Returns:** *boolean*

### modifyTimes

▸ **modifyTimes**(`args`: [ModifyStoTimesParams](https://developers.polymath.network/polymesh-sdk-api-reference/docs-v6/globals#modifystotimesparams)): *Promise‹*[*TransactionQueue*](https://developers.polymath.network/polymesh-sdk-api-reference/docs-v6/classes/transactionqueue)*‹void››*

*Defined in* [*src/api/entities/Sto/index.ts:197*](https://github.com/PolymathNetwork/polymesh-sdk/blob/23062de4/src/api/entities/Sto/index.ts#L197)

Modify the start/end time of the STO

**`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

**`note`** this method is of type [ProcedureMethod](https://developers.polymath.network/polymesh-sdk-api-reference/docs-v6/interfaces/proceduremethod), which means you can call `modifyTimes.checkAuthorization` on it to see whether the Current Account has the required permissions to run it

**Parameters:**

| Name   | Type                                                                                                                        |
| ------ | --------------------------------------------------------------------------------------------------------------------------- |
| `args` | [ModifyStoTimesParams](https://developers.polymath.network/polymesh-sdk-api-reference/docs-v6/globals#modifystotimesparams) |

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

### unfreeze

▸ **unfreeze**(`args`: void): *Promise‹*[*TransactionQueue*](https://developers.polymath.network/polymesh-sdk-api-reference/docs-v6/classes/transactionqueue)*‹*[*Sto*](https://developers.polymath.network/polymesh-sdk-api-reference/docs-v6/classes/sto)*››*

*Defined in* [*src/api/entities/Sto/index.ts:179*](https://github.com/PolymathNetwork/polymesh-sdk/blob/23062de4/src/api/entities/Sto/index.ts#L179)

Unfreeze the STO

**`note`** required role:

* Security Token Primary Issuance Agent

**`note`** this method is of type [ProcedureMethod](https://developers.polymath.network/polymesh-sdk-api-reference/docs-v6/interfaces/proceduremethod), which means you can call `unfreeze.checkAuthorization` on it to see whether the Current Account has the required permissions to run it

**Parameters:**

| Name   | Type |
| ------ | ---- |
| `args` | void |

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

### `Static` generateUuid

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

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

*Defined in* [*src/api/entities/Entity.ts:14*](https://github.com/PolymathNetwork/polymesh-sdk/blob/23062de4/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/docs-v6/classes/checkpointschedule)*.*[*unserialize*](https://developers.polymath.network/polymesh-sdk-api-reference/docs-v6/checkpointschedule#static-unserialize)

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