---
title: "One token: hourly tape and venue split"
method: GET
path: "/arc/token/{address}"
tags: ["Arc data"]
---

# One token: hourly tape and venue split

`GET /arc/token/{address}`

## Request

- Base URL: `https://api.getchord.xyz/v1`
- URL: `https://api.getchord.xyz/v1/arc/token/{address}`
- Auth: none declared

The token row plus an hourly series (1–720 hours) and the venue split for the window. Feeds Chord's token page header, volume bars and venue table. A token with no 24-hour row comes back as `{ address, listed: false }`.

## Path parameters

- `address` string, required: EVM address, hex, case-insensitive.

## Query parameters

- `hours` integer

## Response `200`

- object
  - `chain` 5042
  - `token` union
    - ArcTokenRow: One token on Arc with its 24-hour tape.
      - `address` string: EVM address, hex, case-insensitive.
      - `symbol` string, nullable
      - `name` string, nullable
      - `decimals` integer, nullable
      - `logoURI` string, nullable: Logo through Chord's proxy (`/v1/logo/5042/{address}`, 128 px WebP).
      - `logoUriRaw` string, nullable: The upstream logo URL the proxy fetched, when there is one.
      - `tags` string[]: `stablecoin`, `fx`, `stock`, … — from the curated list; empty for unlisted tokens.
      - `listed` boolean: On the curated Arc token list (metadata and logo vetted).
      - `priceUsd` number, nullable: Last trade price on the token's dominant venue, USD.
      - `change24hPct` number, nullable
      - `volume24h` number: USD, every venue, no dust floor.
      - `buyVolume24h` number
      - `sellVolume24h` number
      - `trades24h` integer
      - `buys24h` integer
      - `sells24h` integer
      - `traders` integer: Distinct attributed wallets over the board's day window. Routers, executors and bots are not wallets.
      - `lastTradeTs` integer: Unix time, seconds, UTC.
      - `totalSupply` number, nullable: `totalSupply()` in whole tokens. Null when unreadable.
      - `marketCapUsd` number, nullable: totalSupply × price — fully diluted, since nothing on-chain says what is locked.
      - `pools` object: Indexed pools holding the token.
        - `v3` integer
        - `v2` integer
        - `v4` integer
        - `byDex` object: Pool count per venue id (`uniswap_v3`, `uniswap_v4`, `pools_trade`, `slipstream_fork`, `v3fork_<8hex>`, …).
      - `routable` boolean: The engine can quote this token today (at least one pool against a routing anchor).
      - `flags` string[]: Honesty flags. `wash` = a day's volume carried by one or two wallets; `impostor` = an unlisted token wearing a listed symbol. Absent when clean.
    - object
      - `address` string: EVM address, hex, case-insensitive.
      - `listed` false
  - `hours` integer
  - `series` object[]: Oldest first.
    - `hour` integer
    - `volUsd` number
    - `buyUsd` number
    - `sellUsd` number
    - `trades` integer
    - `buys` integer
    - `sells` integer
    - `priceLast` number, nullable
  - `byDex` object[]
    - `dex` string
    - `volUsd` number
    - `trades` integer
    - `sharePct` number
  - `updatedAt` integer: Unix time, milliseconds — when the server built this answer.

## Other responses

- `400`: Invalid parameters — `error` names the check that failed (`INVALID_PARAMS`, `BAD_ADDRESS`, `BAD_LIMIT`, `BAD_HOURS`, …).
- `503`: The lane behind this endpoint is not ready or not enabled here (`NOT_READY`, `CHAIN_NOT_ENABLED`, `NOT_ENABLED`, `*_UNAVAILABLE`). Retry later; do not treat it as an empty answer.

---

[API](https://skmtc.dev/getchord/apis/chord-api.md) · [All operations](https://skmtc.dev/getchord/apis/chord-api/llms.txt) · [OpenAPI document](https://skmtc.dev/getchord/apis/chord-api/revisions/d3bc4640fea0?raw)
