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.
A permissionless public good
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…
Recorded intervals and unknown periods
Reading history…
| First observed · UTC | Last observed · UTC | Multiplier · 18 decimals | Between ranges |
|---|
Ask the registry which multiplier values are possible at a particular second.
Public infrastructure
The same public contracts are available to every app. No Hindsight account or API key is required.
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.
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 ↗Read the ranges or query a timestamp. If several values are possible, keep that uncertainty in your calculation.
Download read ABI ↓Robinhood Chain · Chain ID 4663
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
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.
A poke records the current value and extends an unchanged range. No Alchemy key is needed.
Finding a checkpoint…
Use a temporary key scoped to Robinhood mainnet and this site’s origin where supported. It is sent only to Alchemy and held in memory. Rotate it after use. Historical archive access is required.
eth_chainId, eth_getCode, eth_getStorageAt and eth_getProof. The key is never sent to your wallet, included in proof downloads or saved by this page.
Use a browser with your external wallet installed. No Thetanuts Wallet is used here.
This sends a gas-paying transaction. Your wallet will show the final network fee.