Skip to main content

Full Node Protocol

The Full node protocol API is available on all Sui Full nodes.

BalanceChange

FieldTypeLabelDescription
addresssui.types.Addressoptional
coin_typesui.types.TypeTagoptional
amountsui.types.I128optional

BalanceChanges

FieldTypeLabelDescription
balance_changesBalanceChangerepeated

EffectsFinality

FieldTypeLabelDescription
certifiedsui.types.ValidatorAggregatedSignature
checkpointeduint64
quorum_executedgoogle.protobuf.Empty

ExecuteTransactionOptions

FieldTypeLabelDescription
effectsbooloptionalInclude the sui.types.TransactionEffects message in the response. Defaults to false if not included
effects_bcsbooloptionalInclude the TransactionEffects formatted as BCS in the response. Defaults to false if not included
eventsbooloptionalInclude the sui.types.TransactionEvents message in the response. Defaults to false if not included
events_bcsbooloptionalInclude the TransactionEvents formatted as BCS in the response. Defaults to false if not included
balance_changesbooloptionalInclude the BalanceChanges in the response. Defaults to false if not included

ExecuteTransactionRequest

FieldTypeLabelDescription
transactionsui.types.Transactionoptional
transaction_bcssui.types.Bcsoptional
signaturesUserSignaturesoptional
signatures_bytesUserSignaturesBytesoptional
optionsExecuteTransactionOptionsoptional

ExecuteTransactionResponse

FieldTypeLabelDescription
finalityEffectsFinalityoptional
effectssui.types.TransactionEffectsoptional
effects_bcssui.types.Bcsoptional
eventssui.types.TransactionEventsoptional
events_bcssui.types.Bcsoptional
balance_changesBalanceChangesoptional

FullCheckpointObject

FieldTypeLabelDescription
object_idsui.types.ObjectIdoptional
versionuint64optional
digestsui.types.DigestoptionalThe digest of this object
objectsui.types.Objectoptional
object_bcssui.types.Bcsoptional

FullCheckpointObjects

FieldTypeLabelDescription
objectsFullCheckpointObjectrepeated

FullCheckpointTransaction

FieldTypeLabelDescription
digestsui.types.DigestoptionalThe digest of this transaction
transactionsui.types.Transactionoptional
transaction_bcssui.types.Bcsoptional
effectssui.types.TransactionEffectsoptional
effects_bcssui.types.Bcsoptional
eventssui.types.TransactionEventsoptional
events_bcssui.types.Bcsoptional
input_objectsFullCheckpointObjectsoptional
output_objectsFullCheckpointObjectsoptional

GetCheckpointOptions

FieldTypeLabelDescription
summarybooloptionalInclude the sui.types.CheckpointSummary in the response. Defaults to false if not included
summary_bcsbooloptionalInclude the CheckpointSummary formatted as BCS in the response. Defaults to false if not included
signaturebooloptionalInclude the sui.types.ValidatorAggregatedSignature in the response. Defaults to false if not included
contentsbooloptionalInclude the sui.types.CheckpointContents message in the response. Defaults to false if not included
contents_bcsbooloptionalInclude the CheckpointContents formatted as BCS in the response. Defaults to false if not included

GetCheckpointRequest

FieldTypeLabelDescription
sequence_numberuint64optional
digestsui.types.Digestoptional
optionsGetCheckpointOptionsoptional

GetCheckpointResponse

FieldTypeLabelDescription
sequence_numberuint64optionalThe sequence number of this Checkpoint
digestsui.types.DigestoptionalThe digest of this Checkpoint's CheckpointSummary
summarysui.types.CheckpointSummaryoptional
summary_bcssui.types.Bcsoptional
signaturesui.types.ValidatorAggregatedSignatureoptional
contentssui.types.CheckpointContentsoptional
contents_bcssui.types.Bcsoptional

GetCommitteeRequest

FieldTypeLabelDescription
epochuint64optional

GetCommitteeResponse

FieldTypeLabelDescription
committeesui.types.ValidatorCommitteeoptional

GetFullCheckpointOptions

