offhrs

The market is closed.
The gap isn't.

Tokenized shares of private companies trade around the clock. The regular stock market doesn't. Offhrs runs AI agents on the gap between the two — and pays the people who back them in the shares themselves.

Right now

The proof is a timestamp.

Pyth puts each stock's price on chain with a publish_time anyone can read. When that timestamp stops moving, the real market has closed. The tokenized shares keep trading anyway — and that is when their prices drift.

Reference feedLivestale 0h
Last print17:20UTC2026-09-22
Widest gap+3073bpsSPACEX
Pre-IPO tracked$5.27T8 assets
Agents staged8registry seeded
Assets with a feed1Pyth equity feed
The board

Tokenized shares, priced against their mark.

All agents →
AssetOfficial markToken priceGapMark value
SPACEXSpaceX PreStocks$153.89$117.72+3073bps$2.02T
NEURALINKNeuralink PreStocks$338.46$458.33-2615bps$64.48B
OPENAIOpenAI PreStocks$1,004.05$1,138.57-1181bps$1.24T
FIGUREAIFigure AI PreStocks$181.99$175.64+361bps$39.68B
ANDURILAnduril PreStocks$152.59$154.99-154bps$135.00B
POLYMARKETPolymarket PreStocks$144.13$145.51-95bps$14.21B
KALSHIKalshi PreStocks$887.26$890.74-39bps$32.27B
ANTHROPICAnthropic PreStocks$1,050.42$1,047.47+28bps$1.72T

The gap is how far the token's price sits from its official mark. Positive means it trades below the mark.

Mechanics

Three pieces. One of them is what we built.

01

A wrapper that makes the pool possible.

PreStocks charge a transfer fee, and Meteora’s bonding-curve library rejects any token that does. Offhrs wraps each share 1:1 in a zero-fee token — and only then can a stock-paired pool exist.

Agents that trade the gap.

02

Each agent waits for the gap to clear its costs, then trades — but only while the official price is frozen.

Dividends paid for time held.

03

Fees and gains stream to holders over time, so the patient ones earn most.

8 agents stagedOpen the market
The agents

Four desks, one thesis each.

Every agent runs the same idea with different settings: how wide a gap counts as a trade, which company it watches, and how long it will hold through the open. These eight are a preview — they become real the moment their pools are on chain.

All agents →
Desk 0101

Orbital

ORB · SPACEX

Buys SpaceX tokens on weekends, when the price drifts farthest from its mark.

Curve filled

72%

Fee tier

5.0%

Last trade

31m

Open terminal
Desk 0202

Sentinel

SNTL · ANDURIL

Trades Anduril on its defence backlog; holds through the open, sells when price meets mark.

Curve filled

41%

Fee tier

6.5%

Last trade

10m

Open terminal
Desk 0303

Alignment

ALGN · OPENAI

Trades OpenAI as its mark moves, sizing bets to how confident the price feed is.

Curve filled

88%

Fee tier

7.5%

Last trade

4m

Open terminal
Desk 0404

Frontier

FRNTR · ANTHROPIC

Trades Anthropic only when the gap is twice the cost of trading. Usually does nothing.

Curve filled

19%

Fee tier

4.0%

Last trade

237m

Open terminal

⚠ The eight agents are staged previews. This rail reads real accounts the moment each DBC pool exists on chain.

The market is closed.
The gap isn't.

Where the value goes

Hold the token, earn the shares.

Every trade on an agent's curve pays a fee, and every trade that closes the gap books a gain. Both flow into a pool that pays you over time — in the tokenized shares themselves, not in a token that tracks them.

Rewards build up for every moment you hold. No snapshots to game.

Income

Curve fees + gap capture

Payout

Paid out for how long you hold

Denomination

The wrapped share, redeemable 1:1

Rule

No snapshots. No deadline.

Questions

The short answers.

Including the two questions most projects leave out: is it deployed, and what can go wrong.

Everything here is checkable on chain.

AI agents buy tokenized shares of private companies when they trade below the share's official value, and sell when they trade above. They only trade after hours — when the real market can't anchor the price — and only when the gap covers their costs. The gains go to the people holding each agent's token.

The official value comes from Pyth's on-chain price feed, which stops updating when the real market closes. The tokenized shares keep trading all night, so their price drifts from the stale reference — and that drift is what the agents trade.

These tokens charge a transfer fee, and Meteora's bonding-curve library refuses any token that does — a hard limit, not something a badge can override. Offhrs wraps each share 1:1 in a zero-fee token, and only then can a stock-paired pool exist. The wrapper mints exactly what it receives, so every wrapped share stays backed.

Gains are paid over time, not as a lump sum. A lump sum would go to whoever staked right before the money arrived; streaming pays the people who held — which is fair, and it keeps the pool solvent.

On devnet, yes — the program is live, and the dashboard reads real stakes from it. On mainnet, not yet: that deploy costs roughly 2.9 SOL of refundable rent. Until it is paid, mainnet balances show dashes rather than invented numbers.

The real market can reopen above the tokenized price, and the position briefly loses money. Agents only trade when the gap clears their cost and the market is shut, which limits that risk but does not remove it. The price feed can also go stale, and these tokens are illiquid enough that a big sell can move them.