[@node-fi/sdk-core](../README.md) / [Exports](../modules.md) / Token

# Class: Token

Represents an ERC20 token with a unique address and some metadata.

## Hierarchy

- **`Token`**

  ↳ [`PricedToken`](PricedToken.md)

## Table of contents

### Constructors

- [constructor](Token.md#constructor)

### Properties

- [address](Token.md#address)
- [attemptedLoadContract](Token.md#attemptedloadcontract)
- [chainId](Token.md#chainid)
- [contract](Token.md#contract)
- [decimals](Token.md#decimals)
- [imageUri](Token.md#imageuri)
- [name](Token.md#name)
- [symbol](Token.md#symbol)

### Methods

- [\_loadContract](Token.md#_loadcontract)
- [equals](Token.md#equals)
- [loadDetails](Token.md#loaddetails)
- [send](Token.md#send)
- [sortsBefore](Token.md#sortsbefore)
- [toJSON](Token.md#tojson)
- [isSerializedToken](Token.md#isserializedtoken)
- [parseJson](Token.md#parsejson)

## Constructors

### constructor

• **new Token**(`chainId`, `address`, `decimals?`, `symbol?`, `name?`, `imageUri?`)

Constructs an instance of the base class `Currency`.

#### Parameters

| Name | Type | Description |
| :------ | :------ | :------ |
| `chainId` | [`ChainId`](../enums/ChainId.md) | - |
| `address` | `string` | - |
| `decimals?` | `number` | decimals of the currency |
| `symbol?` | `string` | symbol of the currency |
| `name?` | `string` | of the currency |
| `imageUri?` | `string` | - |

#### Defined in

[Tokens/Token.ts:46](https://github.com/Node-Fi/SDK-Core/blob/1f4f819/src/Tokens/Token.ts#L46)

## Properties

### address

• `Readonly` **address**: `string`

#### Defined in

[Tokens/Token.ts:38](https://github.com/Node-Fi/SDK-Core/blob/1f4f819/src/Tokens/Token.ts#L38)

___

### attemptedLoadContract

• `Private` `Optional` **attemptedLoadContract**: `boolean`

#### Defined in

[Tokens/Token.ts:35](https://github.com/Node-Fi/SDK-Core/blob/1f4f819/src/Tokens/Token.ts#L35)

___

### chainId

• `Readonly` **chainId**: [`ChainId`](../enums/ChainId.md)

#### Defined in

[Tokens/Token.ts:37](https://github.com/Node-Fi/SDK-Core/blob/1f4f819/src/Tokens/Token.ts#L37)

___

### contract

• `Private` `Optional` **contract**: `ERC20`

#### Defined in

[Tokens/Token.ts:34](https://github.com/Node-Fi/SDK-Core/blob/1f4f819/src/Tokens/Token.ts#L34)

___

### decimals

• **decimals**: `number`

#### Defined in

[Tokens/Token.ts:30](https://github.com/Node-Fi/SDK-Core/blob/1f4f819/src/Tokens/Token.ts#L30)

___

### imageUri

• `Optional` **imageUri**: `string`

#### Defined in

[Tokens/Token.ts:33](https://github.com/Node-Fi/SDK-Core/blob/1f4f819/src/Tokens/Token.ts#L33)

___

### name

• `Optional` **name**: `string`

#### Defined in

[Tokens/Token.ts:32](https://github.com/Node-Fi/SDK-Core/blob/1f4f819/src/Tokens/Token.ts#L32)

___

### symbol

• `Optional` **symbol**: `string`

#### Defined in

[Tokens/Token.ts:31](https://github.com/Node-Fi/SDK-Core/blob/1f4f819/src/Tokens/Token.ts#L31)

## Methods

### \_loadContract

▸ `Private` **_loadContract**(): `Promise`<`void`\>

Loads the ERC20 contract

#### Returns

`Promise`<`void`\>

#### Defined in

[Tokens/Token.ts:102](https://github.com/Node-Fi/SDK-Core/blob/1f4f819/src/Tokens/Token.ts#L102)

___

### equals

▸ **equals**(`other`): `boolean`

Returns true if the two tokens are equivalent, i.e. have the same chainId and address.

#### Parameters

| Name | Type | Description |
| :------ | :------ | :------ |
| `other` | [`Token`](Token.md) | other token to compare |

#### Returns

`boolean`

#### Defined in

[Tokens/Token.ts:140](https://github.com/Node-Fi/SDK-Core/blob/1f4f819/src/Tokens/Token.ts#L140)

___

### loadDetails

▸ **loadDetails**(): `Promise`<`void`\>

#### Returns

`Promise`<`void`\>

#### Defined in

[Tokens/Token.ts:62](https://github.com/Node-Fi/SDK-Core/blob/1f4f819/src/Tokens/Token.ts#L62)

___

### send

▸ **send**(`amount`, `from`, `to`, `opt?`): `Promise`<`TransactionReceipt`\>

#### Parameters

| Name | Type | Description |
| :------ | :------ | :------ |
| `amount` | `BigNumber` | amount, in wei, of the token to send |
| `from` | [`Wallet`](Wallet.md) | the wallet where the tokens will be sent from |
| `to` | `string` | the address of the recipient of the tokens |
| `opt?` | [`TransactionOptions`](../interfaces/TransactionOptions.md) | - |

#### Returns

`Promise`<`TransactionReceipt`\>

transaction receipt of the transfer

#### Defined in

[Tokens/Token.ts:117](https://github.com/Node-Fi/SDK-Core/blob/1f4f819/src/Tokens/Token.ts#L117)

___

### sortsBefore

▸ **sortsBefore**(`other`): `boolean`

Returns true if the address of this token sorts before the address of the other token

**`Throws`**

if the tokens have the same address

**`Throws`**

if the tokens are on different chains

#### Parameters

| Name | Type | Description |
| :------ | :------ | :------ |
| `other` | [`Token`](Token.md) | other token to compare |

#### Returns

`boolean`

#### Defined in

[Tokens/Token.ts:154](https://github.com/Node-Fi/SDK-Core/blob/1f4f819/src/Tokens/Token.ts#L154)

___

### toJSON

▸ **toJSON**(): `Object`

#### Returns

`Object`

| Name | Type |
| :------ | :------ |
| `_type` | `string` |
| `address` | `string` |
| `chainId` | [`ChainId`](../enums/ChainId.md) |
| `decimals` | `number` |
| `imageUri` | `undefined` \| `string` |
| `name` | `undefined` \| `string` |
| `symbol` | `undefined` \| `string` |

#### Defined in

[Tokens/Token.ts:87](https://github.com/Node-Fi/SDK-Core/blob/1f4f819/src/Tokens/Token.ts#L87)

___

### isSerializedToken

▸ `Static` **isSerializedToken**(`obj?`): obj is SerializedToken

#### Parameters

| Name | Type |
| :------ | :------ |
| `obj?` | `Record`<`string`, `any`\> |

#### Returns

obj is SerializedToken

#### Defined in

[Tokens/Token.ts:73](https://github.com/Node-Fi/SDK-Core/blob/1f4f819/src/Tokens/Token.ts#L73)

___

### parseJson

▸ `Static` **parseJson**(`__namedParameters`): [`Token`](Token.md)

#### Parameters

| Name | Type |
| :------ | :------ |
| `__namedParameters` | `SerializedToken` |

#### Returns

[`Token`](Token.md)

#### Defined in

[Tokens/Token.ts:77](https://github.com/Node-Fi/SDK-Core/blob/1f4f819/src/Tokens/Token.ts#L77)
