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
| Field | Type | Label | Description |
| requests | GetObjectRequest | repeated | |
| read_mask | FieldMask | optional | Mask specifying which fields to read.
If no mask is specified, defaults to `object_id,version,digest`. |
BatchGetObjectsResponse
BatchGetTransactionsRequest
| Field | Type | Label | Description |
| digests | string | repeated | Required. The digests of the requested transactions. |
| read_mask | FieldMask | optional | Mask specifying which fields to read.
If no mask is specified, defaults to `digest`. |
BatchGetTransactionsResponse
GetCheckpointRequest
| Field | Type | Label | Description |
| sequence_number | uint64 | | The sequence number of the requested checkpoint. |
| digest | string | | The digest of the requested checkpoint. |
| read_mask | FieldMask | optional | Mask specifying which fields to read.
If no mask is specified, defaults to `sequence_number,digest`. |
GetCheckpointResponse
| Field | Type | Label | Description |
| checkpoint | Checkpoint | optional | |
GetEpochRequest
| Field | Type | Label | Description |
| epoch | uint64 | optional | The requested epoch.
If no epoch is provided the current epoch will be returned. |
| read_mask | FieldMask | optional | Mask specifying which fields to read.
If no mask is specified, defaults to `epoch`. |
GetEpochResponse
| Field | Type | Label | Description |
| epoch | Epoch | optional | |
GetObjectRequest
| Field | Type | Label | Description |
| object_id | string | optional | Required. The `ObjectId` of the requested object. |
| version | uint64 | optional | Request 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_mask | FieldMask | optional | Mask specifying which fields to read.
If no mask is specified, defaults to `object_id,version,digest`. |
GetObjectResponse
| Field | Type | Label | Description |
| object | Object | optional | |
GetObjectResult
GetServiceInfoRequest
GetServiceInfoResponse
| Field | Type | Label | Description |
| chain_id | string | optional | The 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. |
| chain | string | optional | Human-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. |
| epoch | uint64 | optional | Current epoch of the node based on its highest executed checkpoint. |
| checkpoint_height | uint64 | optional | Checkpoint height of the most recently executed checkpoint. |
| timestamp | Timestamp | optional | Unix timestamp of the most recently executed checkpoint. |
| lowest_available_checkpoint | uint64 | optional | The lowest checkpoint for which checkpoints and transaction data are available. |
| lowest_available_checkpoint_objects | uint64 | optional | The lowest checkpoint for which object data is available. |
| server | string | optional | Software version of the service. Similar to the `server` http header. |
GetTransactionRequest
| Field | Type | Label | Description |
| digest | string | optional | Required. The digest of the requested transaction. |
| read_mask | FieldMask | optional | Mask specifying which fields to read.
If no mask is specified, defaults to `digest`. |
GetTransactionResponse
GetTransactionResult
VerifySignatureRequest
| Field | Type | Label | Description |
| message | Bcs | optional | The 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. |
| signature | UserSignature | optional | The signature to verify. |
| address | string | optional | Optional. 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. |
| jwks | ActiveJwk | repeated | The 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
| Field | Type | Label | Description |
| is_valid | bool | optional | Indicates if the provided signature was valid given the requested parameters. |
| reason | string | optional | If `is_valid` is `false`, this is the reason for why the signature verification failed. |
Checkpoint
| Field | Type | Label | Description |
| sequence_number | uint64 | optional | The height of this checkpoint. |
| digest | string | optional | The digest of this Checkpoint's CheckpointSummary. |
| summary | CheckpointSummary | optional | The `CheckpointSummary` for this checkpoint. |
| signature | ValidatorAggregatedSignature | optional | An aggregated quorum signature from the validator committee that
certified this checkpoint. |
| contents | CheckpointContents | optional | The `CheckpointContents` for this checkpoint. |
| transactions | ExecutedTransaction | repeated | List of transactions included in this checkpoint. |
| objects | ObjectSet | optional | Set 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
| Field | Type | Label | Description |
| argument | Argument | optional | |
| value | Bcs | optional | |
| json | Value | optional | JSON rendering of the output. |
CommandResult
An intermediate result/output from the execution of a single command
ExecuteTransactionRequest
| Field | Type | Label | Description |
| transaction | Transaction | optional | The transaction to execute. |
| signatures | UserSignature | repeated | Set of `UserSignature`s authorizing the execution of the provided
transaction. |
| read_mask | FieldMask | optional | Mask specifying which fields to read.
If no mask is specified, defaults to `effects.status,checkpoint`. |
ExecuteTransactionResponse
Response message for `NodeService.ExecuteTransaction`.
SimulateTransactionRequest
| Field | Type | Label | Description |
| transaction | Transaction | optional | |
| read_mask | FieldMask | optional | Mask specifying which fields to read. |
| checks | TransactionChecks | optional | Specify whether checks should be ENABLED (default) or DISABLED while executing the transaction |
| do_gas_selection | bool | optional | Perform 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
| Field | Type | Label | Description |
| transaction | ExecutedTransaction | optional | |
| command_outputs | CommandResult | repeated | |
| suggested_gas_price | uint64 | optional | A 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.
| Field | Type | Label | Description |
| package_id | string | optional | Package ID of the top-level function invoked by a `MoveCall` command that triggered this
event to be emitted. |
| module | string | optional | Module name of the top-level function invoked by a `MoveCall` command that triggered this
event to be emitted. |
| sender | string | optional | Address of the account that sent the transaction where this event was emitted. |
| event_type | string | optional | The type of the event emitted. |
| contents | Bcs | optional | BCS serialized bytes of the event. |
| json | Value | optional | JSON rendering of the event. |
TransactionEvents
Events emitted during the successful execution of a transaction.
| Field | Type | Label | Description |
| bcs | Bcs | optional | This TransactionEvents serialized as BCS. |
| digest | string | optional | The digest of this TransactionEvents. |
| events | Event | repeated | Set of events emitted by a transaction. |
FundsWithdrawal
| Field | Type | Label | Description |
| amount | uint64 | optional | |
| coin_type | string | optional | |
| source | Source | optional | |
An input to a user transaction.
| Field | Type | Label | Description |
| kind | InputKind | optional | |
| pure | bytes | optional | A move value serialized as BCS.
For normal operations this is required to be a move primitive type and not contain structs
or objects. |
| object_id | string | optional | `ObjectId` of the object input. |
| version | uint64 | optional | Requested 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 |
| digest | string | optional | The digest of this object. |
| mutable | bool | optional | Controls whether the caller asks for a mutable reference to the shared
object. |
| mutability | Mutability | optional | NOTE: 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_withdrawal | FundsWithdrawal | optional | Fund Reservation information if `kind` is `FUNDS_WITHDRAWAL`. |
| literal | Value | optional | A literal value
INPUT ONLY |
ExecutedTransaction
| Field | Type | Label | Description |
| digest | string | optional | The digest of this Transaction. |
| transaction | Transaction | optional | The transaction itself. |
| signatures | UserSignature | repeated | List of user signatures that are used to authorize the
execution of this transaction. |
| effects | TransactionEffects | optional | The `TransactionEffects` for this transaction. |
| events | TransactionEvents | optional | The `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. |
| checkpoint | uint64 | optional | The sequence number for the checkpoint that includes this transaction. |
| timestamp | Timestamp | optional | The Unix timestamp of the checkpoint that includes this transaction. |
| balance_changes | BalanceChange | repeated | |
| objects | ObjectSet | optional | Set of objects either referenced as inputs or produced as
outputs from this Transaction. |
SubscribeCheckpointsRequest
Request message for SubscriptionService.SubscribeCheckpoints
| Field | Type | Label | Description |
| read_mask | FieldMask | optional | Optional. Mask for specifying which parts of the
SubscribeCheckpointsResponse should be returned. |
SubscribeCheckpointsResponse
Response message for SubscriptionService.SubscribeCheckpoints
| Field | Type | Label | Description |
| cursor | uint64 | optional | Required. The checkpoint sequence number and value of the current cursor
into the checkpoint stream |
| checkpoint | Checkpoint | optional | The 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.
| Field | Type | Label | Description |
| name | string | optional | Name that identifies the type of the serialized value. |
| value | bytes | optional | Bytes of a BCS serialized value. |
BalanceChange
The delta, or change, in balance for an address for a particular `Coin` type.
| Field | Type | Label | Description |
| address | string | optional | The account address that is affected by this balance change event. |
| coin_type | string | optional | The `Coin` type of this balance change event. |
| amount | string | optional | The 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.
| Field | Type | Label | Description |
| kty | string | optional | Key type parameter, https://datatracker.ietf.org/doc/html/rfc7517#section-4.1. |
| e | string | optional | RSA public exponent, https://datatracker.ietf.org/doc/html/rfc7517#section-9.3. |
| n | string | optional | RSA modulus, https://datatracker.ietf.org/doc/html/rfc7517#section-9.3. |
| alg | string | optional | Algorithm parameter, https://datatracker.ietf.org/doc/html/rfc7517#section-4.4. |
JwkId
Key to uniquely identify a JWK.
| Field | Type | Label | Description |
| iss | string | optional | The issuer or identity of the OIDC provider. |
| kid | string | optional | A key ID used to uniquely identify a key from an OIDC provider. |
Display
A rendered JSON blob based on an on-chain template.
| Field | Type | Label | Description |
| output | Value | optional | Output for all successfully substituted display fields. Unsuccessful
fields will be `null`, and will be accompanied by a field in `errors`,
explaining the error. |
| errors | Value | optional | If 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.
| Field | Type | Label | Description |
| bcs | Bcs | optional | This Object serialized as BCS. |
| object_id | string | optional | `ObjectId` for this object. |
| version | uint64 | optional | Version of the object. |
| digest | string | optional | The digest of this Object. |
| owner | Owner | optional | Owner of the object. |
| object_type | string | optional | The type of this object.
This will be 'package' for packages and a StructTag for move structs. |
| has_public_transfer | bool | optional | DEPRECATED 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 |
| contents | Bcs | optional | BCS bytes of a Move struct value.
Only set for Move structs |
| package | Package | optional | Package information for Move Packages |
| previous_transaction | string | optional | The digest of the transaction that created or last mutated this object |
| storage_rebate | uint64 | optional | The 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. |
| json | Value | optional | JSON rendering of the object. |
| balance | uint64 | optional | Current balance if this object is a `0x2::coin::Coin<T>` |
| display | Display | optional | JSON 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
| Field | Type | Label | Description |
| objects | Object | repeated | Objects are sorted by the key `(object_id, version)`. |
MoveTable
A message that represents a Move `0x2::table::Table` or `0x2::bag::Bag`
| Field | Type | Label | Description |
| id | string | optional | The UID of the table or bag |
| size | uint64 | optional | The size or number of key-value pairs in the table or bag |
StakeSubsidy
| Field | Type | Label | Description |
| balance | uint64 | optional | Balance of SUI set aside for stake subsidies that will be drawn down over time. |
| distribution_counter | uint64 | optional | Count of the number of times stake subsidies have been distributed. |
| current_distribution_amount | uint64 | optional | The amount of stake subsidy to be drawn down per distribution.
This amount decays and decreases over time. |
| stake_subsidy_period_length | uint64 | optional | Number of distributions to occur before the distribution amount decays. |
| stake_subsidy_decrease_rate | uint32 | optional | The rate at which the distribution amount decays at the end of each
period. Expressed in basis points. |
| extra_fields | MoveTable | optional | Any extra fields that's not defined statically. |
StakingPool
A staking pool embedded in each validator struct in the system state object.
| Field | Type | Label | Description |
| id | string | optional | UID of the StakingPool object |
| activation_epoch | uint64 | optional | The 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_epoch | uint64 | optional | The 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_balance | uint64 | optional | The 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_pool | uint64 | optional | The epoch stake rewards will be added here at the end of each epoch. |
| pool_token_balance | uint64 | optional | Total number of pool tokens issued by the pool. |
| exchange_rates | MoveTable | optional | Exchange 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_stake | uint64 | optional | Pending stake amount for this epoch, emptied at epoch boundaries. |
| pending_total_sui_withdraw | uint64 | optional | Pending stake withdrawn during the current epoch, emptied at epoch boundaries.
This includes both the principal and rewards SUI withdrawn. |
| pending_pool_token_withdraw | uint64 | optional | Pending pool token withdrawn during the current epoch, emptied at epoch boundaries. |
| extra_fields | MoveTable | optional | Any extra fields that's not defined statically. |
StorageFund
Struct representing the onchain storage fund.
| Field | Type | Label | Description |
| total_object_storage_rebates | uint64 | optional | This 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_balance | uint64 | optional | Represents any remaining inflow of the storage fund that should not
be taken out of the fund. |
SystemParameters
| Field | Type | Label | Description |
| epoch_duration_ms | uint64 | optional | The duration of an epoch, in milliseconds. |
| stake_subsidy_start_epoch | uint64 | optional | The starting epoch in which stake subsidies start being paid out |
| min_validator_count | uint64 | optional | Minimum number of active validators at any moment. |
| max_validator_count | uint64 | optional | Maximum 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_stake | uint64 | optional | Deprecated.
Lower-bound on the amount of stake required to become a validator. |
| validator_low_stake_threshold | uint64 | optional | Deprecated.
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_threshold | uint64 | optional | Deprecated.
Validators with stake below `validator_very_low_stake_threshold` will be removed
immediately at epoch change, no grace period. |
| validator_low_stake_grace_period | uint64 | optional | A validator can have stake below `validator_low_stake_threshold`
for this many epochs before being kicked out. |
| extra_fields | MoveTable | optional | Any extra fields that are not defined statically. |
SystemState
| Field | Type | Label | Description |
| version | uint64 | optional | The version of the system state data structure type. |
| epoch | uint64 | optional | The epoch id |
| protocol_version | uint64 | optional | The protocol version |
| validators | ValidatorSet | optional | Information about the validators |
| storage_fund | StorageFund | optional | Storage Fund info |
| parameters | SystemParameters | optional | Set of system config parameters |
| reference_gas_price | uint64 | optional | The reference gas price for this epoch |
| validator_report_records | ValidatorReportRecord | repeated | A 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_subsidy | StakeSubsidy | optional | Schedule of stake subsidies given out each epoch. |
| safe_mode | bool | optional | Whether 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_rewards | uint64 | optional | Storage rewards accumulated during safe_mode |
| safe_mode_computation_rewards | uint64 | optional | Computation rewards accumulated during safe_mode |
| safe_mode_storage_rebates | uint64 | optional | Storage rebates paid out during safe_mode |
| safe_mode_non_refundable_storage_fee | uint64 | optional | Nonrefundable storage fees accumulated during safe_mode |
| epoch_start_timestamp_ms | uint64 | optional | Unix timestamp of when this this epoch started |
| extra_fields | MoveTable | optional | Any 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
| Field | Type | Label | Description |
| name | string | optional | A unique human-readable name of this validator. |
| address | string | optional | The 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. |
| description | string | optional | |
| image_url | string | optional | |
| project_url | string | optional | |
| protocol_public_key | bytes | optional | The 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_possession | bytes | optional | This is a proof that the validator has ownership of the protocol private key |
| network_public_key | bytes | optional | The public key bytes corresponding to the private key that the validator
uses to establish TLS connections |
| worker_public_key | bytes | optional | The public key bytes corresponding to the Narwhal Worker |
| network_address | string | optional | The network address of the validator (could also contain extra info such as port, DNS and etc.). |
| p2p_address | string | optional | The address of the validator used for p2p activities such as state sync (could also contain extra info such as port, DNS and etc.). |
| primary_address | string | optional | The address of the narwhal primary |
| worker_address | string | optional | The address of the narwhal worker |
| next_epoch_protocol_public_key | bytes | optional | |
| next_epoch_proof_of_possession | bytes | optional | |
| next_epoch_network_public_key | bytes | optional | |
| next_epoch_worker_public_key | bytes | optional | |
| next_epoch_network_address | string | optional | |
| next_epoch_p2p_address | string | optional | |
| next_epoch_primary_address | string | optional | |
| next_epoch_worker_address | string | optional | |
| metadata_extra_fields | MoveTable | optional | Any extra fields that's not defined statically in the `ValidatorMetadata` struct |
| voting_power | uint64 | optional | The voting power of this validator, which might be different from its
stake amount. |
| operation_cap_id | string | optional | The ID of this validator's current valid `UnverifiedValidatorOperationCap` |
| gas_price | uint64 | optional | Gas price quote, updated only at end of epoch. |
| staking_pool | StakingPool | optional | Staking pool for this validator. |
| commission_rate | uint64 | optional | Commission rate of the validator, in basis point. |
| next_epoch_stake | uint64 | optional | Total amount of stake that would be active in the next epoch. |
| next_epoch_gas_price | uint64 | optional | This validator's gas price quote for the next epoch. |
| next_epoch_commission_rate | uint64 | optional | The commission rate of the validator starting the next epoch, in basis point. |
| extra_fields | MoveTable | optional | Any extra fields that's not defined statically. |
ValidatorReportRecord
| Field | Type | Label | Description |
| reported | string | optional | The address of the validator being reported |
| reporters | string | repeated | The list of validator (addresses) that are reporting on the validator specified by `reported` |
ValidatorSet
| Field | Type | Label | Description |
| total_stake | uint64 | optional | Total amount of stake from all active validators at the beginning of the epoch.
Written only once per epoch, in `advance_epoch` function. |
| active_validators | Validator | repeated | The current list of active validators. |
| pending_active_validators | MoveTable | optional | List 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_removals | uint64 | repeated | Removal requests from the validators. Each element is an index
pointing to `active_validators`. |
| staking_pool_mappings | MoveTable | optional | Mappings 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_validators | MoveTable | optional | Mapping 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_candidates | MoveTable | optional | Table 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_validators | AtRiskValidatorsEntry | repeated | Table storing the number of epochs during which a validator's stake has been below the low stake threshold. |
| extra_fields | MoveTable | optional | Any extra fields that's not defined statically. |
AtRiskValidatorsEntry
AccumulatorWrite
ChangedObject
Input/output state of an object that was changed during execution.
| Field | Type | Label | Description |
| object_id | string | optional | ID of the object. |
| input_state | InputObjectState | optional | |
| input_version | uint64 | optional | Version of the object before this transaction executed. |
| input_digest | string | optional | Digest of the object before this transaction executed. |
| input_owner | Owner | optional | Owner of the object before this transaction executed. |
| output_state | OutputObjectState | optional | |
| output_version | uint64 | optional | Version of the object after this transaction executed. |
| output_digest | string | optional | Digest of the object after this transaction executed. |
| output_owner | Owner | optional | Owner of the object after this transaction executed. |
| accumulator_write | AccumulatorWrite | optional | The contents of the accumulator write when `output_state` is `OUTPUT_OBJECT_STATE_ACCUMULATOR_WRITE` |
| id_operation | IdOperation | optional | What happened to an `ObjectId` during execution. |
| object_type | string | optional | Type information is not provided by the effects structure but is instead
provided by an indexing layer |
TransactionEffects
The effects of executing a transaction.
| Field | Type | Label | Description |
| bcs | Bcs | optional | This TransactionEffects serialized as BCS. |
| digest | string | optional | The digest of this TransactionEffects. |
| version | int32 | optional | Version of this TransactionEffects. |
| status | ExecutionStatus | optional | The status of the execution. |
| epoch | uint64 | optional | The epoch when this transaction was executed. |
| gas_used | GasCostSummary | optional | The gas used by this transaction. |
| transaction_digest | string | optional | The transaction digest. |
| gas_object | ChangedObject | optional | Information about the gas object. Also present in the `changed_objects` vector.
System transactions that don't require gas will leave this as `None`. |
| events_digest | string | optional | The digest of the events emitted during execution,
can be `None` if the transaction does not emit any event. |
| dependencies | string | repeated | The set of transaction digests this transaction depends on. |
| lamport_version | uint64 | optional | The version number of all the written objects (excluding packages) by this transaction. |
| changed_objects | ChangedObject | repeated | Objects whose state are changed by this transaction. |
| unchanged_consensus_objects | UnchangedConsensusObject | repeated | Consensus 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_digest | string | optional | Auxiliary 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_objects | ObjectReference | repeated | |
UnchangedConsensusObject
A consensus object that wasn't changed during execution.
| Field | Type | Label | Description |
| kind | UnchangedConsensusObjectKind | optional | |
| object_id | string | optional | ObjectId of the consensus object. |
| version | uint64 | optional | Version of the consensus object. |
| digest | string | optional | Digest of the consensus object. |
| object_type | string | optional | Type information is not provided by the effects structure but is instead
provided by an indexing layer |
AddressAliasesVersion
| Field | Type | Label | Description |
| version | uint64 | optional | |
CheckpointContents
The committed to contents of a checkpoint.
| Field | Type | Label | Description |
| bcs | Bcs | optional | This CheckpointContents serialized as BCS. |
| digest | string | optional | The digest of this CheckpointContents. |
| version | int32 | optional | Version of this CheckpointContents |
| transactions | CheckpointedTransactionInfo | repeated | Set of transactions committed to in this checkpoint. |
CheckpointedTransactionInfo
Transaction information committed to in a checkpoint.
| Field | Type | Label | Description |
| transaction | string | optional | Digest of the transaction. |
| effects | string | optional | Digest of the effects. |
| signatures | UserSignature | repeated | Set of user signatures that authorized the transaction. |
| address_aliases_versions | AddressAliasesVersion | repeated | The `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.
| Field | Type | Label | Description |
| type_name | string | optional | Fully qualified name of this Datatype.
This is `<defining_id>::<module>::<name>` |
| defining_id | string | optional | PackageId 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. |
| module | string | optional | Name of the module where this Datatype is defined |
| name | string | optional | Name of this Datatype |
| abilities | Ability | repeated | This type's abilities |
| type_parameters | TypeParameter | repeated | Ability constraints and phantom status for this type's generic type parameters |
| kind | DatatypeKind | optional | Indicates whether this datatype is a 'STRUCT' or an 'ENUM' |
| fields | FieldDescriptor | repeated | Set of fields if this Datatype is a struct.
The order of the entries is the order of how the fields are defined. |
| variants | VariantDescriptor | repeated | Set 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
| Field | Type | Label | Description |
| name | string | optional | Name of the field |
| position | uint32 | optional | Order or position of the field in the struct or enum variant definition. |
| type | OpenSignatureBody | optional | The type of the field |
FunctionDescriptor
Descriptor of a Move function
| Field | Type | Label | Description |
| name | string | optional | Name of the function |
| visibility | Visibility | optional | Whether the function is `public`, `private` or `public(friend)` |
| is_entry | bool | optional | Whether the function is marked `entry` or not. |
| type_parameters | TypeParameter | repeated | Ability constraints for type parameters |
| parameters | OpenSignature | repeated | Formal parameter types. |
| returns | OpenSignature | repeated | Return types. |
Linkage
Upgraded package info for the linkage table.
| Field | Type | Label | Description |
| original_id | string | optional | Id of the original package. |
| upgraded_id | string | optional | Id of the upgraded package. |
| upgraded_version | uint64 | optional | Version of the upgraded package. |
Module
A Move Module.
| Field | Type | Label | Description |
| name | string | optional | Name of this module. |
| contents | bytes | optional | Serialized bytecode of the module. |
| datatypes | DatatypeDescriptor | repeated | List of DataTypes defined by this module. |
| functions | FunctionDescriptor | repeated | List of Functions defined by this module. |
OpenSignature
Representation of a type signature that could appear as a function parameter or return value.
OpenSignatureBody
Representation of a type signature that could appear as a field type for a struct or enum
| Field | Type | Label | Description |
| type | Type | optional | Type of this signature |
| type_name | string | optional | Fully qualified name of the datatype when `type` is `DATATYPE` |
| type_parameter_instantiation | OpenSignatureBody | repeated | Set when `type` is `VECTOR` or `DATATYPE` |
| type_parameter | uint32 | optional | Position of the type parameter as defined in the containing data type descriptor when `type` is `TYPE_PARAMETER` |
Package
A Move Package
| Field | Type | Label | Description |
| storage_id | string | optional | The 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_id | string | optional | The 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. |
| version | uint64 | optional | The version of this package |
| modules | Module | repeated | The modules defined by this package |
| type_origins | TypeOrigin | repeated | List of datatype origins for mapping datatypes to a package version where
it was first defined |
| linkage | Linkage | repeated | The 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.
| Field | Type | Label | Description |
| module_name | string | optional | |
| datatype_name | string | optional | |
| package_id | string | optional | |
TypeParameter
A generic type parameter used in the declaration of a struct or enum.
| Field | Type | Label | Description |
| constraints | Ability | repeated | The type parameter constraints |
| is_phantom | bool | optional | Whether the parameter is declared as phantom |
VariantDescriptor
Descriptor of an enum variant
| Field | Type | Label | Description |
| name | string | optional | Name of the variant |
| position | uint32 | optional | Order or position of the variant in the enum definition. |
| fields | FieldDescriptor | repeated | Set of fields defined by this variant. |
Argument
An argument to a programmable transaction command.
| Field | Type | Label | Description |
| kind | ArgumentKind | optional | |
| input | uint32 | optional | Index of an input when `kind` is `INPUT`. |
| result | uint32 | optional | Index of a result when `kind` is `RESULT`. |
| subresult | uint32 | optional | Used to access a nested result when `kind` is `RESULT`. |
LookupNameRequest
| Field | Type | Label | Description |
| name | string | optional | Required. The SuiNS name to lookup.
Supports both `@name` as well as `name.sui` formats. |
LookupNameResponse
| Field | Type | Label | Description |
| record | NameRecord | optional | The record for the requested name |
NameRecord
| Field | Type | Label | Description |
| id | string | optional | Id of this record.
Note that records are stored on chain as dynamic fields of the type
`Field<Domain,NameRecord>`. |
| name | string | optional | The SuiNS name of this record |
| registration_nft_id | string | optional | The 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_timestamp | Timestamp | optional | Timestamp 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_address | string | optional | The target address that this name points to |
| data | DataEntry | repeated | Additional data which may be stored in a record |
DataEntry
ReverseLookupNameRequest
| Field | Type | Label | Description |
| address | string | optional | Required. The address to perform a reverse lookup for. |
ReverseLookupNameResponse
| Field | Type | Label | Description |
| record | NameRecord | optional | The record for the SuiNS name linked to the requested address |
ProtocolConfig
AttributesEntry
FeatureFlagsEntry
Owner
Enum of different types of ownership for an object.
| Field | Type | Label | Description |
| kind | OwnerKind | optional | |
| address | string | optional | Address or ObjectId of the owner |
| version | uint64 | optional | The `initial_shared_version` if kind is `SHARED` or `start_version` if kind `CONSENSUS_ADDRESS`. |
GetDatatypeRequest
| Field | Type | Label | Description |
| package_id | string | optional | Required. The `storage_id` of the requested package. |
| module_name | string | optional | Required. The name of the requested module. |
| name | string | optional | Required. The name of the requested datatype. |
GetDatatypeResponse
GetFunctionRequest
| Field | Type | Label | Description |
| package_id | string | optional | Required. The `storage_id` of the requested package. |
| module_name | string | optional | Required. The name of the requested module. |
| name | string | optional | Required. The name of the requested function. |
GetFunctionResponse
GetPackageRequest
| Field | Type | Label | Description |
| package_id | string | optional | Required. The `storage_id` of the requested package. |
GetPackageResponse
| Field | Type | Label | Description |
| package | Package | optional | The package. |
ListPackageVersionsRequest
| Field | Type | Label | Description |
| package_id | string | optional | Required. The `storage_id` of any version of the package. |
| page_size | uint32 | optional | The 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_token | bytes | optional | A 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
| Field | Type | Label | Description |
| versions | PackageVersion | repeated | List of all package versions, ordered by version. |
| next_page_token | bytes | optional | A 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
| Field | Type | Label | Description |
| package_id | string | optional | The storage ID of this package version |
| version | uint64 | optional | The version number |
Balance
Balance information for a specific coin type.
| Field | Type | Label | Description |
| coin_type | string | optional | The type of the coin (e.g., 0x2::sui::SUI). |
| balance | uint64 | optional | The 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_balance | uint64 | optional | The balance of `Balance<T>` in this address's Address Balance. |
| coin_balance | uint64 | optional | The balance of all `Coin<T>` objects owned by this address. |
Metadata for a coin type
| Field | Type | Label | Description |
| id | string | optional | ObjectId of the `0x2::coin::CoinMetadata` object or
0x2::sui::coin_registry::Currency object (when registered with CoinRegistry). |
| decimals | uint32 | optional | Number of decimal places to coin uses. |
| name | string | optional | Name for the token |
| symbol | string | optional | Symbol for the token |
| description | string | optional | Description of the token |
| icon_url | string | optional | URL for the token logo |
| metadata_cap_id | string | optional | The 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_state | MetadataCapState | optional | State of the MetadataCap for this coin type. |
CoinTreasury
Information about a coin type's `0x2::coin::TreasuryCap` and its total available supply
| Field | Type | Label | Description |
| id | string | optional | ObjectId of the `0x2::coin::TreasuryCap` object. |
| total_supply | uint64 | optional | Total available supply for this coin type. |
| supply_state | SupplyState | optional | Supply state indicating if the supply is fixed or can still be minted |
DynamicField
| Field | Type | Label | Description |
| kind | DynamicFieldKind | optional | |
| parent | string | optional | ObjectId of this dynamic field's parent. |
| field_id | string | optional | ObjectId of this dynamic field. |
| field_object | Object | optional | The field object itself |
| name | Bcs | optional | The dynamic field's "name" |
| value | Bcs | optional | The dynamic field's "value" |
| value_type | string | optional | The 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_id | string | optional | The 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_object | Object | optional | The object itself when a child is a dynamic object field. |
GetBalanceRequest
Request message for `LiveDataService.GetBalance`.
| Field | Type | Label | Description |
| owner | string | optional | Required. The owner's Sui address. |
| coin_type | string | optional | Required. 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.
| Field | Type | Label | Description |
| balance | Balance | optional | The balance information for the requested coin type. |
GetCoinInfoRequest
Request message for `NodeService.GetCoinInfo`.
| Field | Type | Label | Description |
| coin_type | string | optional | The coin type to request information about |
GetCoinInfoResponse
Response message for `NodeService.GetCoinInfo`.
| Field | Type | Label | Description |
| coin_type | string | optional | Required. The coin type. |
| metadata | CoinMetadata | optional | This field will be populated with information about this coin
type's `0x2::coin::CoinMetadata` if it exists and has not been wrapped. |
| treasury | CoinTreasury | optional | This field will be populated with information about this coin
type's `0x2::coin::TreasuryCap` if it exists and has not been wrapped. |
| regulated_metadata | RegulatedCoinMetadata | optional | If 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`.
| Field | Type | Label | Description |
| owner | string | optional | Required. The owner's Sui address. |
| page_size | uint32 | optional | The 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_token | bytes | optional | A 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.
| Field | Type | Label | Description |
| balances | Balance | repeated | The list of coin types and their respective balances. |
| next_page_token | bytes | optional | A 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`
| Field | Type | Label | Description |
| parent | string | optional | Required. The `UID` of the parent, which owns the collections of dynamic fields. |
| page_size | uint32 | optional | The 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_token | bytes | optional | A 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_mask | FieldMask | optional | Mask specifying which fields to read.
If no mask is specified, defaults to `parent,field_id`. |
ListDynamicFieldsResponse
Response message for `NodeService.ListDynamicFields`
| Field | Type | Label | Description |
| dynamic_fields | DynamicField | repeated | Page of dynamic fields owned by the specified parent. |
| next_page_token | bytes | optional | A token, which can be sent as `page_token` to retrieve the next page.
If this field is omitted, there are no subsequent pages. |
ListOwnedObjectsRequest
| Field | Type | Label | Description |
| owner | string | optional | Required. The address of the account that owns the objects. |
| page_size | uint32 | optional | The 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_token | bytes | optional | A 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_mask | FieldMask | optional | Mask specifying which fields to read.
If no mask is specified, defaults to `object_id,version,object_type`. |
| object_type | string | optional | Optional 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
| Field | Type | Label | Description |
| objects | Object | repeated | Page of dynamic fields owned by the specified parent. |
| next_page_token | bytes | optional | A token, which can be sent as `page_token` to retrieve the next page.
If this field is omitted, there are no subsequent pages. |
Information about a regulated coin, which indicates that it makes use of the transfer deny list.
| Field | Type | Label | Description |
| id | string | optional | ObjectId of the `0x2::coin::RegulatedCoinMetadata` object.
Only present for coins that have not been migrated to CoinRegistry. |
| coin_metadata_object | string | optional | The ID of the coin's `CoinMetadata` or `CoinData` object. |
| deny_cap_object | string | optional | The ID of the coin's `DenyCap` object. |
| allow_global_pause | bool | optional | Whether the coin can be globally paused |
| variant | uint32 | optional | Variant of the regulated coin metadata |
| coin_regulated_state | CoinRegulatedState | optional | Indicates the coin's regulated state. |
CircomG1
A G1 point.
| Field | Type | Label | Description |
| e0 | string | optional | base10 encoded Bn254FieldElement |
| e1 | string | optional | base10 encoded Bn254FieldElement |
| e2 | string | optional | base10 encoded Bn254FieldElement |
CircomG2
A G2 point.
| Field | Type | Label | Description |
| e00 | string | optional | base10 encoded Bn254FieldElement |
| e01 | string | optional | base10 encoded Bn254FieldElement |
| e10 | string | optional | base10 encoded Bn254FieldElement |
| e11 | string | optional | base10 encoded Bn254FieldElement |
| e20 | string | optional | base10 encoded Bn254FieldElement |
| e21 | string | optional | base10 encoded Bn254FieldElement |
MultisigAggregatedSignature
Aggregated signature from members of a multisig committee.
| Field | Type | Label | Description |
| signatures | MultisigMemberSignature | repeated | The plain signatures encoded with signature scheme.
The signatures must be in the same order as they are listed in the committee. |
| bitmap | uint32 | optional | Bitmap indicating which committee members contributed to the
signature. |
| legacy_bitmap | bytes | optional | If present, means this signature's on-chain format uses the old
legacy multisig format. |
| committee | MultisigCommittee | optional | The committee to use to validate this signature. |
MultisigCommittee
A multisig committee.
| Field | Type | Label | Description |
| members | MultisigMember | repeated | A list of committee members and their corresponding weight. |
| threshold | uint32 | optional | The threshold of signatures needed to validate a signature from
this committee. |
MultisigMember
A member in a multisig committee.
| Field | Type | Label | Description |
| public_key | MultisigMemberPublicKey | optional | The public key of the committee member. |
| weight | uint32 | optional | The weight of this member's signature. |
MultisigMemberPublicKey
Set of valid public keys for multisig committee members.
| Field | Type | Label | Description |
| scheme | SignatureScheme | optional | The signature scheme of this public key. |
| public_key | bytes | optional | Public key bytes if scheme is ed25519 | secp256k1 | secp256r1 | passkey. |
| zklogin | ZkLoginPublicIdentifier | optional | A zklogin public identifier if scheme is zklogin. |
MultisigMemberSignature
A signature from a member of a multisig committee.
| Field | Type | Label | Description |
| scheme | SignatureScheme | optional | The signature scheme of this signature. |
| signature | bytes | optional | Signature bytes if scheme is ed25519 | secp256k1 | secp256r1. |
| zklogin | ZkLoginAuthenticator | optional | The zklogin authenticator if scheme is `ZKLOGIN`. |
| passkey | PasskeyAuthenticator | optional | The 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.
| Field | Type | Label | Description |
| authenticator_data | bytes | optional | Opaque 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_json | string | optional | Structured, unparsed, JSON for this passkey signature.
See [CollectedClientData](https://www.w3.org/TR/webauthn-2/#dictdef-collectedclientdata)
for more information on this field. |
| signature | SimpleSignature | optional | A secp256r1 signature. |
SimpleSignature
Either an ed25519, secp256k1 or secp256r1 signature
| Field | Type | Label | Description |
| scheme | SignatureScheme | optional | The signature scheme of this signature. |
| signature | bytes | optional | Signature bytes |
| public_key | bytes | optional | Public key bytes |
UserSignature
A signature from a user.
| Field | Type | Label | Description |
| bcs | Bcs | optional | This 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. |
| scheme | SignatureScheme | optional | The signature scheme of this signature. |
| simple | SimpleSignature | | Simple signature if scheme is ed25519 | secp256k1 | secp256r1. |
| multisig | MultisigAggregatedSignature | | The multisig aggregated signature if scheme is `MULTISIG`. |
| zklogin | ZkLoginAuthenticator | | The zklogin authenticator if scheme is `ZKLOGIN`. |
| passkey | PasskeyAuthenticator | | The passkey authenticator if scheme is `PASSKEY`. |
ValidatorAggregatedSignature
An aggregated signature from multiple validators.
| Field | Type | Label | Description |
| epoch | uint64 | optional | The epoch when this signature was produced.
This can be used to lookup the `ValidatorCommittee` from this epoch
to verify this signature. |
| signature | bytes | optional | The 48-byte Bls12381 aggregated signature. |
| bitmap | bytes | optional | Bitmap indicating which members of the committee contributed to
this signature. |
ValidatorCommittee
The validator set for a particular epoch.
ValidatorCommitteeMember
A member of a validator committee.
| Field | Type | Label | Description |
| public_key | bytes | optional | The 96-byte Bls12381 public key for this validator. |
| weight | uint64 | optional | voting weight this validator possesses. |
ZkLoginAuthenticator
A zklogin authenticator.
| Field | Type | Label | Description |
| inputs | ZkLoginInputs | optional | Zklogin proof and inputs required to perform proof verification. |
| max_epoch | uint64 | optional | Maximum epoch for which the proof is valid. |
| signature | SimpleSignature | optional | User signature with the public key attested to by the provided proof. |
| public_identifier | ZkLoginPublicIdentifier | optional | The public identifier (similar to a public key) for this zklogin authenticator |
| jwk_id | JwkId | optional | The id of the JWK used to authorize this zklogin authenticator |
ZkLoginClaim
A claim of the iss in a zklogin proof.
| Field | Type | Label | Description |
| value | string | optional | |
| index_mod_4 | uint32 | optional | |
A zklogin groth16 proof and the required inputs to perform proof verification.
| Field | Type | Label | Description |
| proof_points | ZkLoginProof | optional | |
| iss_base64_details | ZkLoginClaim | optional | |
| header_base64 | string | optional | |
| address_seed | string | optional | base10 encoded Bn254FieldElement |
ZkLoginProof
A zklogin groth16 proof.
ZkLoginPublicIdentifier
Public key equivalent for zklogin authenticators.
| Field | Type | Label | Description |
| iss | string | optional | |
| address_seed | string | optional | base10 encoded Bn254FieldElement |
CleverError
CoinDenyListError
| Field | Type | Label | Description |
| address | string | optional | Denied address. |
| coin_type | string | optional | Coin type. |
CommandArgumentError
An error with an argument to a command.
CongestedObjects
Set of objects that were congested, leading to the transaction's cancellation.
| Field | Type | Label | Description |
| objects | string | repeated | |
ExecutionError
An error that can occur during the execution of a transaction.
ExecutionStatus
The status of an executed transaction.
| Field | Type | Label | Description |
| success | bool | optional | Indicates if the transaction was successful or not. |
| error | ExecutionError | optional | The error if `success` is false. |
IndexError
| Field | Type | Label | Description |
| index | uint32 | optional | Index of an input or result. |
| subresult | uint32 | optional | Index of a subresult. |
MoveAbort
| Field | Type | Label | Description |
| abort_code | uint64 | optional | |
| location | MoveLocation | optional | Location in Move where the error occurred. |
| clever_error | CleverError | optional | Extra error information if abort code is a "Clever Error" |
MoveLocation
Location in Move bytecode where an error occurred.
| Field | Type | Label | Description |
| package | string | optional | The package ID. |
| module | string | optional | The module name. |
| function | uint32 | optional | The function index. |
| instruction | uint32 | optional | Offset of the instruction where the error occurred. |
| function_name | string | optional | The name of the function, if available. |
PackageUpgradeError
An error with upgrading a package.
SizeError
A size error.
| Field | Type | Label | Description |
| size | uint64 | optional | The offending size. |
| max_size | uint64 | optional | The maximum allowable size. |
TypeArgumentError
Type argument error.
ObjectReference
Reference to an object.
| Field | Type | Label | Description |
| object_id | string | optional | The object id of this object. |
| version | uint64 | optional | The version of this object. |
| digest | string | optional | The digest of this object. |
ActiveJwk
A new JWK.
| Field | Type | Label | Description |
| id | JwkId | optional | Identifier used to uniquely identify a JWK. |
| jwk | Jwk | optional | The JWK. |
| epoch | uint64 | optional | Most recent epoch in which the JWK was validated. |
AuthenticatorStateExpire
Expire old JWKs.
| Field | Type | Label | Description |
| min_epoch | uint64 | optional | Expire JWKs that have a lower epoch than this. |
| authenticator_object_initial_shared_version | uint64 | optional | The initial version of the authenticator object that it was shared at. |
AuthenticatorStateUpdate
Update the set of valid JWKs.
| Field | Type | Label | Description |
| epoch | uint64 | optional | Epoch of the authenticator state update transaction. |
| round | uint64 | optional | Consensus round of the authenticator state update. |
| new_active_jwks | ActiveJwk | repeated | Newly active JWKs. |
| authenticator_object_initial_shared_version | uint64 | optional | The initial version of the authenticator object that it was shared at. |
CanceledTransaction
A transaction that was canceled.
| Field | Type | Label | Description |
| digest | string | optional | Digest of the canceled transaction. |
| version_assignments | VersionAssignment | repeated | List of object version assignments. |
ChangeEpoch
System transaction used to change the epoch.
| Field | Type | Label | Description |
| epoch | uint64 | optional | The next (to become) epoch ID. |
| protocol_version | uint64 | optional | The protocol version in effect in the new epoch. |
| storage_charge | uint64 | optional | The total amount of gas charged for storage during the epoch. |
| computation_charge | uint64 | optional | The total amount of gas charged for computation during the epoch. |
| storage_rebate | uint64 | optional | The amount of storage rebate refunded to the txn senders. |
| non_refundable_storage_fee | uint64 | optional | The non-refundable storage fee. |
| epoch_start_timestamp | Timestamp | optional | Unix timestamp when epoch started. |
| system_packages | SystemPackage | repeated | System 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.
| Field | Type | Label | Description |
| move_call | MoveCall | | A call to either an entry or a public Move function. |
| transfer_objects | TransferObjects | | `(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_coins | SplitCoins | | `(&mut Coin<T>, Vec<u64>)` -> `Vec<Coin<T>>`
It splits off some amounts into new coins with those amounts. |
| merge_coins | MergeCoins | | `(&mut Coin<T>, Vec<Coin<T>>)`
It merges n-coins into the first coin. |
| publish | Publish | | Publishes a Move package. It takes the package bytes and a list of the package's transitive
dependencies to link against on chain. |
| make_move_vector | MakeMoveVector | | `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. |
| upgrade | Upgrade | | Upgrades 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.
| Field | Type | Label | Description |
| epoch | uint64 | optional | Epoch of the commit prologue transaction.
Present in V1, V2, V3, V4. |
| round | uint64 | optional | Consensus round of the commit.
Present in V1, V2, V3, V4. |
| commit_timestamp | Timestamp | optional | Unix timestamp from consensus.
Present in V1, V2, V3, V4. |
| consensus_commit_digest | string | optional | Digest of consensus output.
Present in V2, V3, V4. |
| sub_dag_index | uint64 | optional | The 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_assignments | ConsensusDeterminedVersionAssignments | optional | Stores consensus handler determined consensus object version assignments.
Present in V3, V4. |
| additional_state_digest | string | optional | Digest 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.
| Field | Type | Label | Description |
| version | int32 | optional | Version of this message |
| canceled_transactions | CanceledTransaction | repeated | Canceled 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.
EndOfEpochTransactionKind
Operation run at the end of an epoch.
| Field | Type | Label | Description |
| kind | Kind | optional | |
| change_epoch | ChangeEpoch | | End the epoch and start the next one. |
| authenticator_state_expire | AuthenticatorStateExpire | | Expire JWKs used for zklogin. |
| execution_time_observations | ExecutionTimeObservations | | Execution time observations from the committee to preserve cross epoch |
| bridge_chain_id | string | | ChainId used when initializing the bridge |
| bridge_object_version | uint64 | | Start version of the Bridge object |
| storage_cost | uint64 | | Contains the end-of-epoch-computed storage cost for accumulator objects. |
ExecutionTimeObservation
ExecutionTimeObservations
GasPayment
Payment information for executing a transaction.
| Field | Type | Label | Description |
| objects | ObjectReference | repeated | Set of gas objects to use for payment. |
| owner | string | optional | Owner of the gas objects, either the transaction sender or a sponsor. |
| price | uint64 | optional | Gas unit price to use when charging for computation.
Must be greater than or equal to the network's current RGP (reference gas price). |
| budget | uint64 | optional | Total budget willing to spend for the execution of a transaction. |
GenesisTransaction
The genesis transaction.
| Field | Type | Label | Description |
| objects | Object | repeated | Set of genesis objects. |
MakeMoveVector
Command to build a Move vector out of a set of individual elements.
| Field | Type | Label | Description |
| element_type | string | optional | Type 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. |
| elements | Argument | repeated | The set individual elements to build the vector with. |
MergeCoins
Command to merge multiple coins of the same type into a single coin.
| Field | Type | Label | Description |
| coin | Argument | optional | Coin to merge coins into. |
| coins_to_merge | Argument | repeated | Set 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).
| Field | Type | Label | Description |
| package | string | optional | The package containing the module and function. |
| module | string | optional | The specific module in the package containing the function. |
| function | string | optional | The function to be called. |
| type_arguments | string | repeated | The type arguments to the function. |
| arguments | Argument | repeated | The 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.
| Field | Type | Label | Description |
| inputs | Input | repeated | Input objects or primitive values. |
| commands | Command | repeated | The 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.
| Field | Type | Label | Description |
| modules | bytes | repeated | The serialized Move modules. |
| dependencies | string | repeated | Set of packages that the to-be published package depends on. |
RandomnessStateUpdate
Randomness update.
| Field | Type | Label | Description |
| epoch | uint64 | optional | Epoch of the randomness state update transaction. |
| randomness_round | uint64 | optional | Randomness round of the update. |
| random_bytes | bytes | optional | Updated random bytes. |
| randomness_object_initial_shared_version | uint64 | optional | The initial version of the randomness object that it was shared at. |
SplitCoins
Command to split a single coin object into multiple coins.
| Field | Type | Label | Description |
| coin | Argument | optional | The coin to split. |
| amounts | Argument | repeated | The amounts to split off. |
SystemPackage
System package.
| Field | Type | Label | Description |
| version | uint64 | optional | Version of the package. |
| modules | bytes | repeated | Move modules. |
| dependencies | string | repeated | Package dependencies. |
Transaction
A transaction.
TransactionExpiration
A TTL for a transaction.
| Field | Type | Label | Description |
| kind | TransactionExpirationKind | optional | |
| epoch | uint64 | optional | Maximum 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_epoch | uint64 | optional | Minimal 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_timestamp | Timestamp | optional | Minimal UNIX timestamp in which a transaction can be executed. The
provided minimal timestamp must be less than or equal to the current
clock. |
| max_timestamp | Timestamp | optional | Maximum UNIX timestamp in which a transaction can be executed. The
provided maximal timestamp must be greater than or equal to the current
clock. |
| chain | string | optional | ChainId of the network this transaction is intended for in order to prevent cross-chain replay |
| nonce | uint32 | optional | User-provided uniqueness identifier to differentiate otherwise identical transactions |
TransactionKind
Transaction type.
| Field | Type | Label | Description |
| kind | Kind | optional | |
| programmable_transaction | ProgrammableTransaction | | A transaction comprised of a list of native commands and Move calls. |
| change_epoch | ChangeEpoch | | System transaction used to end an epoch.
The `ChangeEpoch` variant is now deprecated (but the `ChangeEpoch` struct is still used by
`EndOfEpochTransaction`). |
| genesis | GenesisTransaction | | Transaction 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 | ConsensusCommitPrologue | | consensus commit update info |
| authenticator_state_update | AuthenticatorStateUpdate | | Update set of valid JWKs used for zklogin. |
| end_of_epoch | EndOfEpochTransaction | | Set of operations to run at the end of the epoch to close out the current epoch and start
the next one. |
| randomness_state_update | RandomnessStateUpdate | | Randomness update. |
TransferObjects
Command to transfer ownership of a set of objects to an address.
| Field | Type | Label | Description |
| objects | Argument | repeated | Set of objects to transfer. |
| address | Argument | optional | The address to transfer ownership to. |
Upgrade
Command to upgrade an already published package.
| Field | Type | Label | Description |
| modules | bytes | repeated | The serialized Move modules. |
| dependencies | string | repeated | Set of packages that the to-be published package depends on. |
| package | string | optional | Package ID of the package to upgrade. |
| ticket | Argument | optional | Ticket authorizing the upgrade. |
ValidatorExecutionTimeObservation
| Field | Type | Label | Description |
| validator | bytes | optional | Bls12381 public key of the validator |
| duration | Duration | optional | Duration of an execution observation |
VersionAssignment
Object version assignment from consensus.
| Field | Type | Label | Description |
| object_id | string | optional | `ObjectId` of the object. |
| start_version | uint64 | optional | start version of the consensus stream for this object |
| version | uint64 | optional | Assigned version. |
Epoch
| Field | Type | Label | Description |
| epoch | uint64 | optional | |
| committee | ValidatorCommittee | optional | The committee governing this epoch. |
| system_state | SystemState | optional | Snapshot 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_checkpoint | uint64 | optional | |
| last_checkpoint | uint64 | optional | |
| start | Timestamp | optional | |
| end | Timestamp | optional | |
| reference_gas_price | uint64 | optional | Reference gas price denominated in MIST |
| protocol_config | ProtocolConfig | optional | |
CheckpointCommitment
A commitment made by a checkpoint.
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.
| Field | Type | Label | Description |
| bcs | Bcs | optional | This CheckpointSummary serialized as BCS. |
| digest | string | optional | The digest of this CheckpointSummary. |
| epoch | uint64 | optional | Epoch that this checkpoint belongs to. |
| sequence_number | uint64 | optional | The height of this checkpoint. |
| total_network_transactions | uint64 | optional | Total number of transactions committed since genesis, including those in this
checkpoint. |
| content_digest | string | optional | The hash of the `CheckpointContents` for this checkpoint. |
| previous_digest | string | optional | The hash of the previous `CheckpointSummary`.
This will be `None` only for the first, or genesis, checkpoint. |
| epoch_rolling_gas_cost_summary | GasCostSummary | optional | The running total gas costs of all transactions included in the current epoch so far
until this checkpoint. |
| timestamp | Timestamp | optional | Timestamp 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. |
| commitments | CheckpointCommitment | repeated | Commitments to checkpoint-specific state. |
| end_of_epoch_data | EndOfEpochData | optional | Extra data only present in the final checkpoint of an epoch. |
| version_specific_data | bytes | optional | `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`.
| Field | Type | Label | Description |
| next_epoch_committee | ValidatorCommitteeMember | repeated | The set of validators that will be in the `ValidatorCommittee` for the next epoch. |
| next_epoch_protocol_version | uint64 | optional | The protocol version that is in effect during the next epoch. |
| epoch_commitments | CheckpointCommitment | repeated | Commitments to epoch specific state (live object set) |
GasCostSummary
Summary of gas charges.
| Field | Type | Label | Description |
| computation_cost | uint64 | optional | Cost of computation/execution. |
| storage_cost | uint64 | optional | Storage cost, it's the sum of all storage cost for all objects created or mutated. |
| storage_rebate | uint64 | optional | The amount of storage cost refunded to the user for all objects deleted or mutated in the
transaction. |
| non_refundable_storage_fee | uint64 | optional | The fee for the rebate. The portion of the storage rebate kept by the system. |