Legs on Other Chains

Documentation snapshot 28 October 2026. Deployment · Audit Status
On this page

Moving a leg to another chain requires a bridge message before the remote position is available. Returning the position and claiming core coupons or settlement are separate actions; delivery can be delayed.

What Moves

fact A holder can move whole units of a COUPON or SHIELD leg from Robinhood Chain to a wired destination chain and back. The leg itself never leaves Robinhood Chain: LegVault escrows the ERC-1155 units and sends a LayerZero message, and LegMirror on the destination mints a 1:1 ERC-1155 mirror with the same id to the same address. Returning burns the mirror and the vault releases the escrowed units.

fact What Moves
Stays on Robinhood ChainMoves with the holder
The series, its escrow and every observationA transferable 1:1 mirror of the units
Claim, redeem, refund and settlementNothing else: the mirror has no claim function
The coupons a COUPON leg accruesAn on-chain checkpoint so those coupons are paid on return

Mirror ids follow the ERC-1155 id scheme: (seriesId << 1) | leg.

What Does Not Move

  • Nothing can be claimed, redeemed or refunded on the destination chain. Settlement happens on Robinhood Chain only.
  • Only Live series can be moved. Once settlement opens the vault refuses new moves (NotLive); returns are always accepted.
  • A leg that is away at an observation still counts: the observation is recorded against the series, not the wallet. Coupons that accrue while away are paid in USDG by the vault when the units return, or through collect if the vault’s USDG was short at that moment.
  • Moves can be paused by the vault, and wait while the protocol is paused or while an observation has closed but not yet been applied. Returns are never paused.

Fees

fact Fees Reference
ItemPaid inWho sets it
Move (Robinhood Chain to destination)Native gas plus the LayerZero messaging fee quoted by LegVault.quoteSendLayerZero endpoint, DVN and executor prices at the time of the quote
Return (destination to Robinhood Chain)Native gas of the destination chain plus the fee quoted by LegMirror.quoteSendSame
Protocol feeNone. The vault charges nothing for a move or a returnNot applicable

The app shows the quoted fee as an estimate and refreshes it every 30 seconds while the confirmation is open. Enforced execution gas is set on both contracts (500,000 for delivery into the vault, 250,000 for delivery into the mirror), so no manual gas option is needed.

Verifiers

fact Both paths require the LayerZero Labs and Nethermind DVNs to verify every message before it is executed. No optional DVNs are configured. Confirmations follow the values in the deployment configuration for each path. The DVN set can be read from the endpoint’s SendUln302 and ReceiveUln302 libraries for each LegVault and LegMirror address.

Return Before a Payment or Maturity

Coupon payments and terminal settlement are only paid to holders on Robinhood Chain. A holder with units away near a payment sees a Return before <date> warning in the Portfolio for any series with an observation or maturity inside seven days. Coupons that accrue while away are not lost; they are paid on return. The vault redeems nothing on the holder’s behalf: after a series settles, returning releases the units and the holder redeems on Robinhood Chain as usual.

Recommended order: return, wait for delivery on LayerZero Scan, then claim or redeem.

In Transit

Every transfer has a LayerZero message page: https://testnet.layerzeroscan.com/tx/<txHash> on testnet and https://layerzeroscan.com/tx/<txHash> on mainnet. Delivery usually takes a few minutes (estimate). If the destination has not recorded the message after seven days the Portfolio marks the transfer Check LayerZero Scan; the units stay in escrow and the message can be retried from the LayerZero Scan page.

If a delivery reaches a recipient that cannot take ERC-1155 tokens, the units are held for that recipient under unclaimed on the contract that received the message: the vault on Robinhood Chain, the mirror on the destination chain. Held units keep their coupon checkpoint and can be withdrawn at any time with withdrawUnclaimed(id), or with withdrawUnclaimedTo(id, to) to another address. The Portfolio shows held units with a Withdraw action that names the chain.

Try It

The app has a dedicated page at note.systems/app/#/omnichain: the route, the contracts, your legs with Move and Return, and the tracker for transfers in flight. Testnet legs are bought on the Notes page with testnet USDG.

Contract Addresses

fact Contract Addresses Reference
ContractChainAddress
LegVaultRobinhood Chain testnet (46630)0x64a3Ce8b9fb824c3e3532439B5A1dD27A23d5f4A, source verified
LegMirrorArbitrum Sepolia (421614)0x4a53aFD9C4D707c8FDDD6415947eF0A1e67518b8, source verified
LayerZero EndpointV2Robinhood Chain testnet0x3aCAAf60502791D199a5a5F0B173D78229eBFe32 (EID 40451)
LayerZero EndpointV2Arbitrum Sepolia0x6EDCE65403992e310A62460808c4b910D972f10f (EID 40231)

Interfaces: LegVault.send(dstEid, id, units, to, extraOptions), LegVault.quoteSend(...), LegVault.collect(seriesIds[]), LegVault.withdrawUnclaimed(id), LegMirror.send(id, units, to, extraOptions), LegMirror.quoteSend(...), LegMirror.checkpointOf(holder, id). Events: LegSent, LegReceived, UnitsHeld, UnclaimedWithdrawn, CouponsOwed, CouponsPaid, Harvested.

A little more clarity?

Keep exploring, or revisit this topic from the navigation.