State organised as objects
Sui is a programmable Layer 1 that uses Move and an object-centred data model. SUI is its native asset, used for gas and staking. An object is not just a picture or an NFT: it is a piece of on-chain state with an identity, type and ownership rules. Coins and application resources can also be objects.
Ownership changes the rules
Ownership affects which transactions can use or change an object. An address-owned object is controlled through its owner’s authority. A shared object can be accessed by multiple users through the rules of its Move program. Immutable objects cannot be changed. “Shared” therefore does not mean that anyone may edit every field however they like.
Find the shared dependency
The useful question is which state two operations need to modify. Independent objects can permit independent work; two operations touching the same shared state require coordination. The object model does not mean that every operation is parallel, that conflicts disappear or that application logic becomes correct automatically.
A ticket and the last available seat
Compare an individually owned concert ticket with a shared seat inventory. Transferring an existing ticket and reserving the last seat are different operations. The second must respect a common availability rule. Read the object’s owner and the program’s permissions alongside the requested action; a friendly interface alone does not establish what a signed transaction will do.
- 01Object identity
- 02Ownership
- 03Allowed operation
- 04State dependencies
Read these as connected concepts, not necessarily consecutive steps.
Read the explanation
Imagine two people each transferring their own ticket object. The objects differ, so these actions need not compete for the same ticket state. Now imagine both trying to reserve the final seat from one shared inventory. The program must enforce that seat’s availability. Ownership helps define who may submit a change; program logic determines which change is valid.
Put the mechanism into context
One shared inventory has a single seat left. Two requests both attempt to reduce the remaining count from one to zero and issue a ticket. Both requests have valid user signatures.
Apply it in the workshop →What this mechanism does not guarantee
The ticket is a fictional application model, not a statement about a live ticketing service. Shared objects can enforce permissions. An object-based chain still needs consensus, careful programming and secure signing.