peaq_ros2_peaqos exposes the LayerZero V2 ONFT as two services:
Required configuration
peaq-source calls need the peaq-side LayerZero ONFT adapter wired intopeaq_robot.yaml; Base-source calls pass the Base contract per call:
MACHINE_NFT_ADAPTER_ADDRESS. Base side reference contract: 0xee8A521eA434b11F956E2402beC5eBfa753Babfa (MachineNFTBase).
peaq → Base
The must own the on peaq and hold enough peaq for plus the LayerZero fee.timeout is in seconds. The service returns once ownerOf(token_id) on the destination chain returns any non-zero address, or the deadline is hit. It does not compare the owner with the intended recipient; read ownerOf yourself if you need that check.
Base → peaq
Same service shape, swappedsource / destination. The signer must hold the Machine NFT on Base and enough Base ETH to cover gas plus the LayerZero fee. The bridge cannot fund that wallet for you.
Field reference
PeaqosBridgeNft:
PeaqosWaitForBridgeArrival:
Operational notes
- Record pre/post balances on both chains for any production bridge test.
- A fresh Base has no ETH, so a Base → peaq bridge tx on
insufficient funds. Fund the Base wallet first. - For a deeper protocol view (LayerZero peers, ONFT contracts, supported chains) see Machine NFT: cross-chain portability and the SDK JS / SDK Python bridge methods, which this node mirrors 1:1.

