> For the complete documentation index, see [llms.txt](https://developers.polymath.network/classic-sdk/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/classic-sdk/classes/_polymath_.polymath.md).

# Polymath

Main entry point of the Polymath SDK

## Hierarchy

* **Polymath**

## Index

### Properties

* [context](/classic-sdk/classes/_polymath_.polymath.md#private-context)
* [isConnected](/classic-sdk/classes/_polymath_.polymath.md#isconnected)
* [isUnsupported](/classic-sdk/classes/_polymath_.polymath.md#isunsupported)

### Methods

* [connect](/classic-sdk/classes/_polymath_.polymath.md#connect)
* [getCurrentAddress](/classic-sdk/classes/_polymath_.polymath.md#getcurrentaddress)
* [getLatestProtocolVersion](/classic-sdk/classes/_polymath_.polymath.md#getlatestprotocolversion)
* [getPolyTokenAddress](/classic-sdk/classes/_polymath_.polymath.md#getpolytokenaddress)
* [getSecurityToken](/classic-sdk/classes/_polymath_.polymath.md#getsecuritytoken)
* [getSecurityTokenReservation](/classic-sdk/classes/_polymath_.polymath.md#getsecuritytokenreservation)
* [getSecurityTokenReservations](/classic-sdk/classes/_polymath_.polymath.md#getsecuritytokenreservations)
* [getSecurityTokenSymbols](/classic-sdk/classes/_polymath_.polymath.md#getsecuritytokensymbols)
* [getSecurityTokens](/classic-sdk/classes/_polymath_.polymath.md#getsecuritytokens)
* [getWallet](/classic-sdk/classes/_polymath_.polymath.md#getwallet)
* [isSymbolAvailable](/classic-sdk/classes/_polymath_.polymath.md#issymbolavailable)
* [isValidErc20](/classic-sdk/classes/_polymath_.polymath.md#isvaliderc20)
* [reserveSecurityToken](/classic-sdk/classes/_polymath_.polymath.md#reservesecuritytoken)

## Properties

### `Private` context

• **context**: [*Context*](/classic-sdk/classes/_context_.context.md) = {} as Context

*Defined in* [*src/Polymath.ts:98*](https://github.com/PolymathNetwork/polymath-sdk/blob/e8bbc1e/src/Polymath.ts#L98)

### isConnected

• **isConnected**: *boolean* = false

*Defined in* [*src/Polymath.ts:96*](https://github.com/PolymathNetwork/polymath-sdk/blob/e8bbc1e/src/Polymath.ts#L96)

### isUnsupported

• **isUnsupported**: *boolean* = false

*Defined in* [*src/Polymath.ts:94*](https://github.com/PolymathNetwork/polymath-sdk/blob/e8bbc1e/src/Polymath.ts#L94)

## Methods

### connect

▸ **connect**(`__namedParameters`: object): *Promise‹this›*

*Defined in* [*src/Polymath.ts:103*](https://github.com/PolymathNetwork/polymath-sdk/blob/e8bbc1e/src/Polymath.ts#L103)

Connects the client to an Ethereum node

**Parameters:**

▪ **\_\_namedParameters**: *object*

| Name                      | Type                                                                     | Default               | Description                                                                                             |
| ------------------------- | ------------------------------------------------------------------------ | --------------------- | ------------------------------------------------------------------------------------------------------- |
| `polymathRegistryAddress` | undefined \| string                                                      | -                     | address of a custom Polymath Registry contract. Defaults to the one deployed by Polymath                |
| `privateKey`              | undefined \| string                                                      | -                     | private key of the wallet that will sign transactions. If using Metamask, this parameter can be ignored |
| `providerUrl`             | undefined \| string                                                      | -                     | URL of an Ethereum node. If using Metamask, this parameter can be ignored                               |
| `speed`                   | [TransactionSpeed](/classic-sdk/enums/_types_index_.transactionspeed.md) | TransactionSpeed.Fast | desired transaction speed. More gas is spent if a faster speed is chosen                                |

**Returns:** *Promise‹this›*

### getCurrentAddress

▸ **getCurrentAddress**(): *Promise‹string›*

*Defined in* [*src/Polymath.ts:451*](https://github.com/PolymathNetwork/polymath-sdk/blob/e8bbc1e/src/Polymath.ts#L451)

Returns the wallet address of the current user

**Returns:** *Promise‹string›*

### getLatestProtocolVersion

▸ **getLatestProtocolVersion**(): *Promise‹string›*

*Defined in* [*src/Polymath.ts:430*](https://github.com/PolymathNetwork/polymath-sdk/blob/e8bbc1e/src/Polymath.ts#L430)

Get the current version of the Polymath Protocol

**Returns:** *Promise‹string›*

version string (i.e. 3.0.0)

### getPolyTokenAddress

▸ **getPolyTokenAddress**(): *Promise‹string›*

*Defined in* [*src/Polymath.ts:442*](https://github.com/PolymathNetwork/polymath-sdk/blob/e8bbc1e/src/Polymath.ts#L442)

Get the address of the POLY token

**Returns:** *Promise‹string›*

### getSecurityToken

▸ **getSecurityToken**(`args`: object | object | string): *Promise‹*[*SecurityToken*](/classic-sdk/classes/_entities_securitytoken_securitytoken_.securitytoken.md)*›*

*Defined in* [*src/Polymath.ts:320*](https://github.com/PolymathNetwork/polymath-sdk/blob/e8bbc1e/src/Polymath.ts#L320)

Retrieve a security token by symbol, address or UUID

**Parameters:**

| Name   | Type                       |
| ------ | -------------------------- |
| `args` | object \| object \| string |

**Returns:** *Promise‹*[*SecurityToken*](/classic-sdk/classes/_entities_securitytoken_securitytoken_.securitytoken.md)*›*

### getSecurityTokenReservation

▸ **getSecurityTokenReservation**(`args`: object | string): *Promise‹*[*SecurityTokenReservation*](/classic-sdk/classes/_entities_securitytokenreservation_.securitytokenreservation.md)*›*

*Defined in* [*src/Polymath.ts:220*](https://github.com/PolymathNetwork/polymath-sdk/blob/e8bbc1e/src/Polymath.ts#L220)

Retrieve a Security Token Reservation by symbol or UUID

**Parameters:**

| Name   | Type             |
| ------ | ---------------- |
| `args` | object \| string |

**Returns:** *Promise‹*[*SecurityTokenReservation*](/classic-sdk/classes/_entities_securitytokenreservation_.securitytokenreservation.md)*›*

### getSecurityTokenReservations

▸ **getSecurityTokenReservations**(`args?`: undefined | object): *Promise‹*[*SecurityTokenReservation*](/classic-sdk/classes/_entities_securitytokenreservation_.securitytokenreservation.md)*\[]›*

*Defined in* [*src/Polymath.ts:188*](https://github.com/PolymathNetwork/polymath-sdk/blob/e8bbc1e/src/Polymath.ts#L188)

Retrieve all Security Token Reservations currently owned by an issuer. This includes Security Tokens that have already been launched

**Parameters:**

| Name    | Type                |
| ------- | ------------------- |
| `args?` | undefined \| object |

**Returns:** *Promise‹*[*SecurityTokenReservation*](/classic-sdk/classes/_entities_securitytokenreservation_.securitytokenreservation.md)*\[]›*

### getSecurityTokenSymbols

▸ **getSecurityTokenSymbols**(`args?`: undefined | object): *Promise‹string\[]›*

*Defined in* [*src/Polymath.ts:286*](https://github.com/PolymathNetwork/polymath-sdk/blob/e8bbc1e/src/Polymath.ts#L286)

Retrieve the symbols of all launched Security Tokens related to a wallet. This includes tokens owned by the wallet and tokens for which the wallet holds some role

**Includes** token symbols for tokens with version 2.0 or lower

**Parameters:**

| Name    | Type                |
| ------- | ------------------- |
| `args?` | undefined \| object |

**Returns:** *Promise‹string\[]›*

### getSecurityTokens

▸ **getSecurityTokens**(`args?`: undefined | object): *Promise‹*[*SecurityToken*](/classic-sdk/classes/_entities_securitytoken_securitytoken_.securitytoken.md)*\[]›*

*Defined in* [*src/Polymath.ts:244*](https://github.com/PolymathNetwork/polymath-sdk/blob/e8bbc1e/src/Polymath.ts#L244)

Retrieve all launched Security Tokens related to a wallet. This includes tokens owned by the wallet and tokens for which the wallet holds some role

**Ignores** all tokens with version 2.0 or lower

NOTE: This method is extremely slow if the wallet in question owns more than 20 tokens. If that is your case, use [getSecurityTokenSymbols](/classic-sdk/classes/_polymath_.polymath.md#getsecuritytokensymbols)

**Parameters:**

| Name    | Type                |
| ------- | ------------------- |
| `args?` | undefined \| object |

**Returns:** *Promise‹*[*SecurityToken*](/classic-sdk/classes/_entities_securitytoken_securitytoken_.securitytoken.md)*\[]›*

### getWallet

▸ **getWallet**(`args`: object): [*Wallet*](/classic-sdk/classes/_entities_wallet_.wallet.md)

*Defined in* [*src/Polymath.ts:419*](https://github.com/PolymathNetwork/polymath-sdk/blob/e8bbc1e/src/Polymath.ts#L419)

Retrieve a Wallet by address

**Parameters:**

▪ **args**: *object*

| Name      | Type   |
| --------- | ------ |
| `address` | string |

**Returns:** [*Wallet*](/classic-sdk/classes/_entities_wallet_.wallet.md)

### isSymbolAvailable

▸ **isSymbolAvailable**(`args`: object): *Promise‹boolean›*

*Defined in* [*src/Polymath.ts:394*](https://github.com/PolymathNetwork/polymath-sdk/blob/e8bbc1e/src/Polymath.ts#L394)

Check if a token symbol (ticker) is available for reservation

**Parameters:**

▪ **args**: *object*

| Name     | Type   |
| -------- | ------ |
| `symbol` | string |

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

### isValidErc20

▸ **isValidErc20**(`args`: object): *Promise‹void›*

*Defined in* [*src/Polymath.ts:405*](https://github.com/PolymathNetwork/polymath-sdk/blob/e8bbc1e/src/Polymath.ts#L405)

Check if a token follows the ERC20 standard

**Parameters:**

▪ **args**: *object*

| Name      | Type   |
| --------- | ------ |
| `address` | string |

**Returns:** *Promise‹void›*

### reserveSecurityToken

▸ **reserveSecurityToken**(`args`: object): *Promise‹*[*TransactionQueue*](/classic-sdk/classes/_entities_transactionqueue_.transactionqueue.md)*‹*[*ReserveSecurityTokenProcedureArgs*](/classic-sdk/interfaces/_types_index_.reservesecuritytokenprocedureargs.md)*,* [*SecurityTokenReservation*](/classic-sdk/classes/_entities_securitytokenreservation_.securitytokenreservation.md)*››*

*Defined in* [*src/Polymath.ts:176*](https://github.com/PolymathNetwork/polymath-sdk/blob/e8bbc1e/src/Polymath.ts#L176)

Reserve a Security Token

**Parameters:**

▪ **args**: *object*

| Name     | Type                |
| -------- | ------------------- |
| `owner?` | undefined \| string |
| `symbol` | string              |

**Returns:** *Promise‹*[*TransactionQueue*](/classic-sdk/classes/_entities_transactionqueue_.transactionqueue.md)*‹*[*ReserveSecurityTokenProcedureArgs*](/classic-sdk/interfaces/_types_index_.reservesecuritytokenprocedureargs.md)*,* [*SecurityTokenReservation*](/classic-sdk/classes/_entities_securitytokenreservation_.securitytokenreservation.md)*››*
