> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dynamic.xyz/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# signTransaction (Sui)

# signTransaction

Signs a Sui transaction without executing it. This is useful when you need to collect signatures before execution, or when working with sponsored transactions.

## Usage

```javascript theme={"system"}
import { signTransaction, 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)) {
  const suiClient = await getSuiClient({ walletAccount });

  // Build a transaction
  const tx = new Transaction();
  tx.transferObjects(
    [tx.object("0x...")],
    tx.pure.address(recipientAddress)
  );

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

  console.log("Signature:", result.signature);
  console.log("Transaction bytes:", result.bytes);
}
```

## Parameters

| Parameter | Type | Description |
| - | - | - |
| `transaction` | `Transaction` | The Sui transaction to sign (from `@mysten/sui/transactions`) |
| `walletAccount` | `SuiWalletAccount` | The wallet account to sign the transaction with |
| `client` | `DynamicClient` (optional) | The Dynamic client instance. Only required when using multiple clients. |

## Returns

`Promise<SuiSignTransactionResult>` - A promise that resolves to an object containing:

* `signature` - The transaction signature
* `bytes` - The signed transaction bytes

## Errors

| Error | Description |
| - | - |
| `NotSuiProviderError` | Thrown if the wallet account's provider is not a Sui provider |

## Related functions

* [signAndExecuteTransaction](https://docs.dynamic.xyz/docs/javascript/reference/sui/sign-and-execute-transaction.md) - Sign and execute a transaction in one step
* [getSuiClient](https://docs.dynamic.xyz/docs/javascript/reference/sui/get-sui-client.md) - Get the Sui client from a wallet account


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.