A permissionless public good

Open history. For everyone.

A shared record of how many shares each RH Stock Token represents. Anyone can read it, add valid observations, or build on it.

Robinhood Chain · Read directly from the registry · No wallet needed

Reading the on-chain registry…

Shares per raw tokenFull 18-decimal precision. This multiplier is not a price.
SPY · Live token multiplier—Reading the current value…
Next scheduled change—Reading the schedule…
Recorded history—Reading observed ranges…

SPY multiplier history

Recorded intervals and unknown periods

On-chain registry

Reading history…

Solid lines show recorded ranges. Dashed gaps are not assigned a guessed value.

Recorded ranges.

View token ↗
First and last observed seconds for each recorded multiplier value.
First observed · UTCLast observed · UTCMultiplier · 18 decimalsBetween ranges

Check a moment.

Ask the registry which multiplier values are possible at a particular second.

Choose a time after history loads.

Public infrastructure

Read it. Verify it.
Build on it.

The same public contracts are available to every app. No Hindsight account or API key is required.

01

Use the timeline

A recorded range has a first and last observed second. Between ranges, show the possible values. Before the first observation, there is no recorded history.

02

Help fill the history

Anyone can record a current observation or submit a valid historical block proof. The contracts check submissions. This page can prepare a poll or an anchored historical proof.

Update your RH token ↗
03

Integrate directly

Read the ranges or query a timestamp. If several values are possible, keep that uncertainty in your calculation.

Download read ABI ↓
Contracts and integration

Robinhood Chain · Chain ID 4663

Multiplier registry · deployed at block 99,848,580
0x42B3c8e15AD0fc95761C4e6Cec1E0BB6B6a4a5ED ↗
Block header registry · deployed at block 99,848,550
0x497d1Ea07Bd32ed1a3CFEEDFfcFAfbE42B44457f ↗

Download header registry ABI ↓

The viewer batches all four tokens with Multicall3. It reads counts and live state first, then the recorded ranges, pinned to the same block.

Use runCount(token) and runs(token, i) for the history. Use candidates(token, second) for a timestamp, and readCurrent(token) for the live token state. Runs can share a second; show every possible value. A current token read does not extend the recorded history.

For an 8-decimal token-priced oracle observation, share price is answer × 1e18 ÷ multiplier, still in 8-decimal USD units. Multiple candidate multipliers give a range of share prices.

For activity, index MultiplierProven and LiveStateObserved from the multiplier registry. The ranges remain the history source; events alone do not reconstruct them.

// viem · a read-only public client
const abi = await fetch('multiplier-registry-abi.json').then(r => r.json());
const client = createPublicClient({
  transport: http('https://rpc.mainnet.chain.robinhood.com')
});
const [values, open, beforeFirst] = await client.readContract({
  address: '0x42B3c8e15AD0fc95761C4e6Cec1E0BB6B6a4a5ED',
  abi, functionName: 'candidates', args: [token, BigInt(unixSeconds)]
});

Other RH Stock Tokens are beacon proxies for 0xe10b6f6B275de231345c20D14Ab812db62151b00. Find their BeaconUpgraded events and read symbol(). A token enters this registry when someone polls or proves it.

Help fill the history

Update your RH token.

Check a token, record its current multiplier, or add a proof at an already-anchored checkpoint. An external wallet submits the transaction; RH ETH pays for gas.

No wallet is needed to check a token.

External wallet

Use a browser with your external wallet installed. No Thetanuts Wallet is used here.