Verify
Nothing here asksto be believed.
Every number on this site is derived, and each derivation is a command. If what you compute disagrees with what is published here, what is published is wrong. These are the exact calls the site makes.
001 A split is sitting inside a token contract
CrowdStrike split four for one. The multiplier on chain is exactly 4, so one token stands for four shares. Any screen that reads one token as one share reports a premium of +293.04% that is not there.
cast call 0xea72Ecca2d0f6bFA1394DBBCff85b52CD4233931 \ "uiMultiplier()(uint256)" \ --rpc-url https://rpc.mainnet.chain.robinhood.com # 4000000000000000000 -> 4.000000000 shares per token # pool price $823.38 # share price $209.49 # token worth $837.96 (share x multiplier) # implied basis +293.04% # true drift -1.74%
002 The Chainlink price already carries the multiplier
This is the detail integrators get wrong. The feed answers the token price, not the share price. Divide by the multiplier to get a share; multiply a share by it to get a token. SGOV makes it visible because its multiplier has already moved.
cast call 0xa0DF4ee0fFf975306345875E3548Fcc519577A11 \ "latestRoundData()(uint80,int256,uint256,uint256,uint80)" \ --rpc-url https://rpc.mainnet.chain.robinhood.com # answer / 1e8 = 100.98760034 curl -s "https://api.robinhood.com/rhj/prices/SGOV" # raw underlying share = 100.4750 cast call 0x92FD66527192E3e61d4DDd13322Aa222DE86F9B5 "uiMultiplier()(uint256)" --rpc-url https://rpc.mainnet.chain.robinhood.com # multiplier = 1.005101770 # share x multiplier = 100.98760034 # which is the feed answer, to the cent
003 The chain does not know what is coming
MSFT reprices on 2026-09-10. Ask the token about it now and it answers zero, because the pending fields only populate as the tick lands. The schedule exists only in the issuer’s API, which is why Scrip publishes it.
cast call 0xe93237C50D904957Cf27E7B1133b510C669c2e74 "newUIMultiplier()(uint256)" --rpc-url https://rpc.mainnet.chain.robinhood.com cast call 0xe93237C50D904957Cf27E7B1133b510C669c2e74 "effectiveAt()(uint256)" --rpc-url https://rpc.mainnet.chain.robinhood.com # both answer 0: the chain has no idea curl -s "https://api.robinhood.com/rhj/corporate-actions" \ | jq '.corpActions[] | select(.tokenSymbol=="MSFT")' # processDate 2026-09-10 rate 0.91 per share
004 Our API returns the same numbers
No key, no limit, no account. If the JSON disagrees with the two calls above, the JSON is wrong.
curl -s "https://scripprotocol.xyz/api/v1/assets?symbol=CRWD,NVDA,SGOV" | jq '.assets[] | {symbol, multiplier, poolPrice, fairToken, sharePrice, trueBasisPct}'
curl -s "https://scripprotocol.xyz/api/v1/calendar?status=upcoming" | jq '.calendar[0]'
curl -s "https://scripprotocol.xyz/api/v1/shares?of=CASHCAT&in=NVDA&amount=1000000" | jq
# read at block 58,053,018
# NVDA feed 225.89000 pool 225.85 drift -0.02%005 · The contract
The same arithmetic,on chain.
Scrip is deployed at 0xcc40c991…676b48a0. It composes the multiplier, the feed answer and the share price into one call, so you can check this site against the chain without running any of our code. It holds nothing, charges nothing and has no owner.
cast call 0xcc40c9915b08dfd3b4494ee54332781b676b48a0 "tokenCount()(uint256)" --rpc-url https://rpc.mainnet.chain.robinhood.com # 194 cast call 0xcc40c9915b08dfd3b4494ee54332781b676b48a0 \ "multiplierOf(address)(uint256)" 0xea72Ecca2d0f6bFA1394DBBCff85b52CD4233931 --rpc-url https://rpc.mainnet.chain.robinhood.com # 4000000000000000000 cast call 0xcc40c9915b08dfd3b4494ee54332781b676b48a0 \ "asset(address)((address,uint256,uint256,uint256,uint64,bool))" \ 0x92FD66527192E3e61d4DDd13322Aa222DE86F9B5 --rpc-url https://rpc.mainnet.chain.robinhood.com # multiplier 1005101770003214918 # tokenPrice 10097754932 (100.97754932, feed answer) # sharePrice 10046499999 (100.46499999, feed / multiplier) cast call 0xcc40c9915b08dfd3b4494ee54332781b676b48a0 \ "sharesOf(address,address,uint256)(uint256)" \ 0x92FD66527192E3e61d4DDd13322Aa222DE86F9B5 0xd0601CE157Db5bdC3162BbaC2a2C8aF5320D9EEC 1000000000000000000000 \ --rpc-url https://rpc.mainnet.chain.robinhood.com # 1000 SGOV tokens = 438.58 NVDA shares
On chain and off
Where the trustboundary sits.
The multiplier, the Chainlink answer and the pool reserves are on chain and you can read them without us. The corporate-action schedule and the raw share quote come from Robinhood’s own API and cannot be verified on chain before the fact. Every number on this site is labelled with which of the two it is, and 159 of 194 tokens have no on-chain price at all.
Prices move. Numbers on this page were read 0 seconds ago and the commands will return slightly different values by the time you run them. The arithmetic is what should match, not the last decimal.
