Sui Full node gRPC API will replace the JSON-RPC on Full nodes, such that JSON-RPC will be deprecated when gRPC API is generally available.
Messages
Balance
Balance information for a specific coin type.
Fields
balance
Proto3 optional
Shows the total balance of the coin in its smallest unit.
coin_type
Proto3 optional
The type of the coin (e.g., 0x2::sui::SUI).
Fields
decimals
Proto3 optional
Number of decimal places to coin uses.
description
Proto3 optional
Description of the token
icon_url
Proto3 optional
URL for the token logo
id
Proto3 optional
ObjectId of the 0x2::coin::CoinMetadata
object.
name
Proto3 optional
Name for the token
symbol
Proto3 optional
Symbol for the token
CoinTreasury
Information about a coin type's 0x2::coin::TreasuryCap
and its total available supply
Fields
id
Proto3 optional
ObjectId of the 0x2::coin::TreasuryCap
object.
total_supply
Proto3 optional
Total available supply for this coin type.
CommandOutput
Fields
argument
json
Proto3 optional
JSON rendering of the output.
value
CommandResult
An intermediate result/output from the execution of a single command
Fields
mutated_by_ref
return_values
DynamicField
Fields
dynamic_object_id
Proto3 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
field_id
Proto3 optional
ObjectId of this dynamic field.
kind
name_type
Proto3 optional
The type of the dynamic field "name"
name_value
Proto3 optional
The serialized move value of "name"
object
Proto3 optional
The object itself when a child is a dynamic object field.
parent
Proto3 optional
ObjectId of this dynamic field's parent.
value_type
Proto3 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.
GetBalanceRequest
Request message for LiveDataService.GetBalance
.
Fields
coin_type
Proto3 optional
Required. The type names for the coin (e.g., 0x2::sui::SUI).
owner
Proto3 optional
Required. The owner's Sui address.
GetBalanceResponse
Response message for LiveDataService.GetBalance
.
Return the total coin balance for one coin type, owned by the address owner.
Fields
balance
Proto3 optional
The balance information for the requested coin type.
GetCoinInfoRequest
Request message for NodeService.GetCoinInfo
.
Fields
coin_type
Proto3 optional
The coin type to request information about
GetCoinInfoResponse
Response message for NodeService.GetCoinInfo
.
Fields
coin_type
Proto3 optional
Required. The coin type.
metadata
Proto3 optional
This field will be populated with information about this coin type's 0x2::coin::CoinMetadata
if it exists and has not been wrapped.
regulated_metadata
Proto3 optional
If this coin type is a regulated coin, this field will be populated with information about its 0x2::coin::RegulatedCoinMetadata
object.
treasury
Proto3 optional
This field will be populated with information about this coin type's 0x2::coin::TreasuryCap
if it exists and has not been wrapped.
ListBalancesRequest
Request message for LiveDataService.ListBalances
.
Fields
owner
Proto3 optional
Required. The owner's Sui address.
page_size
Proto3 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
Proto3 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.
Fields
balances
Repeated []
The list of coin types and their respective balances.
next_page_token
Proto3 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
Fields
page_size
Proto3 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
Proto3 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.
parent
Proto3 optional
Required. The UID
of the parent, which owns the collections of dynamic fields.
read_mask
ListDynamicFieldsResponse
Response message for NodeService.ListDynamicFields
Fields
dynamic_fields
Repeated []
Page of dynamic fields owned by the specified parent.
next_page_token
Proto3 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
Fields
object_type
Proto3 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 retrict 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.
owner
Proto3 optional
Required. The address of the account that owns the objects.
page_size
Proto3 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
Proto3 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
ListOwnedObjectsResponse
Fields
next_page_token
Proto3 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.
objects
Repeated []
Page of dynamic fields owned by the specified parent.
Information about a regulated coin, which indicates that it makes use of the transfer deny list.
Fields
coin_metadata_object
Proto3 optional
The ID of the coin's CoinMetadata
object.
deny_cap_object
Proto3 optional
The ID of the coin's DenyCap
object.
id
Proto3 optional
ObjectId of the 0x2::coin::RegulatedCoinMetadata
object.
SimulateTransactionRequest
Fields
checks
Proto3 optional
Specify whether checks should be ENABLED (default) or DISABLED while executing the transaction
do_gas_selection
Proto3 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
.
read_mask
transaction
SimulateTransactionResponse
Services (live_data_service.proto)
LiveDataService
Enums
DynamicFieldKind
Enums
DYNAMIC_FIELD_KIND_UNKNOWN
FIELD
OBJECT
TransactionChecks
buf:lint:ignore ENUM_ZERO_VALUE_SUFFIX
Messages
ActiveJwk
Fields
epoch
Proto3 optional
Most recent epoch in which the JWK was validated.
id
Proto3 optional
Identifier used to uniquely identify a JWK.
jwk
AuthenticatorStateExpire
Fields
authenticator_object_initial_shared_version
Proto3 optional
The initial version of the authenticator object that it was shared at.
min_epoch
Proto3 optional
Expire JWKs that have a lower epoch than this.
AuthenticatorStateUpdate
Update the set of valid JWKs.
Fields
authenticator_object_initial_shared_version
Proto3 optional
The initial version of the authenticator object that it was shared at.
epoch
Proto3 optional
Epoch of the authenticator state update transaction.
new_active_jwks
Repeated []
Newly active JWKs.
round
Proto3 optional
Consensus round of the authenticator state update.
CanceledTransaction
A transaction that was canceled.
Fields
digest
Proto3 optional
Digest of the canceled transaction.
version_assignments
Repeated []
List of object version assignments.
ChangeEpoch
System transaction used to change the epoch.
Fields
computation_charge
Proto3 optional
The total amount of gas charged for computation during the epoch.
epoch
Proto3 optional
The next (to become) epoch ID.
epoch_start_timestamp
Proto3 optional
Unix timestamp when epoch started.
non_refundable_storage_fee
Proto3 optional
The non-refundable storage fee.
protocol_version
Proto3 optional
The protocol version in effect in the new epoch.
storage_charge
Proto3 optional
The total amount of gas charged for storage during the epoch.
storage_rebate
Proto3 optional
The amount of storage rebate refunded to the txn senders.
system_packages
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.
Fields
Union field command can be only one of the following.
make_move_vector
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.
merge_coins
(&mut Coin<T>, Vec<Coin<T>>)
It merges n-coins into the first coin.
move_call
A call to either an entry or a public Move function.
publish
Publishes a Move package. It takes the package bytes and a list of the package's transitive dependencies to link against on chain.
split_coins
(&mut Coin<T>, Vec<u64>)
-> Vec<Coin<T>>
It splits off some amounts into new coins with those amounts.
transfer_objects
(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.
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.
Fields
additional_state_digest
Proto3 optional
Digest of any additional state computed by the consensus handler. Used to detect forking bugs as early as possible. Present in V4.
commit_timestamp
Proto3 optional
Unix timestamp from consensus. Present in V1, V2, V3, V4.
consensus_commit_digest
Proto3 optional
Digest of consensus output. Present in V2, V3, V4.
consensus_determined_version_assignments
Proto3 optional
Stores consensus handler determined shared object version assignments. Present in V3, V4.
epoch
Proto3 optional
Epoch of the commit prologue transaction. Present in V1, V2, V3, V4.
round
Proto3 optional
Consensus round of the commit. Present in V1, V2, V3, V4.
sub_dag_index
Proto3 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.
ConsensusDeterminedVersionAssignments
Version assignments performed by consensus.
Fields
canceled_transactions
Repeated []
Canceled transaction version assignment.
version
Proto3 optional
Version of this message
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.
Fields
Union field kind can be only one of the following.
accumulator_root_create
Create the accumulator root object.
authenticator_state_create
Create and initialize the authenticator object used for zklogin.
authenticator_state_expire
Expire JWKs used for zklogin.
bridge_committee_init
Initialize the bridge committee.
bridge_state_create
Create and initialize the bridge object.
change_epoch
End the epoch and start the next one.
coin_registry_create
Create and initialize the Coin Registry object.
deny_list_state_create
Create and initialize the deny list object.
execution_time_observations
Execution time observations from the committee to preserve cross epoch
randomness_state_create
Create and initialize the randomness object.
ExecutionTimeObservation
Fields
kind
move_entry_point
validator_observations
ExecutionTimeObservations
Fields
observations
version
Proto3 optional
Version of this ExecutionTimeObservations
GasPayment
Payment information for executing a transaction.
Fields
budget
Proto3 optional
Total budget willing to spend for the execution of a transaction.
objects
Repeated []
Set of gas objects to use for payment.
owner
Proto3 optional
Owner of the gas objects, either the transaction sender or a sponsor.
price
Proto3 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).
GenesisTransaction
Fields
objects
Repeated []
Set of genesis objects.
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, &#lt;https://www.googleapis.com/oauth2/v3/certs>).
The JWK is used to verify the JWT token.
JwkId
Key to uniquely identify a JWK.
Fields
iss
Proto3 optional
The issuer or identity of the OIDC provider.
kid
Proto3 optional
A key ID used to uniquely identify a key from an OIDC provider.
MakeMoveVector
Command to build a Move vector out of a set of individual elements.
Fields
element_type
Proto3 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
Repeated []
The set individual elements to build the vector with.
MergeCoins
Command to merge multiple coins of the same type into a single coin.
Fields
coin
Proto3 optional
Coin to merge coins into.
coins_to_merge
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).
Fields
arguments
Repeated []
The arguments to the function.
function
Proto3 optional
The function to be called.
module
Proto3 optional
The specific module in the package containing the function.
package
Proto3 optional
The package containing the module and function.
type_arguments
Repeated []
The type 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.
Fields
commands
Repeated []
The commands to be executed sequentially. A failure in any command results in the failure of the entire transaction.
inputs
Repeated []
Input objects or primitive values.
Publish
Command to publish a new Move package.
Fields
dependencies
Repeated []
Set of packages that the to-be published package depends on.
modules
Repeated []
The serialized Move modules.
RandomnessStateUpdate
Fields
epoch
Proto3 optional
Epoch of the randomness state update transaction.
random_bytes
Proto3 optional
Updated random bytes.
randomness_object_initial_shared_version
Proto3 optional
The initial version of the randomness object that it was shared at.
randomness_round
Proto3 optional
Randomness round of the update.
SplitCoins
Command to split a single coin object into multiple coins.
Fields
amounts
Repeated []
The amounts to split off.
coin
Proto3 optional
The coin to split.
SystemPackage
Fields
dependencies
Repeated []
Package dependencies.
modules
version
Proto3 optional
Version of the package.
Transaction
Fields
bcs
Proto3 optional
This Transaction serialized as BCS.
digest
Proto3 optional
The digest of this Transaction.
expiration
gas_payment
kind
sender
version
Proto3 optional
Version of this Transaction.
TransactionExpiration
TransactionKind
Fields
Union field kind can be only one of the following.
authenticator_state_update
Update set of valid JWKs used for zklogin.
change_epoch
System transaction used to end an epoch. The ChangeEpoch
variant is now deprecated (but the ChangeEpoch
struct is still used by EndOfEpochTransaction
).
consensus_commit_prologue_v1
V1 consensus commit update.
consensus_commit_prologue_v2
V2 consensus commit update.
consensus_commit_prologue_v3
V3 consensus commit update.
consensus_commit_prologue_v4
V4 consensus commit update.
end_of_epoch
Set of operations to run at the end of the epoch to close out the current epoch and start the next one.
genesis
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.
programmable_system_transaction
A system transaction comprised of a list of native commands and Move calls.
programmable_transaction
A user transaction comprised of a list of native commands and Move calls.
randomness_state_update
TransferObjects
Command to transfer ownership of a set of objects to an address.
Fields
address
Proto3 optional
The address to transfer ownership to.
objects
Repeated []
Set of objects to transfer.
Upgrade
Command to upgrade an already published package.
Fields
dependencies
Repeated []
Set of packages that the to-be published package depends on.
modules
Repeated []
The serialized Move modules.
package
Proto3 optional
Package ID of the package to upgrade.
ticket
Proto3 optional
Ticket authorizing the upgrade.
ValidatorExecutionTimeObservation
Fields
duration
Proto3 optional
Duration of an execution observation
validator
Proto3 optional
Bls12381 public key of the validator
VersionAssignment
Object version assignment from consensus.
Fields
object_id
Proto3 optional
ObjectId
of the object.
start_version
Proto3 optional
start version of the consensus stream for this object
version
Proto3 optional
Assigned version.
Enums
ExecutionTimeObservationKind
Enums
EXECUTION_TIME_OBSERVATION_KIND_UNKNOWN
MOVE_ENTRY_POINT
TRANSFER_OBJECTS
SPLIT_COINS
MERGE_COINS
PUBLISH
MAKE_MOVE_VECTOR
UPGRADE
TransactionExpirationKind
Enums
TRANSACTION_EXPIRATION_KIND_UNKNOWN
NONE
The transaction has no expiration.
EPOCH
Validators won't sign and execute transaction unless the expiration epoch is greater than or equal to the current epoch.
Messages
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.
Fields
bcs
Proto3 optional
This CheckpointSummary serialized as BCS.
commitments
Repeated []
Commitments to checkpoint-specific state.
content_digest
Proto3 optional
The hash of the CheckpointContents
for this checkpoint.
digest
Proto3 optional
The digest of this CheckpointSummary.
end_of_epoch_data
Proto3 optional
Extra data only present in the final checkpoint of an epoch.
epoch
Proto3 optional
Epoch that this checkpoint belongs to.
epoch_rolling_gas_cost_summary
Proto3 optional
The running total gas costs of all transactions included in the current epoch so far until this checkpoint.
previous_digest
Proto3 optional
The hash of the previous CheckpointSummary
. This will be None
only for the first, or genesis, checkpoint.
sequence_number
Proto3 optional
The height of this checkpoint.
timestamp
Proto3 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.
total_network_transactions
Proto3 optional
Total number of transactions committed since genesis, including those in this checkpoint.
version_specific_data
Proto3 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
.
Fields
epoch_commitments
Repeated []
Commitments to epoch specific state (live object set)
next_epoch_committee
Repeated []
The set of validators that will be in the ValidatorCommittee
for the next epoch.
next_epoch_protocol_version
Proto3 optional
The protocol version that is in effect during the next epoch.
Enums
CheckpointCommitmentKind
Enums
CHECKPOINT_COMMITMENT_KIND_UNKNOWN
ECMH_LIVE_OBJECT_SET
An elliptic curve multiset hash attesting to the set of objects that comprise the live state of the Sui blockchain.
Messages
DatatypeDescriptor
Describes a Move Datatype.
Fields
abilities
Repeated []
This type's abilities
defining_id
Proto3 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.
fields
Repeated []
Set of fields if this Datatype is a struct. The order of the entries is the order of how the fields are defined.
kind
Proto3 optional
Indicates whether this datatype is a 'STRUCT' or an 'ENUM'
module
Proto3 optional
Name of the module where this Datatype is defined
name
Proto3 optional
Name of this Datatype
type_name
Proto3 optional
Fully qualified name of this Datatype. This is <defining_id>::<module>::<name>
type_parameters
Repeated []
Ability constraints and phantom status for this type's generic type parameters
variants
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
Fields
name
Proto3 optional
Name of the field
position
Proto3 optional
Order or position of the field in the struct or enum variant definition.
type
Proto3 optional
The type of the field
FunctionDescriptor
Descriptor of a Move function
Fields
is_entry
Proto3 optional
Whether the function is marked entry
or not.
name
Proto3 optional
Name of the function
parameters
Repeated []
Formal parameter types.
returns
type_parameters
Repeated []
Ability constraints for type parameters
visibility
Proto3 optional
Whether the function is public
, private
or public(friend)
Linkage
Upgraded package info for the linkage table.
Fields
original_id
Proto3 optional
Id of the original package.
upgraded_id
Proto3 optional
Id of the upgraded package.
upgraded_version
Proto3 optional
Version of the upgraded package.
Module
Fields
contents
Proto3 optional
Serialized bytecode of the module.
datatypes
Repeated []
List of DataTypes defined by this module.
functions
Repeated []
List of Functions defined by this module.
name
Proto3 optional
Name of 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
Fields
type
Proto3 optional
Type of this signature
type_name
Proto3 optional
Fully qualified name of the datatype when type
is DATATYPE
type_parameter
Proto3 optional
Position of the type parameter as defined in the containing data type descriptor when type
is TYPE_PARAMETER
type_parameter_instantiation
Repeated []
Set when type
is VECTOR
or DATATYPE
Package
Fields
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).
modules
Repeated []
The modules defined by this package
original_id
Proto3 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.
storage_id
Proto3 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.
type_origins
Repeated []
List of datatype origins for mapping datatypes to a package version where it was first defined
version
Proto3 optional
The version of this package
TypeOrigin
Identifies a struct and the module it was defined in.
Fields
datatype_name
module_name
package_id
TypeParameter
A generic type parameter used in the declaration of a struct or enum.
Fields
constraints
Repeated []
The type parameter constraints
is_phantom
Proto3 optional
Whether the parameter is declared as phantom
VariantDescriptor
Descriptor of an enum variant
Fields
fields
Repeated []
Set of fields defined by this variant.
name
Proto3 optional
Name of the variant
position
Proto3 optional
Order or position of the variant in the enum definition.
Enums
Ability
An Ability
classifies what operations are permitted for a given type
Enums
ABILITY_UNKNOWN
COPY
Allows values of types with this ability to be copied
DROP
Allows values of types with this ability to be dropped.
STORE
Allows values of types with this ability to exist inside a struct in global storage
KEY
Allows the type to serve as a key for global storage operations
DatatypeKind
Enums
DATATYPE_KIND_UNKNOWN
STRUCT
ENUM
Visibility
Enums
VISIBILITY_UNKNOWN
PRIVATE
PUBLIC
FRIEND
Reference
Enums
REFERENCE_UNKNOWN
IMMUTABLE
MUTABLE
Type
Enums
TYPE_UNKNOWN
ADDRESS
BOOL
U8
U16
U32
U64
U128
U256
VECTOR
DATATYPE
TYPE_PARAMETER
Messages
MoveTable
A message that represents a Move 0x2::table::Table
or 0x2::bag::Bag
Fields
id
Proto3 optional
The UID of the table or bag
size
Proto3 optional
The size or number of key-value pairs in the table or bag
StakeSubsidy
Fields
balance
Proto3 optional
Balance of SUI set aside for stake subsidies that will be drawn down over time.
current_distribution_amount
Proto3 optional
The amount of stake subsidy to be drawn down per distribution. This amount decays and decreases over time.
distribution_counter
Proto3 optional
Count of the number of times stake subsidies have been distributed.
extra_fields
Proto3 optional
Any extra fields that's not defined statically.
stake_subsidy_decrease_rate
Proto3 optional
The rate at which the distribution amount decays at the end of each period. Expressed in basis points.
stake_subsidy_period_length
Proto3 optional
Number of distributions to occur before the distribution amount decays.
StakingPool
A staking pool embedded in each validator struct in the system state object.
Fields
activation_epoch
Proto3 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
Proto3 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>
.
exchange_rates
Proto3 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
extra_fields
Proto3 optional
Any extra fields that's not defined statically.
id
Proto3 optional
UID of the StakingPool object
pending_pool_token_withdraw
Proto3 optional
Pending pool token withdrawn during the current epoch, emptied at epoch boundaries.
pending_stake
Proto3 optional
Pending stake amount for this epoch, emptied at epoch boundaries.
pending_total_sui_withdraw
Proto3 optional
Pending stake withdrawn during the current epoch, emptied at epoch boundaries. This includes both the principal and rewards SUI withdrawn.
pool_token_balance
Proto3 optional
Total number of pool tokens issued by the pool.
rewards_pool
Proto3 optional
The epoch stake rewards will be added here at the end of each epoch.
sui_balance
Proto3 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.
StorageFund
Struct representing the onchain storage fund.
Fields
non_refundable_balance
Proto3 optional
Represents any remaining inflow of the storage fund that should not be taken out of the fund.
total_object_storage_rebates
Proto3 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
.
SystemParameters
Fields
epoch_duration_ms
Proto3 optional
The duration of an epoch, in milliseconds.
extra_fields
Proto3 optional
Any extra fields that are not defined statically.
max_validator_count
Proto3 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_count
Proto3 optional
Minimum number of active validators at any moment.
min_validator_joining_stake
Proto3 optional
Deprecated. Lower-bound on the amount of stake required to become a validator.
stake_subsidy_start_epoch
Proto3 optional
The starting epoch in which stake subsidies start being paid out
validator_low_stake_grace_period
Proto3 optional
A validator can have stake below validator_low_stake_threshold
for this many epochs before being kicked out.
validator_low_stake_threshold
Proto3 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
Proto3 optional
Deprecated. Validators with stake below validator_very_low_stake_threshold
will be removed immediately at epoch change, no grace period.
SystemState
Fields
epoch
Proto3 optional
The epoch id
epoch_start_timestamp_ms
Proto3 optional
Unix timestamp of when this this epoch started
extra_fields
Proto3 optional
Any extra fields that's not defined statically.
parameters
Proto3 optional
Set of system config parameters
protocol_version
Proto3 optional
The protocol version
reference_gas_price
Proto3 optional
The reference gas price for this epoch
safe_mode
Proto3 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_computation_rewards
Proto3 optional
Computation rewards accumulated during safe_mode
safe_mode_non_refundable_storage_fee
Proto3 optional
Nonrefundable storage fees accumulated during safe_mode
safe_mode_storage_rebates
Proto3 optional
Storage rebates paid out during safe_mode
safe_mode_storage_rewards
Proto3 optional
Storage rewards accumulated during safe_mode
stake_subsidy
Proto3 optional
Schedule of stake subsidies given out each epoch.
storage_fund
Proto3 optional
Storage Fund info
validator_report_records
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.
validators
Proto3 optional
Information about the validators
version
Proto3 optional
The version of the system state data structure type.
Validator
Definition of a Validator in the system contracts
Note: fields of ValidatorMetadata are flattened into this type
Fields
address
Proto3 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.
commission_rate
Proto3 optional
Commission rate of the validator, in basis point.
description
extra_fields
Proto3 optional
Any extra fields that's not defined statically.
gas_price
Proto3 optional
Gas price quote, updated only at end of epoch.
image_url
metadata_extra_fields
Proto3 optional
Any extra fields that's not defined statically in the ValidatorMetadata
struct
name
Proto3 optional
A unique human-readable name of this validator.
network_address
Proto3 optional
The network address of the validator (could also contain extra info such as port, DNS and etc.).
network_public_key
Proto3 optional
The public key bytes corresponding to the private key that the validator uses to establish TLS connections
next_epoch_commission_rate
Proto3 optional
The commission rate of the validator starting the next epoch, in basis point.
next_epoch_gas_price
Proto3 optional
This validator's gas price quote for the next epoch.
next_epoch_network_address
next_epoch_network_public_key
next_epoch_p2p_address
next_epoch_primary_address
next_epoch_proof_of_possession
next_epoch_protocol_public_key
next_epoch_stake
Proto3 optional
Total amount of stake that would be active in the next epoch.
next_epoch_worker_address
next_epoch_worker_public_key
operation_cap_id
Proto3 optional
The ID of this validator's current valid UnverifiedValidatorOperationCap
p2p_address
Proto3 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
Proto3 optional
The address of the narwhal primary
project_url
proof_of_possession
Proto3 optional
This is a proof that the validator has ownership of the protocol private key
protocol_public_key
Proto3 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.
staking_pool
Proto3 optional
Staking pool for this validator.
voting_power
Proto3 optional
The voting power of this validator, which might be different from its stake amount.
worker_address
Proto3 optional
The address of the narwhal worker
worker_public_key
Proto3 optional
The public key bytes correstponding to the Narwhal Worker
ValidatorReportRecord
Fields
reported
Proto3 optional
The address of the validator being reported
reporters
Repeated []
The list of validator (addresses) that are reporting on the validator specified by reported
ValidatorSet
Fields
active_validators
Repeated []
The current list of active validators.
at_risk_validators
Repeated []
Table storing the number of epochs during which a validator's stake has been below the low stake threshold.
extra_fields
Proto3 optional
Any extra fields that's not defined statically.
inactive_validators
Proto3 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
pending_active_validators
Proto3 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
Repeated []
Removal requests from the validators. Each element is an index pointing to active_validators
.
staking_pool_mappings
Proto3 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)
total_stake
Proto3 optional
Total amount of stake from all active validators at the beginning of the epoch. Written only once per epoch, in advance_epoch
function.
validator_candidates
Proto3 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
AtRiskValidatorsEntry