Skip to main content

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.

AddressSurfaceData available
0x1004Yutu order bookBest bid and ask, price levels, and size
0x1005Yutu oracleMarket mark price
0x1006Hyperliquid readMark, 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.