FieldTypeLabelDescription
summarybooloptionalInclude the sui.types.CheckpointSummary in the response. Defaults to false if not included
summary_bcsbooloptionalInclude the CheckpointSummary formatted as BCS in the response. Defaults to false if not included
signaturebooloptionalInclude the sui.types.ValidatorAggregatedSignature in the response. Defaults to false if not included
contentsbooloptionalInclude the sui.types.CheckpointContents message in the response. Defaults to false if not included
contents_bcsbooloptionalInclude the CheckpointContents formatted as BCS in the response. Defaults to false if not included
transactionbooloptionalInclude the sui.types.Transaction message in the response. Defaults to false if not included
transaction_bcsbooloptionalInclude the Transaction formatted as BCS in the response. Defaults to false if not included
effectsbooloptionalInclude the sui.types.TransactionEffects message in the response. Defaults to false if not included
effects_bcsbooloptionalInclude the TransactionEffects formatted as BCS in the response. Defaults to false if not included
eventsbooloptionalInclude the sui.types.TransactionEvents message in the response. Defaults to false if not included
events_bcsbooloptionalInclude the TransactionEvents formatted as BCS in the response. Defaults to false if not included
input_objectsbooloptionalInclude the input objects for transactions in the response. Defaults to false if not included
output_objectsbooloptionalInclude the output objects for transactions in the response. Defaults to false if not included
objectbooloptionalInclude the sui.types.Object message in the response. Defaults to false if not included
object_bcsbooloptionalInclude the Object formatted as BCS in the response. Defaults to false if not included

GetFullCheckpointRequest

FieldTypeLabelDescription
sequence_numberuint64optional
digestsui.types.Digestoptional
optionsGetFullCheckpointOptionsoptional

GetFullCheckpointResponse

FieldTypeLabelDescription
sequence_numberuint64optionalThe sequence number of this Checkpoint
digestsui.types.DigestoptionalThe digest of this Checkpoint's CheckpointSummary
summarysui.types.CheckpointSummaryoptional
summary_bcssui.types.Bcsoptional
signaturesui.types.ValidatorAggregatedSignatureoptional
contentssui.types.CheckpointContentsoptional
contents_bcssui.types.Bcsoptional
transactionsFullCheckpointTransactionrepeated

GetNodeInfoRequest

GetNodeInfoResponse

FieldTypeLabelDescription
chain_idsui.types.DigestoptionalThe chain identifier of the chain that this Node is on
chainstringoptionalHuman readable name of the chain that this Node is on
epochuint64optionalCurrent epoch of the Node based on its highest executed checkpoint
checkpoint_heightuint64optionalCheckpoint height of the most recently executed checkpoint
timestampgoogle.protobuf.TimestampoptionalUnix timestamp of the most recently executed checkpoint
lowest_available_checkpointuint64optionalThe lowest checkpoint for which checkpoints and transaction data is available
lowest_available_checkpoint_objectsuint64optionalThe lowest checkpoint for which object data is available
software_versionstringoptional

GetObjectOptions

FieldTypeLabelDescription
objectbooloptionalInclude the sui.types.Object message in the response. Defaults to false if not included
object_bcsbooloptionalInclude the Object formatted as BCS in the response. Defaults to false if not included

GetObjectRequest

FieldTypeLabelDescription
object_idsui.types.ObjectIdoptional
versionuint64optional
optionsGetObjectOptionsoptional

GetObjectResponse

FieldTypeLabelDescription
object_idsui.types.ObjectIdoptional
versionuint64optional
digestsui.types.DigestoptionalThe digest of this object
objectsui.types.Objectoptional
object_bcssui.types.Bcsoptional

GetTransactionOptions

FieldTypeLabelDescription
transactionbooloptionalInclude the sui.types.Transaction message in the response. Defaults to false if not included
transaction_bcsbooloptionalInclude the Transaction formatted as BCS in the response. Defaults to false if not included
signaturesbooloptionalInclude the set of sui.types.UserSignature's in the response. Defaults to false if not included
signatures_bytesbooloptionalInclude the set of UserSignature's encoded as bytes in the response. Defaults to false if not included
effectsbooloptionalInclude the sui.types.TransactionEffects message in the response. Defaults to false if not included
effects_bcsbooloptionalInclude the TransactionEffects formatted as BCS in the response. Defaults to false if not included
eventsbooloptionalInclude the sui.types.TransactionEvents message in the response. Defaults to false if not included
events_bcsbooloptionalInclude the TransactionEvents formatted as BCS in the response. Defaults to false if not included

GetTransactionRequest

FieldTypeLabelDescription
digestsui.types.Digestoptional
optionsGetTransactionOptionsoptional

GetTransactionResponse

FieldTypeLabelDescription
digestsui.types.DigestoptionalThe digest of this transaction
transactionsui.types.Transactionoptional
transaction_bcssui.types.Bcsoptional
signaturesUserSignaturesoptional
signatures_bytesUserSignaturesBytesoptional
effectssui.types.TransactionEffectsoptional
effects_bcssui.types.Bcsoptional
eventssui.types.TransactionEventsoptional
events_bcssui.types.Bcsoptional
checkpointuint64optional
timestampgoogle.protobuf.Timestampoptional

UserSignatures

FieldTypeLabelDescription
signaturessui.types.UserSignaturerepeated

UserSignaturesBytes

