Docs

How MERGER works

The book, the desk, receipts and the rail, with the source behind each number and the steps to check it yourself.

Updated 2026-09-28. Measured figures carry the date they were read.

The book

The same share trades as five to nine tokens from different issuers (issuer registries read 2026-09-28 UTC). TSLA has a Robinhood Stock Token, xStocks TSLAx, Ondo TSLAon, Binance TSLAB, Coinbase TSLAc and a Dinari token, plus a long tail. The book reads five of those issuers, Robinhood, xStocks, Ondo, Binance bStocks and Coinbase, for each share they issue, and leaves Dinari and the long tail out. Each underlying gets one view: a reference price, each of those tokens set against it in USD per share, and the gap in basis points.

Each issuer's token is a separate claim, with its own terms, custody and legal form. The book lines them up by the share they track. It never presents two issuers' tokens as one thing you can swap one for one.

Where each row comes from

ReferenceChainlink feeds, read with latestRoundData across several public RPCs: on Robinhood Chain where one exists; gold and ZEC use Chainlink feeds the row links. A feed priced from DEX pool state never counts, so GLD, whose Robinhood Chain feed is one, shows its reference as unread.
Route rowsStock Tokens from the Robinhood registry, matched by contract address, each priced from the cheapest Uniswap v3 or v4 pool on Robinhood Chain for a 1,000 USD order.
Reference rowsxStocks, Ondo, Binance bStocks and Coinbase, named by issuer, each priced from its deepest DexScreener pool. A token whose deepest pool holds under 10,000 USD stays unread.
MultipliersEach issuer's own source: Robinhood currentMultiplier, the xStocks multiplier API, Ondo sValue, bStocks uiMultiplier() and the Coinbase multiplier API.
GoldPAXG and XAUT against Chainlink XAU/USD.
ZECThe Binance and Kraken order-book mids, CoinGecko and the 1Click token price.
Event pairKalshi and Polymarket on the Fed decision at the October 2026 meeting, matched by hand. You can compare the two prices; the desk never routes them.

Robinhood's own share has no row, as Robinhood Chain's terms (section 5.7(l)) require. The book reads Stock Tokens from the registry by address, so a look-alike with a borrowed ticker never enters it. On 2026-09-28 UTC DexScreener listed a fake TSLA on Robinhood Chain at 0xb3a8316f2F1828f25E0b43cE9B3D2302FcC7d455, with invented liquidity.

Normalisation by multiplier

Issuers fold dividends into a multiplier, so over time one token stands for a little more than one share. Robinhood and xStocks call it currentMultiplier; Ondo calls it sValue, shares per token. A venue that quotes per token prints a higher price than a venue that quotes per share, even when both sit at parity.

The book divides each per-token price by its issuer's multiplier to reach USD per share. It records for each token and venue whether the venue quotes per token or per share, so it divides once. A multiplier the book cannot read makes the row unread; it never assumes 1.0.

Worked example: SPY, read 2026-09-28 00:47 UTC
Chainlink RHSPY / USD on Robinhood Chain (prices the Robinhood token)771.21
Robinhood multiplier1.001718
Reference, USD per SPY share771.21 ÷ 1.001718 = 769.89
Ondo SPYon, DEX price per token777.36
Ondo sValue1.009473
SPYon, USD per share777.36 ÷ 1.009473 = 770.07
SPYon against the reference+2.3 bps

Compared raw, SPYon would look 97 bps rich. The multiplier accounts for all but 2.3 of those bps. Kraken's SPYx book runs the other way: it quotes per share, 769.53, which sits −4.7 bps from the reference as printed. Dividing that price by the xStocks multiplier (1.005715) would report a false −61 bps.

Row states

live
The source answered within its freshness limit. The row shows its numbers, its source link and its age.
stale
The source answered, but the reading is older than the limit for its class, or its market is closed. The row keeps the number next to its age and the reason. The book never picks a stale row as the best route, and a best route set against a stale reference is marked stale.
unread
The source did not answer, or answered with something the book could not check. Every number in the row stays empty. The book never fills the gap with zero or an older value.

Chainlink's equity feeds on Robinhood Chain update on a 24-hour heartbeat or a 0.5 percent move, and follow a market schedule of 24 hours a day, five days a week. A price 20 hours old can sit inside that heartbeat, so the book sets its own freshness limit per class. Outside market hours it marks a stock feed stale and gives "market closed" as the reason.

Route rows and the best route

