Sui Full Node gRPC Message Definitions
This page lists all message definitions for the Sui Full Node gRPC API. See also: Enum and Scalar Type Definitions
sui/rpc/v2/query_options.proto
Marker for the final frame of a successful query stream. Every successful
stream sets QueryEnd on exactly one frame, after which no further frames
are sent. That frame always carries the final watermark. For ItemLimit, it
also carries the final matching item; for every other reason it carries no
item. A ScanLimit terminal watermark may repeat the previous frame's cursor
when its authoritative scan frontier was already emitted; this does not
repeat an item.
Cursor-bounded query options.
Progress marker for a query scan. Carried on every response frame, whether or not the frame delivers a matching item. Watermarks never regress in the requested ordering, but consecutive frames may carry the same watermark when additional work does not advance the safe resume frontier.
<= checkpoint (strictly greater ones may still hold matches); a descending scan has emitted every matching item in the interval at checkpoints >= checkpoint. This boundary never regresses in the scan direction, but it may repeat while the cursor advances. Unset until the scan's first checkpoint is fully covered. For example, a scan resumed from a cursor that lands mid-checkpoint leaves this unset until the next checkpoint boundary in the scan direction is fully covered. A watermark still has a valid resume cursor while this field is unset.options.after (ascending) or options.before (descending) on the next request to resume from here. The most recently received cursor is always the safe resume point.sui/rpc/v2/checkpoint_contents.proto
The committed to contents of a checkpoint.
Transaction information committed to in a checkpoint.
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.sui/rpc/v2/transaction.proto
A new JWK.
Expire old JWKs.
Update the set of valid JWKs.
A transaction that was canceled.
System transaction used to change the epoch.
A single command in a programmable transaction.
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.(&mut Coin<T>, Vec<Coin<T>>) It merges n-coins into the first coin.(&mut Coin<T>, Vec<u64>) -> Vec<Coin<T>> It splits off some amounts into new coins with those amounts.(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.UpgradeTicket that must have been produced from an earlier command in the same programmable transaction.Consensus commit prologue system transaction.
This message can represent V1, V2, and V3 prologue types.
Version assignments performed by consensus.
Set of operations run at the end of the epoch to close out the current epoch and start the next one.
Operation run at the end of an epoch.
Payment information for executing a transaction.
Command to build a Move vector out of a set of individual elements.
Command to merge multiple coins of the same type into a single coin.
Command to call a Move function.
A user transaction.
Contains a series of native commands and Move calls where the results of one command can be used in future commands.
Command to publish a new Move package.
Randomness update.
Command to split a single coin object into multiple coins.
System package.
A transaction.
A TTL for a transaction.
Transaction type.
ChangeEpoch variant is now deprecated (but the ChangeEpoch struct is still used by EndOfEpochTransaction).Command to transfer ownership of a set of objects to an address.
Command to upgrade an already published package.
Object version assignment from consensus.
sui/rpc/v2/effects.proto
Input/output state of an object that was changed during execution.
output_state is OUTPUT_OBJECT_STATE_ACCUMULATOR_WRITEObjectId during execution.An entry in an event digest accumulator value.
The effects of executing a transaction.
A consensus object that wasn't changed during execution.
sui/rpc/v2/event.proto
An event.
LedgerService.ListEvents); left unset when the event is carried inside its transaction's events list, where the enclosing ExecutedTransaction already provides this context.Events emitted during the successful execution of a transaction.
sui/rpc/v2/move_package.proto
Describes a Move Datatype.
defining_id is the storage_id of the package version that first introduced or added that type.Descriptor of a field that belongs to a struct or enum variant
Descriptor of a Move function
entry or not.Upgraded package info for the linkage table.
A Move Module.
Representation of a type signature that could appear as a function parameter or return value.
Representation of a type signature that could appear as a field type for a struct or enum
A Move Package
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 is the Sui ObjectId of the package on-chain. Outside of system packages the storage_id for every package version is different.Identifies a struct and the module it was defined in.
A generic type parameter used in the declaration of a struct or enum.
Descriptor of an enum variant
sui/rpc/v2/input.proto
An input to a user transaction.
sui/rpc/v2/owner.proto
Enum of different types of ownership for an object.
sui/rpc/v2/filter.proto
Match by any address whose state moved as a side effect of the transaction: object ownership changes (in either direction), prior owners of removed/wrapped objects, and address-balance changes via accumulator events.
Match by changed object ID.
Match by an event's package/module fields, specified as a ::-delimited
Move path. These identify the top-level Move call that triggered the event.
package[::module].DNF filter for events: any term may match, and each term is an AND of signed literals. Sender predicates match all events from matching transactions; emit-module, event-type, and event-stream-head predicates match individual event-space dimensions. An absent filter matches everything. A present filter must have at least one term.
One signed event predicate literal: a predicate, optionally negated.
Match by authenticated event stream head.
One conjunction in an event DNF filter.
Match by event struct type, specified as a Move type string.
address[::module[::Name[<type_params>]]].Match by Move function call, specified as a ::-delimited Move path.
package[::module[::function]].Match transactions that wrote a Move package.
Match by transaction sender address.
DNF filter for transactions: any term may match, and each term is an AND of signed literals. An absent filter matches everything. A present filter must have at least one term.
One signed transaction predicate literal: a predicate, optionally negated.
One conjunction in a transaction DNF filter.
sui/rpc/v2/signature.proto
A G1 point.
A G2 point.
Aggregated signature from members of a multisig committee.
A multisig committee.
A member in a multisig committee.
Set of valid public keys for multisig committee members.
A signature from a member of a multisig committee.
PASSKEY.ZKLOGIN.A passkey authenticator.
Either an ed25519, secp256k1 or secp256r1 signature
A signature from a user.
MULTISIG.PASSKEY.ZKLOGIN.An aggregated signature from multiple validators.
ValidatorCommittee from this epoch to verify this signature.The validator set for a particular epoch.
A member of a validator committee.
A zklogin authenticator.
A claim of the iss in a zklogin proof.
A zklogin groth16 proof and the required inputs to perform proof verification.
Public key equivalent for zklogin authenticators.
sui/rpc/v2/executed_transaction.proto
TransactionEffects for this transaction.sui/rpc/v2/subscription_service.proto
Request message for SubscriptionService.SubscribeCheckpoints.
cursor is always populated and is not subject to the mask.Response message for SubscriptionService.SubscribeCheckpoints.
cursor has been delivered. Present on every frame and advances monotonically.Request message for SubscriptionService.SubscribeEvents.
Response message for SubscriptionService.SubscribeEvents.
Mirrors ListEventsResponse, except there is no end field: a subscription
stream has no successful end.
Event.Request message for SubscriptionService.SubscribeTransactions.
Response message for SubscriptionService.SubscribeTransactions.
Mirrors ListTransactionsResponse, except there is no end field: a
subscription stream has no successful end.
ExecutedTransaction.transaction_index.sui/rpc/v2/name_service.proto
@name as well as name.sui formats.Field<Domain,NameRecord>.sui/rpc/v2/gas_cost_summary.proto
Summary of gas charges.
sui/rpc/v2/signature_verification_service.proto
PersonalMessage and TransactionData and the Bcs.name must be set to indicate which type of message is being verified.sui/rpc/v2/execution_status.proto
An error with an argument to a command.
Set of objects that were congested, leading to the transaction's cancellation.
An error that can occur during the execution of a transaction.
The status of an executed transaction.
success is false.Location in Move bytecode where an error occurred.
An error with upgrading a package.
A size error.
Type argument error.
sui/rpc/v2/move_package_service.proto
storage_id of the requested package.storage_id of any version of the package.1000 entries will be returned. The maximum value is 10000; values above 10000 will be coerced to 10000.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.page_token to retrieve the next page. If this field is omitted, there are no subsequent pages.A simplified representation of a package version
sui/rpc/v2/ledger_service.proto
object_id,version,digest.ObjectId of the requested object.object_id,version,digest.mainnet, testnet, and so on.Request message for LedgerService.ListCheckpoints.
Watermark.cursor as options.after (ascending) or options.before (descending) on the next request.Response message for LedgerService.ListCheckpoints.
Request message for LedgerService.ListEvents.
Watermark.cursor as options.after (ascending) or options.before (descending) on the next request.Response message for LedgerService.ListEvents.
Event.Request message for LedgerService.ListTransactions.
Watermark.cursor as options.after (ascending) or options.before (descending) on the next request.Response message for LedgerService.ListTransactions.
ExecutedTransaction.transaction_index.sui/rpc/v2/jwk.proto
A JSON web key.
Key to uniquely identify a JWK.
sui/rpc/v2/checkpoint.proto
CheckpointContents for this checkpoint.transactions.objects field will not be populated.sui/rpc/v2/state_service.proto
Balance information for a specific coin type.
Balance<T> in this address's Address Balance.coin_type in its smallest unit. This is the sum of all spendable amounts of coin_type (address_balance and coin_balance).Coin<T> objects owned by this address.Metadata for a coin type
0x2::coin::CoinMetadata object or 0x2::sui::coin_registry::Currency object (when registered with CoinRegistry).Information about a coin type's 0x2::coin::TreasuryCap and its total available supply
0x2::coin::TreasuryCap object.Request message for LiveDataService.GetBalance.
Response message for LiveDataService.GetBalance.
Return the total coin balance for one coin type, owned by the address owner.
Request message for NodeService.GetCoinInfo.
Response message for NodeService.GetCoinInfo.
0x2::coin::CoinMetadata if it exists and has not been wrapped.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.0x2::coin::TreasuryCap if it exists and has not been wrapped.Request message for LiveDataService.ListBalances.
50 entries will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.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.Response message for LiveDataService.ListBalances.
Return the total coin balance for all coin types, owned by the address owner.
Request message for NodeService.ListDynamicFields
50 entries will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.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.UID of the parent, which owns the collections of dynamic fields.parent,field_id.Response message for NodeService.ListDynamicFields
page_token to retrieve the next page. If this field is omitted, there are no subsequent pages.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.50 entries will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.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.Information about a regulated coin, which indicates that it makes use of the transfer deny list.
DenyCap object.sui/rpc/v2/transaction_execution_service.proto
An intermediate result/output from the execution of a single command
effects.status,checkpoint.UserSignatures authorizing the execution of the provided transaction.Response message for NodeService.ExecuteTransaction.
checks is DISABLED.sui/rpc/v2/protocol_config.proto
configs field.configs field.sui/rpc/v2/object_reference.proto
Reference to an object.
sui/rpc/v2/epoch.proto
sui/rpc/v2/system_state.proto
A message that represents a Move 0x2::table::Table or 0x2::bag::Bag
A staking pool embedded in each validator struct in the system state object.
None if the pool is pre-active and Some(<epoch_number>) if active or inactive.None = {pre-active, active}, Some(<epoch_number>) if in-active, and it was de-activated at epoch <epoch_number>.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: PoolTokenExchangeRateStruct representing the onchain storage fund.
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.Definition of a Validator in the system contracts
Note: fields of ValidatorMetadata are flattened into this type
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::ValidatorWrappersui/rpc/v2/balance_change.proto
The delta, or change, in balance for an address for a particular Coin type.
sui/rpc/v2/object.proto
A rendered JSON blob based on an on-chain template.
null or not set.null, and will be accompanied by a field in errors, explaining the error.An object on the Sui blockchain.
0x2::coin::Coin<T>Set of Objects
(object_id, version).sui/rpc/v2/bcs.proto
Bcs contains an arbitrary type that is serialized using the
BCS
format as well as a name that identifies the type of the serialized value.
sui/rpc/v2/argument.proto
An argument to a programmable transaction command.
sui/rpc/v2/checkpoint_summary.proto
A commitment made by a checkpoint.
A header for a checkpoint on the Sui blockchain.
CheckpointContents for this checkpoint.Data, which when included in a CheckpointSummary, signals the end of an Epoch.
ValidatorCommittee for the next epoch.