> ## Documentation Index
> Fetch the complete documentation index at: https://docs.rhinestone.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Signing the intent

> Sign each entry in signData using EIP-712.

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.

```ts theme={null}
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).

```ts theme={null}
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

<Card title="Submitting the intent" icon="send" href="./submitting-the-intent">
  Submit the signed intent to the Orchestrator.
</Card>
