# api\_client\_Identities.Identities

[@polymeshassociation/polymesh-sdk](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/classes) / [Modules](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/modules) / [api/client/Identities](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/modules-1/api_client_identities) / Identities

## Class: Identities

[api/client/Identities](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/modules-1/api_client_identities).Identities

Handles all Identity related functionality

### Table of contents

#### Methods

* [createPortfolio](#createportfolio)
* [getIdentity](#getidentity)
* [isIdentityValid](#isidentityvalid)
* [registerIdentity](#registeridentity)

### Methods

#### createPortfolio

▸ **createPortfolio**(`args`, `opts?`): `Promise`<`TransactionQueue`<[`NumberedPortfolio`](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/classes/api_entities_numberedportfolio.numberedportfolio), [`NumberedPortfolio`](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/classes/api_entities_numberedportfolio.numberedportfolio), `unknown`\[]\[]>>

Create a new Portfolio under the ownership of the signing Identity

**`note`** this method is of type [ProcedureMethod](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/interfaces/types.proceduremethod), which means you can call [createPortfolio.checkAuthorization](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/interfaces/types.proceduremethod#checkauthorization) on it to see whether the signing Account and Identity have the required roles and permissions to run it

**Parameters**

| Name        | Type                                                                                                                        |
| ----------- | --------------------------------------------------------------------------------------------------------------------------- |
| `args`      | `Object`                                                                                                                    |
| `args.name` | `string`                                                                                                                    |
| `opts?`     | [`ProcedureOpts`](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/interfaces/types.procedureopts) |

**Returns**

`Promise`<`TransactionQueue`<[`NumberedPortfolio`](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/classes/api_entities_numberedportfolio.numberedportfolio), [`NumberedPortfolio`](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/classes/api_entities_numberedportfolio.numberedportfolio), `unknown`\[]\[]>>

**Defined in**

[api/client/Identities.ts:61](https://github.com/PolymathNetwork/polymesh-sdk/blob/31dfa0dc/src/api/client/Identities.ts#L61)

***

#### getIdentity

▸ **getIdentity**(`args`): `Promise`<[`Identity`](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/classes/api_entities_identity.identity)>

Create an Identity instance from a DID

**`throws`** if there is no Identity with the passed DID

**Parameters**

| Name       | Type     |
| ---------- | -------- |
| `args`     | `Object` |
| `args.did` | `string` |

**Returns**

`Promise`<[`Identity`](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/classes/api_entities_identity.identity)>

**Defined in**

[api/client/Identities.ts:70](https://github.com/PolymathNetwork/polymesh-sdk/blob/31dfa0dc/src/api/client/Identities.ts#L70)

***

#### isIdentityValid

▸ **isIdentityValid**(`args`): `Promise`<`boolean`>

Return whether the supplied Identity/DID exists

**Parameters**

| Name            | Type                                                                                                                                       |
| --------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
| `args`          | `Object`                                                                                                                                   |
| `args.identity` | `string` \| [`Identity`](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/classes/api_entities_identity.identity) |

**Returns**

`Promise`<`boolean`>

**Defined in**

[api/client/Identities.ts:77](https://github.com/PolymathNetwork/polymesh-sdk/blob/31dfa0dc/src/api/client/Identities.ts#L77)

***

#### registerIdentity

▸ **registerIdentity**(`args`, `opts?`): `Promise`<`TransactionQueue`<[`Identity`](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/classes/api_entities_identity.identity), [`Identity`](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/classes/api_entities_identity.identity), `unknown`\[]\[]>>

Register an Identity

**`note`** must be a CDD provider

**`note`** this may create [Authorization Requests](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/classes/api_entities_authorizationrequest.authorizationrequest) which have to be accepted by the `targetAccount`. An [Account](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/classes/api_entities_account.account) or [Identity](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/classes/api_entities_identity.identity) can fetch its pending Authorization Requests by calling [authorizations.getReceived](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/api_entities_common_namespaces_authorizations.authorizations#getreceived). Also, an Account or Identity can directly fetch the details of an Authorization Request by calling [authorizations.getOne](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/api_entities_common_namespaces_authorizations.authorizations#getone)

**`note`** required role:

* Customer Due Diligence Provider

**`note`** this method is of type [ProcedureMethod](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/interfaces/types.proceduremethod), which means you can call [registerIdentity.checkAuthorization](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/interfaces/types.proceduremethod#checkauthorization) on it to see whether the signing Account and Identity have the required roles and permissions to run it

**Parameters**

| Name    | Type                                                                                                                                                                    |
| ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `args`  | [`RegisterIdentityParams`](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/interfaces/api_procedures_registeridentity.registeridentityparams) |
| `opts?` | [`ProcedureOpts`](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/interfaces/types.procedureopts)                                             |

**Returns**

`Promise`<`TransactionQueue`<[`Identity`](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/classes/api_entities_identity.identity), [`Identity`](https://developers.polymath.network/polymesh-sdk-api-reference/docs-alpha/classes/api_entities_identity.identity), `unknown`\[]\[]>>

**Defined in**

[api/client/Identities.ts:51](https://github.com/PolymathNetwork/polymesh-sdk/blob/31dfa0dc/src/api/client/Identities.ts#L51)
