RAVN spans three settlement models. POST /execute returns exactly one of them, tagged by
executionType. Your integration reads that single field and branches — nothing else
about the flow changes.
TRANSACTION
Sign & broadcast the returned transaction.
Across · Relay · Mayan · Jupiter
SIGNATURE
Sign typed data — no gas, no send. RAVN submits it.
0x Gasless · Bebop · CoW
DEPOSIT
Send the origin asset to an address.
NEAR Intents · Rift (BTC)
switch (res.data.executionType) { case "TRANSACTION": await wallet.sendTransaction(res.data.transaction); break; case "SIGNATURE": { const sig = await wallet.signTypedData(res.data.typedData); await submitSignature(quoteToken, sig); } break; case "DEPOSIT": await wallet.send(res.data.deposit.address, res.data.deposit.amount); break;}
A DEPOSIT can be fulfilled automatically (build a wallet transfer to the address, as an
EVM/Solana wallet does) or manually (show the address + a QR, as a native-BTC send does).
Both are the same execution type — you choose the UX.