Skip to main content
The TransactionBuilder API is in the unsafe namespace because it’s intended for development and testing. For production applications, use the Rust SDK or TypeScript SDK instead.
The TransactionBuilder API provides methods for building unsigned transaction blocks. All methods are in the unsafe namespace.

Transfer Methods

transferObject

Creates an unsigned transaction to transfer an object from one address to another. The object’s type must allow public transfers.
SuiAddress
required
The transaction signer’s Sui address
ObjectID
required
The ID of the object to be transferred
ObjectID
Gas object to be used in this transaction. Node will pick one from the signer’s possession if not provided
BigInt<u64>
required
The gas budget. The transaction will fail if the gas cost exceeds the budget
SuiAddress
required
The recipient’s Sui address
TransactionBlockBytes
The unsigned transaction bytes

transferSui

Creates an unsigned transaction to send SUI coin object to a Sui address. The SUI object is also used as the gas object.
SuiAddress
required
The transaction signer’s Sui address
ObjectID
required
The Sui coin object to be used in this transaction
BigInt<u64>
required
The gas budget. The transaction will fail if the gas cost exceeds the budget
SuiAddress
required
The recipient’s Sui address
BigInt<u64>
The amount to be split out and transferred
TransactionBlockBytes
The unsigned transaction bytes

Payment Methods

pay

Sends Coin<T> to a list of addresses, where T can be any coin type, following a list of amounts.
SuiAddress
required
The transaction signer’s Sui address
ObjectID[]
required
The Sui coins to be used in this transaction
SuiAddress[]
required
The recipients’ addresses (length must match amounts)
BigInt<u64>[]
required
The amounts to be transferred to recipients, following the same order
ObjectID
Gas object to be used. Cannot appear in input_coins. Node will pick one if not provided
BigInt<u64>
required
The gas budget
TransactionBlockBytes
The unsigned transaction bytes

paySui

Sends SUI coins to a list of addresses, following a list of amounts. This is for SUI coin only and does not require a separate gas coin object.
The first input coin is used as the gas coin. Its balance after the transaction is: sum(input_coins) - sum(amounts) - actual_gas_cost
SuiAddress
required
The transaction signer’s Sui address
ObjectID[]
required
The Sui coins to be used, including the coin for gas payment
SuiAddress[]
required
The recipients’ addresses (length must match amounts)
BigInt<u64>[]
required
The amounts to be transferred to recipients
BigInt<u64>
required
The gas budget
TransactionBlockBytes
The unsigned transaction bytes

payAllSui

Sends all SUI coins to one recipient. This is for SUI coin only and does not require a separate gas coin.
SuiAddress
required
The transaction signer’s Sui address
ObjectID[]
required
The Sui coins to be used, including the coin for gas payment
SuiAddress
required
The recipient address
BigInt<u64>
required
The gas budget
TransactionBlockBytes
The unsigned transaction bytes

Move Call Methods

moveCall

Creates an unsigned transaction to execute a Move call on the network.
SuiAddress
required
The transaction signer’s Sui address
ObjectID
required
The Move package ID (e.g., 0x2)
string
required
The Move module name (e.g., pay)
string
required
The Move function name (e.g., split)
SuiTypeTag[]
required
The type arguments of the Move function
SuiJsonValue[]
required
The arguments to be passed into the Move function, in SuiJson format
ObjectID
Gas object to be used. Node will pick one if not provided
BigInt<u64>
required
The gas budget
SuiTransactionBlockBuilderMode
Whether this is a Normal transaction or Dev Inspect. Defaults to Commit
TransactionBlockBytes
The unsigned transaction bytes

publish

Creates an unsigned transaction to publish a Move package.
SuiAddress
required
The transaction signer’s Sui address
Base64[]
required
The compiled bytes of a Move package
ObjectID[]
required
A list of transitive dependency addresses that this set of modules depends on
ObjectID
Gas object to be used. Node will pick one if not provided
BigInt<u64>
required
The gas budget
TransactionBlockBytes
The unsigned transaction bytes

Coin Operations

splitCoin

Creates an unsigned transaction to split a coin object into multiple coins.
SuiAddress
required
The transaction signer’s Sui address
ObjectID
required
The coin object to be split
BigInt<u64>[]
required
The amounts to split out from the coin
ObjectID
Gas object to be used
BigInt<u64>
required
The gas budget
TransactionBlockBytes
The unsigned transaction bytes

splitCoinEqual

Creates an unsigned transaction to split a coin object into multiple equal-size coins.
SuiAddress
required
The transaction signer’s Sui address
ObjectID
required
The coin object to be split
BigInt<u64>
required
The number of coins to split into
ObjectID
Gas object to be used
BigInt<u64>
required
The gas budget
TransactionBlockBytes
The unsigned transaction bytes

mergeCoins

Creates an unsigned transaction to merge multiple coins into one coin.
SuiAddress
required
The transaction signer’s Sui address
ObjectID
required
The coin object to merge into (remains after transaction)
ObjectID
required
The coin object to be merged (destroyed, balance added to primary_coin)
ObjectID
Gas object to be used
BigInt<u64>
required
The gas budget
TransactionBlockBytes
The unsigned transaction bytes

Staking Operations

requestAddStake

Adds stake to a validator’s staking pool using multiple coins and amount.
SuiAddress
required
The transaction signer’s Sui address
ObjectID[]
required
Coin objects (SUI) to stake
BigInt<u64>
Stake amount
SuiAddress
required
The validator’s Sui address
ObjectID
Gas object to be used
BigInt<u64>
required
The gas budget
TransactionBlockBytes
The unsigned transaction bytes

requestWithdrawStake

Withdraws stake from a validator’s staking pool.
SuiAddress
required
The transaction signer’s Sui address
ObjectID
required
StakedSui object ID
ObjectID
Gas object to be used
BigInt<u64>
required
The gas budget
TransactionBlockBytes
The unsigned transaction bytes

Batch Transactions

batchTransaction

Creates an unsigned batched transaction.
SuiAddress
required
The transaction signer’s Sui address
RPCTransactionRequestParams[]
required
List of transaction request parameters
ObjectID
Gas object to be used
BigInt<u64>
required
The gas budget
SuiTransactionBlockBuilderMode
Whether this is a regular transaction or Dev Inspect
TransactionBlockBytes
The unsigned transaction bytes

Migration Note

Instead of using these RPC methods directly, consider using:These provide better developer experience, type safety, and error handling.