HyperCore precompile reader
call any L1Read precompile live, with the numbers scaled for humans.
oracle price 0x…0807
perp oracle price (hip-3: dex × 10000 + index)
call any L1Read precompile live, with the numbers scaled for humans.
oracle price 0x…0807
perp oracle price (hip-3: dex × 10000 + index)
Call the HyperEVM read precompiles (L1Read.sol, 0x…0800 to 0x…0813) live: perp positions, spot balances, mark / oracle / spot prices, bbo, vault equity, staking and token supply. Decoded, scaled to real prices and USD, with the gas cost, a cast command and the Solidity staticcall.
core stores prices as integers. a perp price divides by 10^(6 − szDecimals) of that market, a spot price by 10^(8 − the base token’s szDecimals), and usd values by 1e6. the reader looks up the decimals and does it for you.
2000 gas plus 65 per byte of input and output. a price read is about 6,000 gas. they only see the latest state: calls at older blocks don’t work.
the perp index for perp reads, the spot index for spotPx / spotInfo, and the token index for balances. bbo takes the exchange asset id instead: perps as is, spot = 10000 + spot index.