Skip to content
OmniRail

Stock Tokens

Agents can quote and swap a curated set of Robinhood Stock Tokens on Robinhood Chain through the same non-custodial Trade API: OmniRail checks the token, the issuer's controls and the price, builds the transaction, and the agent signs it with its own wallet. Only for eligible holders: read the eligibility section first.

OmniRail is not affiliated with, endorsed by, or officially connected with Robinhood Markets, Inc. or Robinhood Assets (Jersey) Limited. Nothing here is investment advice.

What they are

  • Stock Tokens are debt securities issued by Robinhood Assets (Jersey) Limited, each linked to one US share or ETF. They give no legal or beneficial rights in the underlying share. Terms: Stock Token terms, Base Prospectus.
  • They are ERC-20 tokens with 18 decimals. Corporate actions (dividends, splits) change an ERC-8056 multiplier, never your raw balance: raw amount × multiplier = underlying-share equivalent. The API always trades raw amounts.
  • Identity is the contract address, not the ticker: lookalike tokens with the same tickers exist. OmniRail only accepts a token listed in Robinhood's registry whose on-chain code, beacon, registry, uid(), symbol, name and decimals all match.
  • The issuer can pause transfers (one token or all), block addresses, burn tokens from any holder, change the multiplier and upgrade the contract of every Stock Token at once. OmniRail stops quoting when the contract changes from the version it reviewed.

Eligibility

Stock Tokens are not offered to US persons or in restricted countries. OmniRail enforces two things; neither replaces your own legal check.

  1. Region: Stock Token quotes, submits and Stock Token market data are refused with 451 from the United States, Puerto Rico, Guam, the US Virgin Islands, American Samoa, the Northern Mariana Islands, the US Minor Outlying Islands, Canada, the United Kingdom, Switzerland, the British Virgin Islands, Cuba, Belarus, Iran, North Korea, Russia, Syria, Ukraine, South Sudan, Sudan, Myanmar, Venezuela, and whenever the country cannot be determined. Using a VPN to get around this breaks the issuer's and the chain's terms.
  2. Attestation, per API key: before a key can quote Stock Tokens, its owner opens the dashboard, creates or edits the key and ticks "Stock Tokens eligibility", confirming (version 2026-10-09):
    • I am not a U.S. person (as defined in Regulation S) and I am not acting for, or on behalf of, a U.S. person.
    • I am not located, resident or organised in the United States, Canada, the United Kingdom, Switzerland, or a restricted or sanctioned country (Cuba, Belarus, Iran, North Korea, Russia, Syria, Ukraine, South Sudan, Sudan, Myanmar, Venezuela), and I am not a sanctioned person.
    • I have read the Stock Token terms and the Base Prospectus, and I understand that Stock Tokens are debt securities issued by Robinhood Assets (Jersey) Limited with no rights in the underlying shares, which the issuer can pause, block or burn.
    • Agents using this key (or, in the Playground, this account) trade only for me and within these restrictions. OmniRail only routes swaps non-custodially and gives no investment advice.
    Each confirmation is recorded with its time; unticking withdraws it. In the Playground, the signed-in account confirms once for itself. Keyless x402 calls cannot trade Stock Tokens.

Without an attestation the quote answers 403 stock_attestation_required with these instructions. Key trade limits can also list Stock Tokens: "tokens": ["USDG", "STOCKS"] (a token list without STOCKS excludes every Stock Token).

Tokens & pools

Only tokens with reviewed, liquid pools are offered. Routes never touch any other pool: hundreds of pools hold these tokens, many with launchpad or unreviewed hooks and absurd prices. Pools pair with USDG, ETH or WETH only, with no hook or a reviewed fee-only hook.

TickerTokenPrice referencePools
SPYSPDR S&P 500 ETF Trust • Robinhood Token0x117cc2133c37b721f49de2a7a74833232b3b4c0cChainlink + Robinhoodv4 USDG 0.05% · v4 USDG dynamic fee (FablesRWA hook) · v4 USDG 0.3% · v4 ETH 0.1%
NVDANVIDIA • Robinhood Token0xd0601ce157db5bdc3162bbac2a2c8af5320d9eecChainlink + Robinhoodv4 USDG 0.01% · v4 USDG 0.3%
METAMeta Platforms • Robinhood Token0xc0d6457c16cc70d6790dd43521c899c87ce02f35Chainlink + Robinhoodv4 USDG 0.031% · v4 USDG 0.3%
GLDSPDR Gold Trust • Robinhood Token0xc9a981fee1f9dec688bb123ccdecc63d0debfc4eRobinhoodv4 USDG dynamic fee (FablesRWA hook)
SPCXSpace Exploration Technologies Corp. Class A Common Stock • Robinhood Token0x4a0e65a3eccec6dbe60ae065f2e7bb85fae35eeaChainlink + Robinhoodv4 USDG dynamic fee (FablesRWA hook) · v4 ETH 0.3%
MSTRStrategy Inc. • Robinhood Token0xec262a75e413fafd0df80480274532c79d42da09Chainlink + Robinhoodv4 USDG 0.25% · v4 ETH 0.25%
AAPLApple • Robinhood Token0xaf3d76f1834a1d425780943c99ea8a608f8a93f9Chainlink + Robinhoodv4 ETH 0.25%
HIMSHims & Hers Health • Robinhood Token0xccee82fe024c36fa15e1005ede3e9e4787e23d09Robinhoodv3 USDG 0.3%
MUMicron Technology • Robinhood Token0xff080c8ce2e5feadaca0da81314ae59d232d4afdChainlink + Robinhoodv3 USDG 0.3%
COINCoinbase • Robinhood Token0x6330d8c3178a418788df01a47479c0ce7ccf450bChainlink + Robinhoodv3 WETH 0.3%
CRCLCircle Internet Group • Robinhood Token0xdf0992e440dd0be65bd8439b609d6d4366bf1cb5Chainlink + Robinhoodv3 USDG 0.3%
COSTCostco • Robinhood Token0x4ea005168d7f09a7a0ba9d1def21a479950e44c2Robinhoodv3 USDG 0.3%

