← all findings
low CROSS_SURFACE_PRICE_MIX

ASML: off-chain share price and on-chain token price differ by 0.010%

subject ASML (0x47F93d52cBeC7C6D2CfC080e154002370a60dAEA) · methodology assay-rh-v0.2.0 · detected 2026-09-21T21:04:07.000Z

The Chainlink feed returns a multiplier-adjusted TOKEN price (1712.8193), while Robinhood's REST /prices endpoint returns the RAW UNDERLYING share price (mid 1711.7750). These are different quantities related by uiMultiplier(): underlying x 1.000101323 = 1711.9484 (residual 0.051%, 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.010%.

Impact
1.01 bps · 0.0101%
feed 1712.8193 vs underlying-mid 1711.7750 x multiplier 1.000101323 = 1711.9484
Evidence — 2/2 citations re-fetched and byte-compared
mismatched 0 · pruned 0 · verified 2026-09-21T21:04:16.788Z
uiMultiplier() == 1000101323251417769
chain 4663 · block 69105579 · uiMultiplier()
0x47F93d52cBeC7C6D2CfC080e154002370a60dAEA
0x0000000000000000000000000000000000000000000000000de112dacfcc82a9
latestRoundData().answer == 171281928083
chain 4663 · block 69105579 · latestRoundData()
0xB4106147E8cce40b7d46124090d373A71b70f87D
0x000000000000000000000000000000000000000000000001000000000000072900000000000000000000000000000000000000000000000000000027e132cf93000000000000000000000000000000000000000000000000000000006ab18df3000000000000000000000000000000000000000000000000000000006ab18e000000000000000000000000000000000000000000000000010000000000000729
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 1711.7750 (not multiplier-adjusted)
fetched 2026-09-21T21:04:07.054998142Z
https://api.robinhood.com/rhj/prices/ASML