FieldTypeLabelDescription
signaturesbytesrepeated

NodeService

Method NameRequest TypeResponse TypeDescription
GetNodeInfoGetNodeInfoRequestGetNodeInfoResponse
GetCommitteeGetCommitteeRequestGetCommitteeResponse
GetObjectGetObjectRequestGetObjectResponse
GetTransactionGetTransactionRequestGetTransactionResponse
GetCheckpointGetCheckpointRequestGetCheckpointResponse
GetFullCheckpointGetFullCheckpointRequestGetFullCheckpointResponse
ExecuteTransactionExecuteTransactionRequestExecuteTransactionResponse

sui.types.proto

ActiveJwk

FieldTypeLabelDescription
idJwkIdoptional
jwkJwkoptional
epochuint64optional

Address

FieldTypeLabelDescription
addressbytesoptional

AddressDeniedForCoinError

FieldTypeLabelDescription
addressAddressoptional
coin_typestringoptional

Argument

FieldTypeLabelDescription
gasgoogle.protobuf.Empty
inputuint32
resultuint32
nested_resultNestedResult

AuthenticatorStateExpire

FieldTypeLabelDescription
min_epochuint64optional
authenticator_object_initial_shared_versionuint64optional

AuthenticatorStateUpdate

FieldTypeLabelDescription
epochuint64optional
rounduint64optional
new_active_jwksActiveJwkrepeated
authenticator_object_initial_shared_versionuint64optional

Bcs

FieldTypeLabelDescription
bcsbytesoptional

Bn254FieldElement

FieldTypeLabelDescription
elementbytesoptional

CancelledTransaction

FieldTypeLabelDescription
digestDigestoptional
version_assignmentsVersionAssignmentrepeated

CancelledTransactions

FieldTypeLabelDescription
cancelled_transactionsCancelledTransactionrepeated

ChangeEpoch

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_timestamp_msuint64optionalUnix 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 modules below. 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.

ChangedObject

FieldTypeLabelDescription
object_idObjectIdoptional
not_existgoogle.protobuf.Empty
existObjectExist
removedgoogle.protobuf.Empty
object_writeObjectWrite
package_writePackageWrite
nonegoogle.protobuf.Empty
createdgoogle.protobuf.Empty
deletedgoogle.protobuf.Empty

CheckpointCommitment

FieldTypeLabelDescription
ecmh_live_object_setDigest

CheckpointContents

FieldTypeLabelDescription
v1CheckpointContents.V1

CheckpointContents.V1

FieldTypeLabelDescription
transactionsCheckpointedTransactionInforepeated

CheckpointSummary

FieldTypeLabelDescription
epochuint64optional
sequence_numberuint64optional
total_network_transactionsuint64optional
content_digestDigestoptional
previous_digestDigestoptional
epoch_rolling_gas_cost_summaryGasCostSummaryoptional
timestamp_msuint64optional
commitmentsCheckpointCommitmentrepeated
end_of_epoch_dataEndOfEpochDataoptional
version_specific_databytesoptional

CheckpointedTransactionInfo

FieldTypeLabelDescription
transactionDigestoptionalTransactionDigest
effectsDigestoptionalEffectsDigest
signaturesUserSignaturerepeated

CircomG1

FieldTypeLabelDescription
e0Bn254FieldElementoptional
e1Bn254FieldElementoptional
e2Bn254FieldElementoptional

CircomG2

FieldTypeLabelDescription
e00Bn254FieldElementoptional
e01Bn254FieldElementoptional
e10Bn254FieldElementoptional
e11Bn254FieldElementoptional
e20Bn254FieldElementoptional
e21Bn254FieldElementoptional

Command

FieldTypeLabelDescription
move_callMoveCall
transfer_objectsTransferObjects
split_coinsSplitCoins
merge_coinsMergeCoins
publishPublish
make_move_vectorMakeMoveVector
upgradeUpgrade

CommandArgumentError

FieldTypeLabelDescription
argumentuint32optional
type_mismatchgoogle.protobuf.EmptyThe type of the value does not match the expected type
invalid_bcs_bytesgoogle.protobuf.EmptyThe argument cannot be deserialized into a value of the specified type
invalid_usage_of_pure_argumentgoogle.protobuf.EmptyThe argument cannot be instantiated from raw bytes
invalid_argument_to_private_entry_functiongoogle.protobuf.EmptyInvalid argument to private entry function. / Private entry functions cannot take arguments from other Move functions.
index_out_of_boundsuint32Out of bounds access to input or results
secondary_index_out_of_boundsNestedResultOut of bounds access to subresult
invalid_result_arityuint32Invalid usage of result. / Expected a single result but found either no return value or multiple.
invalid_gas_coin_usagegoogle.protobuf.EmptyInvalid usage of Gas coin. / The Gas coin can only be used by-value with a TransferObjects command.
invalid_value_usagegoogle.protobuf.EmptyInvalid usage of move value. Mutably borrowed values require unique usage. Immutably borrowed values cannot be taken or borrowed mutably. Taken values cannot be used again.
invalid_object_by_valuegoogle.protobuf.EmptyImmutable objects cannot be passed by-value.
invalid_object_by_mut_refgoogle.protobuf.EmptyImmutable objects cannot be passed by mutable reference, &mut.
shared_object_operation_not_allowedgoogle.protobuf.EmptyShared object operations such a wrapping, freezing, or converting to owned are not / allowed.

