← all findings
medium CROSS_SURFACE_PRICE_MIX

TSM: off-chain share price and on-chain token price differ by 0.146%

subject TSM (0x58FfE4a942d3885bAa22D7520691F611EF09e7AA) · methodology assay-rh-v0.2.0 · detected 2026-09-21T20:49:51.000Z

The Chainlink feed returns a multiplier-adjusted TOKEN price (445.8463), while Robinhood's REST /prices endpoint returns the RAW UNDERLYING share price (mid 444.3950). These are different quantities related by uiMultiplier(): underlying x 1.001463024 = 445.0452 (residual 0.180%, attributable to bid/ask spread and quote timing). Valuing balanceOf() with an off-chain share price, or computing a premium/discount between an on-chain token price and an off-chain share price, produces a phantom error of 0.146%.

Impact
14.63 bps · 0.1463%
feed 445.8463 vs underlying-mid 444.3950 x multiplier 1.001463024 = 445.0452
Evidence — 2/2 citations re-fetched and byte-compared
mismatched 0 · pruned 0 · verified 2026-09-21T20:49:58.965Z
uiMultiplier() == 1001463024159690554
chain 4663 · block 69097044 · uiMultiplier()
0x58FfE4a942d3885bAa22D7520691F611EF09e7AA
0x0000000000000000000000000000000000000000000000000de5e95082ba0f3a
latestRoundData().answer == 44584633104
chain 4663 · block 69097044 · latestRoundData()
0x874cF94aa8eC88Fd9560094dD065f2fB3E41Fc2F
0x00000000000000000000000000000000000000000000000100000000000005830000000000000000000000000000000000000000000000000000000a61738310000000000000000000000000000000000000000000000000000000006ab182f7000000000000000000000000000000000000000000000000000000006ab183040000000000000000000000000000000000000000000000010000000000000583
Off-chain inputs — NOT covered by the byte-verified guarantee
The citations above are re-fetched from chain state and byte-compared. The values below cannot be, because they do not live on chain. They are listed so you can tell the difference.
underlying share bid/ask used for the mid 444.3950 (not multiplier-adjusted)
fetched 2026-09-21T20:49:54.980992461Z
https://api.robinhood.com/rhj/prices/TSM