Robinhood Chain facts
The chain reference behind Investors Center: networks and their quirks, the canonical token and price-feed catalog, and the ERC-8056 detail that drives how the treasury values what it holds.
Verification legend: β cross-verified (docs plus on-chain or a second source) Β· π‘ single source Β· β οΈ unverified or an assumption. Read the notes β several "obvious" defaults do not hold here.
Last researched 2026-07-16; the token and feed catalog was re-verified on-chain 2026-07-30, with crypto-native additions 2026-08-30. Addresses are the source of truth at those dates; always re-read Chainlink feed addresses from the canonical directory before relying on them β Robinhood and Chainlink rotate them.
Which of these assets the Treasury registers as reserves, and how each one is discounted and banded, is described in Reserves and listing.
1. Chain parametersβ
Networksβ
| Field | Mainnet | Src |
|---|---|---|
| Chain name | Robinhood Chain | β |
| Chain ID | 4663 | β docs + Blockscout |
| Native gas token | ETH (18 decimals) | β |
| Ecosystem | Arbitrum Orbit (settles to Ethereum L1) | β |
| Public RPC | https://rpc.mainnet.chain.robinhood.com | β |
| WS sequencer feed | wss://feed.mainnet.chain.robinhood.com | π‘ |
| Sequencer endpoint | https://sequencer.mainnet.chain.robinhood.com | π‘ |
| Block explorer (Blockscout) | https://robinhoodchain.blockscout.com | π‘ |
| Alchemy RPC | https://robinhood-mainnet.g.alchemy.com/v2/{KEY} | π‘ |
Investors Center supports Robinhood Chain mainnet only. The mainnet Blockscout
(robinhoodchain.blockscout.com, chainId 4663) is confirmed.
Arbitrum Orbit specifics β critical for governance and oraclesβ
block.numberreturns an estimate of the L1 (Ethereum) block number, not the L2 block number. It is constant within an L2 block and only advances roughly with L1. βblock.timestampis the L2 sequencer clock (approximately wall-clock, updated every L2 block). Reliable over hours, loose over minutes; not tied to L1 timestamps. β- The L2 block number must be read from the
ArbSysprecompile at0x0000000000000000000000000000000000000064βarbBlockNumber(). β - Precompiles present:
ArbSys 0xβ¦0064,ArbGasInfo 0xβ¦006C,NodeInterface 0xβ¦00C8. π‘
OpenZeppelin Governor plus ERC20Votes/Votes default to a block.number clock. On Orbit that
clock tracks L1 and jumps unpredictably, producing broken voting windows.
Use the timestamp clock (ERC-6372: override clock() to block.timestamp and CLOCK_MODE() to
"mode=timestamp", with ERC20Votes/GovernorVotes in timestamp mode), or drive voting from
ArbSys.arbBlockNumber(). Do not ship the stock block-number Governor.
- Oracle implication: Chainlink L2 best practice is to gate
latestRoundData()on an L2 Sequencer Uptime Feed. Its Robinhood address is β οΈ not yet located (Β§8). Also honour the token'soraclePaused()β corporate-action processing β before trusting a price. - Bridging: the canonical Arbitrum bridge (deposit ~10 min, withdraw ~7-day challenge). Fast partner bridges: Stargate, Transporter, Relay, Across, LiFi, 0x. LayerZero is used for the USDG OFT and omnichain messaging. π‘
2. Token contracts (mainnet 4663)β
All Robinhood Stock Tokens and ETFs are ERC-20, 18 decimals, ERC-8056 (scaled-UI multiplier). Issuer: Robinhood Assets (Jersey) Limited ("RHJ"), Jersey registration 162428. Only Authorized Participants (currently BBVI) mint from RHJ; integrators use existing tokens.
Token verification method (2026-07-30)β
The official contracts page only enumerates a subset of the live tokens, so twelve assets in the catalog carry a fingerprint verification rather than a docs citation:
- creator =
0x4783C67b63dE2B358Ac5951a7D41F47A38F3C046(the deployer of canonical TSLA/AAPL); - BeaconProxy implementation =
0xb35490d6f9163DE4F80d88dc75c3516eb64C5aE2(Stock); - runtime codehash =
0x6c1fdd40002dcb440c7fff6a84171404d279ccb057803b65826f7546acd65630(byte-identical to the TSLA/AAPL reference); - live
uiMultiplier()/oraclePaused()reads succeed (the ERC-8056 surface is present); - the Robinhood CDN serves a per-address logo (HTTP 200).
Criteria 1 and 3 are the two the protocol itself checks on-chain, and they are checked together for a reason. The 283-byte proxy body behind criterion 3 is byte-identical across every genuine token, so a mismatch rejects every impersonator below β but it is not proof of authenticity, because anyone can redeploy those same bytes at an address of their own. What a copy cannot do is get itself into the factory's issuance record (criterion 1, Β§2b). Conjoining the two is what lets self-service listing admit a real-world asset without a governance vote per ticker.
| Symbol shown | Address | Why it is NOT canonical |
|---|---|---|
| GME | 0x1c8a973a8788C4A57371BEd1611830a83FD580F4 | a thirdweb DropERC20 clone; a byte-identical display name to the real GME, no ERC-8056 surface, CDN logo 403. Do not register. |
| wIONQ | 0xBCA482e3daf654Fa9fCD88708676E0E45225D108 | a third-party wrapper around IonQ, not the RHJ-issued token |
| wASML | 0xA4e7f594235E250350BD0Ed80d093d626319A237 | a third-party wrapper around ASML, not the RHJ-issued token |
| DJT | 0xFED508E349C47F669E57c1A1Ba476E5E0e6b918e | "Trump Media", 1B fixed supply, no ERC-8056 surface. Do not register. |
| DJT | 0xC7C2a1DbA2d58354F4DE66869D607BEC64Cfdff7 | a second "Trump Media" clone, 1B fixed supply, no ERC-8056 surface. Do not register. |
The canonical GME is 0x1b0E319c6A659F002271B69dB8A7df2F911c153E; the canonical DJT is
0x1D11f0496982706C5e14A514D4E79F2e6BdE4516 (Β§2b β canonical but feed-pending, so not in the
catalog).
Core / infrastructure tokensβ
| Symbol | Name | Address | Decimals | Notes |
|---|---|---|---|---|
| WETH | aeWETH (L2 WETH) | 0x0Bd7D308f8E1639FAb988df18A8011f41EAcAD73 | 18 | β the L2 WETH gateway token |
| USDG | Global Dollar (Paxos) | 0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168 | 6 | β decimals read on-chain. The recommended stable quote (Β§7) |
Stock tokensβ
Source column: β on the official contracts page Β· π off-page, verified 2026-07-30 by the fingerprint above. "In catalog" means the asset is registered as a Treasury reserve at genesis.
| Symbol | Address | Feed? | Src | In catalog |
|---|---|---|---|---|
| AAPL | 0xaF3D76f1834A1d425780943C99Ea8A608f8a93f9 | β | β | yes |
| AMD | 0x86923f96303D656E4aa86D9d42D1e57ad2023fdC | β | β | yes |
| AMZN | 0x12f190a9F9d7D37a250758b26824B97CE941bF54 | β | β | yes |
| ASML | 0x47F93d52cBeC7C6D2CfC080e154002370a60dAEA | β | π | yes |
| BABA | 0xad25Ac6C84D497db898fa1E8387bf6Af3532a1c4 | β | β | yes |
| BE | 0x822CC93fFD030293E9842c30BBD678F530701867 | β οΈ no BE feed in the directory | β | no β excluded |
| CLSK | 0xcBB95BBF36099d34dA091dc6Fa6F49EfA257Cee3 | β | π | yes |
| COIN | 0x6330D8C3178a418788dF01a47479c0ce7CCF450b | β | β | yes |
| CRCL | 0xdF0992E440dD0be65BD8439b609d6D4366bf1CB5 | β | β | yes |
| CRWV | 0x5f10A1C971B69e47e059e1dC91901B59b3fB49C3 | β | β | yes |
| DELL | 0x941AE714EC6D8130c7B75d67160Ca08f1e7d11Dd | β
(feed named RHDELL / USD) | π | yes |
| GME | 0x1b0E319c6A659F002271B69dB8A7df2F911c153E | β | π | yes β see the impersonator table |
| GOOGL | 0x2e0847E8910a9732eB3fb1bb4b70a580ADAD4FE3 | β | β | yes |
| INTC | 0xc72b96e0E48ecd4DC75E1e45396e26300BC39681 | β | β | yes |
| IONQ | 0x558378E000D634A36593E338eBacdd6207640EfE | β | π | yes |
| META | 0xc0D6457C16Cc70d6790Dd43521C899C87ce02f35 | β | β | yes |
| MSFT | 0xe93237C50D904957Cf27E7B1133b510C669c2e74 | β | β | yes |
| MSTR | 0xec262a75e413fAfD0dF80480274532C79D42da09 | β
RHMSTR / USD | π | yes |
| MU | 0xfF080c8ce2E5feadaCa0Da81314Ae59D232d4afD | β | β | yes |
| NBIS | 0x9D9c6684F596F66a64C030B93A886D51Fd4D7931 | β | π | yes |
| NVDA | 0xd0601CE157Db5bdC3162BbaC2a2C8aF5320D9EEC | β | β | yes |
| ORCL | 0xb0992820E760d836549ba69BC7598b4af75dEE03 | β | β | yes |
| PLTR | 0x894E1EC2D74FFE5AEF8Dc8A9e84686acCB964F2A | β | β | yes |
| QCOM | 0x0f17206447090e464C277571124dD2688E48AEA9 | β οΈ no QCOM feed in the directory | π | no β excluded |
| RGTI | 0x284358abc07F9359f19f4b5b4aC91901Be2597Ba | β | π | yes |
| RKLB | 0x3b14C39E89D60D627b42a1A4CA45b5bb45Fc12e2 | β | π | yes |
| SNDK | 0xB90A19fF0Af67f7779afF50A882A9CfF42446400 | β | β | yes |
| SPCX | 0x4a0E65A3EcceC6dBe60AE065F2e7bb85Fae35eEa | β | β | yes |
| TSLA | 0x322F0929c4625eD5bAd873c95208D54E1c003b2d | β
(on-chain: 18 dec, uiMultiplier 1e18) | β | yes |
| TSM | 0x58FfE4a942d3885bAa22D7520691F611EF09e7AA | β | π | yes |
| USAR | 0xd917B029C761D264c6A312BBbcDA868658eF86a6 | β | β | yes |
BE and QCOM stay out of the bondable catalog. Both tokens are canonical, but the Chainlink
directory publishes no RHBE / USD or RHQCOM / USD feed β with no feed the Treasury cannot value
them, so they cannot be registered as reserves. If a feed later appears, the asset becomes eligible
for vetting like any other.
ETF tokensβ
| Symbol | Address | Feed? | Src | In catalog |
|---|---|---|---|---|
| EWY | 0x7f0aBeF0C07280F82c6a08ead09dEd6BAE2C13Fc | β
RHEWY / USD | π | yes |
| QQQ | 0xD5f3879160bc7c32ebb4dC785F8a4F505888de68 | β | β | yes |
| SGOV | 0x92FD66527192E3e61d4DDd13322Aa222DE86F9B5 | β | β | yes |
| SLV | 0x411eFb0E7f985935DAec3D4C3ebaEa0d0AD7D89f | β | β | yes |
| SPY | 0x117cc2133c37B721F49dE2A7a74833232B3B4C0C | β | β | yes |
| USO | 0xa30FA36Db767ad9eD3f7a60fC79526fB4d56D344 | β
RHUSO / USD | π | yes |
Earlier revisions of this map listed 0xa30FA36Db767ad9eD3f7a60fC79526fB4d56D344 as CUSO with "no
exact CUSO feed". That was a mislabel: the contract's on-chain symbol() is USO (United States
Oil Fund), and the directory's RHUSO / USD feed
0x75a9c76Ef439e2C7c2E5a34Ab105EcFe3766431c is its correct pairing. No token named CUSO exists
on 4663 β if you see that symbol anywhere in this repo's history or in downstream config, it is
this same bug.
2b. Full StockFactory enumeration β 203 canonical tokens, 168 feed-pendingβ
Enumerated 2026-08-14.
The RHJ "creator" 0x4783C67b63dE2B358Ac5951a7D41F47A38F3C046 is not an EOA β it is an
ERC1967Proxy over StockFactory (implementation 0xEe351E53BCe6AAF106428358838197C91e36EE0E), and
every canonical token is deployed through its deploy(bytes32,string,string), which emits
Deployed(bytes32 indexed uid, address stock, string name, string symbol).
That event is a stronger provenance check than the Β§2 fingerprint: enumerate
cast logs --address 0x4783β¦3C046 "Deployed(...)" and membership is canonicality (the beacon
0xe10b6f6b275de231345c20d14ab812db62151b00 β Stock implementation 0xb35490d6β¦C5aE2 is shared by
all).
203 distinct tokens, none deployed after 2026-07-28. 35 are in the catalog; 168 are canonical
but FEED-PENDING β the Chainlink directory and the on-chain feed deployer
(0xfE3c266C0F994f9552b70D9107214Fe0ED0d74d8, the creator of every EACAggregatorProxy equity feed)
both show zero new equity or ETF feeds since the catalog's 35. Everything Chainlink has added
since is crypto. So the 168 sit in the same bucket as BE and QCOM: canonical token, no feed, cannot
be valued, stays out of the catalog and out of every whitelist.
High-interest feed-pending tokens (all verified canonical via the Deployed event; DJT additionally
passes the full Β§2 fingerprint):
| Symbol | Address | Name |
|---|---|---|
| DJT | 0x1D11f0496982706C5e14A514D4E79F2e6BdE4516 | Trump Media & Technology Group |
| COST | 0x4EA005168D7F09a7A0Ba9D1DEf21a479950E44C2 | Costco |
| NFLX | 0xE0444EF8BF4eD74f74FD73686e2ddF4C1c5591E8 | Netflix |
| AVGO | 0x156E175DD063a8cE274C50654eF40e0032b3fbcF | Broadcom |
| SMCI | 0xc01aA1fECeC0605b13bc84874ff7256C0f5F562a | Super Micro Computer |
| AMAT | 0x36046893810a7E7fCE501229d57dc3FC8c8716d0 | Applied Materials |
| MRVL | 0x62fd0668e10D8B72339BE2DCF7643001688ff13B | Marvell Technology |
| RDDT | 0x05b37Fb53A299a1b874A619e1c4C404D52C36F4C | |
| SHOP | 0xF53F66751B1Eff985311b693531E3290F600c410 | Shopify |
| RBLX | 0xF0C4BF4C582cb3836e98394b1d4e7B7281101bE8 | Roblox |
| GLD | 0xC9A981fee1F9DEC688Bb123CcDECC63d0DEBFc4e | SPDR Gold Trust |
| LLY | 0x8005D266423C7ea827372C9c864491E5786600Ea | Eli Lilly |
| CRM | 0xD95B44124e475743A7589E68F3d74008a5536D44 | Salesforce |
| IBM | 0x980DcF6766Fa79f5cF0C4AADb3Ab477FF15A9619 | IBM |
| ARM | 0x666716999E75d2652398Ff830BBC2e485946e140 | Arm Holdings |
When a feed lands, re-check both the Chainlink reference directory and the on-chain feed deployer's transaction list β the directory lags on-chain by days. Only then can the asset be vetted as a reserve.
The pair map (sweep 2026-08-14, all 203 tokens, every V4 pool): roughly 19.5k pools, 12.7k with live liquidity, splitting into about 8.8k dynamic-fee hooked pools (memecoin launchpads quoting their tokens against the RWAs), about 1.9k outright fee-trap pools (hookless USDG/wUSDG pools at 88β100% LP fee, engineered to fleece naive routers), and roughly 2k sane-tier pools of which only a handful are real venues.
Those junk classes stay unreachable precisely because the probes are narrow β hookless plus standard tiers only. Never widen a tier probe to arbitrary tiers without a per-asset vetted pool key.
3. Chainlink price feeds (mainnet 4663)β
Source: the Chainlink canonical directory
https://reference-data-directory.vercel.app/feeds-robinhood-mainnet.json. β
- Interface: Chainlink
AggregatorV3InterfaceβlatestRoundData() β (roundId, answer, startedAt, updatedAt, answeredInRound), plusdecimals()anddescription(). - Decimals: all USD equity / ETF / crypto feeds are 8. Exchange-rate feeds (
syrup*,wstETH/stETH,weETH/eETH) are 18. - The feed price already includes the ERC-8056 corporate-action multiplier β do not re-apply
uiMultiplieron top of the feed.answeris the price of ONE token as it trades today. β - Feeds update 24/5 following market hours; guard with
updatedAtstaleness plus the token'soraclePaused().
Equity and ETF feeds (USD, 8 decimals)β
| Feed | Proxy address |
|---|---|
| RHTSLA / USD | 0x4A1166a659A55625345e9515b32adECea5547C38 |
| RHAAPL / USD | 0x6B22A786bAa607d76728168703a39Ea9C99f2cD0 |
| RHNVDA / USD | 0x379EC4f7C378F34a1B47E4F3cbeBCbAC3E8E9F15 |
| RHAMZN / USD | 0xD5a1508ceD74c084eBf3cBe853e2C968fB2a651C |
| RHGOOGL / USD | 0xF6f373a037c30F0e5010d854385cA89185AE638b |
| RHMETA / USD | 0x7C38C00C30BEe9378381E7B6135d7283356D71b1 |
| RHMSFT / USD | 0x45C3C877C15E6BA2EBB19eA114Ea508d14C1Af2E |
| RHCOIN / USD | 0xA3a468A452940B7D6b69991207B508c609a98Ef2 |
| RHPLTR / USD | 0x820ABedFF239034956B7A9d2F0a331f9F075eB4c |
| RHMSTR / USD | 0x396118bdFB181e6240E74D243F266B061c0edc3D |
| RHORCL / USD | 0x0e6a64a2B58A6693a531E6c555f3A5d042eEA844 |
| RHINTC / USD | 0x3f390C5C24628Ac7C489515402235FeAD71D1913 |
| RHMU / USD | 0x425EEFdCf05ed6526C3cE61Af99429A228a6d596 |
| RHAMD / USD | 0x943A29E7ae51A4798823ca9eEd2ed533B2A22C72 |
| RHCRCL / USD | 0x6652eDf64bA3731C4F2D3ce821A0Fb1f1f6b482a |
| RHCRWV / USD | 0xe1b3aABCAFAd1c94708dc1367dcfF8Aa4407487C |
| RHSNDK / USD | 0xfb133Fa4B7b385802B693a293606682Df47109A3 |
| RHSPCX / USD | 0xB265810950ba6c5C0Ff821c9963014a56fD8Bffb |
| RHUSAR / USD | 0xA994d3684e8400A6c8078226925779FdeE682DD9 |
| RHBABA / USD | 0x62Cc8F9b5f56a33c9C8A60c8B92779f523c4E984 |
| RHSPY / USD | 0x319724394D3A0e3669269846abE664Cd621f9f6A |
| RHQQQ / USD | 0x80901d846d5D7B030F26B480776EE3b29374C2ae |
| RHSGOV / USD | 0xa0DF4ee0fFf975306345875E3548Fcc519577A11 |
| RHSLV / USD | 0x209b73908e92Ae021826eD79609845451Ecba2ce |
| RHUSO / USD | 0x75a9c76Ef439e2C7c2E5a34Ab105EcFe3766431c |
| RHTSM / USD | 0x874cF94aa8eC88Fd9560094dD065f2fB3E41Fc2F |
| RHASML / USD | 0xB4106147E8cce40b7d46124090d373A71b70f87D |
| RHRGTI / USD | 0x2A045cF1C49c61c166C036d2f06FA2D2d984f765 |
| RHIONQ / USD | 0x22EfeC4919baf55F360E0EDee4AbEB26DE4971eb |
| RHRKLB / USD | 0x045477BF65Aef6f4F2386ad0164579e48381CC74 |
| RHNBIS / USD | 0xE1D87B116Ba0fe898998f1D140339D1fA1E09705 |
| RHCLSK / USD | 0x810c12D3a554Bc47fd39597Fe3b3AAC4941F50eF |
| RHGME / USD | 0x27C71df6A64fB476468EdF256CF72c038baB5B67 |
| RHEWY / USD | 0xEFdf54610B62A7753Ec30bDc380847c12D32e1D1 |
| RHDELL / USD | 0x1C6c8cADBe02E19129c39dDB92281cE4c0bf206b |
All 35 are paired to a verified token and registered in the catalog. With USDG / USD and ETH / USD
from the next table, that is the full 37-feed catalog.
The DELL / SGOV / USAR entries use the legacy directory naming "Robinhood <X>-USD" with
baseAsset: "RH<X>" rather than the newer "RH<X> / USD" form. Anything resolving a feed by
ticker must strip the RH prefix from baseAsset rather than string-matching the description.
Crypto and stablecoin reference feedsβ
USD, 8 decimals unless noted.
| Feed | Proxy address |
|---|---|
| ETH / USD | 0x78F3556b67E17Df817D51Ef5a990cDaF09E8d3A9 |
| BTC / USD | 0xa2c5184bF03d373Dc9dE4876eb4Bce595B460251 |
| WBTC / USD | 0x62107b0d3adA75fc1697fD342d99eed947a3aA5E |
| BTC.B / USD | 0x5BB5e6a17a477d5B6Fec77b4322daD4A66bFb732 |
| LBTC / USD | 0xa621344AdAEE699491597Fd8890E0C59a5BFBE59 |
| WEETH / USD | 0xf882e1D50352aecB0Ac85378378918BCf40511e7 |
| WSTETH / USD | 0x3F5040B50FB37934573B210fE54B53a6F1A792E8 |
| USDG / USD | 0x61B7e5650328764B076A108EFF5fa7282a1B9aD2 |
| USDC / USD | 0x9e6f4605992a899eE2999999F3Ec80C41F452546 |
| USDT / USD | 0xbf3550B6fAe1671da7C238Af12e03Ac586BEf3B1 |
| USDS / USD | 0x2D88D75b625633dCcd65d9d53BfDD3Aea2d8e84f |
| USDE / USD | 0xb9fB4e65744E4178894f7C61CF80E8a48A5f224a |
| EURC / USD | 0xfF2B10c1973eD10c841434f98e456d8f3a0D7DD8 |
| LINK / USD | 0xe86e3422Aa9B5e8ee9f3E41a63975bC387A8bce9 |
| ENA / USD | 0x2A291496b3aa19d8948e442Ef28Ee952f3Ee97E8 |
| syrupUSDC / USD | 0x8765c3B9Cda41d1029E780D0c1C37C8200DC4675 |
| syrupUSDC / USDC (18 dec, exchange rate) | 0x6317f016FA3e312C4625dee51d32b43a223011f8 |
| syrupUSDT / USDT (18 dec, exchange rate) | 0xBB688c0184Ce03fEdac89D71ccE752Ab21bC2999 |
| syrupUSDG / USDG (18 dec, exchange rate) | 0xDd194C66aDcb422F188a04434e4824D70c151cF0 |
| WEETH / EETH (18 dec, exchange rate) | 0xb63f44E40aA811Cc69Fc55da786a5F3834100B4A |
| WSTETH / STETH (18 dec, exchange rate) | 0x8E3Eb706B170c8FD1DdcD402932D952887736f9A |
4. ERC-8056 β stock-token corporate actionsβ
Stock and ETF tokens implement ERC-8056 so that dividends and splits adjust a UI multiplier while
the raw on-chain balance stays static until redemption. Verified on-chain: TSLA uiMultiplier() is
1000000000000000000 (1e18 = 1.0Γ) and decimals() is 18.
// Multiplier is 18-dp fixed point: 1e18 == 1.0
function uiMultiplier() external view returns (uint256); // shares-per-token, scaled 1e18
function balanceOfUI(address account) external view returns (uint256); // balanceOf * mult / 1e18
function totalSupplyUI() external view returns (uint256);
function newUIMultiplier() external view returns (uint256); // pending, after a corporate action
function effectiveAt() external view returns (uint256); // unix ts when it goes live
// Robinhood extension seen in the oracle docs:
function oraclePaused() external view returns (bool); // true while an action is processing
event UIMultiplierUpdated(uint256 oldMultiplier, uint256 newMultiplier, uint256 effectiveAtTimestamp);
event TransferWithScaledUI(address indexed from, address indexed to, uint256 value, uint256 uiValue);
Underlying shares are rawTokenAmount * uiMultiplier() / 1e18.
Treasury-integration implicationsβ
- Bond depository valuation uses the Chainlink feed, which already bakes in
uiMultiplier. For a deposit ofamount(18-dp token), the USD value (8-dp) isamount * answer / 1e18. Do not multiply byuiMultiplieragain β that is double counting. - Do NOT cache balances or supply across a corporate action. A split changes
uiMultiplier(and the feed) without changing raw balances. Treasury reserve-value math must read livebalanceOfagainst a live feed on every valuation; never store a stale USD-per-token constant. - Index and UI display should use
balanceOfUI/totalSupplyUIfor human-readable share counts, but accounting and backing math stay in raw units β transfers move raw units. - Gate on
oraclePaused()andupdatedAtstaleness. Treat a paused oracle or a stale round as "cannot price" (pause bond quoting) rather than pricing at the last value. TransferWithScaledUIcarries the UI value on the transfer event itself, so a reader never has to recompute it.- Trading is RFQ-based at launch, not fully AMM-liquid; factor low and segmented liquidity into any auto-liquidation or mark-to-market assumptions.
5. Uniswap v4, Permit2 and Multicall3 (mainnet 4663)β
Cross-verified against the Uniswap official deployments page β and Bags docs β β they agree on all v4 addresses.
| Contract | Address | Src |
|---|---|---|
| PoolManager (v4) | 0x8366a39CC670B4001A1121B8F6A443A643e40951 | β β |
| PositionManager (v4) | 0x58daec3116aae6D93017bAAea7749052E8a04fA7 | β β |
| UniversalRouter (Robinhood-MODIFIED) | 0x8876789976dEcBfCbBbe364623C63652db8C0904 | β β |
| V4Quoter | 0x8Dc178eFB8111BB0973Dd9d722ebeFF267c98F94 | β β |
| StateView | 0xf3334192d15450cdd385c8b70e03f9a6bd9e673b | π‘ |
| Permit2 | 0x000000000022D473030F116dDEE9F6B43aC78BA3 | β β canonical |
| Multicall3 | 0xcA11bde05977b3631167028862bE2a173976CA11 | β canonical |
It carries an extra minHopPriceX36 field in its v4 swap struct (a uint256 on
Exact*SingleParams, a uint256[] on the multi-hop params; 0 or empty disables the check β verified
in the deployed source).
Standard Uniswap SDK calldata MIS-DECODES β the hookData offset word is read as
minHopPriceX36 β so it may revert, or silently pass with a garbage per-hop floor. Never use it.
Two look-alike routers also exist on-chain; only 0x8876β¦0904 is correct.
Anything encoding a v4 swap on this chain must be built against the modified structs; Investors
Center does so, verified 2026-07-31 by live eth_call simulations. The V4Quoter is stock.
Liquidity map (2026-07-31). Stock-token liquidity lives in USDG pools (0.5β3% off feed; mostly fee 3000 / tickSpacing 60); direct ETH pools are largely 5%-fee and 5β20% off. ETHβUSDG has zero-fee custom-curve hook pools quoting at oracle par, plus a hookless fee-200 pool 0.03% behind. ASML, DELL, EWY, IONQ, NBIS and RGTI have no sanely-priced pool at all (30% to 10βΈ% off feed).
6. Arbitrum protocol and bridge contractsβ
L2 (Robinhood Chain 4663) and L1 (Ethereum) gateway contracts. π‘ From the docs "Protocol Contracts"
page. Use for programmatic bridging and L2 token-address resolution
(L2GatewayRouter.calculateL2TokenAddress).
| Layer | Contract | Address |
|---|---|---|
| L2 | ArbSys precompile | 0x0000000000000000000000000000000000000064 |
| L2 | ArbGasInfo precompile | 0x000000000000000000000000000000000000006C |
| L2 | NodeInterface precompile | 0x00000000000000000000000000000000000000C8 |
| L2 | Gateway Router | 0x1E324B9316138CA9a73F960213621AD1aaf01B89 |
| L2 | ERC20 Gateway | 0xfd9b17206278C16DdaacF6AC8f05dBf97EdCb31e |
| L2 | WETH (aeWETH) | 0x0Bd7D308f8E1639FAb988df18A8011f41EAcAD73 |
| L2 | Multicall | 0x2cAC2D899eCC914d704FeaAE33ac1bF36277DaD1 |
| L2 | Permit2 | 0x000000000022D473030F116dDEE9F6B43aC78BA3 |
| L1 | Rollup | 0x23A19d23e89166adedbDcB432518AB01e4272D94 |
| L1 | Sequencer Inbox | 0xBd0D173EEb87D57A09521c24388a12789F33ba96 |
| L1 | Delayed Inbox | 0x1A07cc4BD17E0118BdB54D70990D2158AbAD7a2D |
| L1 | Bridge | 0xDf8755334ce7A73cCF6b581C02eA649AE3E864b3 |
| L1 | Outbox | 0xf0ce991ea4A0d2400A4AB49b20ae333f6Dce3DE9 |
| L1 | Gateway Router | 0x6a2E3a1e16FC29f27Ce61429746D558d656975bB |
| L1 | ERC20 Gateway | 0x85001CC4867C5e1C22dA4B79BB8852B9e2a06da0 |
| L1 | Arb-Custom Gateway | 0x9368EAEbFe6E063C69dcF8126711A6997E0eCeE1 |
| L1 | WETH Gateway | 0xF7e12b9614b509C747ab4423bC4ACF923759Cf1B |
| L1 | WETH | 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 |
| L1 | Multicall | 0x7cdCB0Cc61f47B8Dd8f47C5A29edaDd84a1BDf5e |
| L1 | CoreProxyAdmin | 0x1232813BDd40aa9d53066A880dE78a4Be70B90FD |
7. USDG β the recommended stable quoteβ
- Issuer: Paxos (Paxos Digital Singapore, MAS-supervised) β the Global Dollar Network. The first stablecoin natively issued on Robinhood Chain; LayerZero OFT model for cross-chain. β
- Address (4663):
0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168. - Decimals: 6 β β read on-chain. This is the number-one integration gotcha: INVEST is 9-dp, stock tokens are 18-dp, USDG is 6-dp, and Chainlink feeds are 8-dp. Every quote path must normalise explicitly.
- Feed:
USDG / USD0x61B7e5650328764B076A108EFF5fa7282a1B9aD2(8-dp) β use it rather than assuming a hard $1.00 peg in bond math. - Recommended as the stable quote asset: native, deepest stable liquidity, and it has its own feed.
8. Unverified and open itemsβ
Everything below is either unconfirmed or a standing hazard. Treat it accordingly.
- β οΈ The L2 Sequencer Uptime Feed address (Chainlink) for Robinhood Chain, required for correct L2 oracle staleness gating. Not published in the Chainlink directory. Until one exists, the protocol's sequencer gate is left unset and off.
- β (removed; the protocol supports mainnet only.)
- β Resolved 2026-07-30 β MSTR / QCOM. Both were verified on-chain by fingerprint. MSTR is canonical and has a feed, so it is in the catalog. QCOM is canonical but has no Chainlink feed, so it stays excluded alongside BE. Eleven further off-page tokens were verified the same way and added, taking the catalog from 25 to 37 assets.
- β Resolved 2026-07-30 β "CUSO" was a mislabel (see Β§2).
- β οΈ Impersonators β a permanent hazard, not resolvable. Address-match against this page (or re-run the Β§2 fingerprint); never resolve a Robinhood stock token by name or symbol.
- β (removed; the protocol supports mainnet only.)
- π‘ Native gas decimals (18) are assumed standard EVM; the docs do not state it explicitly.
9. NetNet β the fee-mechanism referenceβ
Investors Center's conversion and split design is a port of NetNet, an existing protocol on this chain. Its contracts are verified on-chain and can be read directly. Addresses verified 2026-08-30. NetNet's transfer tax was not carried over β Investors Center earns the same 500 bps from the fee of the pool it owns instead β so the rows below describe NetNet, not this protocol.
| Contract | Address |
|---|---|
| NET token (500 bps pair-keyed transfer tax, 9 dec) | 0xCA9c78Dd337A67F6e0077F65F5E9218719d30eDf |
| TaxCollector (clip- and oracle-bounded conversion, team/treasury decay split) | 0x086C58400b8708Ef993f256E12e752dcF0AC918e |
| PTeam (30-day vest clock) | 0x650F58079dAa17ee28928c2F92d22291d038B2B0 |
| PairOracle (V2 cumulative TWAP) | 0x929631b33f4070d6f54477fba3fd27566567daca |
| Treasury | 0x04822Ea321A0DEE6F40656172F29312104855d66 |
| GenesisBond | 0x575b7B7c97Ef3E21C82DAeB427899d583e1E913f |
| Canonical V2 pair NET/USDG | 0x59F95461E68e0c77605299791E1449f175165B54 |
NetNet's own hookless V4 NET/USDG pool is outside its pair key, so trades there pay it nothing β one of the observations behind Investors Center's decision to earn from a pool it owns rather than from the token.
10. Canonical Arbitrum-bridged crypto-native tokensβ
Derived via the L2 Gateway Router 0x1E32β¦1B89.calculateL2TokenAddress.
| Asset | Chainlink feed | Canonical L2 token | On-chain state |
|---|---|---|---|
| WBTC | 0x62107b0d3adA75fc1697fD342d99eed947a3aA5E | 0x6bac06600D220Ac5Ac281AD1f504D2Cf0F90F6e6 (8 dec) | ~8.7 WBTC supply, no pool |
| cbBTC | 0x0009cD492adf8167f9eEBf1293556A673530a21a | 0xd3FCec4E6C6bF5D7369A912Dd52AB810F9b266d1 (8 dec) | supply 0 |
| USDC | 0x9e6f4605992a899eE2999999F3Ec80C41F452546 | 0x80e0e24718dbFcad49ECAA6F1e6C89A190586cA8 (6 dec) | dust |
| USDT | 0xbf3550B6fAe1671da7C238Af12e03Ac586BEf3B1 | 0xE246BC49b0598d7Cd9f0eAD48B885034f1254380 (6 dec) | dust |
| LINK | 0xe86e3422Aa9B5e8ee9f3E41a63975bC387A8bce9 | 0x0822560CBDB92a0Af70397379ddb4Dcc4C95C8a7 (18 dec) | dust |
| wstETH | 0x3F5040B50FB37934573B210fE54B53a6F1A792E8 (plus rate 0x8E3Eb706β¦6f9A) | 0xcD26A6AA5BB008240A998E242F51232FE98B12Cb (18 dec) | dust |
| BTC.b, LBTC, weETH, USDS, USDe, EURC, ENA, syrupUSDC/USDT/USDG | feeds exist | no canonical token deployed yet (the predicted gateway addresses have no code) | vetted "pending token" |
How any of these becomes a Treasury reserve is described in Reserves and listing.
11. Stock tokens used by Investors Centerβ
| Symbol | Address | Notes |
|---|---|---|
| RCAT (Red Cat Holdings) | 0xFDE6b5d9BB419B10C23268c74e369AbFF39C0460 | genuine (beacon 0xe10b6f6bβ¦1b00), 18 dec; no Chainlink feed; deepest venue holds about $6,800 within Β±2% of the price |
| WYFI (WhiteFiber, Inc.) | 0x9e7ABD3C9139D14E4c86DcE0e455AAB7A0C2FB3E | genuine (same beacon, implementation 0xb35490d6β¦5aE2); no Chainlink feed; re-measured 2026-09-07 across 23 live V4 USDG pools and a V3 USDG 0.30% pool, its deepest venue holds about $10,800 within Β±2% of the price |
| HIMS (Hims & Hers Health) | 0xCceE82fE024c36fA15E1005edE3E9e4787e23D09 | genuine (same beacon), 18 dec; no Chainlink feed; about $680,000 on V3 and $66,600 on V4 within Β±2% |
| DJT (Trump Media) | 0x1D11f0496982706C5e14A514D4E79F2e6BdE4516 | genuine (same beacon), 18 dec; no Chainlink feed; about $400,600 on V3 and $223,400 on V4 within Β±2% |
| AMC (AMC Entertainment) | 0x05a3d1Cd21d0C88145E82600E62e7E496e0F222B | genuine (same beacon; registry id 0xβ¦c40c1aabe3514588ae86defffe868021), 18 dec; no Chainlink feed. A registered reserve from launch, at a 40% discount β not a sell-wall quote, but the one name the treasury is listed to buy. The buy lane itself is not pinned at genesis: it needs one post-launch setRoute decree |
| GLD (SPDR Gold Trust) | 0xc9a981fee1f9dec688bb123ccdecc63d0debfc4e | genuine (same beacon); no Chainlink feed; roughly $100k across USDG/WETH pools |
None of these has a Chainlink feed, so none could become a reserve without some other usable price source. A manually posted feed is the available one, and five of the six are registered against one from launch: RCAT, WYFI, HIMS, DJT and AMC. Only GLD is still merely a candidate. See Reserves and listing.
The five divide by direction, not by depth:
-
RCAT, WYFI, HIMS and DJT are the quote assets of the protocol's four one-sided sell walls, one each at 10% of the INVEST supply. The protocol never buys them; it sells INVEST for them and is paid its fee in them.
-
AMC is the opposite lane. No wall sells into it. It is registered so that the treasury's keeper can buy it with USDG through an accumulator AMC/USDG route β a route that cannot be pinned at all until AMC is an enabled reserve with a registered price source, which is exactly what the genesis listing provides.
That route does not exist at t0, on either genesis arm. The deploy script's only
setRoutecall is_installGenesisBasket(), which runs only underGENESIS_BASKET=SHORTSQUEEZE, and even that arm does not name AMC. The default arm ends genesis with the accumulator on its constructor basket β USDG at 10,000 bps β and zero pinned routes. So the Treasury's AMC balance is 0 at launch and stays 0 until governance passes a singlesetRoutedecree for the AMC lane. That is the designed sequence, not a fault: listing AMC at genesis is a plain call, listing it afterwards is a 78-hour round trip, so the row is armed early and the lane is pinned later.
What bounds a bad post is a budget the poster does not control β a limit per post, a limit per rolling day, a hard sanity band around the opening mark β plus the deepest discounts in the registry: 40% for HIMS, DJT and AMC, 50% for RCAT and WYFI.
For the four wall quotes, thin external depth is exactly why the protocol takes them as a fee in kind rather than buying them, and why a sell wall holds none of them to begin with: the wall sells INVEST for the stock and is paid the fee in the stock, so the protocol never has to cross those books at all. AMC is the exception that proves the rule β it is the one name here with the depth to be bought and later exited, which is why it is the lane the accumulator is meant to be pinned to once governance says so.
No protocol-owned position is marked off any of these prices β the one position the treasury counts is quoted in USDG β so a bad post can only ever overstate stock the protocol already holds. It can never mint INVEST, and until the keeper's first purchase every one of these rows holds a zero balance and contributes nothing to backing. See The fee flywheel.
Asset identifiersβ
The uid a token was issued under in the factory's Deployed event (Β§2b) is what the protocol's
self-service listing uses to confirm, against
the factory itself, that an address really is the token it claims to be. There is no reverse lookup
on the factory, so these are read from the issuance logs and confirmed by looking the address back up.
Read on 4663 and round-trip-verified 2026-09-03:
| Symbol | Token | Asset identifier |
|---|---|---|
| WYFI | 0x9e7ABD3C9139D14E4c86DcE0e455AAB7A0C2FB3E | 0x0000000000000000000000000000000025191a136aab4e5fa41b67ec3218a093 |
| GLD | 0xC9a981FEE1F9DEc688bb123ccDeCc63D0deBFC4e | 0x000000000000000000000000000000001db61e88b20b481093c556e4d07195b5 |
| HIMS | 0xCceE82fE024c36fA15E1005edE3E9e4787e23D09 | 0x00000000000000000000000000000000e56a9632bdd64f7ea0745b48971ad047 |
| DJT | 0x1D11f0496982706C5e14A514D4E79F2e6BdE4516 | 0x00000000000000000000000000000000d8a566c761e845fc8adffb9b2295c3ee |
| NNE | 0xBEF75684C43c4ea7BD18Dd532a2244674Ee8b926 | 0x000000000000000000000000000000002850ddf4a89a4195905c49a4ef7af8a5 |
| RCAT | 0xFDE6b5d9BB419B10C23268c74e369AbFF39C0460 | 0x00000000000000000000000000000000311078f293cf441789d7bc7eb9480228 |
All six carry the runtime codehash in Β§2 criterion 3. The impersonators in the table above do not, and are rejected by the codehash comparison alone.
Primary sourcesβ
https://docs.robinhood.com/chain/β about, connecting, contracts, stock-tokens, building-with-stock-tokens, oracles-and-price-feeds, bridging, protocol-contractshttps://reference-data-directory.vercel.app/feeds-robinhood-mainnet.jsonβ the Chainlink canonical feed directoryhttps://developers.uniswap.org/docs/protocols/v4/deployments- Blockscout (chainId 4663) β on-chain
decimals/uiMultiplier/descriptionreads - Arbitrum docs β block numbers and time