CongestedObjectsError

FieldTypeLabelDescription
congested_objectsObjectIdrepeated

ConsensusCommitPrologue

FieldTypeLabelDescription
epochuint64optional
rounduint64optional
commit_timestamp_msuint64optional
consensus_commit_digestDigestoptional
sub_dag_indexuint64optional
consensus_determined_version_assignmentsConsensusDeterminedVersionAssignmentsoptional

ConsensusDeterminedVersionAssignments

FieldTypeLabelDescription
cancelled_transactionsCancelledTransactions

Digest

FieldTypeLabelDescription
digestbytesoptional

EndOfEpochData

FieldTypeLabelDescription
next_epoch_committeeValidatorCommitteeMemberrepeated
next_epoch_protocol_versionuint64optional
epoch_commitmentsCheckpointCommitmentrepeated

EndOfEpochTransaction

FieldTypeLabelDescription
transactionsEndOfEpochTransactionKindrepeated

EndOfEpochTransactionKind

FieldTypeLabelDescription
change_epochChangeEpoch
authenticator_state_expireAuthenticatorStateExpire
authenticator_state_creategoogle.protobuf.EmptyUse higher field numbers for kinds which happen infrequently
randomness_state_creategoogle.protobuf.Empty
deny_list_state_creategoogle.protobuf.Empty
bridge_state_createDigest
bridge_committee_inituint64

Event

FieldTypeLabelDescription
package_idObjectIdoptional
moduleIdentifieroptional
senderAddressoptional
event_typeStructTagoptional
contentsbytesoptional

ExecutionStatus

FieldTypeLabelDescription
successbooloptional
statusFailureStatusoptional

FailureStatus

FieldTypeLabelDescription
commanduint64optional
insufficient_gasgoogle.protobuf.EmptyInsufficient Gas
invalid_gas_objectgoogle.protobuf.EmptyInvalid Gas Object.
invariant_violationgoogle.protobuf.EmptyInvariant Violation
feature_not_yet_supportedgoogle.protobuf.EmptyAttempted to used feature that is not supported yet
object_too_bigSizeErrorMove object is larger than the maximum allowed size
package_too_bigSizeErrorPackage is larger than the maximum allowed size
circular_object_ownershipObjectIdCircular Object Ownership
insufficient_coin_balancegoogle.protobuf.EmptyCoin errors / Insufficient coin balance for requested operation
coin_balance_overflowgoogle.protobuf.EmptyCoin balance overflowed an u64
publish_error_non_zero_addressgoogle.protobuf.EmptyPublish/Upgrade errors / Publish Error, Non-zero Address. / The modules in the package must have their self-addresses set to zero.
sui_move_verification_errorgoogle.protobuf.EmptySui Move Bytecode Verification Error.
move_primitive_runtime_errorMoveErrorMoveVm Errors / Error from a non-abort instruction. / Possible causes: / Arithmetic error, stack overflow, max value depth, etc."
move_abortMoveErrorMove runtime abort
vm_verification_or_deserialization_errorgoogle.protobuf.EmptyBytecode verification error.
vm_invariant_violationgoogle.protobuf.EmptyMoveVm invariant violation
function_not_foundgoogle.protobuf.EmptyProgrammable Transaction Errors / Function not found
arity_mismatchgoogle.protobuf.EmptyArity mismatch for Move function. / The number of arguments does not match the number of parameters
type_arity_mismatchgoogle.protobuf.EmptyType arity mismatch for Move function. / Mismatch between the number of actual versus expected type arguments.
non_entry_function_invokedgoogle.protobuf.EmptyNon Entry Function Invoked. Move Call must start with an entry function.
command_argument_errorCommandArgumentErrorInvalid command argument
type_argument_errorTypeArgumentErrorType argument error
unused_value_without_dropNestedResultUnused result without the drop ability.
invalid_public_function_return_typeuint32Invalid public Move function signature. / Unsupported return type for return value
invalid_transfer_objectgoogle.protobuf.EmptyInvalid Transfer Object, object does not have public transfer.
effects_too_largeSizeErrorPost-execution errors / Effects from the transaction are too large
publish_upgrade_missing_dependencygoogle.protobuf.EmptyPublish or Upgrade is missing dependency
publish_upgrade_dependency_downgradegoogle.protobuf.EmptyPublish or Upgrade dependency downgrade. / / Indirect (transitive) dependency of published or upgraded package has been assigned an / on-chain version that is less than the version required by one of the package's / transitive dependencies.
package_upgrade_errorPackageUpgradeErrorInvalid package upgrade
written_objects_too_largeSizeErrorIndicates the transaction tried to write objects too large to storage
certificate_deniedgoogle.protobuf.EmptyCertificate is on the deny list
sui_move_verification_timedoutgoogle.protobuf.EmptySui Move Bytecode verification timed out.
shared_object_operation_not_allowedgoogle.protobuf.EmptyThe requested shared object operation is not allowed
input_object_deletedgoogle.protobuf.EmptyRequested shared object has been deleted
execution_cancelled_due_to_shared_object_congestionCongestedObjectsErrorCertificate is cancelled due to congestion on shared objects
address_denied_for_coinAddressDeniedForCoinErrorAddress is denied for this coin type
coin_type_global_pausestringCoin type is globally paused for use
execution_cancelled_due_to_randomness_unavailablegoogle.protobuf.EmptyCertificate is cancelled because randomness could not be generated this epoch

