Calendar & Sessions
Why does an FX venue need a calendar?
Because a forward fixes against a rate observed on a specific business day, and FX markets are not open all the time. CRX trades NDFs, so it respects the FX business-day calendar: holiday centers, fixing lag, the Modified Following rule for rolling a date off a holiday.
The split is deliberate: dates are resolved off-chain, enforced on-chain. The relayer turns the per-currency rules into concrete timestamps; the contract checks their ordering and refuses anything out of order.
What dates does a trade carry?
Three, in place of a single expiry:
| Field | Rule at bind | Rule at settle |
|---|---|---|
fixingTime | must be in the future, before settlement | the rate must be published on or after it |
settlementTime | must be after fixing | settlement allowed only at or after it |
calendarId | the calendar that produced the two above | — |
A fixing read too early reverts. The settled rate must also sit within tolerance of the supplied reference. The contract will not settle on a rate from the wrong day.
What is a session?
The window in which a pair actually trades. Each pair carries a schedule string — a timezone plus per-weekday windows plus holiday overrides — that drives an open/closed gate on the desk.
Most major pairs trade nearly around the clock on weekdays. Some do not:
Session-windowed pairs are real, not dead. LatAm pairs — USD/CLP, USD/COP, USD/PEN — publish live only during their local bank session, roughly 09:00–16:00 Eastern. The gate shows them Open in session, Closed out of session. An out-of-session pair is closed, not broken.
What happens to an open trade when its market closes?
It stays margined. When a session is closed, CRX marks against the last trusted rate rather than a missing one. A position cannot be left unmargined just because the local market went home for the night, and a default that surfaces overnight still resolves through the cascade. See Liquidation & Default Waterfall (~5 min).
The desk also halts trading if an in-session feed stalls — a freshness overlay catches a pair that should be live but has gone quiet.
Next: RFQ Relayer (~3 min) — the service that resolves these dates and brokers the trade.