Skip to content

TON and TRON deposits

Account-chain quotes are signed outside viem.

import type { PrivateQuote } from '@silentswap/sdk';
 
declare const quote: PrivateQuote;
 
if (!('type' in quote.deposit)) {
  if (quote.deposit.txKind === 'ton') {
    const messages = quote.deposit.tonMessages;
    if (!messages?.length) throw new Error('Missing TON messages');
    console.log(messages);
  }
 
  if (quote.deposit.txKind === 'tron') {
    const transaction = quote.deposit.tronTransaction;
    if (!transaction) throw new Error('Missing TRON transaction');
    console.log(transaction);
  }
}

For wallet-backed routes, configure the corresponding narrow adapter. The SDK verifies its active address against inputAddress, then submits all quoted TON messages in order or the single quoted TRON transaction without changing calldata or value.

Some TON/TRON inputs use an external pay-in-address shape instead. Detect that with isUtxoDeposit and show the returned address and amount.