GasCostSummary

FieldTypeLabelDescription
computation_costuint64optional
storage_costuint64optional
storage_rebateuint64optional
non_refundable_storage_feeuint64optional

GasPayment

FieldTypeLabelDescription
objectsObjectReferencerepeated
ownerAddressoptional
priceuint64optional
budgetuint64optional

GenesisObject

FieldTypeLabelDescription
object_idObjectIdoptional
versionuint64optional
ownerOwneroptional
objectObjectDataoptional

GenesisTransaction

FieldTypeLabelDescription
objectsGenesisObjectrepeated

I128

Little-endian encoded i128

FieldTypeLabelDescription
bytesbytesoptional

Identifier

FieldTypeLabelDescription
identifierstringoptional

Input

FieldTypeLabelDescription
purebytes
immutable_or_ownedObjectReference
sharedSharedObjectInput
receivingObjectReference

Jwk

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

FieldTypeLabelDescription
issstringoptional
kidstringoptional

MakeMoveVector

FieldTypeLabelDescription
element_typeTypeTagoptional
elementsArgumentrepeated

MergeCoins

FieldTypeLabelDescription
coinArgumentoptional
coins_to_mergeArgumentrepeated

ModifiedAtVersion

FieldTypeLabelDescription
object_idObjectIdoptional
versionuint64optional

MoveCall

FieldTypeLabelDescription
packageObjectIdoptional
moduleIdentifieroptional
functionIdentifieroptional
type_argumentsTypeTagrepeated
argumentsArgumentrepeated

MoveError

FieldTypeLabelDescription
locationMoveLocationoptional
abort_codeuint64optional

MoveField

FieldTypeLabelDescription
nameIdentifieroptional
valueMoveValueoptional

MoveLocation

FieldTypeLabelDescription
packageObjectIdoptional
moduleIdentifieroptional
functionuint32optional
instructionuint32optional
function_nameIdentifieroptional

MoveModule

FieldTypeLabelDescription
nameIdentifieroptional
contentsbytesoptional

MovePackage

FieldTypeLabelDescription
idObjectIdoptional
versionuint64optional
modulesMoveModulerepeated
type_origin_tableTypeOriginrepeated
linkage_tableUpgradeInforepeated

MoveStruct

FieldTypeLabelDescription
object_idObjectIdoptional
object_typeStructTagoptional
has_public_transferbooloptional
versionuint64optional
contentsbytesoptional

MoveStructValue

FieldTypeLabelDescription
struct_typeStructTagoptional
fieldsMoveFieldrepeated

MoveValue

FieldTypeLabelDescription
boolbool
u8uint32
u16uint32
u32uint32
u64uint64
u128U128
u256U256
addressAddress
vectorMoveVector
structMoveStructValue
signerAddress
variantMoveVariant

MoveVariant

FieldTypeLabelDescription
enum_typeStructTagoptional
variant_nameIdentifieroptional
taguint32optional
fieldsMoveFieldrepeated

MoveVector

FieldTypeLabelDescription
valuesMoveValuerepeated

MultisigAggregatedSignature

FieldTypeLabelDescription
signaturesMultisigMemberSignaturerepeated
bitmapuint32optional
legacy_bitmapRoaringBitmapoptional
committeeMultisigCommitteeoptional

