## History: what the endpoints share

The history endpoints return one subject's points over time — `/rwa/history`, `/earn/history`,
`/derivatives/history`, `/chains/history` and `/dex/tokens/history`. They take the same three
parameters and follow the same rules; `/earn/history` takes `interval=1d` only.

| Parameter | Type | Default | Notes |
|:--|:--|:--|:--|
| `interval` | string | `1d` | `1d` (daily) or `1h` (hourly), in any case; any other value is a `400` |
| `time_start` | string | none | RFC3339 with a zone: `2026-10-01T00:00:00Z`, `2026-10-01T08:00:00+08:00` and `2026-10-01T00:00:00.5Z` are all accepted, each read as that instant; in a query string, write the `+` of an offset as `%2B`, or it reads as a space and the request is a `400`. A date alone, a time without a zone, a Unix timestamp, or an instant outside the years 1 to 9999 in UTC is a `400` |
| `time_end` | string | now | As `time_start` |

- **Both ends are included**, and the times are compared exactly, fractions of a second
  included. `time_start` equal to `time_end` asks for that one instant; `time_start` after
  `time_end` is a `400`, and so is a `time_start` in the future without a `time_end`.
- **Points come oldest first.** A time with no data has no point: nothing is filled in.
- **One response holds at most 1,000 points**, counted over every series it carries. With
  `time_start`, a range holding more is a `400` — never a truncated answer; ask for a shorter
  range. Without `time_start` you get the newest points up to `time_end`, at most 1,000, and
  never a `400` for the cap. Where several series share a time, a time is never split: if the
  oldest one would not fit whole, it is left out and you get fewer than 1,000.
- **Hourly points go back 90 days.** With `interval=1h`, a `time_start` more than 90 × 24 hours
  before now is a `400`; without `time_start`, the answer holds the hourly points there are.
- A `400` here is the `BAD_REQUEST` of [Errors](#errors): its `message` does not say which rule
  you broke — check the request against this page.
