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

# Token Details

> Fetch metadata - and optionally price or balance - for one or more tokens by address.

Returns metadata for one or more tokens.

## Query

<ParamField query="chainId" type="integer" required>Chain ID the token(s) exist on.</ParamField>

<ParamField query="tokenAddress" type="string">Single token address.</ParamField>

<ParamField query="tokenAddresses" type="string">Comma-separated token addresses (use instead of `tokenAddress` for multiple).</ParamField>

<ParamField query="account" type="string">Include balance for this account when set.</ParamField>

<ParamField query="includeBalance" type="boolean" />

<ParamField query="includePrice" type="boolean" />

## Response

<ResponseField name="data" type="object">
  A single token info object when `tokenAddress` was used, or a map keyed by address when `tokenAddresses` was used.

  <Expandable title="token info">
    <ResponseField name="contract" type="string">Token contract address.</ResponseField>

    <ResponseField name="symbol" type="string" />

    <ResponseField name="name" type="string" />

    <ResponseField name="decimals" type="integer" />

    <ResponseField name="logo" type="string" />

    <ResponseField name="chainId" type="integer" />

    <ResponseField name="balance" type="string">Present when `includeBalance`/`account` is set.</ResponseField>

    <ResponseField name="balanceInUsd" type="number">Present when `includeBalance`/`account` is set.</ResponseField>

    <ResponseField name="price" type="string">Present when `includePrice` is set.</ResponseField>

    <ResponseField name="isDisabledOnSwapBridge" type="object">
      <Expandable title="isDisabledOnSwapBridge">
        <ResponseField name="source" type="boolean">Disabled as a swap/bridge source token.</ResponseField>
        <ResponseField name="destination" type="boolean">Disabled as a swap/bridge destination token.</ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="isDisabledOnZap" type="object">Same shape as `isDisabledOnSwapBridge` above, for zap operations.</ResponseField>

    <ResponseField name="permit" type="object">
      <Expandable title="permit">
        <ResponseField name="eip2612" type="object">`{ supported, data?: { domain? } }`.</ResponseField>
        <ResponseField name="permit2" type="object">`{ supported }`.</ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

<RequestExample>
  ```bash curl theme={null}
  curl "https://api.dzap.io/v1/token/details?chainId=1&tokenAddress=0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48&includePrice=true"
  ```

  ```ts SDK theme={null}
  const tokenInfo = await dzap.getTokenDetails(
    '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',
    1,
    undefined,
    false,
    true,
  );
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "status": "success",
    "data": {
      "contract": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
      "symbol": "USDC",
      "name": "USD Coin",
      "decimals": 6,
      "logo": "https://...",
      "chainId": 1,
      "price": "1.00"
    }
  }
  ```
</ResponseExample>

<Note>
  Live token prices (`GET /v1/token/price`) exist on the Trade API but aren't exposed through the `@dzapio/sdk` client - use `includePrice` on this endpoint instead.
</Note>