MultisigCommittee

FieldTypeLabelDescription
membersMultisigMemberrepeated
thresholduint32optional

MultisigMember

FieldTypeLabelDescription
public_keyMultisigMemberPublicKeyoptional
weightuint32optional

MultisigMemberPublicKey

FieldTypeLabelDescription
ed25519bytes
secp256k1bytes
secp256r1bytes
zkloginZkLoginPublicIdentifier

MultisigMemberSignature

FieldTypeLabelDescription
ed25519bytes
secp256k1bytes
secp256r1bytes
zkloginZkLoginAuthenticator

NestedResult

FieldTypeLabelDescription
resultuint32optional
subresultuint32optional

Object

FieldTypeLabelDescription
object_idObjectIdoptional
versionuint64optional
ownerOwneroptional
objectObjectDataoptional
previous_transactionDigestoptional
storage_rebateuint64optional

ObjectData

FieldTypeLabelDescription
structMoveStruct
packageMovePackage

ObjectExist

FieldTypeLabelDescription
versionuint64optional
digestDigestoptional
ownerOwneroptional

ObjectId

FieldTypeLabelDescription
object_idbytesoptional

ObjectReference

FieldTypeLabelDescription
object_idObjectIdoptional
versionuint64optional
digestDigestoptional

ObjectReferenceWithOwner

FieldTypeLabelDescription
referenceObjectReferenceoptional
ownerOwneroptional

ObjectWrite

FieldTypeLabelDescription
digestDigestoptional
ownerOwneroptional

Owner

FieldTypeLabelDescription
addressAddress
objectObjectId
shareduint64
immutablegoogle.protobuf.Empty

PackageIdDoesNotMatch

FieldTypeLabelDescription
package_idObjectIdoptional
object_idObjectIdoptional

PackageUpgradeError

FieldTypeLabelDescription
unable_to_fetch_packageObjectId
not_a_packageObjectId
incompatible_upgradegoogle.protobuf.Empty
digets_does_not_matchDigest
unknown_upgrade_policyuint32
package_id_does_not_matchPackageIdDoesNotMatch

PackageWrite

FieldTypeLabelDescription
versionuint64optional
digestDigestoptional

PasskeyAuthenticator

FieldTypeLabelDescription
authenticator_databytesoptional
client_data_jsonstringoptional
signatureSimpleSignatureoptional

ProgrammableTransaction

FieldTypeLabelDescription
inputsInputrepeated
commandsCommandrepeated

Publish

FieldTypeLabelDescription
modulesbytesrepeated
dependenciesObjectIdrepeated

RandomnessStateUpdate

FieldTypeLabelDescription
epochuint64optional
randomness_rounduint64optional
random_bytesbytesoptional
randomness_object_initial_shared_versionuint64optional

ReadOnlyRoot

FieldTypeLabelDescription
versionuint64optional
digestDigestoptional

RoaringBitmap

FieldTypeLabelDescription
bitmapbytesoptional

SharedObjectInput

FieldTypeLabelDescription
object_idObjectIdoptional
initial_shared_versionuint64optional
mutablebooloptional

SimpleSignature

FieldTypeLabelDescription
schemeSignatureSchemeoptional
signaturebytesoptional
public_keybytesoptional

SizeError

FieldTypeLabelDescription
sizeuint64optional
max_sizeuint64optional

SplitCoins

FieldTypeLabelDescription
coinArgumentoptional
amountsArgumentrepeated

StructTag

FieldTypeLabelDescription
addressAddressoptional
moduleIdentifieroptional
nameIdentifieroptional
type_parametersTypeTagrepeated

SystemPackage

FieldTypeLabelDescription
versionuint64optional
modulesbytesrepeated
dependenciesObjectIdrepeated

Transaction

FieldTypeLabelDescription
v1Transaction.TransactionV1

Transaction.TransactionV1

FieldTypeLabelDescription
kindTransactionKindoptional
senderAddressoptional
gas_paymentGasPaymentoptional
expirationTransactionExpirationoptional

TransactionEffects

FieldTypeLabelDescription
v1TransactionEffectsV1
v2TransactionEffectsV2

TransactionEffectsV1

