Sui Full Node gRPC Enum and Scalar Type Definitions
This page lists all enum and scalar type definitions for the Sui Full Node gRPC API. See also: Message Definitions
sui/rpc/v2/transaction_execution_service.proto
Enums
TransactionChecks
buf:lint:ignore ENUM_ZERO_VALUE_SUFFIX
Values
ENABLEDDISABLEDsui/rpc/v2/input.proto
Enums
Source
Values
SOURCE_UNKNOWNSENDERSPONSORInputKind
Values
INPUT_KIND_UNKNOWNPUREA move value serialized as BCS.
IMMUTABLE_OR_OWNEDA Move object that is either immutable or address owned.
SHAREDA Move object whose owner is "Shared".
RECEIVINGA Move object that is attempted to be received in this transaction.
FUNDS_WITHDRAWALReservation to withdraw balance from a funds accumulator
Mutability
Values
MUTABILITY_UNKNOWNIMMUTABLEMUTABLENON_EXCLUSIVE_WRITENon-exclusive write is used to allow multiple transactions to simultaneously add disjoint dynamic fields to an object. (Currently only used by settlement transactions).
sui/rpc/v2/error_reason.proto
Enums
ErrorReason
Values
ERROR_REASON_UNKNOWNFIELD_INVALIDFIELD_MISSINGsui/rpc/v2/signature_scheme.proto
Enums
SignatureScheme
Flag use to disambiguate the signature schemes supported by Sui. Note: the enum values defined by this proto message exactly match their expected BCS serialized values when serialized as a u8. See enum.SignatureScheme for more information about signature schemes.
Values
ED25519SECP256K1SECP256R1MULTISIGBLS12381ZKLOGINPASSKEYsui/rpc/v2/effects.proto
Enums
AccumulatorOperation
Values
ACCUMULATOR_OPERATION_UNKNOWNMERGESPLITIdOperation
Values
ID_OPERATION_UNKNOWNNONECREATEDDELETEDInputObjectState
Values
INPUT_OBJECT_STATE_UNKNOWNINPUT_OBJECT_STATE_DOES_NOT_EXISTINPUT_OBJECT_STATE_EXISTSOutputObjectState
Values
OUTPUT_OBJECT_STATE_UNKNOWNOUTPUT_OBJECT_STATE_DOES_NOT_EXISTOUTPUT_OBJECT_STATE_OBJECT_WRITEOUTPUT_OBJECT_STATE_PACKAGE_WRITEOUTPUT_OBJECT_STATE_ACCUMULATOR_WRITEUnchangedConsensusObjectKind
Values
UNCHANGED_CONSENSUS_OBJECT_KIND_UNKNOWNREAD_ONLY_ROOTRead-only consensus object from the input.
MUTATE_CONSENSUS_STREAM_ENDEDObjects with ended consensus streams that appear mutably/owned in the input.
READ_CONSENSUS_STREAM_ENDEDObjects with ended consensus streams objects that appear as read-only in the input.
CANCELEDConsensus objects that were congested and resulted in this transaction being canceled.
PER_EPOCH_CONFIGRead of a per-epoch config object that should remain the same during an epoch. This optionally will indicate the sequence number of the config object at the start of the epoch.
sui/rpc/v2/move_package.proto
Enums
Ability
An
Ability classifies what operations are permitted for a given typeValues
ABILITY_UNKNOWNCOPYAllows values of types with this ability to be copied
DROPAllows values of types with this ability to be dropped.
STOREAllows values of types with this ability to exist inside a struct in global storage
KEYAllows the type to serve as a key for global storage operations
DatatypeKind
Values
DATATYPE_KIND_UNKNOWNSTRUCTENUMVisibility
Values
VISIBILITY_UNKNOWNPRIVATEPUBLICFRIENDReference
Values
REFERENCE_UNKNOWNIMMUTABLEMUTABLEType
Values
TYPE_UNKNOWNADDRESSBOOLU8U16U32U64U128U256VECTORDATATYPETYPE_PARAMETERsui/rpc/v2/argument.proto
Enums
ArgumentKind
Values
ARGUMENT_KIND_UNKNOWNGASThe gas coin.
INPUTOne of the input objects or primitive values (from
ProgrammableTransaction inputs).RESULTThe result of another command (from
ProgrammableTransaction commands).sui/rpc/v2/owner.proto
Enums
OwnerKind
Values
OWNER_KIND_UNKNOWNADDRESSOBJECTSHAREDIMMUTABLECONSENSUS_ADDRESSsui/rpc/v2/state_service.proto
Enums
MetadataCapState
Information about the state of the coin's MetadataCap
Values
METADATA_CAP_STATE_UNKNOWNIndicates the state of the MetadataCap is unknown. Set when the coin has not been migrated to the CoinRegistry.
CLAIMEDIndicates the MetadataCap has been claimed.
UNCLAIMEDIndicates the MetadataCap has not been claimed.
DELETEDIndicates the MetadataCap has been deleted.
SupplyState
Supply state of a coin, matching the Move SupplyState enum
Values
SUPPLY_STATE_UNKNOWNSupply is unknown or TreasuryCap still exists (minting still possible)
FIXEDSupply is fixed (TreasuryCap consumed, no more minting possible)
BURN_ONLYSupply can only decrease (burning allowed, minting not allowed)
DynamicFieldKind
Values
DYNAMIC_FIELD_KIND_UNKNOWNFIELDOBJECTCoinRegulatedState
Indicates the state of the regulation of the coin.
Values
COIN_REGULATED_STATE_UNKNOWNIndicates the regulation state of the coin is unknown. This is set when a coin has not been migrated to the coin registry and has no
0x2::coin::RegulatedCoinMetadata object.REGULATEDIndicates a coin is regulated. RegulatedCoinMetadata will be populated.
UNREGULATEDIndicates a coin is unregulated.
sui/rpc/v2/execution_status.proto
Enums
CommandArgumentErrorKind
Values
COMMAND_ARGUMENT_ERROR_KIND_UNKNOWNTYPE_MISMATCHThe type of the value does not match the expected type.
INVALID_BCS_BYTESThe argument cannot be deserialized into a value of the specified type.
INVALID_USAGE_OF_PURE_ARGUMENTThe argument cannot be instantiated from raw bytes.
INVALID_ARGUMENT_TO_PRIVATE_ENTRY_FUNCTIONInvalid argument to private entry function. Private entry functions cannot take arguments from other Move functions.
INDEX_OUT_OF_BOUNDSOut of bounds access to input or results.
index field will be set indicating the invalid index value.SECONDARY_INDEX_OUT_OF_BOUNDSOut of bounds access to subresult.
index and subresult fields will be set indicating the invalid index value.INVALID_RESULT_ARITYInvalid usage of result. Expected a single result but found either no return value or multiple.
index field will be set indicating the invalid index value.INVALID_GAS_COIN_USAGEInvalid usage of gas coin. The gas coin can only be used by-value with a
TransferObject command.INVALID_VALUE_USAGEInvalid 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_VALUEImmutable objects cannot be passed by-value.
INVALID_OBJECT_BY_MUT_REFImmutable objects cannot be passed by mutable reference,
&mut.CONSENSUS_OBJECT_OPERATION_NOT_ALLOWEDConsensus object operations such as wrapping, freezing, or converting to owned are not allowed.
INVALID_ARGUMENT_ARITYInvalid argument arity. Expected a single argument but found a result that expanded to multiple arguments.
INVALID_TRANSFER_OBJECTObject passed to TransferObject does not have public transfer, i.e. the
store abilityINVALID_MAKE_MOVE_VEC_NON_OBJECT_ARGUMENTFirst argument to MakeMoveVec is not an object. If no type is specified for MakeMoveVec, all arguments must be the same object type.
ARGUMENT_WITHOUT_VALUESpecified argument location does not have a value and cannot be used
CANNOT_MOVE_BORROWED_VALUECannot move a borrowed value. The value's type does resulted in this argument usage being inferred as a move. This is likely due to the type not having the
copy ability; although in rare cases, it could also be this is the last usage of a value without the drop ability.CANNOT_WRITE_TO_EXTENDED_REFERENCECannot write to an argument location that is still borrowed, and where that borrow is an extension of that reference. This is likely due to this argument being used in a Move call that returns a reference, and that reference is used in a later command.
INVALID_REFERENCE_ARGUMENTThe argument specified cannot be used as a reference argument in the Move call. Either the argument is a mutable reference and it conflicts with another argument to the call, or the argument is mutable and another reference extends it and will be used in a later command.
ExecutionErrorKind
Values
EXECUTION_ERROR_KIND_UNKNOWNINSUFFICIENT_GASInsufficient gas.
INVALID_GAS_OBJECTInvalid
Gas object.INVARIANT_VIOLATIONInvariant violation.
FEATURE_NOT_YET_SUPPORTEDAttempted to use feature that is not supported yet.
OBJECT_TOO_BIGMove object is larger than the maximum allowed size.
PACKAGE_TOO_BIGPackage is larger than the maximum allowed size.
CIRCULAR_OBJECT_OWNERSHIPCircular object ownership.
INSUFFICIENT_COIN_BALANCEInsufficient coin balance for requested operation.
COIN_BALANCE_OVERFLOWCoin balance overflowed an u64.
PUBLISH_ERROR_NON_ZERO_ADDRESSPublish error, non-zero address. The modules in the package must have their self-addresses set to zero.
SUI_MOVE_VERIFICATION_ERRORSui Move bytecode verification error.
MOVE_PRIMITIVE_RUNTIME_ERRORError from a non-abort instruction. Possible causes: Arithmetic error, stack overflow, max value depth, or similar.
MOVE_ABORTMove runtime abort.
VM_VERIFICATION_OR_DESERIALIZATION_ERRORBytecode verification error.
VM_INVARIANT_VIOLATIONMoveVm invariant violation.
FUNCTION_NOT_FOUNDFunction not found.
ARITY_MISMATCHParity mismatch for Move function. The number of arguments does not match the number of parameters.
TYPE_ARITY_MISMATCHType parity mismatch for Move function. Mismatch between the number of actual versus expected type arguments.
NON_ENTRY_FUNCTION_INVOKEDNon-entry function invoked. Move Call must start with an entry function.
COMMAND_ARGUMENT_ERRORInvalid command argument.
TYPE_ARGUMENT_ERRORType argument error.
UNUSED_VALUE_WITHOUT_DROPUnused result without the drop ability.
INVALID_PUBLIC_FUNCTION_RETURN_TYPEInvalid public Move function signature. Unsupported return type for return value.
INVALID_TRANSFER_OBJECTInvalid transfer object, object does not have public transfer.
EFFECTS_TOO_LARGEEffects from the transaction are too large.
PUBLISH_UPGRADE_MISSING_DEPENDENCYPublish or Upgrade is missing dependency.
PUBLISH_UPGRADE_DEPENDENCY_DOWNGRADEPublish 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_ERRORInvalid package upgrade.
WRITTEN_OBJECTS_TOO_LARGEIndicates the transaction tried to write objects too large to storage.
CERTIFICATE_DENIEDCertificate is on the deny list.
SUI_MOVE_VERIFICATION_TIMEDOUTSui Move bytecode verification timed out.
CONSENSUS_OBJECT_OPERATION_NOT_ALLOWEDThe requested consensus object operation is not allowed.
INPUT_OBJECT_DELETEDRequested consensus object has been deleted.
EXECUTION_CANCELED_DUE_TO_CONSENSUS_OBJECT_CONGESTIONCertificate is canceled due to congestion on consensus objects.
ADDRESS_DENIED_FOR_COINAddress is denied for this coin type.
COIN_TYPE_GLOBAL_PAUSECoin type is globally paused for use.
EXECUTION_CANCELED_DUE_TO_RANDOMNESS_UNAVAILABLECertificate is canceled because randomness could not be generated this epoch.
MOVE_VECTOR_ELEM_TOO_BIGMove vector element (passed to MakeMoveVec) with size {value_size} is larger \ than the maximum size {max_scaled_size}. Note that this maximum is scaled based on the \ type of the vector element.
MOVE_RAW_VALUE_TOO_BIGMove value (possibly an upgrade ticket or a dev-inspect value) with size {value_size} \ is larger than the maximum size {max_scaled_size}. Note that this maximum is scaled based \ on the type of the value.
INVALID_LINKAGEA valid linkage was unable to be determined for the transaction or one of its commands.
INSUFFICIENT_FUNDS_FOR_WITHDRAWInsufficient funds for transaction withdrawal
NON_EXCLUSIVE_WRITE_INPUT_OBJECT_MODIFIEDAn input object with non-exclusive write mutability was modified
PackageUpgradeErrorKind
Values
PACKAGE_UPGRADE_ERROR_KIND_UNKNOWNUNABLE_TO_FETCH_PACKAGEUnable to fetch package.
NOT_A_PACKAGEObject is not a package.
INCOMPATIBLE_UPGRADEPackage upgrade is incompatible with previous version.
DIGEST_DOES_NOT_MATCHDigest in upgrade ticket and computed digest differ.
UNKNOWN_UPGRADE_POLICYUpgrade policy is not valid.
PACKAGE_ID_DOES_NOT_MATCHPackage ID does not match
PackageId in upgrade ticket.TypeArgumentErrorKind
Values
TYPE_ARGUMENT_ERROR_KIND_UNKNOWNTYPE_NOT_FOUNDA type was not found in the module specified.
CONSTRAINT_NOT_SATISFIEDA type provided did not match the specified constraint.
sui/rpc/v2/transaction.proto
Enums
Kind
Values
KIND_UNKNOWNCHANGE_EPOCHEnd the epoch and start the next one.
AUTHENTICATOR_STATE_CREATECreate and initialize the authenticator object used for zklogin.
AUTHENTICATOR_STATE_EXPIREExpire JWKs used for zklogin.
RANDOMNESS_STATE_CREATECreate and initialize the randomness object.
DENY_LIST_STATE_CREATECreate and initialize the deny list object.
BRIDGE_STATE_CREATECreate and initialize the bridge object.
BRIDGE_COMMITTEE_INITInitialize the bridge committee.
STORE_EXECUTION_TIME_OBSERVATIONSExecution time observations from the committee to preserve cross epoch
ACCUMULATOR_ROOT_CREATECreate the accumulator root object.
COIN_REGISTRY_CREATECreate and initialize the Coin Registry object.
DISPLAY_REGISTRY_CREATECreate and initialize the Display Registry object.
ADDRESS_ALIAS_STATE_CREATECreate and initialize the Address Alias State object.
WRITE_ACCUMULATOR_STORAGE_COSTWrite the end-of-epoch-computed storage cost for accumulator objects.
ExecutionTimeObservationKind
Values
EXECUTION_TIME_OBSERVATION_KIND_UNKNOWNMOVE_ENTRY_POINTTRANSFER_OBJECTSSPLIT_COINSMERGE_COINSPUBLISHMAKE_MOVE_VECTORUPGRADETransactionExpirationKind
Values
TRANSACTION_EXPIRATION_KIND_UNKNOWNNONEThe transaction has no expiration.
EPOCHValidators won't sign and execute transaction unless the expiration epoch is greater than or equal to the current epoch.
VALID_DURINGThis variant enables gas payments from address balances. When transactions use address balances for gas payment instead of explicit gas coins, we lose the natural transaction uniqueness and replay prevention that comes from mutation of gas coin objects. By bounding expiration and providing a nonce, validators must only retain executed digests for the maximum possible expiry range to differentiate retries from unique transactions with otherwise identical inputs.
Kind
Values
KIND_UNKNOWNPROGRAMMABLE_TRANSACTIONA user transaction comprised of a list of native commands and Move calls.
CHANGE_EPOCHSystem transaction used to end an epoch. The
ChangeEpoch variant is now deprecated (but the ChangeEpoch struct is still used by EndOfEpochTransaction).GENESISTransaction 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_PROLOGUE_V1V1 consensus commit update.
AUTHENTICATOR_STATE_UPDATEUpdate set of valid JWKs used for zklogin.
END_OF_EPOCHSet of operations to run at the end of the epoch to close out the current epoch and start the next one.
RANDOMNESS_STATE_UPDATERandomness update.
CONSENSUS_COMMIT_PROLOGUE_V2V2 consensus commit update.
CONSENSUS_COMMIT_PROLOGUE_V3V3 consensus commit update.
CONSENSUS_COMMIT_PROLOGUE_V4V4 consensus commit update.
PROGRAMMABLE_SYSTEM_TRANSACTIONA system transaction comprised of a list of native commands and Move calls.
sui/rpc/v2/checkpoint_summary.proto
Enums
CheckpointCommitmentKind
Values
CHECKPOINT_COMMITMENT_KIND_UNKNOWNECMH_LIVE_OBJECT_SETAn elliptic curve multiset hash attesting to the set of objects that comprise the live state of the Sui blockchain.
CHECKPOINT_ARTIFACTSDigest of the checkpoint artifacts.
Scalar Value Types
| Proto Type | C++ | Go | Java | Python | Notes |
|---|---|---|---|---|---|
| double | double | float64 | double | float | |
| float | float | float32 | float | float | |
| int32 | int32 | int32 | int | int | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. |
| int64 | int64 | int64 | long | int/long | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. |
| uint32 | uint32 | uint32 | int | int/long | Uses variable-length encoding. |
| uint64 | uint64 | uint64 | long | int/long | Uses variable-length encoding. |
| sint32 | int32 | int32 | int | int | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. |
| sint64 | int64 | int64 | long | int/long | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. |
| fixed32 | uint32 | uint32 | int | int | Always four bytes. More efficient than uint32 if values are often greater than 2^28. |
| fixed64 | uint64 | uint64 | long | int/long | Always eight bytes. More efficient than uint64 if values are often greater than 2^56. |
| sfixed32 | int32 | int32 | int | int | Always four bytes. |
| sfixed64 | int64 | int64 | long | int/long | Always eight bytes. |
| bool | bool | bool | boolean | boolean | |
| string | string | string | String | str/unicode | A string must always contain UTF-8 encoded or 7-bit ASCII text. |
| bytes | string | []byte | ByteString | str | May contain any arbitrary sequence of bytes. |