EVM on Yutu
Yutu runs an EVM beside its native market engine. Contracts use familiar EVM transactions and storage while gaining direct access to data and actions that live in Yutu's protocol state.
This connection is exposed through protocol precompiles: fixed system addresses whose results are executed and verified by every validator.
EVM compatibility
Applications connect through https://rpc.yutu.finance using standard
EVM wallets and libraries. Contract deployments, calls, logs, receipts,
and balances follow the usual EVM model. Gas is paid in HYPE.
The Yutu explorer shows contract code, transactions, receipts, and logs alongside native network activity.
Read precompiles
Read precompiles let contracts inspect state without copying it into a separate application oracle.
| Address | Surface | Data available |
|---|---|---|
0x1004 | Yutu order book | Best bid and ask, price levels, and size |
0x1005 | Yutu oracle | Market mark price |
0x1006 | Hyperliquid read | Mark, oracle price, best bid and ask, full depth, and observation metadata |
The Hyperliquid depth read is what lets a Yutu contract calculate the cost of a trade across several price levels rather than using one top-of- book price.
Write precompile
yutu_control at 0x1016 lets a contract act on Yutu's native markets.
It supports one-off orders and standing exposure instructions.
A native order can't finish inside the EVM call that submitted it. The matching engine acts after EVM execution, when the block is installed. Yutu represents that boundary with a promise ticket.
Read Write-precompile promises for the submission, settlement, callback, and failure model.
Contract identity
The control precompile maps msg.sender to a native Yutu account. A
contract can register itself with YutuControl.registerSelf(). The first
state-changing control call also registers it if needed.
Once registered, orders and standing instructions are attributed to the contract's native account. The contract address remains the authority for future changes.
Standing instructions
A contract can set a target position, a tolerated distance from that target, and the largest adjustment allowed per block. The instruction is stored in consensus state and evaluated during block production until it is changed or disabled.
There is no keeper transaction, polling service, or upkeep balance. If the contract disables the instruction, the chain stops acting but leaves the current position unchanged.