AddressProtocol
AddressProtocol Objects
class AddressProtocol(typing.Protocol)
Unique identifier for an Account on the IOTA blockchain.
An Address is a 32-byte pseudonymous identifier used to uniquely identify
an account and asset-ownership on the IOTA blockchain. Often, human-readable
addresses are encoded in hexadecimal with a 0x prefix. For example, this
is a valid IOTA address:
0x02a212de6a9dfa3a69e22387acfbafbb1a9e591bd9d636e7895dcfc8de05f331.
Deriving an Address
Addresses are cryptographically derived from a number of user account
authenticators, the simplest of which is an
Ed25519PublicKey.
Deriving an address consists of the Blake2b256 hash of the sequence of bytes
of its corresponding authenticator, prefixed with a domain-separator (except
ed25519, for compatibility reasons). For each other authenticator, this
domain-separator is the single byte-value of its
SignatureScheme flag. E.g. hash(signature schema flag || authenticator bytes).
Each authenticator has a method for deriving its Address as well as
documentation for the specifics of how the derivation is done. See
Ed25519PublicKey::derive_address for an example.
Relationship to ObjectIds
ObjectIds and Addresses share the same 32-byte addressable space but
are derived leveraging different domain-separator values to ensure that,
cryptographically, there won't be any overlap, e.g. there can't be a
valid 0x0 who's ObjectId is equal to that of the Address of a user
account.
BCS
An Address's BCS serialized form is defined by the following:
0x4
next_lexicographical
def next_lexicographical() -> Address
Returns the next digest in byte-increasing order.
next_lexicographical_opt
def next_lexicographical_opt() -> typing.Optional[Address]
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 address using the
canonical display, with or without a 0x prefix.
to_hex
def to_hex() -> str
Returns the string representation of this address in hex format with
0x prefix.
to_raw_hex
def to_raw_hex() -> str
Returns the string representation of this address in hex format without
0x prefix.
to_raw_short_hex
def to_raw_short_hex() -> str
Returns the shortest possible string representation of the address (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 address (i.e. with leading zeroes trimmed).