[PERS SDK - v2.3.26](/sdk-reference/readme) / [Exports](/sdk-reference/modules) / BaseTokenService

# Class: BaseTokenService

Abstract Base Token Service - Explicit Initialization Pattern

Platform-agnostic token operations with Promise-based API.
Framework services extend this and control initialization lifecycle.

Benefits:

- Explicit initialization control
- Better error boundaries
- Clear lifecycle management
- Testable initialization state
- Zero framework dependencies


## Table of contents

### Accessors

- [isTokenServiceInitialized](/sdk-reference/classes/basetokenservice#istokenserviceinitialized)


### Constructors

- [constructor](/sdk-reference/classes/basetokenservice#constructor)


### Methods

- [initializeTokenService](/sdk-reference/classes/basetokenservice#initializetokenservice)
- [getRemoteTokens](/sdk-reference/classes/basetokenservice#getremotetokens)
- [getRemoteTokenTypes](/sdk-reference/classes/basetokenservice#getremotetokentypes)
- [getRemoteActiveCreditToken](/sdk-reference/classes/basetokenservice#getremoteactivecredittoken)
- [getRemoteRewardTokens](/sdk-reference/classes/basetokenservice#getremoterewardtokens)
- [getRemoteStatusTokens](/sdk-reference/classes/basetokenservice#getremotestatustokens)
- [getTokenByContractAddress](/sdk-reference/classes/basetokenservice#gettokenbycontractaddress)
- [createTokenMetadata](/sdk-reference/classes/basetokenservice#createtokenmetadata)
- [toggleTokenActive](/sdk-reference/classes/basetokenservice#toggletokenactive)
- [createToken](/sdk-reference/classes/basetokenservice#createtoken)
- [updateToken](/sdk-reference/classes/basetokenservice#updatetoken)
- [setMainnetContract](/sdk-reference/classes/basetokenservice#setmainnetcontract)
- [toggleTokenMetadataStatus](/sdk-reference/classes/basetokenservice#toggletokenmetadatastatus)
- [createTokenType](/sdk-reference/classes/basetokenservice#createtokentype)


## Accessors

### isTokenServiceInitialized

• `get` **isTokenServiceInitialized**(): `boolean`

LIFECYCLE: Check if token service is initialized

#### Returns

`boolean`

#### Defined in

[token/base/base-token-service.ts:56](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/token/base/base-token-service.ts#L56)

## Constructors

### constructor

• **new BaseTokenService**(): [`BaseTokenService`](/sdk-reference/classes/basetokenservice)

#### Returns

[`BaseTokenService`](/sdk-reference/classes/basetokenservice)

## Methods

### initializeTokenService

▸ **initializeTokenService**(`apiClient`): `void`

LIFECYCLE: Initialize token service with API client
Must be called before using any token operations

#### Parameters

| Name | Type |
|  --- | --- |
| `apiClient` | [`PersApiClient`](/sdk-reference/classes/persapiclient) |


#### Returns

`void`

#### Defined in

[token/base/base-token-service.ts:41](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/token/base/base-token-service.ts#L41)

### getRemoteTokens

▸ **getRemoteTokens**(): `Promise`<`PaginatedResponseDTO`<`TokenDTO`>>

PUBLIC: Get all remote tokens

#### Returns

`Promise`<`PaginatedResponseDTO`<`TokenDTO`>>

#### Defined in

[token/base/base-token-service.ts:77](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/token/base/base-token-service.ts#L77)

### getRemoteTokenTypes

▸ **getRemoteTokenTypes**(): `Promise`<`PaginatedResponseDTO`<`TokenTypeDTO`>>

PUBLIC: Get all remote token types

#### Returns

`Promise`<`PaginatedResponseDTO`<`TokenTypeDTO`>>

#### Defined in

[token/base/base-token-service.ts:84](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/token/base/base-token-service.ts#L84)

### getRemoteActiveCreditToken

▸ **getRemoteActiveCreditToken**(): `Promise`<`TokenDTO`>

PUBLIC: Get active credit token

#### Returns

`Promise`<`TokenDTO`>

#### Defined in

[token/base/base-token-service.ts:91](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/token/base/base-token-service.ts#L91)

### getRemoteRewardTokens

▸ **getRemoteRewardTokens**(): `Promise`<`PaginatedResponseDTO`<`TokenDTO`>>

PUBLIC: Get reward tokens

#### Returns

`Promise`<`PaginatedResponseDTO`<`TokenDTO`>>

#### Defined in

[token/base/base-token-service.ts:98](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/token/base/base-token-service.ts#L98)

### getRemoteStatusTokens

▸ **getRemoteStatusTokens**(): `Promise`<`PaginatedResponseDTO`<`TokenDTO`>>

PUBLIC: Get status tokens

#### Returns

`Promise`<`PaginatedResponseDTO`<`TokenDTO`>>

#### Defined in

[token/base/base-token-service.ts:105](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/token/base/base-token-service.ts#L105)

### getTokenByContractAddress

▸ **getTokenByContractAddress**(`contractAddress`, `contractTokenId`): `Promise`<`TokenDTO`>

PUBLIC: Get token by contract address

#### Parameters

| Name | Type |
|  --- | --- |
| `contractAddress` | `string` |
| `contractTokenId` | `null` | `string` |


#### Returns

`Promise`<`TokenDTO`>

#### Defined in

[token/base/base-token-service.ts:112](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/token/base/base-token-service.ts#L112)

### createTokenMetadata

▸ **createTokenMetadata**(`tokenId`, `tokenData`): `Promise`<`TokenDTO`>

ADMIN: Create token metadata

#### Parameters

| Name | Type |
|  --- | --- |
| `tokenId` | `string` |
| `tokenData` | `TokenMetadataCreateRequestDTO` |


#### Returns

`Promise`<`TokenDTO`>

#### Defined in

[token/base/base-token-service.ts:123](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/token/base/base-token-service.ts#L123)

### toggleTokenActive

▸ **toggleTokenActive**(`tokenId`): `Promise`<`TokenDTO`>

ADMIN: Toggle token active status

#### Parameters

| Name | Type |
|  --- | --- |
| `tokenId` | `string` |


#### Returns

`Promise`<`TokenDTO`>

#### Defined in

[token/base/base-token-service.ts:130](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/token/base/base-token-service.ts#L130)

### createToken

▸ **createToken**(`tokenData`): `Promise`<`TokenDTO`>

ADMIN: Create new token

#### Parameters

| Name | Type |
|  --- | --- |
| `tokenData` | `TokenCreateRequestDTO` |


#### Returns

`Promise`<`TokenDTO`>

#### Defined in

[token/base/base-token-service.ts:137](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/token/base/base-token-service.ts#L137)

### updateToken

▸ **updateToken**(`tokenId`, `tokenData`): `Promise`<`TokenDTO`>

ADMIN: Update token

#### Parameters

| Name | Type |
|  --- | --- |
| `tokenId` | `string` |
| `tokenData` | `TokenUpdateRequestDTO` |


#### Returns

`Promise`<`TokenDTO`>

#### Defined in

[token/base/base-token-service.ts:144](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/token/base/base-token-service.ts#L144)

### setMainnetContract

▸ **setMainnetContract**(`tokenId`, `contractAddress`, `chainId`): `Promise`<`TokenDTO`>

ADMIN: Set mainnet contract address

#### Parameters

| Name | Type |
|  --- | --- |
| `tokenId` | `string` |
| `contractAddress` | `string` |
| `chainId` | `number` |


#### Returns

`Promise`<`TokenDTO`>

#### Defined in

[token/base/base-token-service.ts:151](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/token/base/base-token-service.ts#L151)

### toggleTokenMetadataStatus

▸ **toggleTokenMetadataStatus**(`metadataId`): `Promise`<`TokenMetadataDTO`>

ADMIN: Toggle token metadata status

#### Parameters

| Name | Type |
|  --- | --- |
| `metadataId` | `string` |


#### Returns

`Promise`<`TokenMetadataDTO`>

#### Defined in

[token/base/base-token-service.ts:158](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/token/base/base-token-service.ts#L158)

### createTokenType

▸ **createTokenType**(`tokenType`): `Promise`<`TokenTypeDTO`>

ADMIN: Create token type

#### Parameters

| Name | Type |
|  --- | --- |
| `tokenType` | `TokenTypeDTO` |


#### Returns

`Promise`<`TokenTypeDTO`>

#### Defined in

[token/base/base-token-service.ts:165](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/token/base/base-token-service.ts#L165)