Object
An Object on Sui is either a typed value (a Move Object) or a Package (modules containing functions and types).
Every object on Sui is identified by a unique address, and has a version number that increases with every modification. Objects also hold metadata detailing their current owner (who can sign for access to the object and whether that access can modify and/or delete the object), and the digest of the last transaction that modified the object.
type Object implements IAddressable, IObject {
  address: SuiAddress!
  asMoveObject: MoveObject
  asMovePackage: MovePackage
  balance(
    coinType: String!
  ): Balance
  balances(
    first: Int
    after: String
    last: Int
    before: String
  ): BalanceConnection
  defaultSuinsName: String
  digest: String
  dynamicField(
    name: DynamicFieldName!
  ): DynamicField
  dynamicFields(
    first: Int
    after: String
    last: Int
    before: String
  ): DynamicFieldConnection
  dynamicObjectField(
    name: DynamicFieldName!
  ): DynamicField
  multiGetBalances(
    keys: [String!]!
  ): [Balance!]
  multiGetDynamicFields(
    keys: [DynamicFieldName!]!
  ): [DynamicField]!
  multiGetDynamicObjectFields(
    keys: [DynamicFieldName!]!
  ): [DynamicField]!
  objectAt(
    version: UInt53
    rootVersion: UInt53
    checkpoint: UInt53
  ): Object
  objectBcs: Base64
  objectVersionsAfter(
    first: Int
    after: String
    last: Int
    before: String
    filter: VersionFilter
  ): ObjectConnection
  objectVersionsBefore(
    first: Int
    after: String
    last: Int
    before: String
    filter: VersionFilter
  ): ObjectConnection
  objects(
    first: Int
    after: String
    last: Int
    before: String
    filter: ObjectFilter
  ): MoveObjectConnection
  owner: Owner
  previousTransaction: Transaction
  receivedTransactions(
    first: Int
    after: String
    last: Int
    before: String
    filter: TransactionFilter
  ): TransactionConnection
  storageRebate: BigInt
  version: UInt53
}
Fields
Object.address ● SuiAddress! non-null scalar
The Object's ID.
Object.asMoveObject ● MoveObject object
Attempts to convert the object into a MoveObject.
Object.asMovePackage ● MovePackage object
Attempts to convert the object into a MovePackage.
Object.balance ● Balance object
Fetch the total balance for coins with marker type coinType (e.g. 0x2::sui::SUI), owned by this address.
If the address does not own any coins of that type, a balance of zero is returned.
Object.balance.coinType ● String! non-null scalar
Object.balances ● BalanceConnection object
Total balance across coins owned by this address, grouped by coin type.
Object.balances.first ● Int scalar
Object.balances.after ● String scalar
Object.balances.last ● Int scalar
Object.balances.before ● String scalar
Object.defaultSuinsName ● String scalar
The domain explicitly configured as the default SuiNS name for this address.
Object.digest ● String scalar
32-byte hash that identifies the object's contents, encoded in Base58.
Object.dynamicField ● DynamicField object
Access a dynamic field on an object using its type and BCS-encoded name.
Returns null if a dynamic field with that name could not be found attached to this object.
Object.dynamicField.name ● DynamicFieldName! non-null input
Object.dynamicFields ● DynamicFieldConnection object
Dynamic fields owned by this object.
Object.dynamicFields.first ● Int scalar
Object.dynamicFields.after ● String scalar
Object.dynamicFields.last ● Int scalar
Object.dynamicFields.before ● String scalar
Object.dynamicObjectField ● DynamicField object
Access a dynamic object field on an object using its type and BCS-encoded name.
Returns null if a dynamic object field with that name could not be found attached to this object.
Object.dynamicObjectField.name ● DynamicFieldName! non-null input
Object.multiGetBalances ● [Balance!] list object
Fetch the total balances keyed by coin types (e.g. 0x2::sui::SUI) owned by this address.
Returns None when no checkpoint is set in scope (e.g. execution scope).
If the address does not own any coins of a given type, a balance of zero is returned for that type.
Object.multiGetBalances.keys ● [String!]! non-null scalar
Object.multiGetDynamicFields ● [DynamicField]! non-null object
Access dynamic fields on an object using their types and BCS-encoded names.
Returns a list of dynamic fields that is guaranteed to be the same length as keys. If a dynamic field in keys could not be found in the store, its corresponding entry in the result will be null.
Object.multiGetDynamicFields.keys ● [DynamicFieldName!]! non-null input
Object.multiGetDynamicObjectFields ● [DynamicField]! non-null object
Access dynamic object fields on an object using their types and BCS-encoded names.
Returns a list of dynamic object fields that is guaranteed to be the same length as keys. If a dynamic object field in keys could not be found in the store, its corresponding entry in the result will be null.
Object.multiGetDynamicObjectFields.keys ● [DynamicFieldName!]! non-null input
Object.objectAt ● Object object
Fetch the object with the same ID, at a different version, root version bound, or checkpoint.
If no additional bound is provided, the latest version of this object is fetched at the latest checkpoint.
Object.objectAt.version ● UInt53 scalar
Object.objectAt.rootVersion ● UInt53 scalar
Object.objectAt.checkpoint ● UInt53 scalar
Object.objectBcs ● Base64 scalar
The Base64-encoded BCS serialization of this object, as an Object.
Object.objectVersionsAfter ● ObjectConnection object
Paginate all versions of this object after this one.
Object.objectVersionsAfter.first ● Int scalar
Object.objectVersionsAfter.after ● String scalar
Object.objectVersionsAfter.last ● Int scalar
Object.objectVersionsAfter.before ● String scalar
Object.objectVersionsAfter.filter ● VersionFilter input
Object.objectVersionsBefore ● ObjectConnection object
Paginate all versions of this object before this one.
Object.objectVersionsBefore.first ● Int scalar
Object.objectVersionsBefore.after ● String scalar
Object.objectVersionsBefore.last ● Int scalar
Object.objectVersionsBefore.before ● String scalar
Object.objectVersionsBefore.filter ● VersionFilter input
Object.objects ● MoveObjectConnection object
Objects owned by this object, optionally filtered by type.
Object.objects.first ● Int scalar
Object.objects.after ● String scalar
Object.objects.last ● Int scalar
Object.objects.before ● String scalar
Object.objects.filter ● ObjectFilter input
Object.owner ● Owner union
The object's owner kind.
Object.previousTransaction ● Transaction object
The transaction that created this version of the object.
Object.receivedTransactions ● TransactionConnection object
The transactions that sent objects to this object
Object.receivedTransactions.first ● Int scalar
Object.receivedTransactions.after ● String scalar
Object.receivedTransactions.last ● Int scalar
Object.receivedTransactions.before ● String scalar
Object.receivedTransactions.filter ● TransactionFilter input
Object.storageRebate ● BigInt scalar
The SUI returned to the sponsor or sender of the transaction that modifies or deletes this object.
Object.version ● UInt53 scalar
The version of this object that this content comes from.
Interfaces
IAddressable interface
Interface implemented by GraphQL types representing entities that are identified by an address.
An address uniquely represents either the public key of an account, or an object's ID, but never both. It is not possible to determine which type an address represents up-front. If an object is wrapped, its contents will not be accessible via its address, but it will still be possible to access other objects it owns.
IObject interface
Interface implemented by versioned on-chain values that are addressable by an ID (also referred to as its address). This includes Move objects and packages.
Returned By
multiGetObjects  query ● object  query
Member Of
Address  object ● CoinMetadata  object ● ConsensusObjectRead  object ● DynamicField  object ● Epoch  object ● GasEffects  object ● IObject  interface ● MoveObject  object ● MovePackage  object ● Object  object ● ObjectChange  object ● ObjectConnection  object ● ObjectEdge  object ● OwnedOrImmutable  object ● PerEpochConfig  object ● Receiving  object