Skip to main content

MoveObject

The representation of an object as a Move Object, which exposes additional information (content, module that governs it, version, is transferable, etc.) about this object.

type MoveObject implements IMoveObject, IObject, IOwner {
address: IotaAddress!
objects(
first: Int
after: String
last: Int
before: String
filter: ObjectFilter
): MoveObjectConnection!
balance(
type: String
): Balance
balances(
first: Int
after: String
last: Int
before: String
): BalanceConnection!
coins(
first: Int
after: String
last: Int
before: String
type: String
): CoinConnection!
stakedIotas(
first: Int
after: String
last: Int
before: String
): StakedIotaConnection!
iotaNamesDefaultName(
format: NameFormat
): String
iotaNamesRegistrations(
first: Int
after: String
last: Int
before: String
): NameRegistrationConnection!
version: UInt53!
status: ObjectKind!
digest: String
owner: ObjectOwner
previousTransactionBlock: TransactionBlock
storageRebate: BigInt
receivedTransactionBlocks(
first: Int
after: String
last: Int
before: String
filter: TransactionBlockFilter
scanLimit: Int
): TransactionBlockConnection!
bcs: Base64
contents: MoveValue
display: [DisplayEntry!]
dynamicField(
name: DynamicFieldName!
): DynamicField
dynamicObjectField(
name: DynamicFieldName!
): DynamicField
dynamicFields(
first: Int
after: String
last: Int
before: String
): DynamicFieldConnection!
asCoin: Coin
asStakedIota: StakedIota
asCoinMetadata: CoinMetadata
asIotaNamesRegistration: NameRegistration
}

Fields​

MoveObject.address ● IotaAddress! non-null scalar​

MoveObject.objects ● MoveObjectConnection! non-null object​

Objects owned by this object, optionally filter-ed.

MoveObject.objects.first ● Int scalar​
MoveObject.objects.after ● String scalar​
MoveObject.objects.last ● Int scalar​
MoveObject.objects.before ● String scalar​
MoveObject.objects.filter ● ObjectFilter input​

MoveObject.balance ● Balance object​

Total balance of all coins with marker type owned by this object. If type is not supplied, it defaults to 0x2::iota::IOTA.

MoveObject.balance.type ● String scalar​

MoveObject.balances ● BalanceConnection! non-null object​

The balances of all coin types owned by this object.

MoveObject.balances.first ● Int scalar​
MoveObject.balances.after ● String scalar​
MoveObject.balances.last ● Int scalar​
MoveObject.balances.before ● String scalar​

MoveObject.coins ● CoinConnection! non-null object​

The coin objects for this object.

type is a filter on the coin's type parameter, defaulting to 0x2::iota::IOTA.

MoveObject.coins.first ● Int scalar​
MoveObject.coins.after ● String scalar​
MoveObject.coins.last ● Int scalar​
MoveObject.coins.before ● String scalar​
MoveObject.coins.type ● String scalar​

MoveObject.stakedIotas ● StakedIotaConnection! non-null object​

The 0x3::staking_pool::StakedIota objects owned by this object.

MoveObject.stakedIotas.first ● Int scalar​
MoveObject.stakedIotas.after ● String scalar​
MoveObject.stakedIotas.last ● Int scalar​
MoveObject.stakedIotas.before ● String scalar​

MoveObject.iotaNamesDefaultName ● String scalar​

The name explicitly configured as the default name pointing to this object.

MoveObject.iotaNamesDefaultName.format ● NameFormat enum​

MoveObject.iotaNamesRegistrations ● NameRegistrationConnection! non-null object​

The NameRegistration NFTs owned by this object. These grant the owner the capability to manage the associated name.

MoveObject.iotaNamesRegistrations.first ● Int scalar​
MoveObject.iotaNamesRegistrations.after ● String scalar​
MoveObject.iotaNamesRegistrations.last ● Int scalar​
MoveObject.iotaNamesRegistrations.before ● String scalar​

MoveObject.version ● UInt53! non-null scalar​

MoveObject.status ● ObjectKind! non-null enum​

The current status of the object as read from the off-chain store. The possible states are:

  • NOT_INDEXED: The object is loaded from serialized data, such as the contents of a genesis or system package upgrade transaction.
  • INDEXED: The object is retrieved from the off-chain index and represents the most recent or historical state of the object.

MoveObject.digest ● String scalar​

32-byte hash that identifies the object's contents, encoded as a Base58 string.

MoveObject.owner ● ObjectOwner union​

The owner type of this object: Immutable, Shared, Parent, Address

MoveObject.previousTransactionBlock ● TransactionBlock object​

The transaction block that created this version of the object.

MoveObject.storageRebate ● BigInt scalar​

