Read access of Sui owned object

There are two types of Objects Owned objects and Shared objects. The write access is quite clear of these two types, but there are some nuances on the read access afaik reading the docs and whitepaper.
So in my understanding, when an owned object is created from a move contract nobody except the owner can have read access to the object owner.
But front the public transaction the owned object ID and info are accessible and I can access them from the SDK functions.
Am I correct in this assumption?

1 Like

Don’t know if I am reading your question clearly but:

Anyone can read the contents of an owned object (or shared object for that matter)
Only the owner of the owned object can sign for modifying an owned object and, of course, only the module that created the object (in a contract) can modify said bits.

1 Like

I think your understand is correct – all objects, whether they are shared/owned/immutable are readable off-chain, shared and immutable objects can be read by a transaction signed by anyone, shared objects can also be modified (taken as a mutable input) by a transaction signed by anyone, and owned objects can only be read or modified on-chain by a transaction signed by their owner.

The fact that an owned object’s contents can be read by anyone off-chain, but only read by its owner’s transactions on-chain is an important distinction, this is what powers the Capability pattern – the owner can prove they have a capability by producing a read-only reference to the capability object.


well explained thankyou team

1 Like