Skip to main content

Documentation Index

Fetch the complete documentation index at: https://www.dynamic.xyz/docs/llms.txt

Use this file to discover all available pages before exploring further.

Overview

SuiModule provides native SUI blockchain operations including message signing, transaction signing (raw or built from to/value), sending transactions, and network queries. Access it via DynamicSDK.getInstance().sui.

Prerequisites

Get a SUI Wallet

If SUI is enabled in the dashboard, the user gets a SUI wallet on signup. Find it via userWallets, or create one explicitly with EmbeddedWalletChain.SUI:
val sdk = DynamicSDK.getInstance()

// Filter existing
val suiWallet = sdk.wallets.userWallets.firstOrNull { it.chain == "SUI" }

// Or create
val wallet = sdk.wallets.embedded.createWallet(chain = EmbeddedWalletChain.SUI)

Get Network Name

Query the network name for the connected SUI wallet:
val network = sdk.sui.getNetworkName(walletId = wallet.id)
println("Network: $network") // e.g. "mainnet", "testnet"

Sign a Message

Sign a message using the connected SUI wallet:
val signature = sdk.sui.signMessage(
  walletId = wallet.id,
  message = "Hello, SUI!"
)
println("Signature: $signature")

Sign a Transaction

Sign a raw base64-encoded SUI transaction without broadcasting it:
val signature = sdk.sui.signTransaction(
  walletId = wallet.id,
  transaction = "base64EncodedTransaction..."
)

Sign a Transfer Transaction

Build and sign a SUI transfer from convenient to/value parameters:
val signature = sdk.sui.signTransferTransaction(
  walletId = wallet.id,
  to = "0x...",
  value = "0.001",   // SUI
  gasPrice = null,   // optional override
  gasBudget = null   // optional override
)

Send Transactions

There are three flavors of broadcast:
// Broadcast an already-signed transaction
val txDigest = sdk.sui.sendTransaction(
  walletId = wallet.id,
  transaction = "base64SignedTransaction..."
)

// Sign and send a raw transaction in one call
val txDigest2 = sdk.sui.signAndSendTransaction(
  walletId = wallet.id,
  transaction = "base64UnsignedTransaction..."
)

// Sign and send a transfer built from to/value
val txDigest3 = sdk.sui.signAndSendTransferTransaction(
  walletId = wallet.id,
  to = "0x...",
  value = "0.001",
  gasPrice = null,
  gasBudget = null
)

API Reference

MethodReturnsDescription
getNetworkNameStringGet the connected network name
signMessageStringSign a message
signTransactionStringSign a raw base64 transaction
signTransferTransactionStringSign a transfer built from to/value
sendTransactionStringBroadcast a signed transaction
signAndSendTransactionStringSign and broadcast a raw transaction
signAndSendTransferTransactionStringSign and broadcast a transfer

Next Steps