FieldTypeLabelDescription
statusExecutionStatusoptionalThe status of the execution
epochuint64optionalThe epoch when this transaction was executed.
gas_usedGasCostSummaryoptional
modified_at_versionsModifiedAtVersionrepeatedThe version that every modified (mutated or deleted) object had before it was modified by / this transaction.
shared_objectsObjectReferencerepeatedThe object references of the shared objects used in this transaction. Empty if no shared objects were used.
transaction_digestDigestoptionalThe transaction digest
createdObjectReferenceWithOwnerrepeatedObjectReference and owner of new objects created.
mutatedObjectReferenceWithOwnerrepeatedObjectReference and owner of mutated objects, including gas object.
unwrappedObjectReferenceWithOwnerrepeatedObjectReference and owner of objects that are unwrapped in this transaction. / Unwrapped objects are objects that were wrapped into other objects in the past, / and just got extracted out.
deletedObjectReferencerepeatedObject Refs of objects now deleted (the new refs).
unwrapped_then_deletedObjectReferencerepeatedObject refs of objects previously wrapped in other objects but now deleted.
wrappedObjectReferencerepeatedObject refs of objects now wrapped in other objects.
gas_objectObjectReferenceWithOwneroptionalThe updated gas object reference. Have a dedicated field for convenient access. / It's also included in mutated.
events_digestDigestoptionalThe digest of the events emitted during execution, / can be None if the transaction does not emit any event.
dependenciesDigestrepeatedThe set of transaction digests this transaction depends on.

TransactionEffectsV2

FieldTypeLabelDescription
statusExecutionStatusoptionalThe status of the execution
epochuint64optionalThe epoch when this transaction was executed.
gas_usedGasCostSummaryoptional
transaction_digestDigestoptionalThe transaction digest
gas_object_indexuint32optionalThe updated gas object reference, as an index into the changed_objects vector. / Having a dedicated field for convenient access. / System transaction that don't require gas will leave this as None.
events_digestDigestoptionalThe digest of the events emitted during execution, / can be None if the transaction does not emit any event.
dependenciesDigestrepeatedThe set of transaction digests this transaction depends on.
lamport_versionuint64optionalThe version number of all the written Move objects by this transaction.
changed_objectsChangedObjectrepeatedObjects whose state are changed in the object store.
unchanged_shared_objectsUnchangedSharedObjectrepeatedShared objects that are not mutated in this transaction. Unlike owned objects, / read-only shared 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_digestDigestoptionalAuxiliary 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.

TransactionEvents

FieldTypeLabelDescription
eventsEventrepeated

TransactionExpiration

FieldTypeLabelDescription
nonegoogle.protobuf.Empty
epochuint64

TransactionKind

FieldTypeLabelDescription
programmable_transactionProgrammableTransaction
change_epochChangeEpoch
genesisGenesisTransaction
consensus_commit_prologue_v1ConsensusCommitPrologue
authenticator_state_updateAuthenticatorStateUpdate
end_of_epochEndOfEpochTransaction
randomness_state_updateRandomnessStateUpdate
consensus_commit_prologue_v2ConsensusCommitPrologue
consensus_commit_prologue_v3ConsensusCommitPrologue

TransferObjects

FieldTypeLabelDescription
objectsArgumentrepeated
addressArgumentoptional

TypeArgumentError

FieldTypeLabelDescription
type_argumentuint32optional
type_not_foundgoogle.protobuf.Empty
constraint_not_satisfiedgoogle.protobuf.Empty

TypeOrigin

FieldTypeLabelDescription
module_nameIdentifieroptional
struct_nameIdentifieroptional
package_idObjectIdoptional

TypeTag

FieldTypeLabelDescription
u8google.protobuf.Empty
u16google.protobuf.Empty
u32google.protobuf.Empty
u64google.protobuf.Empty
u128google.protobuf.Empty
u256google.protobuf.Empty
boolgoogle.protobuf.Empty
addressgoogle.protobuf.Empty
signergoogle.protobuf.Empty
vectorTypeTag
structStructTag

U128

Little-endian encoded u128

FieldTypeLabelDescription
bytesbytesoptional

U256

Little-endian encoded u256

FieldTypeLabelDescription
bytesbytesoptional

UnchangedSharedObject

FieldTypeLabelDescription
object_idObjectIdoptional
read_only_rootReadOnlyRoot
mutate_deleteduint64
read_deleteduint64
cancelleduint64
per_epoch_configgoogle.protobuf.Empty

Upgrade

FieldTypeLabelDescription
modulesbytesrepeated
dependenciesObjectIdrepeated
packageObjectIdoptional
ticketArgumentoptional

UpgradeInfo

FieldTypeLabelDescription
original_idObjectIdoptional
upgraded_idObjectIdoptional
upgraded_versionuint64optional

UserSignature

FieldTypeLabelDescription
simpleSimpleSignature
multisigMultisigAggregatedSignature
zkloginZkLoginAuthenticator
passkeyPasskeyAuthenticator

ValidatorAggregatedSignature

FieldTypeLabelDescription
epochuint64optional
signaturebytesoptional
bitmapRoaringBitmapoptional

ValidatorCommittee

FieldTypeLabelDescription
epochuint64optional
membersValidatorCommitteeMemberrepeated

