Sui gRPC Message Definitions

Complete field-level reference for all Sui Full Node gRPC message types. See also: Message Definitions | Enum & Scalar Types | Methods

BatchGetObjectsRequest

FieldTypeLabelDescription
requestsGetObjectRequestrepeated
read_maskFieldMaskoptionalMask specifying which fields to read. If no mask is specified, defaults to `object_id,version,digest`.

BatchGetObjectsResponse

FieldTypeLabelDescription
objectsGetObjectResultrepeated

BatchGetTransactionsRequest

FieldTypeLabelDescription
digestsstringrepeatedRequired. The digests of the requested transactions.
read_maskFieldMaskoptionalMask specifying which fields to read. If no mask is specified, defaults to `digest`.

BatchGetTransactionsResponse

FieldTypeLabelDescription
transactionsGetTransactionResultrepeated

GetCheckpointRequest

FieldTypeLabelDescription
sequence_numberuint64The sequence number of the requested checkpoint.
digeststringThe digest of the requested checkpoint.
read_maskFieldMaskoptionalMask specifying which fields to read. If no mask is specified, defaults to `sequence_number,digest`.

GetCheckpointResponse

FieldTypeLabelDescription
checkpointCheckpointoptional

GetEpochRequest

FieldTypeLabelDescription
epochuint64optionalThe requested epoch. If no epoch is provided the current epoch will be returned.
read_maskFieldMaskoptionalMask specifying which fields to read. If no mask is specified, defaults to `epoch`.

GetEpochResponse

FieldTypeLabelDescription
epochEpochoptional

GetObjectRequest

FieldTypeLabelDescription
object_idstringoptionalRequired. The `ObjectId` of the requested object.
versionuint64optionalRequest a specific version of the object. If no version is specified, and the object is live, then the latest version of the object is returned.
read_maskFieldMaskoptionalMask specifying which fields to read. If no mask is specified, defaults to `object_id,version,digest`.

GetObjectResponse

FieldTypeLabelDescription
objectObjectoptional

GetObjectResult

FieldTypeLabelDescription
objectObject
errorStatus

GetServiceInfoRequest

GetServiceInfoResponse

FieldTypeLabelDescription
chain_idstringoptionalThe chain identifier of the chain that this node is on. The chain identifier is the digest of the genesis checkpoint, the checkpoint with sequence number 0.
chainstringoptionalHuman-readable name of the chain that this node is on. This is intended to be a human-readable name like `mainnet`, `testnet`, and so on.
epochuint64optionalCurrent epoch of the node based on its highest executed checkpoint.
checkpoint_heightuint64optionalCheckpoint height of the most recently executed checkpoint.
timestampTimestampoptionalUnix timestamp of the most recently executed checkpoint.
lowest_available_checkpointuint64optionalThe lowest checkpoint for which checkpoints and transaction data are available.
lowest_available_checkpoint_objectsuint64optionalThe lowest checkpoint for which object data is available.
serverstringoptionalSoftware version of the service. Similar to the `server` http header.

GetTransactionRequest

FieldTypeLabelDescription
digeststringoptionalRequired. The digest of the requested transaction.
read_maskFieldMaskoptionalMask specifying which fields to read. If no mask is specified, defaults to `digest`.

GetTransactionResponse

FieldTypeLabelDescription
transactionExecutedTransactionoptional

GetTransactionResult

FieldTypeLabelDescription
transactionExecutedTransaction
errorStatus

VerifySignatureRequest

FieldTypeLabelDescription
messageBcsoptionalThe message to verify against. Today the only supported message types are `PersonalMessage` and `TransactionData` and the `Bcs.name` must be set to indicate which type of message is being verified.
signatureUserSignatureoptionalThe signature to verify.
addressstringoptionalOptional. Address to validate against the provided signature. If provided, this address will be compared against the the address derived from the provide signature and a successful response will only be returned if they match.
jwksActiveJwkrepeatedThe set of JWKs to use when verifying Zklogin signatures. If this is empty the current set of valid JWKs stored onchain will be used

VerifySignatureResponse

FieldTypeLabelDescription
is_validbooloptionalIndicates if the provided signature was valid given the requested parameters.
reasonstringoptionalIf `is_valid` is `false`, this is the reason for why the signature verification failed.

Checkpoint

FieldTypeLabelDescription
sequence_numberuint64optionalThe height of this checkpoint.
digeststringoptionalThe digest of this Checkpoint's CheckpointSummary.
summaryCheckpointSummaryoptionalThe `CheckpointSummary` for this checkpoint.
signatureValidatorAggregatedSignatureoptionalAn aggregated quorum signature from the validator committee that certified this checkpoint.
contentsCheckpointContentsoptionalThe `CheckpointContents` for this checkpoint.
transactionsExecutedTransactionrepeatedList of transactions included in this checkpoint.
objectsObjectSetoptionalSet of objects either referenced as inputs or produced as outputs by transactions included in this checkpoint. In order to benefit from deduplication of objects that appear in multiple transactions in this checkpoint, objects will only be present here and the `transactions.objects` field will not be populated.

CommandOutput

FieldTypeLabelDescription
argumentArgumentoptional
valueBcsoptional
jsonValueoptionalJSON rendering of the output.

CommandResult

An intermediate result/output from the execution of a single command

FieldTypeLabelDescription
return_valuesCommandOutputrepeated
mutated_by_refCommandOutputrepeated

ExecuteTransactionRequest

FieldTypeLabelDescription
transactionTransactionoptionalThe transaction to execute.
signaturesUserSignaturerepeatedSet of `UserSignature`s authorizing the execution of the provided transaction.
read_maskFieldMaskoptionalMask specifying which fields to read. If no mask is specified, defaults to `effects.status,checkpoint`.

ExecuteTransactionResponse

Response message for `NodeService.ExecuteTransaction`.

FieldTypeLabelDescription
transactionExecutedTransactionoptional

SimulateTransactionRequest

FieldTypeLabelDescription
transactionTransactionoptional
read_maskFieldMaskoptionalMask specifying which fields to read.
checksTransactionChecksoptionalSpecify whether checks should be ENABLED (default) or DISABLED while executing the transaction
do_gas_selectionbooloptionalPerform gas selection based on a budget estimation and include the selected gas payment and budget in the response. This option will be ignored if `checks` is `DISABLED`.

SimulateTransactionResponse

FieldTypeLabelDescription
transactionExecutedTransactionoptional
command_outputsCommandResultrepeated
suggested_gas_priceuint64optionalA suggested gas price to use, that is above RGP, in order to provide a better chance of the transaction being included in the presence of congested objects.

Event

An event.

FieldTypeLabelDescription
package_idstringoptionalPackage ID of the top-level function invoked by a `MoveCall` command that triggered this event to be emitted.
modulestringoptionalModule name of the top-level function invoked by a `MoveCall` command that triggered this event to be emitted.
senderstringoptionalAddress of the account that sent the transaction where this event was emitted.
event_typestringoptionalThe type of the event emitted.
contentsBcsoptionalBCS serialized bytes of the event.
jsonValueoptionalJSON rendering of the event.

TransactionEvents

Events emitted during the successful execution of a transaction.

FieldTypeLabelDescription
bcsBcsoptionalThis TransactionEvents serialized as BCS.
digeststringoptionalThe digest of this TransactionEvents.
eventsEventrepeatedSet of events emitted by a transaction.

FundsWithdrawal

FieldTypeLabelDescription
amountuint64optional
coin_typestringoptional
sourceSourceoptional

Input

An input to a user transaction.

FieldTypeLabelDescription
kindInputKindoptional
purebytesoptionalA move value serialized as BCS. For normal operations this is required to be a move primitive type and not contain structs or objects.
object_idstringoptional`ObjectId` of the object input.
versionuint64optionalRequested version of the input object when `kind` is `IMMUTABLE_OR_OWNED` or `RECEIVING` or if `kind` is `SHARED` this is the initial version of the object when it was shared
digeststringoptionalThe digest of this object.
mutablebooloptionalControls whether the caller asks for a mutable reference to the shared object.
mutabilityMutabilityoptionalNOTE: For backwards compatibility purposes the addition of the new `NON_EXCLUSIVE_WRITE` mutability variant requires providing a new field. The old `mutable` field will continue to be populated and respected as an input for the time being.
funds_withdrawalFundsWithdrawaloptionalFund Reservation information if `kind` is `FUNDS_WITHDRAWAL`.
literalValueoptionalA literal value INPUT ONLY

ExecutedTransaction

