Suinetwork: Sui's object model and blockchain design

Updated:

Sui is a Layer 1 blockchain and smart contract platform that organizes onchain assets and data as objects. Move packages define the operations that can act on them, and transactions read or change their state under the relevant ownership rules. This foundation supports digital assets and onchain finance, with components such as zkLogin and Walrus addressing distinct onboarding and storage needs.

How objects identify onchain state

An object has a stable identity, ownership information, and a version that increases when it changes. These properties distinguish an asset from a particular state of that asset. The same object can retain its ID across updates while its version and contents change.

Transactions take objects as inputs and can read or modify them, then produce changed or newly created objects as outputs. An output from one transaction can become an input to another. These relationships connect object versions to the transactions that produced and used them, forming a history of changes to onchain state.

Ownership controls access

An object's ownership form determines how it can be used in transactions. The operations permitted by its Move code remain part of that access model. Shared access, for instance, doesn't grant unrestricted permission to change an object's contents.

Visual outline: Suinetwork: Ownership controls access

Open full-size image

Move packages define object behavior

A Move package is the publication unit for Sui smart contracts. It contains bytecode modules that can define and manipulate objects. The combination of a package's onchain ID and a module's name identifies that module.

An individual published package object is immutable and can't be changed or removed. Sui also supports package-upgrade workflows, but upgrade support doesn't make an already published package object editable. The package's code and the state of a mutable asset are separate parts of the model: the asset can change through permitted operations while that published package object remains unchanged.

Validators, full nodes, and protocol limits

Validators check transactions, order them through consensus, and execute accepted transactions. Sui uses delegated proof-of-stake: SUI holders can delegate tokens to validators, and stake determines the validator set and voting power for each epoch. SUI is the network's native token, used to pay transaction gas fees. Full nodes synchronize with the network and serve onchain data, giving applications access to the state and records that they need.

Illustration: Validators, full nodes, and protocol limits (Suinetwork)

Open full-size image

Execution also has limits. The protocol configuration includes constraints on transaction size, input-object counts, object size, and gas budgets. These parameters are versioned, so a value established for one protocol version shouldn't be assumed to apply to another. The object model describes how data relates; protocol limits constrain how much a transaction can process.

What applications build with these components

A short application checklist

  • If a question concerns one historical state, identify the object's version as well as its stable ID.
  • If an operation changes or transfers an object, check its ownership form and the operations that its Move package permits. Immutable objects allow neither action.
  • If familiar Web2 sign-in is a requirement and the provider is supported on the chosen Sui network, consider zkLogin's onboarding role alongside the application's onchain access rules.
  • If an application needs to store and serve media or blobs, distinguish Walrus's storage function from Sui's onchain object state.