Skip to content

Bell in--:--:--

Sessions and the calendar

Mechanism · 04 / 19Preview · not deployed

Sessions and the calendar

The five NYSE-calendar sessions, DST, holidays and early closes.

A seat is sold for one pool and one session. This page defines the sessions: when they start and end, why they follow the stock exchange and not the blockchain, and what happens around daylight saving changes, holidays and early closes.

The five sessions#

All times are wall-clock Eastern Time, in the America/New_York time zone.

The five sessions
SessionStarts (ET)Ends (ET)Fee boundsDutiesBell window
OPEN09:3010:000.05%–1.00%NoFirst 20 s
DAY10:0016:000.05%–0.50%YesOn halt resumption only
POST16:0020:000.05%–1.00% *NoOn halt resumption only
NIGHT20:0009:300.05%–2.00%NoOn halt resumption only
WEEKENDFri 20:00Mon 09:300.05%–2.00%NoOn halt resumption only

Each session is a different product, because each one contains a different event.

SessionWhat it contains
OPENThe opening bell and the overnight gap. It starts with the bell window: for the first 20 seconds, only the regent can swap.
DAYRegular hours. Oracle is live: duties apply.
POSTAfter the close. Earnings land here.
NIGHTOvernight. No reference price.
WEEKENDFriday close to Monday open.

Sessions tile time with no gaps and no overlaps. The end of one session is the start of the next, so at every instant exactly one session is in force for every pool.

MonTueWedThuFriSatSunOPEN09:3010:00DAY10:0016:00POST16:0020:00NIGHT20:0009:30WEEKENDFri 20:00Mon 09:30
One week in ET. Every instant belongs to exactly one session, so there is always exactly one seat per pool.

The session type matters in three places. Fee caps differ by session type (Seat rights). Duties apply in DAY only (Seat duties and slashing). The auction reserve is computed per session type, from past winning bids for that same type (The seat auction).

Why the NYSE calendar#

The loss Regent sells is caused by the stock market, not by the chain. The pool goes stale because the reference price jumps at the opening bell, after earnings, or over a weekend. The boundaries of the product therefore have to sit where the reference market puts them.

Cutting time this way also keeps each seat easy to value. The OPEN seat is almost entirely about the overnight gap. The DAY seat is about continuous trading against a live oracle, with duties attached. The POST seat covers the hours where earnings land. NIGHT and WEEKEND cover hours with no reference price at all, which is why their fee caps are the widest and why they carry no duties.

A fixed UTC schedule could not do this. The bell rings at 09:30 in New York, and New York changes its UTC offset twice a year.

Time zones and daylight saving#

Session boundaries are defined in New York wall-clock time and converted to UTC instants, never the other way round. 09:30 ET is one UTC time while New York is on standard time (five hours behind UTC) and a different one, an hour earlier, while it is on daylight time (four hours behind). The session follows the bell, so its UTC start moves with it.

Two consequences follow.

  • Conversion must be DST-safe. The site's clock never applies a fixed offset. It asks the time zone database what the New York wall clock reads at a given instant and corrects until the two agree.
  • Durations are measured in real seconds. US clock changes happen early on a Sunday morning, which always falls inside a WEEKEND-type session. That session is one hour shorter in spring and one hour longer in autumn. The rent rate is the LP share of the bid divided by the actual duration, so the stream still pays out exactly over the session. See Rent streaming and anti-JIT.

Holidays and early closes#

On a full-day holiday the exchange does not open, so there is no OPEN, DAY or POST that day. On an early close the exchange shuts at 13:00 ET. The preview calendar carries these dates for the years shown below, taken from the published NYSE calendar.

NYSE holidays and early closes, 2026 and 2027
DateOccasionMarket
2026-01-01New Year's DayClosed
2026-01-19Martin Luther King, Jr. DayClosed
2026-02-16Washington's BirthdayClosed
2026-04-03Good FridayClosed
2026-05-25Memorial DayClosed
2026-06-19JuneteenthClosed
2026-07-03Independence Day (observed)Closed
2026-09-07Labor DayClosed
2026-11-26Thanksgiving DayClosed
2026-11-27Day after ThanksgivingEarly close 13:00 ET
2026-12-24Christmas EveEarly close 13:00 ET
2026-12-25Christmas DayClosed
2027-01-01New Year's DayClosed
2027-01-18Martin Luther King, Jr. DayClosed
2027-02-15Washington's BirthdayClosed
2027-03-26Good FridayClosed
2027-05-31Memorial DayClosed
2027-06-18Juneteenth (observed)Closed
2027-07-05Independence Day (observed)Closed
2027-09-06Labor DayClosed
2027-11-25Thanksgiving DayClosed
2027-11-26Day after ThanksgivingEarly close 13:00 ET
2027-12-24Christmas Day (observed)Closed

Two rules cover every case.

Any closure longer than one night is one WEEKEND-type session. A normal weekend is the obvious example. A holiday is the same thing: if Thursday is a holiday, then Wednesday's POST is followed by a single WEEKEND-type session that runs until Friday's opening bell. A long weekend is one session from the last POST before it to the first bell after it. There is never a NIGHT session followed by another NIGHT session. The seat is sold once for the whole closure, with WEEKEND fee caps and the WEEKEND reserve history.

On an early close, DAY ends at 13:00 and POST runs four hours after it. OPEN is unchanged. DAY is shorter. POST keeps its usual four-hour length but starts at 13:00, and the overnight session that follows starts when that POST ends. The day after Thanksgiving is a typical case: it is an early close that leads straight into a weekend, so the WEEKEND-type session that follows starts earlier than on a normal Friday.

Session length changes what a seat is worth and how fast the rent streams, so bidders need to know about early closes before they bid. The calendar is public for that reason.

The planned SessionClock#

On-chain, the calendar is planned to live in one contract, SessionClock. Its job is to answer one question for the other contracts: which session is in force right now, and when does it end.

Planned responsibilities:

  • convert ET session boundaries to UTC timestamps, including daylight saving changes,
  • hold the holiday list and the 13:00 early closes,
  • apply the two rules above, so that long closures become one WEEKEND-type session,
  • cross-check its own answer against the Chainlink market status for the tokenized-equity feed.

The cross-check matters because a calendar is a prediction. Exchanges occasionally close on days nobody planned for. Market status from the oracle is the observation that the calendar is checked against. How a disagreement between the two is resolved is not fixed in the design yet. Trading halts in a single stock are a separate matter, handled inside the session; see Edge cases and attack surface.

The draft interface is in Architecture and contracts.

Who maintains the calendar#

Exchange holidays are announced years ahead but are not a formula. Somebody has to enter them. In the design that is governance: $RGNT stakers govern the holiday calendar, along with fee bounds, the bell window length and bond tiers. The token is not live and there is no contract address, so today this is a statement of intent. See The $RGNT token.

The clock on this site#

The live session clock on this site and in the preview is not read from a chain, because there is nothing deployed to read from. It is computed in your browser by lib/regent/sessionClock.ts, the TypeScript twin of the planned contract.

It uses the browser's built-in time zone database for America/New_York, the same holiday and early-close lists shown above, and the same two calendar rules. Given any instant it returns the session in force, its exact start and end, and whether the day is an early close. The preview schedules its sessions from the same module, and the session times in these docs are read from the same parameters file.