# Context

Context in which the SDK is being used

* Holds the current low level API
* Holds the current keyring pair
* Holds the current Identity

## Hierarchy

* **Context**

## Index

### Properties

* [currentPair](/polymesh-sdk-api-reference/docs-v7/classes/context.md#optional-currentpair)
* [isArchiveNode](/polymesh-sdk-api-reference/docs-v7/classes/context.md#isarchivenode)
* [polymeshApi](/polymesh-sdk-api-reference/docs-v7/classes/context.md#polymeshapi)
* [ss58Format](/polymesh-sdk-api-reference/docs-v7/classes/context.md#ss58format)

### Accessors

* [middlewareApi](/polymesh-sdk-api-reference/docs-v7/classes/context.md#middlewareapi)

### Methods

* [accountBalance](/polymesh-sdk-api-reference/docs-v7/classes/context.md#accountbalance)
* [addPair](/polymesh-sdk-api-reference/docs-v7/classes/context.md#addpair)
* [clone](/polymesh-sdk-api-reference/docs-v7/classes/context.md#clone)
* [disconnect](/polymesh-sdk-api-reference/docs-v7/classes/context.md#disconnect)
* [getAccounts](/polymesh-sdk-api-reference/docs-v7/classes/context.md#getaccounts)
* [getCurrentAccount](/polymesh-sdk-api-reference/docs-v7/classes/context.md#getcurrentaccount)
* [getCurrentIdentity](/polymesh-sdk-api-reference/docs-v7/classes/context.md#getcurrentidentity)
* [getCurrentPair](/polymesh-sdk-api-reference/docs-v7/classes/context.md#getcurrentpair)
* [getInvalidDids](/polymesh-sdk-api-reference/docs-v7/classes/context.md#getinvaliddids)
* [getLatestBlock](/polymesh-sdk-api-reference/docs-v7/classes/context.md#getlatestblock)
* [getSigner](/polymesh-sdk-api-reference/docs-v7/classes/context.md#getsigner)
* [getTransactionArguments](/polymesh-sdk-api-reference/docs-v7/classes/context.md#gettransactionarguments)
* [getTransactionFees](/polymesh-sdk-api-reference/docs-v7/classes/context.md#gettransactionfees)
* [isMiddlewareAvailable](/polymesh-sdk-api-reference/docs-v7/classes/context.md#ismiddlewareavailable)
* [isMiddlewareEnabled](/polymesh-sdk-api-reference/docs-v7/classes/context.md#ismiddlewareenabled)
* [issuedClaims](/polymesh-sdk-api-reference/docs-v7/classes/context.md#issuedclaims)
* [queryMiddleware](/polymesh-sdk-api-reference/docs-v7/classes/context.md#querymiddleware)
* [setPair](/polymesh-sdk-api-reference/docs-v7/classes/context.md#setpair)
* [create](/polymesh-sdk-api-reference/docs-v7/classes/context.md#static-create)

## Properties

### `Optional` currentPair

• **currentPair**? : [*KeyringPair*](/polymesh-sdk-api-reference/docs-v7/interfaces/keyringpair.md)

*Defined in* [*src/base/Context.ts:114*](https://github.com/PolymathNetwork/polymesh-sdk/blob/bf2b7a12/src/base/Context.ts#L114)

### isArchiveNode

• **isArchiveNode**: *boolean* = false

*Defined in* [*src/base/Context.ts:119*](https://github.com/PolymathNetwork/polymesh-sdk/blob/bf2b7a12/src/base/Context.ts#L119)

Whether the current node is an archive node (contains a full history from genesis onward) or not

### polymeshApi

• **polymeshApi**: *ApiPromise*

*Defined in* [*src/base/Context.ts:112*](https://github.com/PolymathNetwork/polymesh-sdk/blob/bf2b7a12/src/base/Context.ts#L112)

### ss58Format

• **ss58Format**: *number*

*Defined in* [*src/base/Context.ts:121*](https://github.com/PolymathNetwork/polymesh-sdk/blob/bf2b7a12/src/base/Context.ts#L121)

## Accessors

### middlewareApi

• **get middlewareApi**(): *ApolloClient‹NormalizedCacheObject›*

*Defined in* [*src/base/Context.ts:953*](https://github.com/PolymathNetwork/polymesh-sdk/blob/bf2b7a12/src/base/Context.ts#L953)

Retrieve the middleware client

**`throws`** if the middleware is not enabled

**Returns:** *ApolloClient‹NormalizedCacheObject›*

## Methods

### accountBalance

▸ **accountBalance**(`account?`: string | [Account](/polymesh-sdk-api-reference/docs-v7/classes/account.md)): *Promise‹*[*AccountBalance*](/polymesh-sdk-api-reference/docs-v7/globals.md#accountbalance)*›*

*Defined in* [*src/base/Context.ts:344*](https://github.com/PolymathNetwork/polymesh-sdk/blob/bf2b7a12/src/base/Context.ts#L344)

Retrieve the account level POLYX balance

**`note`** can be subscribed to

**Parameters:**

| Name       | Type                                                                        |
| ---------- | --------------------------------------------------------------------------- |
| `account?` | string \| [Account](/polymesh-sdk-api-reference/docs-v7/classes/account.md) |

**Returns:** *Promise‹*[*AccountBalance*](/polymesh-sdk-api-reference/docs-v7/globals.md#accountbalance)*›*

▸ **accountBalance**(`account`: string | [Account](/polymesh-sdk-api-reference/docs-v7/classes/account.md) | undefined, `callback`: [SubCallback](/polymesh-sdk-api-reference/docs-v7/globals.md#subcallback)‹[AccountBalance](/polymesh-sdk-api-reference/docs-v7/globals.md#accountbalance)›): *Promise‹*[*UnsubCallback*](/polymesh-sdk-api-reference/docs-v7/globals.md#unsubcallback)*›*

*Defined in* [*src/base/Context.ts:345*](https://github.com/PolymathNetwork/polymesh-sdk/blob/bf2b7a12/src/base/Context.ts#L345)

Retrieve the account level POLYX balance

**`note`** can be subscribed to

**Parameters:**

| Name       | Type                                                                                                                                                       |
| ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `account`  | string \| [Account](/polymesh-sdk-api-reference/docs-v7/classes/account.md) \| undefined                                                                   |
| `callback` | [SubCallback](/polymesh-sdk-api-reference/docs-v7/globals.md#subcallback)‹[AccountBalance](/polymesh-sdk-api-reference/docs-v7/globals.md#accountbalance)› |

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

### addPair

▸ **addPair**(`params`: [AddPairParams](/polymesh-sdk-api-reference/docs-v7/globals.md#addpairparams)): [*KeyringPair*](/polymesh-sdk-api-reference/docs-v7/interfaces/keyringpair.md)

*Defined in* [*src/base/Context.ts:284*](https://github.com/PolymathNetwork/polymesh-sdk/blob/bf2b7a12/src/base/Context.ts#L284)

Add a signing pair to the Keyring

**Parameters:**

| Name     | Type                                                                          |
| -------- | ----------------------------------------------------------------------------- |
| `params` | [AddPairParams](/polymesh-sdk-api-reference/docs-v7/globals.md#addpairparams) |

**Returns:** [*KeyringPair*](/polymesh-sdk-api-reference/docs-v7/interfaces/keyringpair.md)

### clone

▸ **clone**(): [*Context*](/polymesh-sdk-api-reference/docs-v7/classes/context.md)

*Defined in* [*src/base/Context.ts:1041*](https://github.com/PolymathNetwork/polymesh-sdk/blob/bf2b7a12/src/base/Context.ts#L1041)

Returns a (shallow) clone of this instance. Useful for providing a separate Context to Procedures with different signers

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

### disconnect

▸ **disconnect**(): *Promise‹void›*

*Defined in* [*src/base/Context.ts:1023*](https://github.com/PolymathNetwork/polymesh-sdk/blob/bf2b7a12/src/base/Context.ts#L1023)

Disconnect the Polkadot API, middleware, and render this instance unusable

**`note`** after disconnecting, trying to access any property in this objecct will result in an error

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

### getAccounts

▸ **getAccounts**(): *\[]*

*Defined in* [*src/base/Context.ts:261*](https://github.com/PolymathNetwork/polymesh-sdk/blob/bf2b7a12/src/base/Context.ts#L261)

Retrieve a list of Accounts that can act as signers

**Returns:** *\[]*

### getCurrentAccount

▸ **getCurrentAccount**(): [*CurrentAccount*](/polymesh-sdk-api-reference/docs-v7/classes/currentaccount.md)

*Defined in* [*src/base/Context.ts:406*](https://github.com/PolymathNetwork/polymesh-sdk/blob/bf2b7a12/src/base/Context.ts#L406)

Retrieve current Account

**`throws`** if there is no current account associated to the SDK instance

**Returns:** [*CurrentAccount*](/polymesh-sdk-api-reference/docs-v7/classes/currentaccount.md)

### getCurrentIdentity

▸ **getCurrentIdentity**(): *Promise‹*[*CurrentIdentity*](/polymesh-sdk-api-reference/docs-v7/classes/currentidentity.md)*›*

*Defined in* [*src/base/Context.ts:426*](https://github.com/PolymathNetwork/polymesh-sdk/blob/bf2b7a12/src/base/Context.ts#L426)

Retrieve current Identity

**`throws`** if there is no Identity associated to the current Account (or there is no current Account associated to the SDK instance)

**Returns:** *Promise‹*[*CurrentIdentity*](/polymesh-sdk-api-reference/docs-v7/classes/currentidentity.md)*›*

### getCurrentPair

▸ **getCurrentPair**(): [*KeyringPair*](/polymesh-sdk-api-reference/docs-v7/interfaces/keyringpair.md)

*Defined in* [*src/base/Context.ts:446*](https://github.com/PolymathNetwork/polymesh-sdk/blob/bf2b7a12/src/base/Context.ts#L446)

Retrieve current Keyring Pair

**`throws`** if there is no Account associated to the SDK instance

**Returns:** [*KeyringPair*](/polymesh-sdk-api-reference/docs-v7/interfaces/keyringpair.md)

### getInvalidDids

▸ **getInvalidDids**(`identities`: (string | [Identity](/polymesh-sdk-api-reference/docs-v7/classes/identity.md)‹›)\[]): *Promise‹string\[]›*

*Defined in* [*src/base/Context.ts:475*](https://github.com/PolymathNetwork/polymesh-sdk/blob/bf2b7a12/src/base/Context.ts#L475)

Check whether Identities exist

**Parameters:**

| Name         | Type                                                                                 |
| ------------ | ------------------------------------------------------------------------------------ |
| `identities` | (string \| [Identity](/polymesh-sdk-api-reference/docs-v7/classes/identity.md)‹›)\[] |

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

### getLatestBlock

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

*Defined in* [*src/base/Context.ts:1011*](https://github.com/PolymathNetwork/polymesh-sdk/blob/bf2b7a12/src/base/Context.ts#L1011)

Retrieve the latest block number

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

### getSigner

▸ **getSigner**(): *AddressOrPair*

*Defined in* [*src/base/Context.ts:462*](https://github.com/PolymathNetwork/polymesh-sdk/blob/bf2b7a12/src/base/Context.ts#L462)

Retrieve the signer address (or keyring pair)

**Returns:** *AddressOrPair*

### getTransactionArguments

▸ **getTransactionArguments**(`args`: object): [*TransactionArgument*](/polymesh-sdk-api-reference/docs-v7/globals.md#transactionargument)*\[]*

*Defined in* [*src/base/Context.ts:525*](https://github.com/PolymathNetwork/polymesh-sdk/blob/bf2b7a12/src/base/Context.ts#L525)

Retrieve the types of arguments that a certain transaction requires to be run

**Parameters:**

▪ **args**: *object*

| Name  | Type  | Description                                                                      |
| ----- | ----- | -------------------------------------------------------------------------------- |
| `tag` | TxTag | tag associated with the transaction that will be executed if the proposal passes |

**Returns:** [*TransactionArgument*](/polymesh-sdk-api-reference/docs-v7/globals.md#transactionargument)*\[]*

### getTransactionFees

▸ **getTransactionFees**(`tag`: TxTag): *Promise‹BigNumber›*

*Defined in* [*src/base/Context.ts:498*](https://github.com/PolymathNetwork/polymesh-sdk/blob/bf2b7a12/src/base/Context.ts#L498)

Retrieve the protocol fees associated with running a specific transaction

**Parameters:**

| Name  | Type  | Description                                                            |
| ----- | ----- | ---------------------------------------------------------------------- |
| `tag` | TxTag | transaction tag (i.e. TxTags.asset.CreateAsset or "asset.createAsset") |

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

### isMiddlewareAvailable

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

*Defined in* [*src/base/Context.ts:998*](https://github.com/PolymathNetwork/polymesh-sdk/blob/bf2b7a12/src/base/Context.ts#L998)

Return whether the middleware is enabled and online

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

### isMiddlewareEnabled

▸ **isMiddlewareEnabled**(): *boolean*

*Defined in* [*src/base/Context.ts:991*](https://github.com/PolymathNetwork/polymesh-sdk/blob/bf2b7a12/src/base/Context.ts#L991)

Return whether the middleware was enabled at startup

**Returns:** *boolean*

### issuedClaims

▸ **issuedClaims**(`opts`: object): *Promise‹*[*ResultSet*](/polymesh-sdk-api-reference/docs-v7/interfaces/resultset.md)*‹*[*ClaimData*](/polymesh-sdk-api-reference/docs-v7/interfaces/claimdata.md)*››*

*Defined in* [*src/base/Context.ts:902*](https://github.com/PolymathNetwork/polymesh-sdk/blob/bf2b7a12/src/base/Context.ts#L902)

Retrieve a list of claims. Can be filtered using parameters

**`note`** uses the middleware (optional)

**Parameters:**

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

| Name                   | Type                                                                                                                                                                                                                                                         | Description                                                                               |
| ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------- |
| `claimTypes?`          | [Exclude](/polymesh-sdk-api-reference/docs-v7/enums/targettreatment.md#exclude)‹[ClaimType](/polymesh-sdk-api-reference/docs-v7/enums/claimtype.md), [InvestorUniquenessV2](/polymesh-sdk-api-reference/docs-v7/enums/claimtype.md#investoruniquenessv2)›\[] | types of the claims to fetch. Defaults to any type                                        |
| `includeExpired?`      | undefined \| false \| true                                                                                                                                                                                                                                   | whether to include expired claims. Defaults to true                                       |
| `size?`                | undefined \| number                                                                                                                                                                                                                                          | page size                                                                                 |
| `start?`               | undefined \| number                                                                                                                                                                                                                                          | page offset                                                                               |
| `targets?`             | (string \| [Identity](/polymesh-sdk-api-reference/docs-v7/classes/identity.md)‹›)\[]                                                                                                                                                                         | identities (or Identity IDs) for which to fetch claims (targets). Defaults to all targets |
| `trustedClaimIssuers?` | (string \| [Identity](/polymesh-sdk-api-reference/docs-v7/classes/identity.md)‹›)\[]                                                                                                                                                                         | identity IDs of claim issuers. Defaults to all claim issuers                              |

**Returns:** *Promise‹*[*ResultSet*](/polymesh-sdk-api-reference/docs-v7/interfaces/resultset.md)*‹*[*ClaimData*](/polymesh-sdk-api-reference/docs-v7/interfaces/claimdata.md)*››*

### queryMiddleware

▸ **queryMiddleware**‹**Result**›(`query`: GraphqlQuery‹unknown›): *Promise‹ApolloQueryResult‹Result››*

*Defined in* [*src/base/Context.ts:969*](https://github.com/PolymathNetwork/polymesh-sdk/blob/bf2b7a12/src/base/Context.ts#L969)

Make a query to the middleware server using the apollo client

**Type parameters:**

▪ **Result**: *Partial‹Query›*

**Parameters:**

| Name    | Type                  |
| ------- | --------------------- |
| `query` | GraphqlQuery‹unknown› |

**Returns:** *Promise‹ApolloQueryResult‹Result››*

### setPair

▸ **setPair**(`address`: string): *void*

*Defined in* [*src/base/Context.ts:326*](https://github.com/PolymathNetwork/polymesh-sdk/blob/bf2b7a12/src/base/Context.ts#L326)

Set a pair as the current Account keyring pair

**Parameters:**

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

**Returns:** *void*

### `Static` create

▸ **create**(`params`: object): *Promise‹*[*Context*](/polymesh-sdk-api-reference/docs-v7/classes/context.md)*›*

*Defined in* [*src/base/Context.ts:182*](https://github.com/PolymathNetwork/polymesh-sdk/blob/bf2b7a12/src/base/Context.ts#L182)

Create the Context instance

**Parameters:**

▪ **params**: *object*

| Name               | Type                                                                                                                                                      |
| ------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `accountMnemonic?` | undefined \| string                                                                                                                                       |
| `accountSeed?`     | undefined \| string                                                                                                                                       |
| `accountUri?`      | undefined \| string                                                                                                                                       |
| `keyring?`         | [CommonKeyring](/polymesh-sdk-api-reference/docs-v7/globals.md#commonkeyring) \| [UiKeyring](/polymesh-sdk-api-reference/docs-v7/interfaces/uikeyring.md) |
| `middlewareApi`    | ApolloClient‹NormalizedCacheObject› \| null                                                                                                               |
| `polymeshApi`      | ApiPromise                                                                                                                                                |

**Returns:** *Promise‹*[*Context*](/polymesh-sdk-api-reference/docs-v7/classes/context.md)*›*


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://developers.polymath.network/polymesh-sdk-api-reference/docs-v7/classes/context.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