The amount of IOTA we would rebate if this object gets deleted or mutated. This number is recalculated based on the present storage gas price.

MoveObject.receivedTransactionBlocks ● TransactionBlockConnection! non-null object​

The transaction blocks that sent objects to this object.

scanLimit restricts the number of candidate transactions scanned when gathering a page of results. It is required for queries that apply two or more complex filters (on function, affected address, recipient, input object, changed object, or wrapped or deleted object), and can be at most serviceConfig.maxScanLimit. A kind filter cannot be combined with any of them.

When the scan limit is reached the page will be returned even if it has fewer than first results when paginating forward (last when paginating backwards). If there are more transactions to scan, pageInfo.hasNextPage (or pageInfo.hasPreviousPage) will be set to true, and PageInfo.endCursor (or PageInfo.startCursor) will be set to the last transaction that was scanned as opposed to the last (or first) transaction in the page.

Requesting the next (or previous) page after this cursor will resume the search, scanning the next scanLimit many transactions in the direction of pagination, and so on until all transactions in the scanning range have been visited.

By default, the scanning range includes all transactions known to GraphQL, but it can be restricted by the after and before cursors, and the beforeCheckpoint, afterCheckpoint and atCheckpoint filters.

DEPRECATION NOTICE: Support for the combination of two or more complex filters as discussed above will stop with the v1.38 release. scanLimit will thus become obsolete and will be removed as well.

MoveObject.receivedTransactionBlocks.first ● Int scalar​
MoveObject.receivedTransactionBlocks.after ● String scalar​
MoveObject.receivedTransactionBlocks.last ● Int scalar​
MoveObject.receivedTransactionBlocks.before ● String scalar​
MoveObject.receivedTransactionBlocks.filter ● TransactionBlockFilter input​
MoveObject.receivedTransactionBlocks.scanLimit ● Int deprecated scalar​
DEPRECATED

scanLimit will be removed with v1.38, along with the support for combining complex filters.

MoveObject.bcs ● Base64 scalar​

The Base64-encoded BCS serialization of the object's content.

MoveObject.contents ● MoveValue object​

Displays the contents of the Move object in a JSON string and through GraphQL types. Also provides the flat representation of the type signature, and the BCS of the corresponding data.

MoveObject.display ● [DisplayEntry!] list object​

The set of named templates defined on-chain for the type of this object, to be handled off-chain. The server substitutes data from the object into these templates to generate a display string per template.

MoveObject.dynamicField ● DynamicField object​

Access a dynamic field on an object using its name. Names are arbitrary Move values whose type have copy, drop, and store, and are specified using their type, and their BCS contents, Base64 encoded.

Dynamic fields on wrapped objects can be accessed by using the same API under the Owner type.

MoveObject.dynamicField.name ● DynamicFieldName! non-null input​

MoveObject.dynamicObjectField ● DynamicField object​

Access a dynamic object field on an object using its name. Names are arbitrary Move values whose type have copy, drop, and store, and are specified using their type, and their BCS contents, Base64 encoded. The value of a dynamic object field can also be accessed off-chain directly via its address (e.g. using Query.object).

Dynamic fields on wrapped objects can be accessed by using the same API under the Owner type.

MoveObject.dynamicObjectField.name ● DynamicFieldName! non-null input​

MoveObject.dynamicFields ● DynamicFieldConnection! non-null object​

The dynamic fields and dynamic object fields on an object.

Dynamic fields on wrapped objects can be accessed by using the same API under the Owner type.

MoveObject.dynamicFields.first ● Int scalar​
MoveObject.dynamicFields.after ● String scalar​
MoveObject.dynamicFields.last ● Int scalar​
MoveObject.dynamicFields.before ● String scalar​

MoveObject.asCoin ● Coin object​

Attempts to convert the Move object into a 0x2::coin::Coin.

MoveObject.asStakedIota ● StakedIota object​

Attempts to convert the Move object into a 0x3::staking_pool::StakedIota.

MoveObject.asCoinMetadata ● CoinMetadata object​

Attempts to convert the Move object into a 0x2::coin::CoinMetadata.

MoveObject.asIotaNamesRegistration ● NameRegistration object​

Interfaces​

IMoveObject interface​

This interface is implemented by types that represent a Move object on-chain (A Move value whose type has key).

IObject interface​

Interface implemented by on-chain values that are addressable by an ID (also referred to as its address). This includes Move objects and packages.

IOwner interface​

Interface implemented by GraphQL types representing entities that can own objects. Object owners are identified by an address which can represent either the public key of an account or another object. The same address can only refer to an account or an object, never both, but it is not possible to know which up-front.

Member Of​

MoveObjectConnection object ● MoveObjectEdge object ● Object object ● Validator object

Implemented By​

DynamicFieldValue union