Route rows are Stock Tokens the desk can buy on Robinhood Chain. For each one the book asks Uniswap's quoters on chain 4663 what a 1,000 USD order costs: QuoterV2 for v3 pools and V4Quoter for v4 pools. The cost reads in basis points, pool fee included. The best route is the cheapest live route row whose deepest pool, as DexScreener reports it, holds at least 10,000 USD. A row under that floor, or with no liquidity read, is never best. The book names the best route's pool: version, fee tier and hook. A v4 pool with a hook counts when that hook sits on MERGER's allowlist.

Reference rows show other issuers for comparison. The desk cannot buy them, and their numbers never feed a trade.

The desk

The desk runs in your browser. It creates a one-time position account, funds it from shielded ZEC through the rail, buys your basket on Robinhood Chain and sends the proceeds back to a fresh shielded address. Your browser signs every transaction. No MERGER server holds a key or your funds.

Steps

  1. Pick a basket. Choose up to five Stock Tokens from the book's route rows, give each a whole percentage so they add up to 100, and enter a ZEC amount.
  2. Create or unlock the position account. Your browser generates the key, encrypts it under your passphrase as a standard v3 keystore (scrypt) and keeps it on this device. Download the keystore file. Without the file and the passphrase, nobody can recover the account.
  3. Give two fresh u1 addresses from your wallet: one for refunds, one for the exit. The desk accepts a mainnet u1 with an Orchard receiver and no transparent receiver. It refuses t1, tex1, zs1 and testnet addresses.
  4. Quote. A dry quote shows what the rail offers. The live quote runs when you click. Before the desk shows the one-time t1 deposit address, it checks that the rail echoed your recipient and refund address.
  5. Pay from your wallet: Zodl, Zingo, Zkool, Vizor or Cake. Scan the QR code, a single-recipient ZIP 321 request, or paste the copied request, or the address and the exact amount, into your wallet. Send before the time shown.
  6. Wait for the credit. The desk polls the rail until ETH reaches the position account. Credit follows 5 confirmations on Zcash: 3 to 12 minutes after the payment was mined across 12 deposits measured on 2026-09-28 UTC (how it was measured).
  7. Buy each leg. For every swap the desk checks that the chain is 4663, simulates the transaction, sets a minimum out from the simulation and a deadline, then signs. A reverted swap shows "Reverted on chain" and stops the flow.
  8. Check the holdings. The desk reads each leg's balance from the chain and can hand the mix to a receipt as percentages and a size band.
  9. Exit. Sell each leg to USDG, quote USDG to ZEC with your exit u1, send the USDG to the rail's deposit address and wait. ZEC lands in Ironwood about 140 seconds after the deposit confirms, by the time estimate the rail's exit quotes carried on 2026-09-28 UTC.

Limits

  • A basket holds up to five legs.
  • A fund takes 0.01 to 5 ZEC. ZEC into ETH on Robinhood Chain quoted up to about 5 ZEC, and larger orders failed (read 2026-09-28 UTC), so the desk stops at 5.
  • MERGER's own floor is 0.01 ZEC on every rail leg: at least that much in on a fund, and at least that much out on an exit. It sits above the bridge connector's, which strands deposits below 0.001 ZEC with no refund path. A route can set a higher floor of its own, and then the dry quote refuses the amount.
  • Exits from native ETH failed above about 1,000 USD, while exits from USDG quoted up to 50,000 USD (read 2026-09-28 UTC). The desk exits through USDG.

Fees

The desk reads the rail's fee from the quote the rail echoes back, and shows it before you send. Keyless quotes echoed 20 bps, and 1 bp on stablecoin routes (read 2026-09-28 UTC). MERGER adds no fee of its own: its share of each quote is 0 bps. Uniswap pool fees sit inside the swap quote.

Gas

A swap on Robinhood Chain cost about 0.005 to 0.012 USD in gas. That range comes from 15 recent Uniswap swaps, 14 through the Universal Router and one through SwapRouter02, which used 101,642 to 229,529 gas at about 0.02 gwei, priced at 2,668 USD per ETH (receipts read 2026-09-28 UTC). An account holding USDG and no ETH cannot pay for any transaction, because no public paymaster accepts USDG. The desk keeps an ETH reserve on the position account for gas, and it uses one gas figure for both the reserve and the limit it signs.

Stock Tokens are not offered to US persons and are restricted in Canada, the UK and Switzerland. That rule is yours to keep: do not use the desk where it applies to you.