FieldTypeLabelDescription
digeststringoptionalThe digest of this Transaction.
transactionTransactionoptionalThe transaction itself.
signaturesUserSignaturerepeatedList of user signatures that are used to authorize the execution of this transaction.
effectsTransactionEffectsoptionalThe `TransactionEffects` for this transaction.
eventsTransactionEventsoptionalThe `TransactionEvents` for this transaction. This field might be empty, even if it was explicitly requested, if the transaction didn't produce any events. `sui.types.TransactionEffects.events_digest` is populated if the transaction produced any events.
checkpointuint64optionalThe sequence number for the checkpoint that includes this transaction.
timestampTimestampoptionalThe Unix timestamp of the checkpoint that includes this transaction.
balance_changesBalanceChangerepeated
objectsObjectSetoptionalSet of objects either referenced as inputs or produced as outputs from this Transaction.

SubscribeCheckpointsRequest

Request message for SubscriptionService.SubscribeCheckpoints

FieldTypeLabelDescription
read_maskFieldMaskoptionalOptional. Mask for specifying which parts of the SubscribeCheckpointsResponse should be returned.

SubscribeCheckpointsResponse

Response message for SubscriptionService.SubscribeCheckpoints

FieldTypeLabelDescription
cursoruint64optionalRequired. The checkpoint sequence number and value of the current cursor into the checkpoint stream
checkpointCheckpointoptionalThe requested data for this checkpoint

Bcs

