TRANSACTION from /execute that carries
submit: { "url": "/api/v1/submit-transaction" }, which happens only on quotes made with
broadcastViaRavn: true (see /quote). Don’t broadcast that
transaction yourself. Sign transaction.serialized with the user’s wallet, without sending it,
and post it here. RAVN checks it still pays Layerswap the way Layerswap matches deposits, then
sends it. Broadcast every transaction without submit yourself, as usual.
The check exists because Layerswap matches these payments by instructions that must stay
top-level in the transaction, such as its memo. A smart-contract wallet that wraps them in its own
program sends the same tokens with nothing Layerswap can match, and they sit at Layerswap. Nothing
is sent unless the check passes.
/execute simulates this payment when it builds it, so the wallet must already hold the amount
and SOL for fees, or /execute returns 502 BUILD_FAILED. Sign and post promptly: the
transaction’s blockhash expires about a minute after /execute.
Request
string
required
The
quoteToken returned by /execute with the transaction that carries submit, not the one from /quote.string
required
That response’s
transaction.serialized after the user’s wallet signed it, base64. Sign it as returned: a transaction with a different fee payer or blockhash is refused.Response
signedTransaction again is always safe: if it already landed, you get 200
with its txHash, so retrying after a lost response or an error never pays twice.
Errors
If the
quoteToken came from a sandbox quote, the checks run as usual but
nothing is sent: it returns a synthetic txHash immediately.