Receipts

A receipt is a page at /r/ plus a random id, with its own card on X. It shows a position as a mix, with a size band if you add one, never as an amount.

What a receipt stores

MixUp to five symbols from the book, each with a whole percentage from 1 to 100, adding up to 100.
Size bandOptional and off by default: under 1k, 1k to 10k, 10k to 100k, or over 100k USD.
DateBy default the week you made the receipt, stored as the UTC date of its Monday and shown as "Week of". You can pick the exact UTC day instead.
ProofYour X handle, if you proved it with a post. Never an address: the server refuses a receipt that names one, the position account included.

Each detail you add makes a receipt easier to match to one account on Robinhood Chain. The week with no size band gives the least away.

The server checks every field against those lists and stores them, with whether the date is a week or a day. A proven handle adds the id of the X post and the UTC day of the proof, and a marker under that post id holds the receipt id and the day, so one post cannot prove two receipts. The server stores nothing else about a receipt. A receipt has no free-text field, so no visitor can write words onto a card. The id is 16 random bytes and the link carries no secret, so you can put a receipt link in a public post.

Proof levels

Self-reported
The default. The card shows the mix you entered or the desk handed over. Nobody checked it.
Handle proven by post
MERGER gives you a one-time code. You post it from your X account, and MERGER reads that post through X's public oEmbed endpoint and takes the handle from the post's author, never from anything you type. One post proves one receipt. The proof shows who made the receipt; the mix stays self-reported.

What a card never shows

An address of any kind, a transaction id, an exact amount or an exact time. The card draws from the stored record and ignores any text in a link. A screenshot of a card proves nothing on its own: the page at /r/ is the record.

The rail

NEAR Intents 1Click moves value between ZEC and Robinhood Chain in both directions, keyless, in public mode. MERGER's server calls it for you, pins every asset by id and checks every answer. NEAR Intents added Robinhood Chain on 2026-09-22 (source).

  • Pinned assets. 1Click listed five assets with the symbol ZEC (token list read 2026-09-28 UTC), so MERGER never looks one up by symbol. It uses ZEC nep141:zec.omft.near, ETH on Robinhood Chain nep141:hood.omft.near and USDG nep141:hood-0x5fc5360d0400a0fd4f2af552add042d716f1d168.omft.near.
  • Dry, then live. A dry quote shows the price and issues no deposit address. A live quote runs when you click and issues a fresh deposit address.
  • Echo check. The rail echoes the recipient and refund address it will pay. If either differs from what MERGER sent, or the echo is missing, MERGER refuses the quote and shows no deposit address.
  • Deadlines. Send before the deadline in your request. The rail's own quote deadline fell 72 hours later on quotes read 2026-09-28 UTC, and marks when the deposit address goes cold; funds sent after it can be lost.
  • Refunds. On a fund, a failed or short deposit goes back to your refund u1, and so does any excess on a successful swap. On an exit the refund address is the position account, so USDG comes back there. The rail keeps its refund fee from each refund: 0.00032 ZEC from a ZEC deposit and 0.075 USDG from a USDG one (quotes read 2026-09-28 UTC). The operator may handle a refund by hand, which can take days, and its terms carry no obligation to refund (1Click terms, section 12.4).
  • Rate limit. 20 quotes per visitor per 10 minutes, counted against a keyed hash of the IP address and charged when the rail answered.

1Click publishes the recipient and refund address of every quote to anyone holding its deposit address. Read what stays public.

Verify it yourself

A Stock Token against the registry

Open the Robinhood registry, find the symbol and copy its contractAddress. Open that address on the explorer and check the name and symbol. A live route row in the book links the pool it quoted, on the explorer or on DexScreener: one of that pool's two tokens must be that same address. A token missing from the registry is not a Stock Token, whatever its ticker says.

A reference price

Every book row links its source. For a Chainlink feed on Robinhood Chain, find the pair in the Chainlink directory for Robinhood Chain and read its proxy on the explorer. The gold and ZEC references are Chainlink feeds outside that directory: follow the link on the row.

A rail quote

Anyone holding a deposit address can read its record at 1click.chaindefuser.com/v0/status?depositAddress= followed by the address. You see the same record a stranger would.

The Ironwood figures

ironwood.live serves the shielded supply and turnstile figures the privacy page shows.

Where this page and the chain disagree, believe the chain.

Sources

Live on this site: the merged book, the rail quote and receipts, each read from the source it names. $MERGER: issuance pending.