Reality (Bitget) — the tokenised stocks we would pair against
The issuer for memestock pairing (O3). First researched 11 Sep 2026; rewritten 12 Sep 2026 from the
deployed contracts, which answered the question the first version could only ask. Evidence and
transaction hashes: notes/sessions/stage-0-pairing.md.
The answer
A smart contract can hold an rToken. No allowlist exists. The live Uniswap v4 PoolManager already holds rNVDA, rSPCX and rTSLA, and contracts pull and send them on a fork.
A raw rToken must never be a quote asset. Balances rebase on splits and zero on delisting, and
neither the curve nor a v4 pool re-reads a balance. Wrap it pro rata — BasketWrapper, one
constituent or several. D18.
Contracts — Arbitrum One
| Standard | ERC-20, 18 decimals, beacon proxy. Every rToken shares beacon 0x9a570740faf9c77255e389a7bccb7d460a5f4948 → implementation 0x5D2247b7F6E5b09fCfd59042acaea805cB84Bc53 (unverified) |
| Beacon owner | Safe 0x7fD7A3Af05065fceEBbDa0B021206943423e4fdc, 3-of-5. One upgrade rewrites every rToken |
| Admin / configurer | Safe 0xE6568007dB6E9188798AE0b65e5532F14a1ABcBB, 3-of-5 |
| Operator | EOA 0x6C5b3FdAB92BD311206e873806cB30E21cd11f00 |
| TokenManager (the only minter) | 0x129Ea4DDb91C836f89Dfa9EF8102F9E505DFC4ba |
| Dividend distributor | 0x0b751b1ddd20ec589c14a3186161c97267f8d3eb |
| CorporateActionOracle | 0xd01f8aa971a3f4d13d52299bdd30225b1d7f40f1 |
| Sanctions list | 0x1faf98B0B31865dCD6ebAb4713a5C271d62e88A7 — Reality's own, written by an EOA |
| Token list | arbiscan.io/tokens/label/reality. Match on the beacon — look-alikes exist |
| token | address |
|---|---|
| rNVDA | 0x0a85b6EBe3C150A1979a65656E304033D62b1E12 |
| rSPCX | 0x5181b7Dd097B42d7787ee78Efab86f43D4E12f44 |
| rSPY | 0x9a0fda21276F245b89d2B7f1120F42e4466b1cb5 |
| rAAPL | 0xaBa5e0C80e9f58E391214689fB342049C0d31892 |
| rMETA | 0xB65f3005aB2aEede3707F56223C7c45f68cca008 |
| rGOOGL | 0xcA1942EdEB697A85AF98eF8C74C4910fe9587afB |
| rTSLA | 0xf912911C9c8D5131929c758e66e6dc54e65cF3ba |
What the token can do to a holder — fork-probed
| lever | effect | held by |
|---|---|---|
| sanctions list | transfers to a listed address, or by a listed spender, revert | EOA |
freezeAccount | transfers in and out of an address revert | admin Safe |
pause | every transfer reverts. Used around every split | operator EOA |
| rebase | balanceOf scales by an index; allowances do not | admin Safe, against an oracle action |
delist | every balance and the supply read zero; transfers revert | admin Safe |
| beacon upgrade | anything | beacon Safe |
No seizure. emergencyWithdraw only rescues tokens stuck in the rToken contract itself.
Pause is one EOA's power; unpause needs the 3-of-5 admin Safe. A pause lasts as long as it takes them to gather signatures.
Running a real split on a fork
Read from Reality's own transactions and executed in contracts/test/StockPairing.fork.t.sol:
- The oracle writer EOA
0xdf8f9E822C2A70A175344c6E916202f9dDDaC62Bcalls the oracle's0xc8cba437(bytes32 id, ((bytes32 keccak(symbol), bytes32 category, address token, uint256 date, uint8 0=Rebase, uint8 0=Disclosed, string report), bytes abi.encode(uint32 from, uint32 to))). The date must be at least a day out; category0x1a89…d063is copied from a live disclosure. - Warp past the date.
- The operator EOA pauses. Rebase reverts
ExpectedPause()otherwise. - The admin Safe calls
rebase—0xe5839443(bytes32 actionId, uint32 from, uint32 to).ActionNotFound(bytes32)means step 1 did not take. - The admin Safe unpauses.
Other issuers on Arbitrum One
Interfaces from resolved selectors; none has an indexed DEX pool there.
| issuer | example | gate | balances |
|---|---|---|---|
| xStocks / Backed | NVDAX 0xc845b2894dBddd03858fd2D643B4eF725fE0849d | sanctions list, pause | rebase by multiplier |
| Dinari | NVDA 0x4DaFFfDDEa93DdF1e0e7B61E844331455053Ce5c | blacklist, pause, burnFrom | rebase by applySplit |
| Ondo | TSLAon 0xB298bc2fAc7AEDA17FE0812323A98E6278a91557 | — | supply 0.02; effectively absent |
Mechanics that shape our design
- Splits rebase. Confirmed on chain, not inferred. Mergers convert holdings. Delisting zeroes balances, cash presumably following as a distribution.
- Dividends are claimed, not transferred. A Merkle proof plus a Reality signature, from their API. Anyone may submit on the holder's behalf; paid in USDT. A wrapper therefore receives its dividends only if someone submits the claim — and only reaches basket holders if USDT is declared as a zero-unit asset. Sanctioned or blacklisted holders are ineligible.
- Mint and redeem are Reality's. On demand through RFQ against USDC, 24/5 across four US sessions, never at weekends. Retail reaches it through aggregators via the Bitget Wallet API.
- No DEX liquidity. Zero indexed pools. The only v4 pool found is an rNVDA/USDC experiment with a 95% fee and dust. On-chain float is thin: 99.3% of rNVDA sits in one EOA.
- Legal: a contractual claim on the broker, not shares. Sold only to KYC'd non-US persons; "may not be resold to any US person or into the United States". UK, UAE, Hong Kong and others may not transact. Not enforced in code.
From Bitget directly (team chat, 9–11 Sep 2026)
- They are enabling AMM for rTokens on Arbitrum and asked for comments. Draft set: SPY, SPCX, NVDA, AAPL, META or GOOGL.
- Reality RFQ is live behind Pancake, Uniswap and aggregators via the Bitget Wallet API.
- Dividends do not go into a pool; "we will have a solution to have the dividends sent to the LP providers directly". Unanswered: what happens when the LP is locked forever, as ours is.
Backing: 1:1 at Alpaca Securities (FINRA, SIPC), attested by The Network Firm, over-collateralised. Audits: BlockSec and SlowMist, Apr–Jul 2026.
SPCX is the odd one out
A private company: no closing bell, no dividends and no splits, so neither mechanic above bites. But no public price to anchor to, so where its mark comes from is its own question. The strongest product story of the set; the weakest price story.
Still to ask Bitget
- Will you ever freeze, sanction or pause a protocol contract that holds rTokens — a wrapper, a curve, the PoolManager — and is there a process to be told first?
- Delisting: what does a contract holder receive, how, and when?
- Dividends for contracts: will you submit claims on behalf of a holder contract, or must we? And "sent to LP providers directly" — what does that mean for liquidity nobody can withdraw?
- Beacon upgrades: is an allowlist, or any transfer restriction, on the roadmap?
- The AMM: Uniswap v4 on Arbitrum? Which fee tier and which quote currency?
- Weekends: the RFQ is 24/5. Is anything planned so a wrapper's peg can be held at weekends?
- The implementation: please verify
0x5D22…Bc53on Arbiscan. - Would you use a scaled-UI multiplier instead of rebasing
balanceOf? Robinhood's stock tokens do, which is why raw pools work on Robinhood Chain (robinhood-stock-tokens.md). It fixes the split problem for your AMM plan as well as ours, and would make our wrapper optional.
Sources
- https://realityfinance.xyz/info/docs and
/info/ref— client-rendered; the text is in/info/assets/js/*.js - https://dune.com/bitgetresearch/reality-stocks
- https://arbitrum.blockscout.com — token, holder, log and transaction APIs
- https://www.bitget.com/academy/what-is-reality-protocol-and-rtokens-rwa-tokenization-defi-guide