Skip to main content

Recommended: JavaScript SDK with React Hooks

For new React apps, we recommend the JavaScript SDK with React Hooks (@dynamic-labs-sdk/react-hooks) instead of the legacy React SDK documented here. The JS SDK comes with many benefits such as a much smaller bundle size and other optimizations. Use the React quickstart (JavaScript SDK) to get started.
In this example, we are going to send native TON.
import { useDynamicContext } from '@dynamic-labs/sdk-react-core';
import { isTonWallet } from '@dynamic-labs/ton';

const SendTonButton = () => {
  const { primaryWallet } = useDynamicContext();

  const onSendTon = async () => {
    if (!primaryWallet || !isTonWallet(primaryWallet)) {
      throw new Error('TON wallet not found');
    }

    // Send TON using sendBalance
    const transactionHash = await primaryWallet.sendBalance({
      amount: '0.1', // Amount in TON
      toAddress: 'UQDrjaLahLkMB-hMCmkzOyBuHJ186Qg_CZQhrOhIPBr0oDkB',
    });

    console.log('Transaction hash:', transactionHash);
  };

  return <button onClick={onSendTon}>Send TON</button>;
};
Last modified on June 25, 2026