Skip to main content

Types of Object Ownership

Every object has an owner that determines who can use it in transactions and whether the object is versioned on the fastpath or through consensus.

Ownership typeAccess modelVersioning path
Address-ownedA single address can use the object.Fastpath
SharedAny address can use the object, subject to Move checks.Consensus
ImmutableAny address can read the object; no one can mutate it.Fixed after it becomes immutable
WrappedOnly accessible through the object that wraps it.Depends on the wrapper
Consensus-address owned / partyA single address owns the object, but the object is sequenced by consensus.Consensus

APIs expose consensus-address-owned objects with a ConsensusAddressOwner owner variant. Party objects are the public Move-facing way to create this ownership form with sui::party::Party and sui::transfer::party_transfer or sui::transfer::public_party_transfer. Use them when you want single-address ownership with consensus sequencing, for example to allow multiple inflight transactions against the same logical object without fastpath locks.

Learn about different types of object ownership on Sui.