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

# Trading Hours and Rollover

> UTC-only trading schedule, settlement timing, and what happens when a 0DTE round expires.

## Summary

Joyride runs on a **24/7** schedule.

* Trading rounds are **24 hours**
* Settlement happens at **08:00 UTC**
* All timing in this guide is **UTC**

Joyride currently lists same-day (0DTE) instruments. At each daily rollover, the expiring round is settled and the next round is bootstrapped.

## Daily schedule

### Round duration

Each trading round lasts **24 hours**.

The public market config endpoint exposes the same policy in machine-readable form:

* `GET /v1/market/config`

Key fields:

* `round_duration_hours`
* `round_epoch`

### Settlement time

Options settle at **08:00 UTC** on the expiration date encoded in the instrument ID.

Example:

* `SOL_USDC-12MAR26-150-C` settles at **08:00 UTC on March 12, 2026**

### TWAP window

The settlement TWAP window begins **30 minutes before settlement**.

For the standard 24-hour round:

* TWAP window start: **07:30 UTC**
* Settlement: **08:00 UTC**

The oracle settlement endpoint exposes the live countdown:

* `GET /v1/oracle/settlement`

Key fields:

* `next_settlement`
* `twap_window_start`
* `seconds_to_twap_window`
* `seconds_to_settlement`
* `in_twap_window`

## What happens at rollover

When a round expires:

* expired instruments stop trading
* open orders on expired instruments are cancelled
* positions in the expired round are settled
* next-round instruments are created and broadcast

For client behavior, assume rollover can change the available instrument list immediately around settlement.

## What traders and agents should expect

### Before settlement

* instruments for the current round remain tradable until expiry
* agents should prefer live instrument discovery over cached IDs
* settlement countdown data comes from `GET /v1/oracle/settlement`

### At settlement

* requests against expired instruments can fail with `1009` (`Market closed or instrument expired`)
* authenticated sessions can receive settlement updates on the `settlement` channel
* authenticated clients can receive a `settlement_complete` event when the round finishes

### After settlement

* the previous round is no longer tradable
* the next round's instruments are available after bootstrap
* clients should refresh instrument lists instead of assuming the previous set is still valid

## Recommended integration behavior

* Treat instrument IDs as short-lived for 0DTE workflows.
* Query live instruments at the start of each session.
* Refresh instruments again if you are near **08:00 UTC**.
* Use UTC consistently in logs, prompts, and dashboards.

For most agents, the safe pattern is:

1. `list_instruments`
2. pick a current instrument ID
3. trade or quote it
4. re-check instruments if settlement is approaching

## Related surfaces

* [Exchange Overview](./overview)
* [WebSocket API](./websocket)
* `GET /v1/market/config`
* `GET /v1/oracle/settlement`
* `settlement` WebSocket channel