`Bcs` contains an arbitrary type that is serialized using the
[BCS](https://mystenlabs.github.io/sui-rust-sdk/sui_sdk_types/index.html#bcs)
format as well as a name that identifies the type of the serialized value.

FieldTypeLabelDescription
namestringoptionalName that identifies the type of the serialized value.
valuebytesoptionalBytes of a BCS serialized value.

BalanceChange

The delta, or change, in balance for an address for a particular `Coin` type.

FieldTypeLabelDescription
addressstringoptionalThe account address that is affected by this balance change event.
coin_typestringoptionalThe `Coin` type of this balance change event.
amountstringoptionalThe amount or change in balance.

Jwk

A JSON web key.

Struct that contains info for a JWK. A list of them for different kinds can
be retrieved from the JWK endpoint (for example, <https://www.googleapis.com/oauth2/v3/certs>).
The JWK is used to verify the JWT token.

FieldTypeLabelDescription
ktystringoptionalKey type parameter, https://datatracker.ietf.org/doc/html/rfc7517#section-4.1.
estringoptionalRSA public exponent, https://datatracker.ietf.org/doc/html/rfc7517#section-9.3.
nstringoptionalRSA modulus, https://datatracker.ietf.org/doc/html/rfc7517#section-9.3.
algstringoptionalAlgorithm parameter, https://datatracker.ietf.org/doc/html/rfc7517#section-4.4.

JwkId

Key to uniquely identify a JWK.

FieldTypeLabelDescription
issstringoptionalThe issuer or identity of the OIDC provider.
kidstringoptionalA key ID used to uniquely identify a key from an OIDC provider.

Display

A rendered JSON blob based on an on-chain template.

FieldTypeLabelDescription
outputValueoptionalOutput for all successfully substituted display fields. Unsuccessful fields will be `null`, and will be accompanied by a field in `errors`, explaining the error.
errorsValueoptionalIf any fields failed to render, this will contain a mapping from failed field names to error messages. If all fields succeed, this will either be `null` or not set.

Object

An object on the Sui blockchain.

FieldTypeLabelDescription
bcsBcsoptionalThis Object serialized as BCS.
object_idstringoptional`ObjectId` for this object.
versionuint64optionalVersion of the object.
digeststringoptionalThe digest of this Object.
ownerOwneroptionalOwner of the object.
object_typestringoptionalThe type of this object. This will be 'package' for packages and a StructTag for move structs.
has_public_transferbooloptionalDEPRECATED this field is no longer used to determine whether a tx can transfer this object. Instead, it is always calculated from the objects type when loaded in execution. Only set for Move structs
contentsBcsoptionalBCS bytes of a Move struct value. Only set for Move structs
packagePackageoptionalPackage information for Move Packages
previous_transactionstringoptionalThe digest of the transaction that created or last mutated this object
storage_rebateuint64optionalThe amount of SUI to rebate if this object gets deleted. This number is re-calculated each time the object is mutated based on the present storage gas price.
jsonValueoptionalJSON rendering of the object.
balanceuint64optionalCurrent balance if this object is a `0x2::coin::Coin<T>`
displayDisplayoptionalJSON rendering of the object based on an on-chain template. This will not be set if the value's type does not have an associated `Display` template.

ObjectSet

Set of Objects

FieldTypeLabelDescription
objectsObjectrepeatedObjects are sorted by the key `(object_id, version)`.

MoveTable

A message that represents a Move `0x2::table::Table` or `0x2::bag::Bag`

FieldTypeLabelDescription
idstringoptionalThe UID of the table or bag
sizeuint64optionalThe size or number of key-value pairs in the table or bag

StakeSubsidy

FieldTypeLabelDescription
balanceuint64optionalBalance of SUI set aside for stake subsidies that will be drawn down over time.
distribution_counteruint64optionalCount of the number of times stake subsidies have been distributed.
current_distribution_amountuint64optionalThe amount of stake subsidy to be drawn down per distribution. This amount decays and decreases over time.
stake_subsidy_period_lengthuint64optionalNumber of distributions to occur before the distribution amount decays.
stake_subsidy_decrease_rateuint32optionalThe rate at which the distribution amount decays at the end of each period. Expressed in basis points.
extra_fieldsMoveTableoptionalAny extra fields that's not defined statically.

StakingPool

A staking pool embedded in each validator struct in the system state object.

FieldTypeLabelDescription
idstringoptionalUID of the StakingPool object
activation_epochuint64optionalThe epoch at which this pool became active. The value is `None` if the pool is pre-active and `Some(<epoch_number>)` if active or inactive.
deactivation_epochuint64optionalThe epoch at which this staking pool ceased to be active. `None` = {pre-active, active}, `Some(<epoch_number>)` if in-active, and it was de-activated at epoch `<epoch_number>`.
sui_balanceuint64optionalThe total number of SUI tokens in this pool, including the SUI in the rewards_pool, as well as in all the principal in the `StakedSui` object, updated at epoch boundaries.
rewards_pooluint64optionalThe epoch stake rewards will be added here at the end of each epoch.
pool_token_balanceuint64optionalTotal number of pool tokens issued by the pool.
exchange_ratesMoveTableoptionalExchange rate history of previous epochs. The entries start from the `activation_epoch` of this pool and contains exchange rates at the beginning of each epoch, i.e., right after the rewards for the previous epoch have been deposited into the pool. key: u64 (epoch number), value: PoolTokenExchangeRate
pending_stakeuint64optionalPending stake amount for this epoch, emptied at epoch boundaries.
pending_total_sui_withdrawuint64optionalPending stake withdrawn during the current epoch, emptied at epoch boundaries. This includes both the principal and rewards SUI withdrawn.
pending_pool_token_withdrawuint64optionalPending pool token withdrawn during the current epoch, emptied at epoch boundaries.
extra_fieldsMoveTableoptionalAny extra fields that's not defined statically.

StorageFund

Struct representing the onchain storage fund.

FieldTypeLabelDescription
total_object_storage_rebatesuint64optionalThis is the sum of `storage_rebate` of all objects currently stored on-chain. To maintain this invariant, the only inflow of this balance is storage charges collected from transactions, and the only outflow is storage rebates of transactions, including both the portion refunded to the transaction senders as well as the non-refundable portion taken out and put into `non_refundable_balance`.
non_refundable_balanceuint64optionalRepresents any remaining inflow of the storage fund that should not be taken out of the fund.

SystemParameters

FieldTypeLabelDescription
epoch_duration_msuint64optionalThe duration of an epoch, in milliseconds.
stake_subsidy_start_epochuint64optionalThe starting epoch in which stake subsidies start being paid out
min_validator_countuint64optionalMinimum number of active validators at any moment.
max_validator_countuint64optionalMaximum number of active validators at any moment. We do not allow the number of validators in any epoch to go above this.
min_validator_joining_stakeuint64optionalDeprecated. Lower-bound on the amount of stake required to become a validator.
validator_low_stake_thresholduint64optionalDeprecated. Validators with stake amount below `validator_low_stake_threshold` are considered to have low stake and will be escorted out of the validator set after being below this threshold for more than `validator_low_stake_grace_period` number of epochs.
validator_very_low_stake_thresholduint64optionalDeprecated. Validators with stake below `validator_very_low_stake_threshold` will be removed immediately at epoch change, no grace period.
validator_low_stake_grace_perioduint64optionalA validator can have stake below `validator_low_stake_threshold` for this many epochs before being kicked out.
extra_fieldsMoveTableoptionalAny extra fields that are not defined statically.

SystemState

FieldTypeLabelDescription
versionuint64optionalThe version of the system state data structure type.
epochuint64optionalThe epoch id
protocol_versionuint64optionalThe protocol version
validatorsValidatorSetoptionalInformation about the validators
storage_fundStorageFundoptionalStorage Fund info
parametersSystemParametersoptionalSet of system config parameters
reference_gas_priceuint64optionalThe reference gas price for this epoch
validator_report_recordsValidatorReportRecordrepeatedA list of the records of validator reporting each other. There is an entry in this list for each validator that has been reported at least once. Each record contains all the validators that reported them. If a validator has never been reported they don't have a record in this list. This lists persists across epoch: a peer continues being in a reported state until the reporter doesn't explicitly remove their report.
stake_subsidyStakeSubsidyoptionalSchedule of stake subsidies given out each epoch.
safe_modebooloptionalWhether the system is running in a downgraded safe mode due to a non-recoverable bug. This is set whenever we failed to execute advance_epoch, and ended up executing advance_epoch_safe_mode. It can be reset once we are able to successfully execute advance_epoch. The rest of the fields starting with `safe_mode_` are accumulated during safe mode when advance_epoch_safe_mode is executed. They will eventually be processed once we are out of safe mode.
safe_mode_storage_rewardsuint64optionalStorage rewards accumulated during safe_mode
safe_mode_computation_rewardsuint64optionalComputation rewards accumulated during safe_mode
safe_mode_storage_rebatesuint64optionalStorage rebates paid out during safe_mode
safe_mode_non_refundable_storage_feeuint64optionalNonrefundable storage fees accumulated during safe_mode
epoch_start_timestamp_msuint64optionalUnix timestamp of when this this epoch started
extra_fieldsMoveTableoptionalAny extra fields that's not defined statically.

Validator

Definition of a Validator in the system contracts

Note: fields of ValidatorMetadata are flattened into this type

FieldTypeLabelDescription
namestringoptionalA unique human-readable name of this validator.
addressstringoptionalThe Sui Address of the validator. This is the sender that created the Validator object, and also the address to send validator/coins to during withdraws.
descriptionstringoptional
image_urlstringoptional
project_urlstringoptional
protocol_public_keybytesoptionalThe public key bytes corresponding to the private key that the validator holds to sign transactions. For now, this is the same as AuthorityName.
proof_of_possessionbytesoptionalThis is a proof that the validator has ownership of the protocol private key
network_public_keybytesoptionalThe public key bytes corresponding to the private key that the validator uses to establish TLS connections
worker_public_keybytesoptionalThe public key bytes corresponding to the Narwhal Worker
network_addressstringoptionalThe network address of the validator (could also contain extra info such as port, DNS and etc.).
p2p_addressstringoptionalThe address of the validator used for p2p activities such as state sync (could also contain extra info such as port, DNS and etc.).
primary_addressstringoptionalThe address of the narwhal primary
worker_addressstringoptionalThe address of the narwhal worker
next_epoch_protocol_public_keybytesoptional
next_epoch_proof_of_possessionbytesoptional
next_epoch_network_public_keybytesoptional
next_epoch_worker_public_keybytesoptional
next_epoch_network_addressstringoptional
next_epoch_p2p_addressstringoptional
next_epoch_primary_addressstringoptional
next_epoch_worker_addressstringoptional
metadata_extra_fieldsMoveTableoptionalAny extra fields that's not defined statically in the `ValidatorMetadata` struct
voting_poweruint64optionalThe voting power of this validator, which might be different from its stake amount.
operation_cap_idstringoptionalThe ID of this validator's current valid `UnverifiedValidatorOperationCap`
gas_priceuint64optionalGas price quote, updated only at end of epoch.
staking_poolStakingPooloptionalStaking pool for this validator.
commission_rateuint64optionalCommission rate of the validator, in basis point.
next_epoch_stakeuint64optionalTotal amount of stake that would be active in the next epoch.
next_epoch_gas_priceuint64optionalThis validator's gas price quote for the next epoch.
next_epoch_commission_rateuint64optionalThe commission rate of the validator starting the next epoch, in basis point.
extra_fieldsMoveTableoptionalAny extra fields that's not defined statically.

ValidatorReportRecord

FieldTypeLabelDescription
reportedstringoptionalThe address of the validator being reported
reportersstringrepeatedThe list of validator (addresses) that are reporting on the validator specified by `reported`

ValidatorSet

FieldTypeLabelDescription
total_stakeuint64optionalTotal amount of stake from all active validators at the beginning of the epoch. Written only once per epoch, in `advance_epoch` function.
active_validatorsValidatorrepeatedThe current list of active validators.
pending_active_validatorsMoveTableoptionalList of new validator candidates added during the current epoch. They will be processed at the end of the epoch. key: u64 (index), value: 0x3::validator::Validator
pending_removalsuint64repeatedRemoval requests from the validators. Each element is an index pointing to `active_validators`.
staking_pool_mappingsMoveTableoptionalMappings from staking pool's ID to the sui address of a validator. key: address (staking pool Id), value: address (sui address of the validator)
inactive_validatorsMoveTableoptionalMapping from a staking pool ID to the inactive validator that has that pool as its staking pool. When a validator is deactivated the validator is removed from `active_validators` it is added to this table so that stakers can continue to withdraw their stake from it. key: address (staking pool Id), value: 0x3::validator_wrapper::ValidatorWrapper
validator_candidatesMoveTableoptionalTable storing preactive/candidate validators, mapping their addresses to their `Validator ` structs. When an address calls `request_add_validator_candidate`, they get added to this table and become a preactive validator. When the candidate has met the min stake requirement, they can call `request_add_validator` to officially add them to the active validator set `active_validators` next epoch. key: address (sui address of the validator), value: 0x3::validator_wrapper::ValidatorWrapper
at_risk_validatorsAtRiskValidatorsEntryrepeatedTable storing the number of epochs during which a validator's stake has been below the low stake threshold.
extra_fieldsMoveTableoptionalAny extra fields that's not defined statically.

AtRiskValidatorsEntry

FieldTypeLabelDescription
keystring
valueuint64

AccumulatorWrite

FieldTypeLabelDescription
addressstringoptional
accumulator_typestringoptional
operationAccumulatorOperationoptional
valueuint64optional

ChangedObject

Input/output state of an object that was changed during execution.

FieldTypeLabelDescription
object_idstringoptionalID of the object.
input_stateInputObjectStateoptional
input_versionuint64optionalVersion of the object before this transaction executed.
input_digeststringoptionalDigest of the object before this transaction executed.
input_ownerOwneroptionalOwner of the object before this transaction executed.
output_stateOutputObjectStateoptional
output_versionuint64optionalVersion of the object after this transaction executed.
output_digeststringoptionalDigest of the object after this transaction executed.
output_ownerOwneroptionalOwner of the object after this transaction executed.
accumulator_writeAccumulatorWriteoptionalThe contents of the accumulator write when `output_state` is `OUTPUT_OBJECT_STATE_ACCUMULATOR_WRITE`
id_operationIdOperationoptionalWhat happened to an `ObjectId` during execution.
object_typestringoptionalType information is not provided by the effects structure but is instead provided by an indexing layer

TransactionEffects

The effects of executing a transaction.

FieldTypeLabelDescription
bcsBcsoptionalThis TransactionEffects serialized as BCS.
digeststringoptionalThe digest of this TransactionEffects.
versionint32optionalVersion of this TransactionEffects.
statusExecutionStatusoptionalThe status of the execution.
epochuint64optionalThe epoch when this transaction was executed.
gas_usedGasCostSummaryoptionalThe gas used by this transaction.
transaction_digeststringoptionalThe transaction digest.
gas_objectChangedObjectoptionalInformation about the gas object. Also present in the `changed_objects` vector. System transactions that don't require gas will leave this as `None`.
events_digeststringoptionalThe digest of the events emitted during execution, can be `None` if the transaction does not emit any event.
dependenciesstringrepeatedThe set of transaction digests this transaction depends on.
lamport_versionuint64optionalThe version number of all the written objects (excluding packages) by this transaction.
changed_objectsChangedObjectrepeatedObjects whose state are changed by this transaction.
unchanged_consensus_objectsUnchangedConsensusObjectrepeatedConsensus objects that are not mutated in this transaction. Unlike owned objects, read-only consensus objects' version are not committed in the transaction, and in order for a node to catch up and execute it without consensus sequencing, the version needs to be committed in the effects.
auxiliary_data_digeststringoptionalAuxiliary data that are not protocol-critical, generated as part of the effects but are stored separately. Storing it separately allows us to avoid bloating the effects with data that are not critical. It also provides more flexibility on the format and type of the data.
unchanged_loaded_runtime_objectsObjectReferencerepeated

UnchangedConsensusObject

A consensus object that wasn't changed during execution.

FieldTypeLabelDescription
kindUnchangedConsensusObjectKindoptional
object_idstringoptionalObjectId of the consensus object.
versionuint64optionalVersion of the consensus object.
digeststringoptionalDigest of the consensus object.
object_typestringoptionalType information is not provided by the effects structure but is instead provided by an indexing layer

AddressAliasesVersion

FieldTypeLabelDescription
versionuint64optional

CheckpointContents

The committed to contents of a checkpoint.

FieldTypeLabelDescription
bcsBcsoptionalThis CheckpointContents serialized as BCS.
digeststringoptionalThe digest of this CheckpointContents.
versionint32optionalVersion of this CheckpointContents
transactionsCheckpointedTransactionInforepeatedSet of transactions committed to in this checkpoint.

CheckpointedTransactionInfo

Transaction information committed to in a checkpoint.

FieldTypeLabelDescription
transactionstringoptionalDigest of the transaction.
effectsstringoptionalDigest of the effects.
signaturesUserSignaturerepeatedSet of user signatures that authorized the transaction.
address_aliases_versionsAddressAliasesVersionrepeatedThe `AddressAliases` object version, if any, that was used to verify the UserSignature at the same position in `signatures`. This field is present when CheckpointContents.version is >= 2.

DatatypeDescriptor

Describes a Move Datatype.

FieldTypeLabelDescription
type_namestringoptionalFully qualified name of this Datatype. This is `<defining_id>::<module>::<name>`
defining_idstringoptionalPackageId of the package where this Datatype is defined. A type's `defining_id` is the `storage_id` of the package version that first introduced or added that type.
modulestringoptionalName of the module where this Datatype is defined
namestringoptionalName of this Datatype
abilitiesAbilityrepeatedThis type's abilities
type_parametersTypeParameterrepeatedAbility constraints and phantom status for this type's generic type parameters
kindDatatypeKindoptionalIndicates whether this datatype is a 'STRUCT' or an 'ENUM'
fieldsFieldDescriptorrepeatedSet of fields if this Datatype is a struct. The order of the entries is the order of how the fields are defined.
variantsVariantDescriptorrepeatedSet of variants if this Datatype is an enum. The order of the entries is the order of how the variants are defined.

FieldDescriptor

Descriptor of a field that belongs to a struct or enum variant

FieldTypeLabelDescription
namestringoptionalName of the field
positionuint32optionalOrder or position of the field in the struct or enum variant definition.
typeOpenSignatureBodyoptionalThe type of the field

FunctionDescriptor

Descriptor of a Move function

FieldTypeLabelDescription
namestringoptionalName of the function
visibilityVisibilityoptionalWhether the function is `public`, `private` or `public(friend)`
is_entrybooloptionalWhether the function is marked `entry` or not.
type_parametersTypeParameterrepeatedAbility constraints for type parameters
parametersOpenSignaturerepeatedFormal parameter types.
returnsOpenSignaturerepeatedReturn types.

Linkage

Upgraded package info for the linkage table.

FieldTypeLabelDescription
original_idstringoptionalId of the original package.
upgraded_idstringoptionalId of the upgraded package.
upgraded_versionuint64optionalVersion of the upgraded package.

Module

A Move Module.

FieldTypeLabelDescription
namestringoptionalName of this module.
contentsbytesoptionalSerialized bytecode of the module.
datatypesDatatypeDescriptorrepeatedList of DataTypes defined by this module.
functionsFunctionDescriptorrepeatedList of Functions defined by this module.

OpenSignature

Representation of a type signature that could appear as a function parameter or return value.

FieldTypeLabelDescription
referenceReferenceoptional
bodyOpenSignatureBodyoptional

OpenSignatureBody

Representation of a type signature that could appear as a field type for a struct or enum

FieldTypeLabelDescription
typeTypeoptionalType of this signature
type_namestringoptionalFully qualified name of the datatype when `type` is `DATATYPE`
type_parameter_instantiationOpenSignatureBodyrepeatedSet when `type` is `VECTOR` or `DATATYPE`
type_parameteruint32optionalPosition of the type parameter as defined in the containing data type descriptor when `type` is `TYPE_PARAMETER`

Package

A Move Package

FieldTypeLabelDescription
storage_idstringoptionalThe PackageId of this package A package's `storage_id` is the Sui ObjectId of the package on-chain. Outside of system packages the `storage_id` for every package version is different.
original_idstringoptionalThe PackageId of the first published version of this package. A package's `original_id` (sometimes also called its `runtime_id`) is the `storage_id` of the first version of this package that has been published. The `original_id`/`runtime_id` is stable across all versions of the package and does not ever change.
versionuint64optionalThe version of this package
modulesModulerepeatedThe modules defined by this package
type_originsTypeOriginrepeatedList of datatype origins for mapping datatypes to a package version where it was first defined
linkageLinkagerepeatedThe package's transitive dependencies as a mapping from the package's runtime Id (the Id it is referred to by in other packages) to its storage Id (the Id it is loaded from on chain).

TypeOrigin

Identifies a struct and the module it was defined in.

FieldTypeLabelDescription
module_namestringoptional
datatype_namestringoptional
package_idstringoptional

TypeParameter

A generic type parameter used in the declaration of a struct or enum.

FieldTypeLabelDescription
constraintsAbilityrepeatedThe type parameter constraints
is_phantombooloptionalWhether the parameter is declared as phantom

VariantDescriptor

Descriptor of an enum variant

FieldTypeLabelDescription
namestringoptionalName of the variant
positionuint32optionalOrder or position of the variant in the enum definition.
fieldsFieldDescriptorrepeatedSet of fields defined by this variant.

Argument

An argument to a programmable transaction command.

FieldTypeLabelDescription
kindArgumentKindoptional
inputuint32optionalIndex of an input when `kind` is `INPUT`.
resultuint32optionalIndex of a result when `kind` is `RESULT`.
subresultuint32optionalUsed to access a nested result when `kind` is `RESULT`.

LookupNameRequest

FieldTypeLabelDescription
namestringoptionalRequired. The SuiNS name to lookup. Supports both `@name` as well as `name.sui` formats.

LookupNameResponse

FieldTypeLabelDescription
recordNameRecordoptionalThe record for the requested name

NameRecord

FieldTypeLabelDescription
idstringoptionalId of this record. Note that records are stored on chain as dynamic fields of the type `Field<Domain,NameRecord>`.
namestringoptionalThe SuiNS name of this record
registration_nft_idstringoptionalThe ID of the `RegistrationNFT` assigned to this record. The owner of the corresponding `RegistrationNFT` has the rights to be able to change and adjust the `target_address` of this domain. It is possible that the ID changes if the record expires and is purchased by someone else.
expiration_timestampTimestampoptionalTimestamp when the record expires. This is either the expiration of the record itself or the expiration of this record's parent if this is a leaf record.
target_addressstringoptionalThe target address that this name points to
dataDataEntryrepeatedAdditional data which may be stored in a record

DataEntry

FieldTypeLabelDescription
keystring
valuestring

ReverseLookupNameRequest

FieldTypeLabelDescription
addressstringoptionalRequired. The address to perform a reverse lookup for.

ReverseLookupNameResponse

FieldTypeLabelDescription
recordNameRecordoptionalThe record for the SuiNS name linked to the requested address

ProtocolConfig

FieldTypeLabelDescription
protocol_versionuint64optional
feature_flagsFeatureFlagsEntryrepeated
attributesAttributesEntryrepeated

AttributesEntry

FieldTypeLabelDescription
keystring
valuestring

FeatureFlagsEntry

FieldTypeLabelDescription
keystring
valuebool

Owner

Enum of different types of ownership for an object.

FieldTypeLabelDescription
kindOwnerKindoptional
addressstringoptionalAddress or ObjectId of the owner
versionuint64optionalThe `initial_shared_version` if kind is `SHARED` or `start_version` if kind `CONSENSUS_ADDRESS`.

GetDatatypeRequest

FieldTypeLabelDescription
package_idstringoptionalRequired. The `storage_id` of the requested package.
module_namestringoptionalRequired. The name of the requested module.
namestringoptionalRequired. The name of the requested datatype.

GetDatatypeResponse

FieldTypeLabelDescription
datatypeDatatypeDescriptoroptionalThe datatype.

GetFunctionRequest

FieldTypeLabelDescription
package_idstringoptionalRequired. The `storage_id` of the requested package.
module_namestringoptionalRequired. The name of the requested module.
namestringoptionalRequired. The name of the requested function.

GetFunctionResponse

FieldTypeLabelDescription
functionFunctionDescriptoroptionalThe function.

GetPackageRequest

FieldTypeLabelDescription
package_idstringoptionalRequired. The `storage_id` of the requested package.

GetPackageResponse

FieldTypeLabelDescription
packagePackageoptionalThe package.

ListPackageVersionsRequest

FieldTypeLabelDescription
package_idstringoptionalRequired. The `storage_id` of any version of the package.
page_sizeuint32optionalThe maximum number of versions to return. The service may return fewer than this value. If unspecified, at most `1000` entries will be returned. The maximum value is `10000`; values above `10000` will be coerced to `10000`.
page_tokenbytesoptionalA page token, received from a previous `ListPackageVersions` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListPackageVersions` must match the call that provided the page token.

ListPackageVersionsResponse

FieldTypeLabelDescription
versionsPackageVersionrepeatedList of all package versions, ordered by version.
next_page_tokenbytesoptionalA token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.

PackageVersion

A simplified representation of a package version

FieldTypeLabelDescription
package_idstringoptionalThe storage ID of this package version
versionuint64optionalThe version number

Balance

Balance information for a specific coin type.

FieldTypeLabelDescription
coin_typestringoptionalThe type of the coin (e.g., 0x2::sui::SUI).
balanceuint64optionalThe total balance of `coin_type` in its smallest unit. This is the sum of all spendable amounts of `coin_type` (`address_balance` and `coin_balance`).
address_balanceuint64optionalThe balance of `Balance<T>` in this address's Address Balance.
coin_balanceuint64optionalThe balance of all `Coin<T>` objects owned by this address.

CoinMetadata

Metadata for a coin type

FieldTypeLabelDescription
idstringoptionalObjectId of the `0x2::coin::CoinMetadata` object or 0x2::sui::coin_registry::Currency object (when registered with CoinRegistry).
decimalsuint32optionalNumber of decimal places to coin uses.
namestringoptionalName for the token
symbolstringoptionalSymbol for the token
descriptionstringoptionalDescription of the token
icon_urlstringoptionalURL for the token logo
metadata_cap_idstringoptionalThe MetadataCap ID if it has been claimed for this coin type. This capability allows updating the coin's metadata fields. Only populated when metadata is from CoinRegistry.
metadata_cap_stateMetadataCapStateoptionalState of the MetadataCap for this coin type.

CoinTreasury

Information about a coin type's `0x2::coin::TreasuryCap` and its total available supply

FieldTypeLabelDescription
idstringoptionalObjectId of the `0x2::coin::TreasuryCap` object.
total_supplyuint64optionalTotal available supply for this coin type.
supply_stateSupplyStateoptionalSupply state indicating if the supply is fixed or can still be minted

DynamicField

FieldTypeLabelDescription
kindDynamicFieldKindoptional
parentstringoptionalObjectId of this dynamic field's parent.
field_idstringoptionalObjectId of this dynamic field.
field_objectObjectoptionalThe field object itself
nameBcsoptionalThe dynamic field's "name"
valueBcsoptionalThe dynamic field's "value"
value_typestringoptionalThe type of the dynamic field "value". If this is a dynamic object field then this is the type of the object itself (which is a child of this field), otherwise this is the type of the value of this field.
child_idstringoptionalThe ObjectId of the child object when a child is a dynamic object field. The presence or absence of this field can be used to determine if a child is a dynamic field or a dynamic child object
child_objectObjectoptionalThe object itself when a child is a dynamic object field.

GetBalanceRequest

Request message for `LiveDataService.GetBalance`.

FieldTypeLabelDescription
ownerstringoptionalRequired. The owner's Sui address.
coin_typestringoptionalRequired. The type names for the coin (e.g., 0x2::sui::SUI).

GetBalanceResponse

Response message for `LiveDataService.GetBalance`.
Return the total coin balance for one coin type, owned by the address owner.

FieldTypeLabelDescription
balanceBalanceoptionalThe balance information for the requested coin type.

GetCoinInfoRequest

Request message for `NodeService.GetCoinInfo`.

FieldTypeLabelDescription
coin_typestringoptionalThe coin type to request information about

GetCoinInfoResponse

Response message for `NodeService.GetCoinInfo`.

FieldTypeLabelDescription
coin_typestringoptionalRequired. The coin type.
metadataCoinMetadataoptionalThis field will be populated with information about this coin type's `0x2::coin::CoinMetadata` if it exists and has not been wrapped.
treasuryCoinTreasuryoptionalThis field will be populated with information about this coin type's `0x2::coin::TreasuryCap` if it exists and has not been wrapped.
regulated_metadataRegulatedCoinMetadataoptionalIf this coin type is a regulated coin, this field will be populated with information either from its Currency object in the CoinRegistry, or from its `0x2::coin::RegulatedCoinMetadata` object for coins that have not been migrated to the CoinRegistry If this coin is not known to be regulated, only the coin_regulated_state field will be populated.

ListBalancesRequest

Request message for `LiveDataService.ListBalances`.

FieldTypeLabelDescription
ownerstringoptionalRequired. The owner's Sui address.
page_sizeuint32optionalThe maximum number of balance entries to return. The service may return fewer than this value. If unspecified, at most `50` entries will be returned. The maximum value is `1000`; values above `1000` will be coerced to `1000`.
page_tokenbytesoptionalA page token, received from a previous `ListBalances` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListBalances` must match the call that provided the page token.

ListBalancesResponse

Response message for `LiveDataService.ListBalances`.
Return the total coin balance for all coin types, owned by the address owner.

FieldTypeLabelDescription
balancesBalancerepeatedThe list of coin types and their respective balances.
next_page_tokenbytesoptionalA token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.

ListDynamicFieldsRequest

Request message for `NodeService.ListDynamicFields`

FieldTypeLabelDescription
parentstringoptionalRequired. The `UID` of the parent, which owns the collections of dynamic fields.
page_sizeuint32optionalThe maximum number of dynamic fields to return. The service may return fewer than this value. If unspecified, at most `50` entries will be returned. The maximum value is `1000`; values above `1000` will be coerced to `1000`.
page_tokenbytesoptionalA page token, received from a previous `ListDynamicFields` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListDynamicFields` must match the call that provided the page token.
read_maskFieldMaskoptionalMask specifying which fields to read. If no mask is specified, defaults to `parent,field_id`.

ListDynamicFieldsResponse

Response message for `NodeService.ListDynamicFields`

FieldTypeLabelDescription
dynamic_fieldsDynamicFieldrepeatedPage of dynamic fields owned by the specified parent.
next_page_tokenbytesoptionalA token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.

ListOwnedObjectsRequest

FieldTypeLabelDescription
ownerstringoptionalRequired. The address of the account that owns the objects.
page_sizeuint32optionalThe maximum number of entries return. The service may return fewer than this value. If unspecified, at most `50` entries will be returned. The maximum value is `1000`; values above `1000` will be coerced to `1000`.
page_tokenbytesoptionalA page token, received from a previous `ListOwnedObjects` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListOwnedObjects` must match the call that provided the page token.
read_maskFieldMaskoptionalMask specifying which fields to read. If no mask is specified, defaults to `object_id,version,object_type`.
object_typestringoptionalOptional type filter to limit the types of objects listed. Providing an object type with no type params will return objects of that type with any type parameter, e.g. `0x2::coin::Coin` will return all `Coin<T>` objects regardless of the type parameter `T`. Providing a type with a type param will restrict the returned objects to only those objects that match the provided type parameters, e.g. `0x2::coin::Coin<0x2::sui::SUI>` will only return `Coin<SUI>` objects.

ListOwnedObjectsResponse

FieldTypeLabelDescription
objectsObjectrepeatedPage of dynamic fields owned by the specified parent.
next_page_tokenbytesoptionalA token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.

RegulatedCoinMetadata

Information about a regulated coin, which indicates that it makes use of the transfer deny list.

FieldTypeLabelDescription
idstringoptionalObjectId of the `0x2::coin::RegulatedCoinMetadata` object. Only present for coins that have not been migrated to CoinRegistry.
coin_metadata_objectstringoptionalThe ID of the coin's `CoinMetadata` or `CoinData` object.
deny_cap_objectstringoptionalThe ID of the coin's `DenyCap` object.
allow_global_pausebooloptionalWhether the coin can be globally paused
variantuint32optionalVariant of the regulated coin metadata
coin_regulated_stateCoinRegulatedStateoptionalIndicates the coin's regulated state.

CircomG1

A G1 point.

FieldTypeLabelDescription
e0stringoptionalbase10 encoded Bn254FieldElement
e1stringoptionalbase10 encoded Bn254FieldElement
e2stringoptionalbase10 encoded Bn254FieldElement

CircomG2

A G2 point.

FieldTypeLabelDescription
e00stringoptionalbase10 encoded Bn254FieldElement
e01stringoptionalbase10 encoded Bn254FieldElement
e10stringoptionalbase10 encoded Bn254FieldElement
e11stringoptionalbase10 encoded Bn254FieldElement
e20stringoptionalbase10 encoded Bn254FieldElement
e21stringoptionalbase10 encoded Bn254FieldElement

MultisigAggregatedSignature

Aggregated signature from members of a multisig committee.

FieldTypeLabelDescription
signaturesMultisigMemberSignaturerepeatedThe plain signatures encoded with signature scheme. The signatures must be in the same order as they are listed in the committee.
bitmapuint32optionalBitmap indicating which committee members contributed to the signature.
legacy_bitmapbytesoptionalIf present, means this signature's on-chain format uses the old legacy multisig format.
committeeMultisigCommitteeoptionalThe committee to use to validate this signature.

MultisigCommittee

A multisig committee.

FieldTypeLabelDescription
membersMultisigMemberrepeatedA list of committee members and their corresponding weight.
thresholduint32optionalThe threshold of signatures needed to validate a signature from this committee.

MultisigMember

A member in a multisig committee.

FieldTypeLabelDescription
public_keyMultisigMemberPublicKeyoptionalThe public key of the committee member.
weightuint32optionalThe weight of this member's signature.

MultisigMemberPublicKey

Set of valid public keys for multisig committee members.

FieldTypeLabelDescription
schemeSignatureSchemeoptionalThe signature scheme of this public key.
public_keybytesoptionalPublic key bytes if scheme is ed25519 | secp256k1 | secp256r1 | passkey.
zkloginZkLoginPublicIdentifieroptionalA zklogin public identifier if scheme is zklogin.

MultisigMemberSignature

A signature from a member of a multisig committee.

FieldTypeLabelDescription
schemeSignatureSchemeoptionalThe signature scheme of this signature.
signaturebytesoptionalSignature bytes if scheme is ed25519 | secp256k1 | secp256r1.
zkloginZkLoginAuthenticatoroptionalThe zklogin authenticator if scheme is `ZKLOGIN`.
passkeyPasskeyAuthenticatoroptionalThe passkey authenticator if scheme is `PASSKEY`.

PasskeyAuthenticator

A passkey authenticator.

See
[struct.PasskeyAuthenticator](https://mystenlabs.github.io/sui-rust-sdk/sui_sdk_types/struct.PasskeyAuthenticator.html#bcs)
for more information on the requirements on the shape of the
`client_data_json` field.

FieldTypeLabelDescription
authenticator_databytesoptionalOpaque authenticator data for this passkey signature. See [Authenticator Data](https://www.w3.org/TR/webauthn-2/#sctn-authenticator-data) for more information on this field.
client_data_jsonstringoptionalStructured, unparsed, JSON for this passkey signature. See [CollectedClientData](https://www.w3.org/TR/webauthn-2/#dictdef-collectedclientdata) for more information on this field.
signatureSimpleSignatureoptionalA secp256r1 signature.

SimpleSignature

Either an ed25519, secp256k1 or secp256r1 signature

FieldTypeLabelDescription
schemeSignatureSchemeoptionalThe signature scheme of this signature.
signaturebytesoptionalSignature bytes
public_keybytesoptionalPublic key bytes

UserSignature

A signature from a user.

FieldTypeLabelDescription
bcsBcsoptionalThis signature serialized as as BCS. When provided as input this will support both the form that is length prefixed as well as not length prefixed.
schemeSignatureSchemeoptionalThe signature scheme of this signature.
simpleSimpleSignatureSimple signature if scheme is ed25519 | secp256k1 | secp256r1.
multisigMultisigAggregatedSignatureThe multisig aggregated signature if scheme is `MULTISIG`.
zkloginZkLoginAuthenticatorThe zklogin authenticator if scheme is `ZKLOGIN`.
passkeyPasskeyAuthenticatorThe passkey authenticator if scheme is `PASSKEY`.

ValidatorAggregatedSignature

An aggregated signature from multiple validators.

FieldTypeLabelDescription
epochuint64optionalThe epoch when this signature was produced. This can be used to lookup the `ValidatorCommittee` from this epoch to verify this signature.
signaturebytesoptionalThe 48-byte Bls12381 aggregated signature.
bitmapbytesoptionalBitmap indicating which members of the committee contributed to this signature.

ValidatorCommittee

The validator set for a particular epoch.

FieldTypeLabelDescription
epochuint64optionalThe epoch where this committee governs.
membersValidatorCommitteeMemberrepeatedThe committee members.

ValidatorCommitteeMember

A member of a validator committee.

FieldTypeLabelDescription
public_keybytesoptionalThe 96-byte Bls12381 public key for this validator.
weightuint64optionalvoting weight this validator possesses.

ZkLoginAuthenticator

A zklogin authenticator.

FieldTypeLabelDescription
inputsZkLoginInputsoptionalZklogin proof and inputs required to perform proof verification.
max_epochuint64optionalMaximum epoch for which the proof is valid.
signatureSimpleSignatureoptionalUser signature with the public key attested to by the provided proof.
public_identifierZkLoginPublicIdentifieroptionalThe public identifier (similar to a public key) for this zklogin authenticator
jwk_idJwkIdoptionalThe id of the JWK used to authorize this zklogin authenticator

ZkLoginClaim

A claim of the iss in a zklogin proof.

FieldTypeLabelDescription
valuestringoptional
index_mod_4uint32optional

ZkLoginInputs

A zklogin groth16 proof and the required inputs to perform proof verification.

FieldTypeLabelDescription
proof_pointsZkLoginProofoptional
iss_base64_detailsZkLoginClaimoptional
header_base64stringoptional
address_seedstringoptionalbase10 encoded Bn254FieldElement

ZkLoginProof

A zklogin groth16 proof.

FieldTypeLabelDescription
aCircomG1optional
bCircomG2optional
cCircomG1optional

ZkLoginPublicIdentifier

Public key equivalent for zklogin authenticators.

FieldTypeLabelDescription
issstringoptional
address_seedstringoptionalbase10 encoded Bn254FieldElement

CleverError

FieldTypeLabelDescription
error_codeuint64optional
line_numberuint64optional
constant_namestringoptional
constant_typestringoptional
renderedstring
rawbytes

CoinDenyListError

FieldTypeLabelDescription
addressstringoptionalDenied address.
coin_typestringoptionalCoin type.

CommandArgumentError

An error with an argument to a command.

FieldTypeLabelDescription
argumentuint32optionalPosition of the problematic argument.
kindCommandArgumentErrorKindoptional
index_errorIndexErroroptional

CongestedObjects

Set of objects that were congested, leading to the transaction's cancellation.

FieldTypeLabelDescription
objectsstringrepeated

ExecutionError

An error that can occur during the execution of a transaction.

FieldTypeLabelDescription
descriptionstringoptionalA human readable description of the error
commanduint64optionalThe command, if any, during which the error occurred.
kindExecutionErrorKindoptional
abortMoveAbort
size_errorSizeError
command_argument_errorCommandArgumentError
type_argument_errorTypeArgumentError
package_upgrade_errorPackageUpgradeError
index_errorIndexError
object_idstring
coin_deny_list_errorCoinDenyListError
congested_objectsCongestedObjectsSet of objects that were congested, leading to the transaction's cancellation.

ExecutionStatus

The status of an executed transaction.

FieldTypeLabelDescription
successbooloptionalIndicates if the transaction was successful or not.
errorExecutionErroroptionalThe error if `success` is false.

IndexError

FieldTypeLabelDescription
indexuint32optionalIndex of an input or result.
subresultuint32optionalIndex of a subresult.

MoveAbort

FieldTypeLabelDescription
abort_codeuint64optional
locationMoveLocationoptionalLocation in Move where the error occurred.
clever_errorCleverErroroptionalExtra error information if abort code is a "Clever Error"

MoveLocation

Location in Move bytecode where an error occurred.

FieldTypeLabelDescription
packagestringoptionalThe package ID.
modulestringoptionalThe module name.
functionuint32optionalThe function index.
instructionuint32optionalOffset of the instruction where the error occurred.
function_namestringoptionalThe name of the function, if available.

PackageUpgradeError

An error with upgrading a package.

FieldTypeLabelDescription
kindPackageUpgradeErrorKindoptional
package_idstringoptionalThe Package Id.
digeststringoptionalA digest.
policyuint32optionalThe policy.
ticket_idstringoptionalThe ticket Id.

SizeError

A size error.

FieldTypeLabelDescription
sizeuint64optionalThe offending size.
max_sizeuint64optionalThe maximum allowable size.

TypeArgumentError

Type argument error.

FieldTypeLabelDescription
type_argumentuint32optionalIndex of the problematic type argument.
kindTypeArgumentErrorKindoptional

ObjectReference

Reference to an object.

FieldTypeLabelDescription
object_idstringoptionalThe object id of this object.
versionuint64optionalThe version of this object.
digeststringoptionalThe digest of this object.

ActiveJwk

A new JWK.

FieldTypeLabelDescription
idJwkIdoptionalIdentifier used to uniquely identify a JWK.
jwkJwkoptionalThe JWK.
epochuint64optionalMost recent epoch in which the JWK was validated.

AuthenticatorStateExpire

Expire old JWKs.

FieldTypeLabelDescription
min_epochuint64optionalExpire JWKs that have a lower epoch than this.
authenticator_object_initial_shared_versionuint64optionalThe initial version of the authenticator object that it was shared at.

AuthenticatorStateUpdate

Update the set of valid JWKs.

FieldTypeLabelDescription
epochuint64optionalEpoch of the authenticator state update transaction.
rounduint64optionalConsensus round of the authenticator state update.
new_active_jwksActiveJwkrepeatedNewly active JWKs.
authenticator_object_initial_shared_versionuint64optionalThe initial version of the authenticator object that it was shared at.

CanceledTransaction

A transaction that was canceled.

FieldTypeLabelDescription
digeststringoptionalDigest of the canceled transaction.
version_assignmentsVersionAssignmentrepeatedList of object version assignments.

ChangeEpoch

System transaction used to change the epoch.

FieldTypeLabelDescription
epochuint64optionalThe next (to become) epoch ID.
protocol_versionuint64optionalThe protocol version in effect in the new epoch.
storage_chargeuint64optionalThe total amount of gas charged for storage during the epoch.
computation_chargeuint64optionalThe total amount of gas charged for computation during the epoch.
storage_rebateuint64optionalThe amount of storage rebate refunded to the txn senders.
non_refundable_storage_feeuint64optionalThe non-refundable storage fee.
epoch_start_timestampTimestampoptionalUnix timestamp when epoch started.
system_packagesSystemPackagerepeatedSystem packages (specifically framework and Move stdlib) that are written before the new epoch starts. This tracks framework upgrades on chain. When executing the `ChangeEpoch` txn, the validator must write out the following modules. Modules are provided with the version they will be upgraded to, their modules in serialized form (which include their package ID), and a list of their transitive dependencies.

Command

A single command in a programmable transaction.

FieldTypeLabelDescription
move_callMoveCallA call to either an entry or a public Move function.
transfer_objectsTransferObjects`(Vec<forall T:key+store. T>, address)` It sends n-objects to the specified address. These objects must have store (public transfer) and either the previous owner must be an address or the object must be newly created.
split_coinsSplitCoins`(&mut Coin<T>, Vec<u64>)` -> `Vec<Coin<T>>` It splits off some amounts into new coins with those amounts.
merge_coinsMergeCoins`(&mut Coin<T>, Vec<Coin<T>>)` It merges n-coins into the first coin.
publishPublishPublishes a Move package. It takes the package bytes and a list of the package's transitive dependencies to link against on chain.
make_move_vectorMakeMoveVector`forall T: Vec<T> -> vector<T>` Given n-values of the same type, it constructs a vector. For non-objects or an empty vector, the type tag must be specified.
upgradeUpgradeUpgrades a Move package. Takes (in order): 1. A vector of serialized modules for the package. 2. A vector of object ids for the transitive dependencies of the new package. 3. The object ID of the package being upgraded. 4. An argument holding the `UpgradeTicket` that must have been produced from an earlier command in the same programmable transaction.

ConsensusCommitPrologue

Consensus commit prologue system transaction.

This message can represent V1, V2, and V3 prologue types.

FieldTypeLabelDescription
epochuint64optionalEpoch of the commit prologue transaction. Present in V1, V2, V3, V4.
rounduint64optionalConsensus round of the commit. Present in V1, V2, V3, V4.
commit_timestampTimestampoptionalUnix timestamp from consensus. Present in V1, V2, V3, V4.
consensus_commit_digeststringoptionalDigest of consensus output. Present in V2, V3, V4.
sub_dag_indexuint64optionalThe sub DAG index of the consensus commit. This field is populated if there are multiple consensus commits per round. Present in V3, V4.
consensus_determined_version_assignmentsConsensusDeterminedVersionAssignmentsoptionalStores consensus handler determined consensus object version assignments. Present in V3, V4.
additional_state_digeststringoptionalDigest of any additional state computed by the consensus handler. Used to detect forking bugs as early as possible. Present in V4.

ConsensusDeterminedVersionAssignments

Version assignments performed by consensus.

FieldTypeLabelDescription
versionint32optionalVersion of this message
canceled_transactionsCanceledTransactionrepeatedCanceled transaction version assignment.

EndOfEpochTransaction

Set of operations run at the end of the epoch to close out the current epoch
and start the next one.

FieldTypeLabelDescription
transactionsEndOfEpochTransactionKindrepeated

EndOfEpochTransactionKind

Operation run at the end of an epoch.

FieldTypeLabelDescription
kindKindoptional
change_epochChangeEpochEnd the epoch and start the next one.
authenticator_state_expireAuthenticatorStateExpireExpire JWKs used for zklogin.
execution_time_observationsExecutionTimeObservationsExecution time observations from the committee to preserve cross epoch
bridge_chain_idstringChainId used when initializing the bridge
bridge_object_versionuint64Start version of the Bridge object
storage_costuint64Contains the end-of-epoch-computed storage cost for accumulator objects.

ExecutionTimeObservation

FieldTypeLabelDescription
kindExecutionTimeObservationKindoptional
move_entry_pointMoveCalloptional
validator_observationsValidatorExecutionTimeObservationrepeated

ExecutionTimeObservations

FieldTypeLabelDescription
versionint32optionalVersion of this ExecutionTimeObservations
observationsExecutionTimeObservationrepeated

GasPayment

Payment information for executing a transaction.

FieldTypeLabelDescription
objectsObjectReferencerepeatedSet of gas objects to use for payment.
ownerstringoptionalOwner of the gas objects, either the transaction sender or a sponsor.
priceuint64optionalGas unit price to use when charging for computation. Must be greater than or equal to the network's current RGP (reference gas price).
budgetuint64optionalTotal budget willing to spend for the execution of a transaction.

GenesisTransaction

The genesis transaction.

FieldTypeLabelDescription
objectsObjectrepeatedSet of genesis objects.

MakeMoveVector

Command to build a Move vector out of a set of individual elements.

FieldTypeLabelDescription
element_typestringoptionalType of the individual elements. This is required to be set when the type can't be inferred, for example when the set of provided arguments are all pure input values.
elementsArgumentrepeatedThe set individual elements to build the vector with.

MergeCoins

Command to merge multiple coins of the same type into a single coin.

FieldTypeLabelDescription
coinArgumentoptionalCoin to merge coins into.
coins_to_mergeArgumentrepeatedSet of coins to merge into `coin`. All listed coins must be of the same type and be the same type as `coin`

MoveCall

Command to call a Move function.

Functions that can be called by a `MoveCall` command are those that have a function signature
that is either `entry` or `public` (which don't have a reference return type).

FieldTypeLabelDescription
packagestringoptionalThe package containing the module and function.
modulestringoptionalThe specific module in the package containing the function.
functionstringoptionalThe function to be called.
type_argumentsstringrepeatedThe type arguments to the function.
argumentsArgumentrepeatedThe arguments to the function.

ProgrammableTransaction

A user transaction.

Contains a series of native commands and Move calls where the results of one command can be
used in future commands.

FieldTypeLabelDescription
inputsInputrepeatedInput objects or primitive values.
commandsCommandrepeatedThe commands to be executed sequentially. A failure in any command results in the failure of the entire transaction.

Publish

Command to publish a new Move package.

FieldTypeLabelDescription
modulesbytesrepeatedThe serialized Move modules.
dependenciesstringrepeatedSet of packages that the to-be published package depends on.

RandomnessStateUpdate

Randomness update.

FieldTypeLabelDescription
epochuint64optionalEpoch of the randomness state update transaction.
randomness_rounduint64optionalRandomness round of the update.
random_bytesbytesoptionalUpdated random bytes.
randomness_object_initial_shared_versionuint64optionalThe initial version of the randomness object that it was shared at.

SplitCoins

Command to split a single coin object into multiple coins.

FieldTypeLabelDescription
coinArgumentoptionalThe coin to split.
amountsArgumentrepeatedThe amounts to split off.

SystemPackage

System package.

FieldTypeLabelDescription
versionuint64optionalVersion of the package.
modulesbytesrepeatedMove modules.
dependenciesstringrepeatedPackage dependencies.

Transaction

A transaction.

FieldTypeLabelDescription
bcsBcsoptionalThis Transaction serialized as BCS.
digeststringoptionalThe digest of this Transaction.
versionint32optionalVersion of this Transaction.
kindTransactionKindoptional
senderstringoptional
gas_paymentGasPaymentoptional
expirationTransactionExpirationoptional

TransactionExpiration

A TTL for a transaction.

FieldTypeLabelDescription
kindTransactionExpirationKindoptional
epochuint64optionalMaximum epoch in which a transaction can be executed. The provided maximal epoch must be greater than or equal to the current epoch for a transaction to execute.
min_epochuint64optionalMinimal epoch in which a transaction can be executed. The provided minimal epoch must be less than or equal to the current epoch for a transaction to execute.
min_timestampTimestampoptionalMinimal UNIX timestamp in which a transaction can be executed. The provided minimal timestamp must be less than or equal to the current clock.
max_timestampTimestampoptionalMaximum UNIX timestamp in which a transaction can be executed. The provided maximal timestamp must be greater than or equal to the current clock.
chainstringoptionalChainId of the network this transaction is intended for in order to prevent cross-chain replay
nonceuint32optionalUser-provided uniqueness identifier to differentiate otherwise identical transactions

TransactionKind

Transaction type.

FieldTypeLabelDescription
kindKindoptional
programmable_transactionProgrammableTransactionA transaction comprised of a list of native commands and Move calls.
change_epochChangeEpochSystem transaction used to end an epoch. The `ChangeEpoch` variant is now deprecated (but the `ChangeEpoch` struct is still used by `EndOfEpochTransaction`).
genesisGenesisTransactionTransaction used to initialize the chain state. Only valid if in the genesis checkpoint (0) and if this is the very first transaction ever executed on the chain.
consensus_commit_prologueConsensusCommitPrologueconsensus commit update info
authenticator_state_updateAuthenticatorStateUpdateUpdate set of valid JWKs used for zklogin.
end_of_epochEndOfEpochTransactionSet of operations to run at the end of the epoch to close out the current epoch and start the next one.
randomness_state_updateRandomnessStateUpdateRandomness update.

TransferObjects

Command to transfer ownership of a set of objects to an address.

FieldTypeLabelDescription
objectsArgumentrepeatedSet of objects to transfer.
addressArgumentoptionalThe address to transfer ownership to.

Upgrade

Command to upgrade an already published package.

FieldTypeLabelDescription
modulesbytesrepeatedThe serialized Move modules.
dependenciesstringrepeatedSet of packages that the to-be published package depends on.
packagestringoptionalPackage ID of the package to upgrade.
ticketArgumentoptionalTicket authorizing the upgrade.

ValidatorExecutionTimeObservation

FieldTypeLabelDescription
validatorbytesoptionalBls12381 public key of the validator
durationDurationoptionalDuration of an execution observation

VersionAssignment

Object version assignment from consensus.

FieldTypeLabelDescription
object_idstringoptional`ObjectId` of the object.
start_versionuint64optionalstart version of the consensus stream for this object
versionuint64optionalAssigned version.

Epoch

FieldTypeLabelDescription
epochuint64optional
committeeValidatorCommitteeoptionalThe committee governing this epoch.
system_stateSystemStateoptionalSnapshot of Sui's SystemState (`0x3::sui_system::SystemState`) at the beginning of the epoch, for past epochs, or the current state for the current epoch.
first_checkpointuint64optional
last_checkpointuint64optional
startTimestampoptional
endTimestampoptional
reference_gas_priceuint64optionalReference gas price denominated in MIST
protocol_configProtocolConfigoptional

CheckpointCommitment

A commitment made by a checkpoint.

FieldTypeLabelDescription
kindCheckpointCommitmentKindoptional
digeststringoptional

CheckpointSummary

A header for a checkpoint on the Sui blockchain.

On the Sui network, checkpoints define the history of the blockchain. They are quite similar to
the concept of blocks used by other blockchains like Bitcoin or Ethereum. The Sui blockchain,
however, forms checkpoints after transaction execution has already happened to provide a
certified history of the chain, instead of being formed before execution.

Checkpoints commit to a variety of state, including but not limited to:
- The hash of the previous checkpoint.
- The set of transaction digests, their corresponding effects digests, as well as the set of
user signatures that authorized its execution.
- The objects produced by a transaction.
- The set of live objects that make up the current state of the chain.
- On epoch transitions, the next validator committee.

`CheckpointSummary`s themselves don't directly include all of the previous information but they
are the top-level type by which all the information is committed to transitively via cryptographic
hashes included in the summary. `CheckpointSummary`s are signed and certified by a quorum of
the validator committee in a given epoch to allow verification of the chain's state.

FieldTypeLabelDescription
bcsBcsoptionalThis CheckpointSummary serialized as BCS.
digeststringoptionalThe digest of this CheckpointSummary.
epochuint64optionalEpoch that this checkpoint belongs to.
sequence_numberuint64optionalThe height of this checkpoint.
total_network_transactionsuint64optionalTotal number of transactions committed since genesis, including those in this checkpoint.
content_digeststringoptionalThe hash of the `CheckpointContents` for this checkpoint.
previous_digeststringoptionalThe hash of the previous `CheckpointSummary`. This will be `None` only for the first, or genesis, checkpoint.
epoch_rolling_gas_cost_summaryGasCostSummaryoptionalThe running total gas costs of all transactions included in the current epoch so far until this checkpoint.
timestampTimestampoptionalTimestamp of the checkpoint - number of milliseconds from the Unix epoch Checkpoint timestamps are monotonic, but not strongly monotonic - subsequent checkpoints can have the same timestamp if they originate from the same underlining consensus commit.
commitmentsCheckpointCommitmentrepeatedCommitments to checkpoint-specific state.
end_of_epoch_dataEndOfEpochDataoptionalExtra data only present in the final checkpoint of an epoch.
version_specific_databytesoptional`CheckpointSummary` is not an evolvable structure - it must be readable by any version of the code. Therefore, to allow extensions to be added to `CheckpointSummary`, opaque data can be added to checkpoints, which can be deserialized based on the current protocol version.

EndOfEpochData

Data, which when included in a `CheckpointSummary`, signals the end of an `Epoch`.

FieldTypeLabelDescription
next_epoch_committeeValidatorCommitteeMemberrepeatedThe set of validators that will be in the `ValidatorCommittee` for the next epoch.
next_epoch_protocol_versionuint64optionalThe protocol version that is in effect during the next epoch.
epoch_commitmentsCheckpointCommitmentrepeatedCommitments to epoch specific state (live object set)

GasCostSummary

Summary of gas charges.

FieldTypeLabelDescription
computation_costuint64optionalCost of computation/execution.
storage_costuint64optionalStorage cost, it's the sum of all storage cost for all objects created or mutated.
storage_rebateuint64optionalThe amount of storage cost refunded to the user for all objects deleted or mutated in the transaction.
non_refundable_storage_feeuint64optionalThe fee for the rebate. The portion of the storage rebate kept by the system.