Skip to content

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.