> ## Documentation Index
> Fetch the complete documentation index at: https://voltaire.tevm.sh/llms.txt
> Use this file to discover all available pages before exploring further.

# primitives/MultiTokenId

> Auto-generated API documentation

[**@tevm/voltaire**](../index.mdx)

***

[@tevm/voltaire](../index.mdx) / primitives/MultiTokenId

# primitives/MultiTokenId

## Classes

### InvalidMultiTokenIdError

Defined in: [src/primitives/MultiTokenId/errors.ts:23](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/MultiTokenId/errors.ts#L23)

Base validation error

#### Example

```typescript theme={null}
throw new ValidationError('Invalid value', {
  value: '0x123',
  expected: '20 bytes',
  code: 'VALIDATION_ERROR',
  docsPath: '/primitives/address/from-hex#error-handling',
  cause: originalError
})
```

#### Extends

* [`ValidationError`](../index/index.mdx#validationerror)

#### Constructors

##### Constructor

> **new InvalidMultiTokenIdError**(`message`, `options?`): [`InvalidMultiTokenIdError`](#invalidmultitokeniderror)

Defined in: [src/primitives/MultiTokenId/errors.ts:24](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/MultiTokenId/errors.ts#L24)

###### Parameters

###### message

`string`

###### options?

###### cause?

`Error`

###### code?

`string`

###### context?

`Record`\<`string`, `unknown`>

###### docsPath?

`string`

###### expected?

`string`

###### value?

`unknown`

###### Returns

[`InvalidMultiTokenIdError`](#invalidmultitokeniderror)

###### Overrides

[`ValidationError`](../index/index.mdx#validationerror).[`constructor`](../index/index.mdx#constructor-20)

#### Properties

##### cause?

> `optional` **cause**: `Error`

Defined in: [src/primitives/errors/AbstractError.ts:56](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/errors/AbstractError.ts#L56)

Root cause of this error (for error chaining)

###### Inherited from

[`ValidationError`](../index/index.mdx#validationerror).[`cause`](../index/index.mdx#cause-19)

##### code

> **code**: `string`

Defined in: [src/primitives/errors/AbstractError.ts:39](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/errors/AbstractError.ts#L39)

Machine-readable error code for programmatic handling

###### Example

```ts theme={null}
'INVALID_FORMAT', 'INVALID_LENGTH'
```

###### Inherited from

[`ValidationError`](../index/index.mdx#validationerror).[`code`](../index/index.mdx#code-19)

##### context?

> `optional` **context**: `Record`\<`string`, `unknown`>

Defined in: [src/primitives/errors/AbstractError.ts:45](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/errors/AbstractError.ts#L45)

Additional context metadata for debugging

###### Example

```ts theme={null}
{ value: '0x123', expected: '20 bytes' }
```

###### Inherited from

[`ValidationError`](../index/index.mdx#validationerror).[`context`](../index/index.mdx#context-19)

##### docsPath?

> `optional` **docsPath**: `string`

Defined in: [src/primitives/errors/AbstractError.ts:51](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/errors/AbstractError.ts#L51)

Path to documentation for this error

###### Example

```ts theme={null}
'/primitives/address/from-hex#error-handling'
```

###### Inherited from

[`ValidationError`](../index/index.mdx#validationerror).[`docsPath`](../index/index.mdx#docspath-19)

##### expected

> **expected**: `string`

Defined in: [src/primitives/errors/ValidationError.ts:19](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/errors/ValidationError.ts#L19)

###### Inherited from

[`ValidationError`](../index/index.mdx#validationerror).[`expected`](../index/index.mdx#expected-7)

##### value

> **value**: `unknown`

Defined in: [src/primitives/errors/ValidationError.ts:18](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/errors/ValidationError.ts#L18)

###### Inherited from

[`ValidationError`](../index/index.mdx#validationerror).[`value`](../index/index.mdx#value-7)

#### Methods

##### getErrorChain()

> **getErrorChain**(): `string`

Defined in: [src/primitives/errors/AbstractError.ts:94](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/errors/AbstractError.ts#L94)

Get full error chain as string for logging

###### Returns

`string`

###### Inherited from

[`ValidationError`](../index/index.mdx#validationerror).[`getErrorChain`](../index/index.mdx#geterrorchain-38)

##### toJSON()

> **toJSON**(): `Record`\<`string`, `unknown`>

Defined in: [src/primitives/errors/AbstractError.ts:110](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/errors/AbstractError.ts#L110)

Serialize error to JSON for logging/telemetry

###### Returns

`Record`\<`string`, `unknown`>

###### Inherited from

[`ValidationError`](../index/index.mdx#validationerror).[`toJSON`](../index/index.mdx#tojson-38)

***

### MultiTokenIdError

Defined in: [src/primitives/MultiTokenId/errors.ts:3](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/MultiTokenId/errors.ts#L3)

Base error for all primitive-related errors

#### Example

```typescript theme={null}
throw new PrimitiveError('Invalid primitive value', {
  code: 'INVALID_PRIMITIVE',
  context: { value: '0x123' },
  docsPath: '/primitives/overview#errors'
})
```

#### Extends

* [`PrimitiveError`](../index/index.mdx#primitiveerror)

#### Constructors

##### Constructor

> **new MultiTokenIdError**(`message`, `options?`): [`MultiTokenIdError`](#multitokeniderror)

Defined in: [src/primitives/MultiTokenId/errors.ts:4](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/MultiTokenId/errors.ts#L4)

###### Parameters

###### message

`string`

###### options?

###### cause?

`Error`

###### code?

`string`

###### context?

`Record`\<`string`, `unknown`>

###### docsPath?

`string`

###### Returns

[`MultiTokenIdError`](#multitokeniderror)

###### Overrides

[`PrimitiveError`](../index/index.mdx#primitiveerror).[`constructor`](../index/index.mdx#constructor-16)

#### Properties

##### cause?

> `optional` **cause**: `Error`

Defined in: [src/primitives/errors/AbstractError.ts:56](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/errors/AbstractError.ts#L56)

Root cause of this error (for error chaining)

###### Inherited from

[`PrimitiveError`](../index/index.mdx#primitiveerror).[`cause`](../index/index.mdx#cause-16)

##### code

> **code**: `string`

Defined in: [src/primitives/errors/AbstractError.ts:39](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/errors/AbstractError.ts#L39)

Machine-readable error code for programmatic handling

###### Example

```ts theme={null}
'INVALID_FORMAT', 'INVALID_LENGTH'
```

###### Inherited from

[`PrimitiveError`](../index/index.mdx#primitiveerror).[`code`](../index/index.mdx#code-16)

##### context?

> `optional` **context**: `Record`\<`string`, `unknown`>

Defined in: [src/primitives/errors/AbstractError.ts:45](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/errors/AbstractError.ts#L45)

Additional context metadata for debugging

###### Example

```ts theme={null}
{ value: '0x123', expected: '20 bytes' }
```

###### Inherited from

[`PrimitiveError`](../index/index.mdx#primitiveerror).[`context`](../index/index.mdx#context-16)

##### docsPath?

> `optional` **docsPath**: `string`

Defined in: [src/primitives/errors/AbstractError.ts:51](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/errors/AbstractError.ts#L51)

Path to documentation for this error

###### Example

```ts theme={null}
'/primitives/address/from-hex#error-handling'
```

###### Inherited from

[`PrimitiveError`](../index/index.mdx#primitiveerror).[`docsPath`](../index/index.mdx#docspath-16)

#### Methods

##### getErrorChain()

> **getErrorChain**(): `string`

Defined in: [src/primitives/errors/AbstractError.ts:94](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/errors/AbstractError.ts#L94)

Get full error chain as string for logging

###### Returns

`string`

###### Inherited from

[`PrimitiveError`](../index/index.mdx#primitiveerror).[`getErrorChain`](../index/index.mdx#geterrorchain-32)

##### toJSON()

> **toJSON**(): `Record`\<`string`, `unknown`>

Defined in: [src/primitives/errors/AbstractError.ts:110](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/errors/AbstractError.ts#L110)

Serialize error to JSON for logging/telemetry

###### Returns

`Record`\<`string`, `unknown`>

###### Inherited from

[`PrimitiveError`](../index/index.mdx#primitiveerror).[`toJSON`](../index/index.mdx#tojson-32)

## Type Aliases

### MultiTokenIdType

> **MultiTokenIdType** = `bigint` & `object`

Defined in: [src/primitives/MultiTokenId/MultiTokenIdType.ts:10](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/MultiTokenId/MultiTokenIdType.ts#L10)

MultiTokenId type - ERC-1155 token type identifier

#### Type Declaration

##### \[brand]

> `readonly` **\[brand]**: `"MultiTokenId"`

#### See

* [https://voltaire.tevm.sh/primitives/multi-token-id](https://voltaire.tevm.sh/primitives/multi-token-id) for MultiTokenId documentation
* [https://eips.ethereum.org/EIPS/eip-1155](https://eips.ethereum.org/EIPS/eip-1155) for ERC-1155 specification

#### Since

0.0.0

## Variables

### compare()

> `const` **compare**: (`a`, `b`) => `number` = `_compare`

Defined in: [src/primitives/MultiTokenId/index.ts:32](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/MultiTokenId/index.ts#L32)

Compare two MultiTokenId values

#### Parameters

##### a

[`MultiTokenIdType`](#multitokenidtype)

First MultiTokenId

##### b

[`MultiTokenIdType`](#multitokenidtype)

Second MultiTokenId

#### Returns

`number`

-1 if a \< b, 0 if a === b, 1 if a > b

#### See

[https://voltaire.tevm.sh/primitives/multi-token-id](https://voltaire.tevm.sh/primitives/multi-token-id) for MultiTokenId documentation

#### Since

0.0.0

#### Example

```javascript theme={null}
import * as MultiTokenId from './primitives/MultiTokenId/index.js';
const a = MultiTokenId.from(1n);
const b = MultiTokenId.from(100n);
const result = MultiTokenId.compare(a, b); // -1
```

***

### constants

> `const` **constants**: `object`

Defined in: [src/primitives/MultiTokenId/index.ts:37](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/MultiTokenId/index.ts#L37)

#### Type Declaration

##### FUNGIBLE\_THRESHOLD

> **FUNGIBLE\_THRESHOLD**: `bigint`

Fungible token threshold (by convention)
Token IDs below this are often fungible (like ERC-20)
Token IDs at or above are often non-fungible (like ERC-721)

##### MAX

> **MAX**: `bigint`

Maximum MultiTokenId value (2^256 - 1)

##### MIN

> **MIN**: `bigint`

Minimum MultiTokenId value (0)

***

### equals()

> `const` **equals**: (`a`, `b`) => `boolean` = `_equals`

Defined in: [src/primitives/MultiTokenId/index.ts:31](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/MultiTokenId/index.ts#L31)

Check if two MultiTokenId values are equal

#### Parameters

##### a

[`MultiTokenIdType`](#multitokenidtype)

First MultiTokenId

##### b

[`MultiTokenIdType`](#multitokenidtype)

Second MultiTokenId

#### Returns

`boolean`

true if equal

#### See

[https://voltaire.tevm.sh/primitives/multi-token-id](https://voltaire.tevm.sh/primitives/multi-token-id) for MultiTokenId documentation

#### Since

0.0.0

#### Example

```javascript theme={null}
import * as MultiTokenId from './primitives/MultiTokenId/index.js';
const a = MultiTokenId.from(1n);
const b = MultiTokenId.from(1n);
const result = MultiTokenId.equals(a, b); // true
```

***

### ERC1155\_SELECTORS

> `const` **ERC1155\_SELECTORS**: `object`

Defined in: [src/primitives/MultiTokenId/index.ts:44](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/MultiTokenId/index.ts#L44)

#### Type Declaration

##### balanceOf

> `readonly` **balanceOf**: `"0x00fdd58e"` = `"0x00fdd58e"`

##### balanceOfBatch

> `readonly` **balanceOfBatch**: `"0x4e1273f4"` = `"0x4e1273f4"`

##### isApprovedForAll

> `readonly` **isApprovedForAll**: `"0xe985e9c5"` = `"0xe985e9c5"`

##### safeBatchTransferFrom

> `readonly` **safeBatchTransferFrom**: `"0x2eb2c2d6"` = `"0x2eb2c2d6"`

##### safeTransferFrom

> `readonly` **safeTransferFrom**: `"0xf242432a"` = `"0xf242432a"`

##### setApprovalForAll

> `readonly` **setApprovalForAll**: `"0xa22cb465"` = `"0xa22cb465"`

##### uri

> `readonly` **uri**: `"0x0e89341c"` = `"0x0e89341c"`

***

### from()

> `const` **from**: (`value`) => [`MultiTokenIdType`](#multitokenidtype) = `_from`

Defined in: [src/primitives/MultiTokenId/index.ts:27](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/MultiTokenId/index.ts#L27)

Create MultiTokenId from bigint, number, or string

#### Parameters

##### value

bigint, number, or decimal/hex string

`string` | `number` | `bigint`

#### Returns

[`MultiTokenIdType`](#multitokenidtype)

MultiTokenId value

#### See

[https://voltaire.tevm.sh/primitives/multi-token-id](https://voltaire.tevm.sh/primitives/multi-token-id) for MultiTokenId documentation

#### Since

0.0.0

#### Throws

If value is out of range or invalid

#### Example

```javascript theme={null}
import * as MultiTokenId from './primitives/MultiTokenId/index.js';
const tokenId = MultiTokenId.from(1n); // Fungible token type
const nftId = MultiTokenId.from(2n ** 128n); // Non-fungible token type
const fromHex = MultiTokenId.from("0xff");
```

***

### isValidFungible()

> `const` **isValidFungible**: (`tokenId`) => `boolean` = `_isValidFungible`

Defined in: [src/primitives/MultiTokenId/index.ts:33](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/MultiTokenId/index.ts#L33)

Check if MultiTokenId is valid for fungible tokens (below threshold)

#### Parameters

##### tokenId

[`MultiTokenIdType`](#multitokenidtype)

MultiTokenId value to check

#### Returns

`boolean`

true if likely fungible (below 2^128)

#### See

[https://voltaire.tevm.sh/primitives/multi-token-id](https://voltaire.tevm.sh/primitives/multi-token-id) for MultiTokenId documentation

#### Since

0.0.0

#### Example

```javascript theme={null}
import * as MultiTokenId from './primitives/MultiTokenId/index.js';
const fungible = MultiTokenId.from(1n);
const isFungible = MultiTokenId.isValidFungible(fungible); // true
const nonFungible = MultiTokenId.from(2n ** 128n);
const notFungible = MultiTokenId.isValidFungible(nonFungible); // false
```

***

### isValidNonFungible()

> `const` **isValidNonFungible**: (`tokenId`) => `boolean` = `_isValidNonFungible`

Defined in: [src/primitives/MultiTokenId/index.ts:34](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/MultiTokenId/index.ts#L34)

Check if MultiTokenId is valid for non-fungible tokens (at or above threshold)

#### Parameters

##### tokenId

[`MultiTokenIdType`](#multitokenidtype)

MultiTokenId value to check

#### Returns

`boolean`

true if likely non-fungible (>= 2^128)

#### See

[https://voltaire.tevm.sh/primitives/multi-token-id](https://voltaire.tevm.sh/primitives/multi-token-id) for MultiTokenId documentation

#### Since

0.0.0

#### Example

```javascript theme={null}
import * as MultiTokenId from './primitives/MultiTokenId/index.js';
const nonFungible = MultiTokenId.from(2n ** 128n);
const isNFT = MultiTokenId.isValidNonFungible(nonFungible); // true
const fungible = MultiTokenId.from(1n);
const notNFT = MultiTokenId.isValidNonFungible(fungible); // false
```

***

### toBigInt()

> `const` **toBigInt**: (`tokenId`) => `bigint` = `_toBigInt`

Defined in: [src/primitives/MultiTokenId/index.ts:29](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/MultiTokenId/index.ts#L29)

Convert MultiTokenId to bigint

#### Parameters

##### tokenId

[`MultiTokenIdType`](#multitokenidtype)

MultiTokenId value to convert

#### Returns

`bigint`

bigint value

#### See

[https://voltaire.tevm.sh/primitives/multi-token-id](https://voltaire.tevm.sh/primitives/multi-token-id) for MultiTokenId documentation

#### Since

0.0.0

#### Example

```javascript theme={null}
import * as MultiTokenId from './primitives/MultiTokenId/index.js';
const tokenId = MultiTokenId.from(1n);
const bigint = MultiTokenId.toBigInt(tokenId); // 1n
```

***

### toHex()

> `const` **toHex**: (`tokenId`) => `string` = `_toHex`

Defined in: [src/primitives/MultiTokenId/index.ts:30](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/MultiTokenId/index.ts#L30)

Convert MultiTokenId to hex string

#### Parameters

##### tokenId

[`MultiTokenIdType`](#multitokenidtype)

MultiTokenId value to convert

#### Returns

`string`

Hex string with 0x prefix

#### See

[https://voltaire.tevm.sh/primitives/multi-token-id](https://voltaire.tevm.sh/primitives/multi-token-id) for MultiTokenId documentation

#### Since

0.0.0

#### Example

```javascript theme={null}
import * as MultiTokenId from './primitives/MultiTokenId/index.js';
const tokenId = MultiTokenId.from(1n);
const hex = MultiTokenId.toHex(tokenId); // "0x1"
```

***

### toNumber()

> `const` **toNumber**: (`tokenId`) => `number` = `_toNumber`

Defined in: [src/primitives/MultiTokenId/index.ts:28](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/MultiTokenId/index.ts#L28)

Convert MultiTokenId to number (unsafe for large values)

#### Parameters

##### tokenId

[`MultiTokenIdType`](#multitokenidtype)

MultiTokenId value to convert

#### Returns

`number`

number value

#### See

[https://voltaire.tevm.sh/primitives/multi-token-id](https://voltaire.tevm.sh/primitives/multi-token-id) for MultiTokenId documentation

#### Since

0.0.0

#### Throws

If value exceeds Number.MAX\_SAFE\_INTEGER

#### Example

```javascript theme={null}
import * as MultiTokenId from './primitives/MultiTokenId/index.js';
const tokenId = MultiTokenId.from(1n);
const num = MultiTokenId.toNumber(tokenId); // 1
```

## Functions

### \_compare()

> **\_compare**(`a`, `b`): `number`

Defined in: [src/primitives/MultiTokenId/compare.js:17](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/MultiTokenId/compare.js#L17)

Compare two MultiTokenId values

#### Parameters

##### a

[`MultiTokenIdType`](#multitokenidtype)

First MultiTokenId

##### b

[`MultiTokenIdType`](#multitokenidtype)

Second MultiTokenId

#### Returns

`number`

-1 if a \< b, 0 if a === b, 1 if a > b

#### See

[https://voltaire.tevm.sh/primitives/multi-token-id](https://voltaire.tevm.sh/primitives/multi-token-id) for MultiTokenId documentation

#### Since

0.0.0

#### Example

```javascript theme={null}
import * as MultiTokenId from './primitives/MultiTokenId/index.js';
const a = MultiTokenId.from(1n);
const b = MultiTokenId.from(100n);
const result = MultiTokenId.compare(a, b); // -1
```

***

### \_equals()

> **\_equals**(`a`, `b`): `boolean`

Defined in: [src/primitives/MultiTokenId/equals.js:17](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/MultiTokenId/equals.js#L17)

Check if two MultiTokenId values are equal

#### Parameters

##### a

[`MultiTokenIdType`](#multitokenidtype)

First MultiTokenId

##### b

[`MultiTokenIdType`](#multitokenidtype)

Second MultiTokenId

#### Returns

`boolean`

true if equal

#### See

[https://voltaire.tevm.sh/primitives/multi-token-id](https://voltaire.tevm.sh/primitives/multi-token-id) for MultiTokenId documentation

#### Since

0.0.0

#### Example

```javascript theme={null}
import * as MultiTokenId from './primitives/MultiTokenId/index.js';
const a = MultiTokenId.from(1n);
const b = MultiTokenId.from(1n);
const result = MultiTokenId.equals(a, b); // true
```

***

### \_from()

> **\_from**(`value`): [`MultiTokenIdType`](#multitokenidtype)

Defined in: [src/primitives/MultiTokenId/from.js:20](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/MultiTokenId/from.js#L20)

Create MultiTokenId from bigint, number, or string

#### Parameters

##### value

bigint, number, or decimal/hex string

`string` | `number` | `bigint`

#### Returns

[`MultiTokenIdType`](#multitokenidtype)

MultiTokenId value

#### See

[https://voltaire.tevm.sh/primitives/multi-token-id](https://voltaire.tevm.sh/primitives/multi-token-id) for MultiTokenId documentation

#### Since

0.0.0

#### Throws

If value is out of range or invalid

#### Example

```javascript theme={null}
import * as MultiTokenId from './primitives/MultiTokenId/index.js';
const tokenId = MultiTokenId.from(1n); // Fungible token type
const nftId = MultiTokenId.from(2n ** 128n); // Non-fungible token type
const fromHex = MultiTokenId.from("0xff");
```

***

### \_isValidFungible()

> **\_isValidFungible**(`tokenId`): `boolean`

Defined in: [src/primitives/MultiTokenId/isValidFungible.js:19](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/MultiTokenId/isValidFungible.js#L19)

Check if MultiTokenId is valid for fungible tokens (below threshold)

#### Parameters

##### tokenId

[`MultiTokenIdType`](#multitokenidtype)

MultiTokenId value to check

#### Returns

`boolean`

true if likely fungible (below 2^128)

#### See

[https://voltaire.tevm.sh/primitives/multi-token-id](https://voltaire.tevm.sh/primitives/multi-token-id) for MultiTokenId documentation

#### Since

0.0.0

#### Example

```javascript theme={null}
import * as MultiTokenId from './primitives/MultiTokenId/index.js';
const fungible = MultiTokenId.from(1n);
const isFungible = MultiTokenId.isValidFungible(fungible); // true
const nonFungible = MultiTokenId.from(2n ** 128n);
const notFungible = MultiTokenId.isValidFungible(nonFungible); // false
```

***

### \_isValidNonFungible()

> **\_isValidNonFungible**(`tokenId`): `boolean`

Defined in: [src/primitives/MultiTokenId/isValidNonFungible.js:19](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/MultiTokenId/isValidNonFungible.js#L19)

Check if MultiTokenId is valid for non-fungible tokens (at or above threshold)

#### Parameters

##### tokenId

[`MultiTokenIdType`](#multitokenidtype)

MultiTokenId value to check

#### Returns

`boolean`

true if likely non-fungible (>= 2^128)

#### See

[https://voltaire.tevm.sh/primitives/multi-token-id](https://voltaire.tevm.sh/primitives/multi-token-id) for MultiTokenId documentation

#### Since

0.0.0

#### Example

```javascript theme={null}
import * as MultiTokenId from './primitives/MultiTokenId/index.js';
const nonFungible = MultiTokenId.from(2n ** 128n);
const isNFT = MultiTokenId.isValidNonFungible(nonFungible); // true
const fungible = MultiTokenId.from(1n);
const notNFT = MultiTokenId.isValidNonFungible(fungible); // false
```

***

### \_toBigInt()

> **\_toBigInt**(`tokenId`): `bigint`

Defined in: [src/primitives/MultiTokenId/toBigInt.js:15](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/MultiTokenId/toBigInt.js#L15)

Convert MultiTokenId to bigint

#### Parameters

##### tokenId

[`MultiTokenIdType`](#multitokenidtype)

MultiTokenId value to convert

#### Returns

`bigint`

bigint value

#### See

[https://voltaire.tevm.sh/primitives/multi-token-id](https://voltaire.tevm.sh/primitives/multi-token-id) for MultiTokenId documentation

#### Since

0.0.0

#### Example

```javascript theme={null}
import * as MultiTokenId from './primitives/MultiTokenId/index.js';
const tokenId = MultiTokenId.from(1n);
const bigint = MultiTokenId.toBigInt(tokenId); // 1n
```

***

### \_toHex()

> **\_toHex**(`tokenId`): `string`

Defined in: [src/primitives/MultiTokenId/toHex.js:15](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/MultiTokenId/toHex.js#L15)

Convert MultiTokenId to hex string

#### Parameters

##### tokenId

[`MultiTokenIdType`](#multitokenidtype)

MultiTokenId value to convert

#### Returns

`string`

Hex string with 0x prefix

#### See

[https://voltaire.tevm.sh/primitives/multi-token-id](https://voltaire.tevm.sh/primitives/multi-token-id) for MultiTokenId documentation

#### Since

0.0.0

#### Example

```javascript theme={null}
import * as MultiTokenId from './primitives/MultiTokenId/index.js';
const tokenId = MultiTokenId.from(1n);
const hex = MultiTokenId.toHex(tokenId); // "0x1"
```

***

### \_toNumber()

> **\_toNumber**(`tokenId`): `number`

Defined in: [src/primitives/MultiTokenId/toNumber.js:16](https://github.com/evmts/voltaire/blob/bd6ec34405c15ad8cd51d11579d495dc53813482/src/primitives/MultiTokenId/toNumber.js#L16)

Convert MultiTokenId to number (unsafe for large values)

#### Parameters

##### tokenId

[`MultiTokenIdType`](#multitokenidtype)

MultiTokenId value to convert

#### Returns

`number`

number value

#### See

[https://voltaire.tevm.sh/primitives/multi-token-id](https://voltaire.tevm.sh/primitives/multi-token-id) for MultiTokenId documentation

#### Since

0.0.0

#### Throws

If value exceeds Number.MAX\_SAFE\_INTEGER

#### Example

```javascript theme={null}
import * as MultiTokenId from './primitives/MultiTokenId/index.js';
const tokenId = MultiTokenId.from(1n);
const num = MultiTokenId.toNumber(tokenId); // 1
```
