destination_challenge
Destination lock. A receiver different from the signing wallet is refused by swap_build, double_build and nn_build (403 destination_not_authorized) until the paying wallet signs an authorization for that exact address on that chain. This returns {nonce, message, expiresAt} plus, on EVM, typedData (EIP-712, the same fields) and, on Solana, proofTransaction (a memo that can never land, for Ledger). Show the user the full receiver and network and get their explicit yes; then sign: on EVM call prepare_signing with step {type: "signature", typedData} and run it; on Solana sign message (or proofTransaction) with the wallet. Then call destination_authorize. Never sign this without the user asking to send to that address. Paying an invoice does not need it.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| wallet | Yes | The wallet that pays and signs. | |
| chainId | Yes | EVM chain id, or "solana-mainnet". | |
| receiver | Yes | The full destination address. Solana base58 is case-sensitive. |