Skip to main content
Signs and executes a Sui transaction in a single step. This is the most common way to execute transactions on Sui.

Usage

import { signAndExecuteTransaction, isSuiWalletAccount, getSuiClient } from '@dynamic-labs-sdk/sui';
import { getPrimaryWalletAccount } from '@dynamic-labs-sdk/client';
import { Transaction } from '@mysten/sui/transactions';

const walletAccount = getPrimaryWalletAccount();

if (walletAccount && isSuiWalletAccount(walletAccount)) {
  // Build a transaction
  const tx = new Transaction();
  tx.transferObjects(
    [tx.object('0x...')],
    tx.pure.address(recipientAddress)
  );

  // Sign and execute the transaction
  const result = await signAndExecuteTransaction({
    transaction: tx,
    walletAccount,
  });

  console.log('Transaction digest:', result.digest);
}

Parameters

ParameterTypeDescription
transactionTransactionThe Sui transaction to sign and execute (from @mysten/sui/transactions)
walletAccountSuiWalletAccountThe wallet account to sign the transaction with
clientDynamicClient (optional)The Dynamic client instance. Only required when using multiple clients.

Returns

Promise<SuiSignAndExecuteTransactionResult> - A promise that resolves to an object containing the transaction result, including:
  • digest - The transaction digest
  • signature - The transaction signature

Errors

ErrorDescription
NotSuiProviderErrorThrown if the wallet account’s provider is not a Sui provider