Nasdaq closes. Velque opens.
Velque is an order book for tokenized stocks on Solana, built around the hours when Nasdaq is closed. A normal book while there is a Nasdaq price, auctions that clear at one price while there is not, and one cross before the bell.
a week, regular session, Monday to Friday 9:30 to 16:00 ET.
a week. Tokenized stocks on Solana never stop trading.
a week with no Nasdaq price to check a trade against.
The 135 hours
A tokenized stock is a token backed by a real share. On Solana it trades every hour of every day. The market that actually prices the share is open for about a fifth of that time.
While Nasdaq is open, arbitrage keeps the token close to the share. After the bell there is nothing to arbitrage against. Liquidity thins out, and every order walks whatever depth happens to be in the pool at that moment. The first large order of the night decides the price for everyone after it.
Velque does not try to invent a price for those hours. It changes how trading works in them: instead of each order hitting a thin pool alone, orders are gathered and cleared together.
Three sessions
Book pinned to Nasdaq
While Nasdaq is open, a continuous order book. Price, then time. Every limit price must sit inside a band around the Nasdaq reference.
Auctions in short windows
After the bell, orders collect for a window, then clear together at the single price that fills the most volume.
One cross before the bell
Everything that built up overnight or over the weekend meets in one opening cross. Then the day book takes over.
| WHEN (ET) | SESSION | HOW ORDERS MATCH |
|---|---|---|
| Mon to Fri, 9:30 to 16:00 | Day | Continuous book, price then time |
| Mon to Thu, 16:00 to next day 9:30 | Dark | Periodic auctions |
| Fri 16:00 to Mon 9:30 | Dark | Periodic auctions |
| Nasdaq holidays | Dark | Periodic auctions |
| Right before 9:30 on a trading day | Opening cross | One large auction |
The session is not taken from a clock alone. The program switches to Dark whenever the reference price for a stock stops updating, so an unscheduled halt is handled the same way as a night.
Day book
During the regular session Velque is an ordinary central limit order book. The best price fills first; at the same price, the earlier order fills first.
The price band
Each stock has a band around its live reference price. A buy above the band or a sell below it is rejected before it reaches the book. The band keeps a stray order from printing a price that has nothing to do with Nasdaq, and it is set per stock.
accept order if |limit_price - reference| <= band(stock) * reference
reject order otherwise
reject order if limit_price * size < min_notional
switch to Dark if reference is older than max_age
How a day order fills
An order that crosses the book fills at once, against the best resting price first, and at that resting price, not at your limit. You receive what you bought or the USDC from what you sold in the same transaction. Whatever does not fill rests in the book with its escrow. Your own resting orders are skipped, so you never trade with yourself.
When a resting order fills, its proceeds wait in the program until you claim them. You can claim while the order is still partly resting, and cancel what is left at any time.
When the day ends
After the close the reference stops updating. Once it is older than max_age, the market is Dark: resting day orders move into the current night auction as until-cancelled orders, together with their escrow. Anything they earned during the day stays claimable.
Reference price
The Day band and the tie-break need a price from outside the book. Velque uses the last trade of the stock on its home exchange, not the price of the token itself, so the book is checked against Nasdaq and not against its own trades.
- Two sources. The last trade from api.nasdaq.com and from Yahoo Finance. Each has to be less than three minutes old, and the two have to agree within 0.5%. If only one answers, it is used only when the token price on Jupiter is within 3% of it. Otherwise no reference is posted.
- Token multiplier. xStocks pay dividends by changing a multiplier on the token instead of balances, so one token can hold slightly more than one share. The reference is the share price times that multiplier, read from the token itself.
- Signed onchain. A dedicated oracle key posts the reference to the market with a timestamp. That key can only post prices and hand the role to another key. It cannot move funds, and it is not the key that can upgrade the program.
- No price, no Day. Outside regular hours, or whenever the sources fail, the reference goes stale after
max_ageand the market runs auctions.
Night auctions
When the reference goes dark, the book stops matching continuously. Orders collect for a fixed window. When the window closes, the orders are frozen and the program finds one clearing price for all of them.
How the clearing price is chosen
- Most volume. The price at which the largest number of shares can change hands.
- Least imbalance. If several prices tie on volume, the one that leaves the fewest shares unmatched.
- Closest to the last reference. If still tied, the price nearest to the last reference before the market closed.
- Midpoint. If still tied, the middle of the remaining range.
Every buy at or above the clearing price and every sell at or below it can fill, all at the same price. Orders priced better than the clearing price fill first. If one side is still larger, the orders sitting exactly at the clearing price share what is left pro rata by size. Nothing inside a window depends on who clicked first.
Worked example
Illustrative numbers, not market data. One Dark window for NVDAx. Last reference before the close: 180.70.
100 @ 181.20
50 @ 180.90
200 @ 180.50
80 @ 180.40
120 @ 180.80
150 @ 181.30
| PRICE | WILLING TO BUY | WILLING TO SELL | CAN TRADE | LEFT OVER |
|---|---|---|---|---|
| 180.40 | 350 | 80 | 80 | 270 |
| 180.50 | 350 | 80 | 80 | 270 |
| 180.80 | 150 | 200 | 150 | 50 |
| 180.90 | 150 | 200 | 150 | 50 |
| 181.20 | 100 | 200 | 100 | 100 |
180.80 and 180.90 both trade 150 shares and leave 50 unmatched, so the tie goes to the price closest to the last reference, 180.70. The auction clears at 180.80. The two bids at 181.20 and 180.90 fill in full, 150 shares. On the sell side the ask at 180.40 is better than the clearing price and fills all 80; the ask at 180.80 gets the remaining 70. All 150 shares change hands at 180.80.
Opening cross
The last auction before the regular session is the largest one. Its window collects everything that did not fill during the night or the weekend, plus new orders placed ahead of the open. It clears with the same rule, just before 9:30 ET. After it, the Day book starts with whatever is left resting.
Mechanically, the cross is the first auction cleared once the reference is live again. It does not wait for its timer: the moment the Day session starts, the window clears at one price, and the unfilled part of every until-cancelled order moves into the Day book at its limit price with its escrow. From there it trades like any other resting order.
The cross gives weekend orders a single, predictable moment to meet Monday's price instead of racing it tick by tick.
Orders
- Limit orders only. Market orders are not offered: in a thin night book a market order has no ceiling.
- Minimum size. An order has to be worth at least the market minimum ($10 on the test market). Each book has 64 slots, and the minimum keeps them for real orders.
- Cancel any time before the window you are in closes. Once a window is frozen, its orders are final for that auction. Day orders can be cancelled at any moment.
- Time in force. An order lives for one window or until cancelled. An order marked until cancelled carries its unfilled part into the next window together with its escrow. A one-window order returns whatever did not fill when you claim.
- Window rent. The first order in a window opens that window's book onchain and pays its rent. A book with no trades is closed after it clears and the rent goes back to whoever paid it; books with trades stay as the auction log.
- Settlement in USDC, in the same transaction that records the auction result.
Supported stocks
Velque lists tokenized stocks issued on Solana: xStocks, Ondo Global Markets and Backpack Securities tokens. Several issuers wrap the same company; each wrapper is its own market.
The Day book needs a live reference, so it is enabled only for stocks listed on Nasdaq or NYSE with a public last-trade price. A stock without one trades in auctions at all hours.
Auction log
Each auction leaves a record on Solana:
market NVDAx
window auction id and closing time
orders every order: owner, side, price, size, fill
clearing_price 180.80
volume 150
reference the reference price used for the tie-break
Anyone can pull the orders of a window, apply the rule above and check that they get the same price and the same fills. The app does exactly that: every row of its auction log has a Verify button that recomputes the result in your browser from the orders stored onchain. The program source will be public before mainnet.
Custody
Velque is non-custodial. When you place an order, the tokens or USDC it needs move into an escrow account owned by the program. The program can do exactly two things with them: fill them at the auction or book price, or return them to you when you cancel. There is no admin path to move user funds.
Fees
Placing and cancelling orders costs only the Solana network fee. Trading fees will be published before mainnet, and they will be the same for everyone in an auction.
Status
Velque is in development. The order of work:
- Done. Auction program: windows, clearing rule, escrow, carry-over of until-cancelled orders and settlement.
- Done. Day book with the price band, fills at the resting price, and the move of resting orders into the night auction when the reference goes stale.
- Done. Opening cross: the first auction after the reference comes back clears at once and hands its remainder to the Day book.
- Done. Public auction log with an in-browser replay of every result.
- Done. Token-2022 stocks. Real xStocks are Token-2022 tokens, and the test stock in the app is one too.
- Done. Reference from the Nasdaq last trade, two sources, adjusted for the token multiplier and signed by a separate oracle key. See Reference price.
- Done. Minimum order size, so a handful of dust orders cannot fill a book.
- Mainnet.
FAQ
Why not just trade the pool at night?
You can, and it will fill. The question is at what price. With no Nasdaq quote and thin depth, the first large order moves the price for everyone. An auction lets everyone who wants to trade in a window meet at one price.
Does Velque set its own price for the stock?
No. The price comes from the orders in each auction. The Nasdaq reference is used only to keep the Day book close to Nasdaq and to break ties.
What happens at the Monday open?
Everything waiting from the weekend meets in the opening cross. After it, continuous trading resumes.
Can anyone jump the queue inside an auction?
No. Inside a window time does not matter. Everyone who fills gets the same price.
Is it live?
The program runs a test market with test tokens, in all three sessions. In the app you can trade the Day book while Nasdaq is open, place orders in night auctions while it is closed, and see the opening cross in the auction log. Three test stocks trade there: tNVDAx, tTSLAx and tAAPLx. A Velque market maker quotes both sides so the book is never empty; its orders are labelled in the app, and it never trades with itself, so every fill has a real counterparty on the other side. Mainnet comes after the steps in Status.
Risk
- Price gaps. Nothing stops the real stock from opening far from where it traded overnight. An auction gives a fair price for the orders present, not a guarantee against the next day's move.
- No cross. If bids and asks do not overlap, an auction clears nothing and orders roll to the next window.
- Issuer risk. A tokenized stock depends on the issuer and its custodian holding the underlying share. xStocks give the issuer a permanent delegate and a pause switch on the token: the issuer can move tokens from any account, escrow included, and can stop transfers, which would also stop placing and claiming.
- Oracle risk. The reference is signed by one oracle key. A wrong price can shift the Day band and the tie-break, never the price of a trade. A stale price moves the market to auctions.
- Program risk. Smart contracts can contain bugs. Use amounts you can afford to lose.
- Eligibility. Tokenized stocks are not available to everyone. Some issuers exclude US persons and other jurisdictions.
Nothing on this site is investment advice.
Legal
Terms
Velque is software that runs on Solana. Using it means interacting with a program directly from your own wallet. You are responsible for checking that trading tokenized stocks is allowed where you live and for the issuer's eligibility rules.
Privacy
This site does not use accounts, cookies for tracking or analytics that identify you. The hosting provider keeps standard request logs. Anything you do onchain is public by the nature of the blockchain.
