Skip to main content
The quote response includes everything needed to sign. Forward signData.origin[] and signData.destination directly to your wallet’s signTypedData() — don’t reconstruct the EIP-712 types client-side.

Origin signatures

signData.origin has one entry per source chain. Sign each entry in order. The signature index must match the entry index.
const originSignatures = await Promise.all(
  signData.origin.map((typedData) =>
    walletClient.signTypedData(typedData),
  ),
);

Destination signature

signData.destination is a single typed-data object. It’s used when the recipient differs from the sender (a smart account receiving tokens, for example, or destination executions that touch the recipient’s account).
const destinationSignature = await walletClient.signTypedData(
  signData.destination,
);
If the destination doesn’t require a signature, this slot can still be sent — the orchestrator ignores it.

Next steps

Submitting the intent

Submit the signed intent to the Orchestrator.