# Identifiers

How Yutai writes every identifier a distributor sends or reads: chains, instruments, companies' shares, wallet addresses, quantities, instants and the ids Yutai gives its own records. The values on this page are read from Yutai's own rules when the site is built, so they cannot drift from them.

Yutai does not serve the distributor interface yet. These are the formats its records and its interface description already use, so what you build against them now stays the same.

## Chains

A chain is written as its CAIP-2 id, `namespace:reference`: `eip155` and the decimal chain id for an EVM chain, `solana` and the first 32 characters of the genesis hash for Solana. The chains below are the live chains the product supports. A chain whose plain name is not confirmed yet is shown by its id with the note (name to confirm), never a guessed name.

`eip155:1`: Ethereum mainnet

`eip155:10`: eip155:10 (name to confirm)

`eip155:56`: BNB Smart Chain mainnet

`eip155:196`: eip155:196 (name to confirm)

`eip155:999`: eip155:999 (name to confirm)

`eip155:4663`: Robinhood Chain mainnet

`eip155:5000`: eip155:5000 (name to confirm)

`eip155:8453`: Base mainnet

`eip155:42161`: Arbitrum One

`eip155:57073`: eip155:57073 (name to confirm)

`solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp`: Solana mainnet

## Instruments

An on-chain share is written as its CAIP-19 id: the chain's CAIP-2 id, a slash, then the asset namespace and the contract address, `chain/namespace:address`. The namespace follows the chain family: `erc20` on an EVM chain, `token` on Solana.

EVM: `eip155:1/erc20:0x5aAeb6053F3E94C9b9A09f33669435E7Ef1BeAed`

Solana: `solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/token:BPRAnfLMc5VxDMdQsAYK44F3kRamLDsy25q6oT9Rrr8w`

## Companies' shares

A company's share is named by its ISIN: twelve characters, two capital letters for the country, nine capital letters or digits, then one check digit. Yutai groups every on-chain share of one company under that ISIN, for example `US0378331005`.

## Wallet addresses

A wallet is written the way its chain family writes it.

EVM: 0x and 40 hex characters. Mixed case must match the EIP-55 checksum; one case is accepted too. Two EVM addresses compare in lower case. For example `0x5aAeb6053F3E94C9b9A09f33669435E7Ef1BeAed`.

Solana: Base58, 32 to 44 characters, decoding to exactly 32 bytes. Solana addresses compare exactly, case included. For example `4Nd1mBQ6MJ6ViN5jM2Z4atPozHvGvQtME5hkmZjpSXRV`.

## Quantities

Every quantity travels as a decimal string, never as a JSON number and never as a float, so no digit is lost or rounded. A quantity of shares has no sign, no leading zero before a whole number and no trailing zero after the point. An amount in base units, the whole number a chain answers, is a string too: below, the same 12.5 shares at 18 decimals.

Quantities as strings

```
{
  "quantity": "12.5",
  "amount": "12500000000000000000"
}
```

## Instants

Every instant is an ISO 8601 string in UTC, for example `2026-10-08T09:30:00Z`. It is never a number of seconds.

## Prefixed ids

Yutai's own records carry a prefix that says what they are, then a 26-character ULID. Treat the whole id as opaque text.

`apk_`: An API key's record. It names the key so you can tell keys apart; it is not the key, which is shown to you once when it is issued. For example `apk_01J9ZQ4V8W7X6Y5Z4A3B2C1D0E`.

`whs_`: A webhook subscription: the one address your webhooks go to and the kinds of change you asked for. For example `whs_01J9ZQ5B7C8D9E0F1G2H3J4K5M`.

`whd_`: One signed webhook delivery of one change to your address. A retry keeps the same id, so you can tell a repeat from a new change. For example `whd_01J9ZQ6N8P9Q0R1S2T3V4W5X6Y`.

## Where these are used

[The API reference](/docs/api) lists the calls that take these formats.

[Errors and limits](/docs/errors) says what a refused value answers.

[The Example wallet](/docs/examples/wallet) runs a whole read with values in these formats.