ValidatorCommitteeMember

FieldTypeLabelDescription
public_keybytesoptional
stakeuint64optional

VersionAssignment

FieldTypeLabelDescription
object_idObjectIdoptional
versionuint64optional

ZkLoginAuthenticator

FieldTypeLabelDescription
inputsZkLoginInputsoptional
max_epochuint64optional
signatureSimpleSignatureoptional

ZkLoginClaim

FieldTypeLabelDescription
valuestringoptional
index_mod_4uint32optional

ZkLoginInputs

FieldTypeLabelDescription
proof_pointsZkLoginProofoptional
iss_base64_detailsZkLoginClaimoptional
header_base64stringoptional
address_seedBn254FieldElementoptional

ZkLoginProof

FieldTypeLabelDescription
aCircomG1optional
bCircomG2optional
cCircomG1optional

ZkLoginPublicIdentifier

FieldTypeLabelDescription
issstringoptional
address_seedBn254FieldElementoptional

SignatureScheme

note: values do not match their bcs serialized values

NameNumberDescription
SIGNATURE_SCHEME_UNKNOWN0
SIGNATURE_SCHEME_ED255191
SIGNATURE_SCHEME_SECP256K12
SIGNATURE_SCHEME_SECP256R13
SIGNATURE_SCHEME_MULTISIG4
SIGNATURE_SCHEME_BLS123815
SIGNATURE_SCHEME_ZKLOGIN6
SIGNATURE_SCHEME_PASSKEY7

google/protobuf/empty.proto

Empty

A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance:

service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); }

google/protobuf/timestamp.proto

Timestamp

A Timestamp represents a point in time independent of any time zone or calendar, represented as seconds and fractions of seconds at nanosecond resolution in UTC Epoch time. It is encoded using the Proleptic Gregorian Calendar which extends the Gregorian calendar backwards to year one. It is encoded assuming all minutes are 60 seconds long, i.e. leap seconds are "smeared" so that no leap second table is needed for interpretation. Range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from RFC 3339 date strings. See https://www.ietf.org/rfc/rfc3339.txt.

Examples

Example 1: Compute Timestamp from POSIX time().

Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);

Example 2: Compute Timestamp from POSIX gettimeofday().

struct timeval tv; gettimeofday(&tv, NULL);

Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.tv_usec * 1000);

Example 3: Compute Timestamp from Win32 GetSystemTimeAsFileTime().

FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;

// A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));

Example 4: Compute Timestamp from Java System.currentTimeMillis().

long millis = System.currentTimeMillis();

Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .setNanos((int) ((millis % 1000) * 1000000)).build();

Example 5: Compute Timestamp from current time in Python.

timestamp = Timestamp() timestamp.GetCurrentTime()

JSON Mapping

In JSON format, the Timestamp type is encoded as a string in the RFC 3339 format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required, though only UTC (as indicated by "Z") is presently supported.

For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.

In JavaScript, one can convert a Date object to this format using the standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] method. In Python, a standard datetime.datetime object can be converted to this format using strftime with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's ISODateTimeFormat.dateTime() to obtain a formatter capable of generating timestamps in this format.

FieldTypeLabelDescription
secondsint64Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
nanosint32Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.

Scalar Value Types

.proto TypeNotesC++JavaPythonGoC#PHPRuby
doubledoubledoublefloatfloat64doublefloatFloat
floatfloatfloatfloatfloat32floatfloatFloat
int32Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead.int32intintint32intintegerBignum or Fixnum (as required)
int64Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead.int64longint/longint64longinteger/stringBignum
uint32Uses variable-length encoding.uint32intint/longuint32uintintegerBignum or Fixnum (as required)
uint64Uses variable-length encoding.uint64longint/longuint64ulonginteger/stringBignum or Fixnum (as required)
sint32Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s.int32intintint32intintegerBignum or Fixnum (as required)
sint64Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s.int64longint/longint64longinteger/stringBignum
fixed32Always four bytes. More efficient than uint32 if values are often greater than 2^28.uint32intintuint32uintintegerBignum or Fixnum (as required)
fixed64Always eight bytes. More efficient than uint64 if values are often greater than 2^56.uint64longint/longuint64ulonginteger/stringBignum
sfixed32Always four bytes.int32intintint32intintegerBignum or Fixnum (as required)
sfixed64Always eight bytes.int64longint/longint64longinteger/stringBignum
boolboolbooleanbooleanboolboolbooleanTrueClass/FalseClass
stringA string must always contain UTF-8 encoded or 7-bit ASCII text.stringStringstr/unicodestringstringstringString (UTF-8)
bytesMay contain any arbitrary sequence of bytes.stringByteStringstr[]byteByteStringstringString (ASCII-8BIT)