Skip to main content

ObjectIdProtocol

ObjectIdProtocol Objects

class ObjectIdProtocol(typing.Protocol)

An ObjectId is a 32-byte identifier used to uniquely identify an object on the IOTA blockchain.

Relationship to Address

Addresses and ObjectIds share the same 32-byte addressable space but are derived leveraging different domain-separator values to ensure, cryptographically, that there won't be any overlap, e.g. there can't be a valid Object whose ObjectId is equal to that of the Address of a user account.

BCS

An ObjectId's BCS serialized form is defined by the following:

object-id = address

derive_dynamic_child_id

def derive_dynamic_child_id(key_type_tag: TypeTag,
key_bytes: bytes) -> ObjectId

Derive an ObjectId for a Dynamic Child Object.

hash(parent || len(key) || key || key_type_tag)

derive_object_id

def derive_object_id(key_type_tag: TypeTag, key_bytes: bytes) -> ObjectId

Derive the ObjectId of a derived object (0x2::derived_object).

hash(parent || len(key) || key || DerivedObjectKey(key_type_tag))

next_lexicographical

def next_lexicographical() -> ObjectId

Returns the next digest in byte-increasing order.

next_lexicographical_opt

def next_lexicographical_opt() -> typing.Optional[ObjectId]

Returns the next digest in byte-increasing order, or None if the result would overflow.

to_canonical_string

def to_canonical_string(with_prefix: bool) -> str

Returns the string representation of this object ID using the canonical display, with or without a 0x prefix.

to_hex

def to_hex() -> str

Returns the string representation of this object id in hex format with 0x prefix.

to_raw_hex

def to_raw_hex() -> str

Returns the string representation of this object id in hex format without 0x prefix.

to_raw_short_hex

def to_raw_short_hex() -> str

Returns the shortest possible string representation of the object id (i.e. with leading zeroes trimmed), without 0x prefix.

to_short_hex

def to_short_hex() -> str

Returns the shortest possible string representation of the object ID (i.e. with leading zeroes trimmed).