GET /markets/tokens lists the ones that passed verification right now, with tradable_now and the reason when not.

Pre-trade checks

On top of every Trade guard (impact, 30-minute TWAP, simulation, size and daily limits), each Stock Token in a quote must pass, read live just before the quote is returned:

  • the registry entry and the on-chain identity above; the Stock Token contract is still the reviewed version (otherwise every Stock Token is refused);
  • not paused by the issuer (token or global pause), no advisory oracle pause;
  • the taker, the Universal Router, Permit2, the PoolManager, the v3 pools and the fee recipient are not blocked by the issuer;
  • no multiplier change pending or effective within 24 hours, and not inside a corporate-action processing window (about 02:00–15:30 CET on the processing date);
  • the session allows it (below), and Robinhood's registry marks the token tradable in that session; no trading halt;
  • a fresh reference price: the Chainlink feed (multiplier included; at most 26 h old on weekdays) where one exists, and Robinhood's token price (at most 120 s old); when both exist they must agree within 1%;
  • the routed price within 1.5% (regular hours), 2.5% (pre / after-hours) or 2.5% (overnight) of the reference, either way;
  • Robinhood Chain publishes no sequencer uptime feed: the latest block must be at most 60 s old.

Submitting a Stock Token trade re-checks the region and the attestation, and when OmniRail relays your signed transaction, the pause and block state again. An event monitor also watches the issuer's contracts and switches tokens off on pauses, blocks, upgrades and multiplier changes.

Sessions

Stock Tokens follow the US market sessions (New York time): overnight 20:00–04:00 (Sunday evening to Friday morning), pre-market 04:00–09:30, regular 09:30–16:00, after-hours 16:00–20:00. On weekends and US market holidays quotes are refused (market_closed): tokens cannot be issued or redeemed then, so pool prices can drift away from the underlying.

Fees

  • Quote price and market data prices are the same as for every Trade call.
  • The OmniRail fee is taken in the bought asset: 0.25% when you sell a Stock Token (paid in USDG or ETH), none when you buy one (OmniRail never receives Stock Tokens).
  • Pool fees vary by pool; FablesRWA pools charge a session-dependent fee that rises around the opening and closing bells. The quote shows them.

Example

curl https://omnirail.org/api/v1/trade/quote -H "Authorization: Bearer $OMNIRAIL_KEY" -H "Content-Type: application/json" \
  -d '{ "taker": "0xYourAgentWallet", "sell_token": "USDG", "buy_token": "SPY", "sell_amount": "50" }'
# → { "status": "needs_allowance" | "ready", "buy": { "token": "SPY", "amount": "…" },
#     "guards": { "stock_reference": { "cost_bps": 8, "session": "regular", "references": [ … ] } },
#     "stock_tokens": { "issuer": "Robinhood Assets (Jersey) Limited", "disclosure": "…", "session": "regular", … }, "steps": [ … ] }

Then follow the usual Trade steps (approve Permit2 once, sign the Permit2 typed data, sign the swap, submit): see the Trade quickstart. A token address works wherever a ticker does.

Market data

GET /markets/tokens adds one row per verified Stock Token: kind: "stock", ticker, name, address, multiplier, has_price_feed and chainlink_feed, usd_price with its price_source, the current session, tradable_now and unavailable_reason. GET /markets/price?base=SPY&quote=USDG and /markets/candles work on Stock Tokens with their reference price, and wallet balances include them. From a restricted or unknown region these answer 451 (the token list simply omits Stock Tokens).

Risks

  • The issuer can pause, block, burn, re-price (multiplier) or upgrade Stock Tokens at any time; a paused token cannot be sold until it is unpaused.
  • On-chain prices can differ from the underlying share, most of all outside regular hours and at weekends; pools can be thin, and fees spike around the bells.
  • The price references can be late or wrong; OmniRail refuses when they are stale or disagree, but cannot rule this out.
  • OmniRail is a router: it never holds your tokens, keys or funds, and cannot reverse a transaction you signed.
  • Whether you may hold or trade Stock Tokens depends on where you are and who you are; the checks above do not make that determination for you.

Errors

StatusCodeMeaning
451region_restricted, region_unknownNot offered from here, or the country could not be determined.
403stock_attestation_required, address_blockedThe key owner has not confirmed eligibility; the taker is blocked by the issuer.
422token_paused, trading_paused, corporate_action, market_closed, session_not_tradable, trading_halted, token_unavailable, price_off_referenceRefused by a Stock Token check; nothing was charged.
503stocks_halted, stocks_unavailable, token_disabled, stock_maintenance, price_reference_unavailable, price_reference_stale, price_reference_conflict, chain_stalledStock Tokens are paused on OmniRail for now (issuer event, maintenance, prices or chain); retry later.