MARKFair value · 24/7
Robinhood Chain
MARK · MARK TO MARKET · WALL STREET CLOSES AT 4PM · THE TOKENIZED STOCKS DON'T · MARK KEEPS MARKING ·

The tape stops.
The mark doesn't.

Tokenized stocks on Robinhood Chain trade all night and all weekend. The official price does not. MARK is the oracle that keeps marking them to market when Wall Street is asleep: a signed fair value with a confidence band, blended from the last official print, every Robinhood Chain pool, xStocks on Solana, and beta-adjusted index futures. Free to read, verifiable by anyone, and tradeable on-chain: long or short any name on the board with USDG, up to 10×, all weekend.

MARK · Departures from the last official print
New York Wall St reopens in
TickerOfficialAgeMark± ConfRH basisSession
Open: mark = tapePre / post: extended prints + poolsClosed: pools + xStocks + futures proxyRH basis = Robinhood Chain pools vs MARK, bps

01 · The problem

Every oracle goes dark at 4pm

Equity feeds freeze at the close. From Friday 16:00 to Monday 09:30 that number is 65 hours old, while TSLA on Robinhood Chain keeps printing every block. Perps, lending markets and prediction markets either freeze with it or quietly lie.

02 · The method

Weighted median, not a guess

Each regime has its own source weights. Sources that stray more than 8% from the preliminary median are rejected and reported. The confidence band widens with source dispersion and with hours since the close. Exact weights are in the docs.

03 · The proof

Signed. Public. On-chain.

Every mark is an ed25519-signed payload you can verify with one GET. Staked publishers push the same fixed-point integers to MarkOracle.sol, consumers read the median, and a bad report inside the window gets slashed.

Live proof · TSLAWhat the oracle sees right now

Same stock, five opinions. Wall Street's print, the extended session, each Robinhood Chain pool weighted by liquidity, the xStock on Solana, and the futures-implied move. MARK takes the weighted median and publishes the band.

SourceVenuePriceWeightvs Mark

The board says

Open feed → Trade it

IntegrateOne GET, or one call

GET https://markonrh.xyz/api/feed/TSLA/signed
{
  "sym": "TSLA", "mark": 358.37, "conf": 2.55, "session": "closed",
  "payload": "MARK|TSLA|35837818547|255764158|1788415417|CLOSED|101",
  "sig": "6130240a80f9…", "pub": "7ba4b5370bdd…", "alg": "ed25519"
}

GET /api/verify?payload=…&sig=…   →  { "valid": true }
// Solidity — Robinhood Chain
IMarkOracle mark = IMarkOracle(ORACLE);
MarkOracle.Price memory p = mark.getPrice(mark.feedId("TSLA"));
// p.price  int64  USD·1e8      p.conf uint64 USD·1e8
// p.session 0 OPEN 1 PRE 2 POST 3 CLOSED   p.reports uint8
require(p.session == 0 || p.conf * 100 < uint64(p.price), "band too wide");

$MARKThe token pays for the truth

Reads

Paid pulls

pullPrice charges a fee in $MARK per on-chain read and streams it to the publishers whose reports were used. getPrice stays a free view so nobody is locked out of the number.

Publishers

Stake to post

Only staked publishers can push a report. Reports outside twice the accepted band are slashed 20% by the guardian, and the slash is paid to whoever caught it.

Feeds

16 names, day one

SPY, QQQ, NVDA, AAPL, TSLA, MSFT, AMZN, META, GOOGL, HOOD, COIN, MSTR, PLTR, GME, AMD, CRCL. Every one is a real tokenized stock with live Robinhood Chain pools.

TradeLong or short the mark, on-chain

Venue

USDG perps on Robinhood Chain

Deposit USDG, pick a name, pick a side, up to 10×. Your order carries a fresh oracle signature that MarkPerps.sol verifies before it fills.

Fills

Mark ± half the band

Longs buy at mark plus half the confidence, shorts sell at mark minus half. A wide weekend band is a wide spread, and it tightens the moment the tape reopens.

Counterparty

One liquidity pool

LPs provide USDG and take the other side of every position. They collect 8 bp per side and every liquidation remainder. Open interest is capped at four times the pool.

Open the trade desk → Practice with paper first

FAQQuestions people ask

What is MARK?

A fair-value oracle for tokenized stocks on Robinhood Chain. It publishes a price and a confidence band for each name every four seconds, 24/7, and signs every one of them.

Why not just use the last close?

Because the tokenized stock keeps trading after the close and the market keeps moving. A 65-hour-old number is not a price, it is a memory. MARK reads what is actually trading right now.

Where does the weekend price come from?

Every Robinhood Chain pool for the name weighted by liquidity, the same stock's xStock on Solana, and the beta-adjusted move in ES or NQ futures since the cash close. The last official print is in the blend too, with a weight that fades over three days.

How do I know it is not made up?

Every feed page lists each source, its price, its weight and its deviation from the mark, plus anything that was rejected. The signed payload verifies against the public key at /api/signer, and the contract verifies the same numbers on-chain.

What does the confidence band mean?

How far apart the sources are, widened by how long the tape has been closed. When the sources agree and the market is open it is a few basis points. On a quiet Sunday it is wider, and your fill pays that width.

How does trading work?

Deposit USDG on Robinhood Chain, open a long or short at up to 10×, close whenever you like. The contract fills at mark ± half the band, charges 8 bp per side to the liquidity pool, and liquidates positions that fall under 5% maintenance.

Who takes the other side?

The liquidity pool. Anyone can provide USDG to it, earn every fee and every liquidation remainder, and redeem their share whenever the pool still backs open interest.

Can a bad pool price move the mark?

Not on its own. The mark is a weighted median, and any source more than 8% from the preliminary median is rejected outright and shown on the feed page as rejected.

What is $MARK for?

Publishers stake it to post reports to the on-chain oracle, paid reads are charged in it and flow to those publishers, and slashes are paid out in it.

Can I build on the feed?

Yes. One GET returns a signed mark, one call to MarkOracle.sol returns the median of staked reports. Both use the same fixed-point integers, so what you verify off-chain is what settles on-chain.

Is a mark a guarantee?

No. It is the best available estimate with a stated band. Check the session and the band before trusting a number, exactly as you would with any oracle. Nothing here is investment advice.

Which names are listed?

SPY, QQQ, NVDA, AAPL, TSLA, MSFT, AMZN, META, GOOGL, HOOD, COIN, MSTR, PLTR, GME, AMD and CRCL. Every one is a real tokenized stock with live Robinhood Chain pools.