SuiClient class

Legacy JSON-RPC client for a Sui full node.

JSON-RPC is being decommissioned (fully off on 2026-07-31). New code should use SuiGrpcClient (gRPC-web) and SuiGraphQLClient (GraphQL) instead; this class is kept for backward compatibility during the migration.

Signs with the optional account; call setSigner to attach one later.

Inheritance
Implemented types

Constructors

SuiClient(String endpoint, {SuiAccount? account, RequestOptions? options})
Creates a client for the JSON-RPC endpoint, optionally with a signing account. See SuiUrls for the well-known network endpoints.

Properties

account SuiAccount?
The signing account, or null if none has been set.
no setter
client JsonRpcClient
no setterinherited
hashCode int
The hash code for this object.
no setterinherited
rpcClient JsonRpcClient
latefinalinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
serializer TxnDataSerializer
latefinalinherited

Methods

addStake(AddStakeTransaction transaction, {SuiTransactionBlockResponseOptions? options, ExecuteTransaction requestType = ExecuteTransaction.WaitForLocalExecution}) Future<SuiExecuteTransactionResponse>
inherited
devInspectTransaction(String sender, Uint8List txBytes, {BigInt? gasPrice, String? epoch}) Future<DevInspectResults>
inherited
devInspectTransactionBlock(String sender, Transaction transaction, {BigInt? gasPrice, String? epoch}) Future<DevInspectResults>
Simulates transaction from sender without submitting it, returning the execution effects and any return values. Useful for gas estimation and read-only Move calls.
dryRunTransaction<T>(T tx, {String? signerAddress}) Future<DryRunTransactionBlockResponse>
inherited
dryRunTransactionBlock(String txBytes) Future<DryRunTransactionBlockResponse>
inherited
executeMoveCall(MoveCallTransaction transaction, {SuiTransactionBlockResponseOptions? options, ExecuteTransaction requestType = ExecuteTransaction.WaitForLocalExecution}) Future<SuiExecuteTransactionResponse>
inherited
executeTransaction({required Uint8List txnBytes, required SignatureScheme signatureScheme, required Uint8List signature, required PublicKey pubkey, SuiTransactionBlockResponseOptions? options, ExecuteTransaction requestType = ExecuteTransaction.WaitForEffectsCert}) Future<SuiExecuteTransactionResponse>
inherited
executeTransactionBlock(String transactionBlockBase64, List<String> signature, {SuiTransactionBlockResponseOptions? options, ExecuteTransaction requestType = ExecuteTransaction.WaitForEffectsCert}) Future<SuiExecuteTransactionResponse>
inherited
getAddress() SuiAddress
override
getAllBalance(String owner) Future<List<CoinBalance>>
inherited
getAllCoins(String owner, {String? cursor, int? limit}) Future<PaginatedCoins>
inherited
getBalance(String owner, {String coinType = "0x2::sui::SUI"}) Future<CoinBalance>
inherited
getBalanceBatch(List<String> owner, {String coinType = "0x2::sui::SUI"}) Future<List<CoinBalance>>
inherited
getChainIdentifier() Future<String>
inherited
getCheckpoint(String id) Future<Checkpoint>
inherited
getCheckpoints({String? cursor, int? limit, bool descendingOrder = false}) Future<Paged<List<Checkpoint>>>
inherited
getCoinMetadata(String coinType) Future<CoinMetadataStruct>
inherited
getCoins(String owner, {String? coinType, String? cursor, int? limit}) Future<PaginatedCoins>
inherited
getCommitteeInfo([String? epoch]) Future<CommitteeInfo>
inherited
getCurrentEpoch() Future
inherited
getDynamicFieldObject(String parentObjectId, String nameType, String nameValue) Future<SuiObjectResponse>
inherited
getDynamicFields(String parentId, {String? cursor, int? limit}) Future<DynamicFieldPage>
inherited
getEvents(String txDigest) Future<List<SuiEvent>>
Events
inherited
getGasCostEstimation<T>(T tx, [String? signerAddress]) Future<int>
Returns the estimated gas cost for the transaction, throw whens fails to estimate the gas cost.
inherited
getGasObjectsOwnedByAddress(String address) Future<List<SuiObject>>
inherited
getLatestCheckpointSequenceNumber() Future<BigInt>
inherited
getLatestSuiSystemState() Future<SuiSystemStateSummary>
inherited
getMoveFunctionArgTypes({required String packageId, required String moduleName, required String functionName}) Future<List>
inherited
getNormalizedMoveFunction(String packageId, String moduleName, String functionName) Future<SuiMoveNormalizedFunction>
inherited
getNormalizedMoveModule(String packageId, String moduleName) Future<SuiMoveNormalizedModule>
inherited
getNormalizedMoveModulesByPackage(String packageId) Future<SuiMoveNormalizedModules>
inherited
getNormalizedMoveStruct(String packageId, String moduleName, String structName) Future<SuiMoveNormalizedStruct>
inherited
getObject(String objectId, {SuiObjectDataOptions? options}) Future<SuiObjectResponse>
inherited
getObjectBatch(List<String> objectIds) Future<List<SuiObjectResponse>>
inherited
getObjectRef(String objectId) Future<SuiObjectRef?>
inherited
getObjectsOwnedByObject(String objectId) Future<List<SuiObject>>
inherited
getOwnedObjects(String address, {SuiObjectDataOptions? options, int limit = 50, String? cursor, Map? filter}) Future<PaginatedObjectsResponse>
Objects
inherited
getOwnedObjectsShowAllOptions(String address, {Map<String, dynamic>? filter, int limit = 50, String? cursor}) Future<PaginatedObjectsResponse>
inherited
getProtocolConfig([String? version]) Future
inherited
getReferenceGasPrice() Future<BigInt>
inherited
getRpcApiVersion() Future<RpcApiVersion>
inherited
getStakes(SuiAddress address) Future<List<DelegatedStake>>
inherited
getStakesByIds(List<String> stakedSuiIds) Future<List<DelegatedStake>>
inherited
getTotalSupply(String coinType) Future<CoinSupply>
inherited
getTotalTransactionBlocks() Future<BigInt>
inherited
getTransactionBlock(TransactionDigest digest, {SuiTransactionBlockResponseOptions? options}) Future<SuiExecuteTransactionResponse>
inherited
getTransactionBlockBatch(List<String> digests, [SuiTransactionBlockResponseOptions? options]) Future<List<SuiTransactionBlockResponse>>
inherited
getTransactions(String address, {SuiTransactionBlockResponseOptions? options, TransactionDigest? filterFromCursor, TransactionDigest? filterToCursor, int? limit, bool descendingOrder = true}) Future<(List<SuiTransactionBlockResponse>, String?, String?)>
Query Transactions
inherited
getValidatorsApy() Future<ValidatorsApy>
inherited
multiGetObjects(List<String> objectIds, {SuiObjectDataOptions? options}) Future<List<SuiObjectResponse>>
inherited
multiGetTransactionBlocks(List<String> digests, {SuiTransactionBlockResponseOptions? options}) Future<List<SuiTransactionBlockResponse>>
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
pay(PayTransaction transaction, {SuiTransactionBlockResponseOptions? options, ExecuteTransaction requestType = ExecuteTransaction.WaitForLocalExecution}) Future<SuiExecuteTransactionResponse>
inherited
payAllSui(PayAllSuiTransaction transaction, {SuiTransactionBlockResponseOptions? options, ExecuteTransaction requestType = ExecuteTransaction.WaitForLocalExecution}) Future<SuiExecuteTransactionResponse>
inherited
paySui(PaySuiTransaction transaction, {SuiTransactionBlockResponseOptions? options, ExecuteTransaction requestType = ExecuteTransaction.WaitForLocalExecution}) Future<SuiExecuteTransactionResponse>
inherited
publish(PublishTransaction transaction, {SuiTransactionBlockResponseOptions? options, ExecuteTransaction requestType = ExecuteTransaction.WaitForLocalExecution}) Future<SuiExecuteTransactionResponse>
inherited
queryEvents(Map query, {String? cursor, int? limit, bool descendingOrder = false}) Future<Paged<List<SuiEvent>>>
inherited
queryEventsByFilter(EventFilter filter, {String? cursor, int? limit, bool descendingOrder = false}) Future<Paged<List<SuiEvent>>>
inherited
queryTransactionBlocks(Map filter, {SuiTransactionBlockResponseOptions? options, int? limit, String? cursor, bool descendingOrder = true}) Future<PaginatedTransactionResponse>
inherited
queryTransactionEvents(TransactionDigest digest, {String? cursor, int limit = 1, bool descendingOrder = true}) Future<Paged<List<SuiEvent>>>
inherited
resolveNameServiceAddress(String name) Future<String?>
inherited
resolveNameServiceNames(String address, {String? cursor, int? limit}) Future<Paged<List<String>>?>
inherited
setSigner(SuiAccount signer) → void
override
signAndExecuteSignableTransaction({required SignableTransaction transaction, SuiTransactionBlockResponseOptions? options, ExecuteTransaction requestType = ExecuteTransaction.WaitForLocalExecution}) Future<SuiExecuteTransactionResponse>
inherited
signAndExecuteTransaction({required Uint8List transaction, SuiTransactionBlockResponseOptions? options, ExecuteTransaction requestType = ExecuteTransaction.WaitForLocalExecution}) Future<SuiExecuteTransactionResponse>
Sign a transaction and submit to the Fullnode for execution. Only exists on Fullnode
inherited
signAndExecuteTransactionBlock(SuiAccount signer, Transaction transaction, {BuildOptions? options, SuiTransactionBlockResponseOptions? responseOptions, ExecuteTransaction requestType = ExecuteTransaction.WaitForEffectsCert}) Future<SuiExecuteTransactionResponse>
Builds, signs (with signer) and executes transaction, returning the full transaction-block response. Pass responseOptions to control which effects/changes are returned.
signData(Uint8List data) SignaturePubkeyPair
override
splitCoin(SplitCoinTransaction transaction, {SuiTransactionBlockResponseOptions? options, ExecuteTransaction requestType = ExecuteTransaction.WaitForLocalExecution}) Future<SuiExecuteTransactionResponse>
inherited
splitCoinEqual(SplitCoinEqualTransaction transaction, {SuiTransactionBlockResponseOptions? options, ExecuteTransaction requestType = ExecuteTransaction.WaitForLocalExecution}) Future<SuiExecuteTransactionResponse>
inherited
toString() SuiAddress
A string representation of this object.
inherited
transferObject(TransferObjectTransaction transaction, {SuiTransactionBlockResponseOptions? options, ExecuteTransaction requestType = ExecuteTransaction.WaitForLocalExecution}) Future<SuiExecuteTransactionResponse>
inherited
transferSui(TransferSuiTransaction transaction, {SuiTransactionBlockResponseOptions? options, ExecuteTransaction requestType = ExecuteTransaction.WaitForLocalExecution}) Future<SuiExecuteTransactionResponse>
inherited
tryGetPastObject(String id, int version, {SuiObjectDataOptions? options}) Future<ObjectRead>
inherited
waitForTransaction(TransactionDigest digest, {SuiTransactionBlockResponseOptions? options, int timeout = 60 * 1000, int pollInterval = 2 * 1000}) Future<SuiExecuteTransactionResponse>
inherited
withdrawStake(WithdrawStakeTransaction transaction, {SuiTransactionBlockResponseOptions? options, ExecuteTransaction requestType = ExecuteTransaction.WaitForLocalExecution}) Future<SuiExecuteTransactionResponse>
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited