How it works
SilentSwap separates what the user reviews from what the wallet signs.
1. Quote
quote sends the source asset, source chain, and one or more outputs to the
SilentSwap API. The response contains a ticket, fees, expiry, destination previews, and the
deposit payload.
2. Review and place
Show every output, asset, fee, and expiry. Then place the reviewed quote directly:
import type { PrivateQuote, SilentSwapClient } from '@silentswap/sdk';
declare const client: SilentSwapClient;
declare const quote: PrivateQuote;
const order = await client.placeOrder(quote);
order.reference;V3 has no nonce, SIWE, facilitator, or authorization-signing ceremony.
3. Deposit
For EVM sources, the SDK checks allowance, simulates the deposit, sends it, and waits for a receipt. Bitcoin, Litecoin, Solana, TON, and TRON payloads branch to their native wallet flow; see deposits.
4. Fulfill and claim
The backend observes the deposit, privately fulfills every recipient, obtains the notary
signature, and claims the gateway deposit. Your integration follows the ticket with
trackOrderViaWebSocket rather than reconstructing this orchestration.
Security invariants
- Never place a quote before trusted UI displays its outputs, assets, fees, and expiry.
- Never replace quoted calldata or destination metadata.
- Never merge addresses across wallet brands.
- Never hardcode registry addresses, token decimals, quote amounts, or fees.