Rehearsing the forwarder path on a fork of Arbitrum One

The first time a verdict left the workflow, went through a forwarder, and moved a position in a vault that executed it.

Until this run, the two halves of Helico had only met in tests. The CRE plugin encoded a report tuple; the vault decoded the same tuple; a Solidity test pinned bytes generated by the plugin. Nothing had carried a report from the workflow, through a forwarder, into a vault that executed it.

The setup

A local fork of Arbitrum One keeps everything that matters at its mainnet address: the Uniswap v4 PoolManager, StateView, and PositionManager, the ETH/ARB 0.05% pool with its real depth, and the mock forwarder the CRE command line broadcasts through. The vault was deployed onto the fork with its own deploy script, pointed at that forwarder.

An out-of-range position was minted for the workflow’s owner address: the pool’s tick was 94,473 and the position’s range sat at [93,270, 93,470), so it held ARB and nothing else. The vault was approved as an operator, and a mandate committed: width 200 ticks, improvement 100 bps, cooldown one hour, retain 50%. The mandate’s hash computed by the plugin matched the one the vault stored, byte for byte.

The run

cre workflow simulate ./workflow --broadcast --target staging-settings

The workflow read the vault and the pool from inside the simulated enclave, recomputed the mandate’s hash from its secrets, decided that a move was worth it, sized the swap and the mint, and wrote the report:

"RECENTER 94370..94570 tx 0xf80b87f2d30afa0796ee1e44b6cc13d23739a40a6a70c1f0c3e99adc3d8add48"

A second run, straight after, decided "HOLD (cooldown)" and wrote nothing.

What the fork said afterwards

What it does and does not show

It shows the delivery path: the report the plugin encodes is the report the vault decodes, onReport runs the same re-centre the fork tests exercise, and the enclave’s sizing produced a move the vault accepted on a real pool at real depth.

It does not show authorisation by a decentralised oracle network. The simulator is not a trusted execution environment, and the mock forwarder verifies no signatures. It is also a fork, not a live network. The same run against a deployed vault, through the production forwarder, is the next piece of evidence, and it waits on the deployment.

More from Helico

Stay Updated

Be the first to hear when the vault goes live.