On this page
Transfer lifecycle
A transfer settles in two transactions: the source locks or burns, then the destination mints or releases. LayerZero delivery is asynchronous.
The first transfer to a chain also deploys the asset there. Deployment is committed separately from the credit: if the credit fails, the asset stays deployed and later transfers are unaffected; only that transfer needs recovery.
Events and status
The router emits TransferSent with the GUID and fee-adjusted amounts. A successful destination emits TransferReceived and MessageDelivered. The token facade also emits standard OFT events; do not count both as separate transfers.
A destination failure recorded by the router emits MessageFailed. A failure before the router records it can remain at the LayerZero Endpoint instead. Check both router state and LayerZero Scan.
Retry or restore
Anyone can retry a router-recorded failure using the exact original message bytes. Only failed transfers can be restored. Restoration sends the net transferred amount back to its original sender in a new LayerZero message; source fees are not refunded.
The designated restorer (sender by default) can request restoration during the first seven days. Afterward anyone can, but funds still return only to the original sender.
The API's restored status means a restore was requested. Follow restoreGuid until that separate message is delivered before saying the refund arrived. See Recovery.