Serialization

The catbuffer schemas repository defines how the different Bitxor entities type should be serialized (for example, Transactions). In combination with the catbuffer generators project, developers can generate builder classes for a given set of programming languages.

Basic Types

Amount
8 ubytes

A quantity of tokens in absolute units.
It can only be positive or zero. Negative quantities must be indicated by other means (See for example TokenSupplyChangeTransaction and TokenSupplyChangeAction).

BlockDuration
8 ubytes

A time lapse, expressed in number of blocks.

BlockFeeMultiplier
4 ubytes

Multiplier applied to the size of a transaction to obtain its fee, in absolute units.
See the fees documentation.

Difficulty
8 ubytes

How hard it was to harvest this block.
The initial value is 1e14 and it will remain like this as long as blocks are generated every blockGenerationTargetTime seconds (network property).
If blocks start taking more or less time than the configured value, the difficulty will be adjusted (in the range of 1e13 to 1e15) to try to hit the target time.
See the Technical Reference section 8.1.

FinalizationEpoch
4 ubytes

Index of a finalization epoch.
The first epoch is number 1 and contains only the first block (the Genesis block). Epoch duration (in blocks) is defined by the votingSetGrouping network property.

FinalizationPoint
4 ubytes

A particular point in time inside a finalization epoch.
See the Technical Reference section 15.2.

Height
8 ubytes

Index of a block in the blockchain.
The first block (the Genesis block) has height 1 and each subsequent block increases height by 1.

Importance
8 ubytes
ImportanceHeight
8 ubytes

Block height at which an Importance was calculated.

UnresolvedTokenId
8 ubytes

Either a TokenId or a NamespaceId.
The most-significant bit of the first byte is 0 for TokenId's and 1 for NamespaceId's.

TokenId
8 ubytes

A Token identifier.

Timestamp
8 ubytes

Number of milliseconds elapsed since the creation of the Genesis block.
The Genesis block creation time can be found in the epochAdjustment field returned by the /network/properties REST endpoint. This is the number of seconds elapsed since the UNIX epoch and it is always 1615853185 for Bitxor's MAINNET.

UnresolvedAddress
24 ubytes

Either an Address or a NamespaceId.
The least-significant bit of the first byte is 0 for Addresses and 1 for NamespaceId's.

Address
24 ubytes

An address identifies an account and is derived from its PublicKey.

Hash256
32 ubytes

A 32-byte (256 bit) hash.
The exact algorithm is unspecified as it can change depending on where it is used.

Hash512
64 ubytes

A 64-byte (512 bit) hash.
The exact algorithm is unspecified as it can change depending on where it is used.

PublicKey
32 ubytes

A 32-byte (256 bit) integer derived from a private key.
It serves as the public identifier of the key pair and can be disseminated widely. It is used to prove that an entity was signed with the paired private key.

VotingPublicKey
32 ubytes

A PublicKey used for voting during the finalization process.

Signature
64 ubytes

A 64-byte (512 bit) array certifying that the signed data has not been modified.
Bitxor currently uses Ed25519 signatures.

ProofGamma
32 ubytes
ProofVerificationHash
16 ubytes
ProofScalar
32 ubytes
NamespaceId
8 ubytes
ScopedMetadataKey
8 ubytes
TokenNonce
4 ubytes
TokenRestrictionKey
8 ubytes

Enumerations

LinkAction

Size: 1 byte = 0x1
schema
bitxorcore model

Link actions.

0x0
UNLINK

Unlink an account.

0x1
LINK

Link an account.

NetworkType

Size: 1 byte = 0x1
schema

Enumeration of network types.

0x68
MAINNET

Public network.

0x98
TESTNET

Public test network.

BlockType

Size: 2 bytes = 0x2
schema

enumeration of block types

0x8043
GENESIS

genesis block

0x8143
NORMAL

normal block

0x8243
IMPORTANCE

importance block

ReceiptType

Size: 2 bytes = 0x2
schema
bitxorcore model

Enumeration of receipt types.

0x0
RESERVED

Reserved.

0x124d
TOKEN_RENTAL_FEE

Token rental fee receipt.

0x134e
NAMESPACE_RENTAL_FEE

Namespace rental fee receipt.

0x2143
HARVEST_FEE

Harvest fee receipt.

0x2248
LOCK_HASH_COMPLETED

Hash lock completed receipt.

0x2348
LOCK_HASH_EXPIRED

Hash lock expired receipt.

0x2252
LOCK_SECRET_COMPLETED

Secret lock completed receipt.

0x2352
LOCK_SECRET_EXPIRED

Secret lock expired receipt.

0x3148
LOCK_HASH_CREATED

Hash lock created receipt.

0x3152
LOCK_SECRET_CREATED

Secret lock created receipt.

0x414d
TOKEN_EXPIRED

Token expired receipt.

0x414e
NAMESPACE_EXPIRED

Namespace expired receipt.

0x424e
NAMESPACE_DELETED

Namespace deleted receipt.

0x5143
INFLATION

Inflation receipt.

0xe143
TRANSACTION_GROUP

Transaction group receipt.

0xf143
ADDRESS_ALIAS_RESOLUTION

Address alias resolution receipt.

0xf243
TOKEN_ALIAS_RESOLUTION

Token alias resolution receipt.

NamespaceRegistrationType

Size: 1 byte = 0x1
schema
bitxorcore model

Enumeration of namespace registration types.

0x0
ROOT

Root namespace.

0x1
CHILD

Child namespace.

AliasAction

Size: 1 byte = 0x1
schema
bitxorcore model

Enumeration of alias actions.

0x0
UNLINK

Unlink a namespace, removing the alias.

0x1
LINK

Link a namespace, creating an alias.

AccountType

Size: 1 byte = 0x1
schema
bitxorcore model

enumeration of account types

0x0
UNLINKED

account is not linked to another account

0x1
MAIN

account is a balance-holding account that is linked to a remote harvester account

0x2
REMOTE

account is a remote harvester account that is linked to a balance-holding account

0x3
REMOTE_UNLINKED

account is a remote harvester eligible account that is unlinked
Note: this allows an account that has previously been used as remote to be reused as a remote

AccountKeyTypeFlags

Size: 1 byte = 0x1
schema

enumeration of account key type flags

0x0
UNSET

unset key

0x1
LINKED

linked account public key
Note: this can be either a remote or main account public key depending on context

0x2
NODE

node public key on which remote is allowed to harvest

0x4
VRF

VRF public key

AccountStateFormat

Size: 1 byte = 0x1
schema

enumeration of account state formats

0x0
REGULAR

regular account

0x1
HIGH_VALUE

high value account eligible to harvest

LockStatus

Size: 1 byte = 0x1
schema
bitxorcore model

lock status for lock transaction

0x0
UNUSED

lock is unused

0x1
USED

lock was already used

MetadataType

Size: 1 byte = 0x1
schema
bitxorcore model

enum for the different types of metadata

0x0
ACCOUNT

account metadata

0x1
TOKEN

token metadata

0x2
NAMESPACE

namespace metadata

TokenFlags

Size: 1 byte = 0x1
schema
bitxorcore model

Enumeration of token property flags.

0x0
NONE

No flags present.

0x1
SUPPLY_MUTABLE

Token supports supply changes through a TokenSupplyChangeTransaction even when token creator only owns a partial supply.
If the token creator owns the totality of the supply, it can be changed even if this flag is not set.

0x2
TRANSFERABLE

Token supports TransferTransaction between arbitrary accounts. When not set, this token can only be transferred to or from the token creator.

0x4
RESTRICTABLE

Token supports custom restrictions configured by the token creator.
See TokenAddressRestrictionTransaction and TokenGlobalRestrictionTransaction.

0x8
REVOKABLE

Token supports revocation of tokens by the token creator.

TokenSupplyChangeAction

Size: 1 byte = 0x1
schema
bitxorcore model

Enumeration of token supply change actions.

0x0
DECREASE

Decreases the supply.

0x1
INCREASE

Increases the supply.

NamespaceAliasType

Size: 1 byte = 0x1
schema

namespace alias type

0x0
NONE

no alias

0x1
TOKEN_ID

if alias is tokenId

0x2
ADDRESS

if alias is address

AccountRestrictionFlags

Size: 2 bytes = 0x2
schema
bitxorcore model

Enumeration of account restriction flags.

0x1
ADDRESS

Restriction type is an address.

0x2
TOKEN_ID

Restriction type is a token identifier.

0x4
TRANSACTION_TYPE

Restriction type is a transaction type.

0x4000
OUTGOING

Restriction is interpreted as outgoing.

0x8000
BLOCK

Restriction is interpreted as blocking (instead of allowing) operation.

TransactionType

Size: 2 bytes = 0x2
schema

Enumeration of Transaction types

0x414c
ACCOUNT_KEY_LINK
0x424c
NODE_KEY_LINK
0x4141
AGGREGATE_COMPLETE
0x4241
AGGREGATE_BONDED
0x4143
VOTING_KEY_LINK
0x4243
VRF_KEY_LINK
0x4148
HASH_LOCK
0x4152
SECRET_LOCK
0x4252
SECRET_PROOF
0x4144
ACCOUNT_METADATA
0x4244
TOKEN_METADATA
0x4344
NAMESPACE_METADATA
0x414d
TOKEN_DEFINITION
0x424d
TOKEN_SUPPLY_CHANGE
0x434d
TOKEN_SUPPLY_REVOCATION
0x4155
MULTISIG_ACCOUNT_MODIFICATION
0x424e
ADDRESS_ALIAS
0x434e
TOKEN_ALIAS
0x414e
NAMESPACE_REGISTRATION
0x4150
ACCOUNT_ADDRESS_RESTRICTION
0x4250
ACCOUNT_TOKEN_RESTRICTION
0x4350
ACCOUNT_OPERATION_RESTRICTION
0x4251
TOKEN_ADDRESS_RESTRICTION
0x4151
TOKEN_GLOBAL_RESTRICTION
0x4154
TRANSFER

TokenRestrictionType

Size: 1 byte = 0x1
schema
bitxorcore model

Enumeration of token restriction types.

0x0
NONE

Uninitialized value indicating no restriction.

0x1
EQ

Allow if equal.

0x2
NE

Allow if not equal.

0x3
LT

Allow if less than.

0x4
LE

Allow if less than or equal.

0x5
GT

Allow if greater than.

0x6
GE

Allow if greater than or equal.

TokenRestrictionEntryType

Size: 1 byte = 0x1
schema

type of token restriction entry

0x0
ADDRESS

address restriction

0x1
GLOBAL

global (token) restriction

LockHashAlgorithm

Size: 1 byte = 0x1
schema
bitxorcore model

Enumeration of lock hash algorithms.

0x0
SHA3_256

Input is hashed using SHA-3 256.

0x1
HASH_160

Input is hashed twice: first with SHA-256 and then with RIPEMD-160 (bitcoin's OP_HASH160).

0x2
HASH_256

Input is hashed twice with SHA-256 (bitcoin's OP_HASH256).

Structures

Token

Size: 16 bytes = 0x10
schema

A quantity of a certain token.

 
 
 
token_id

Token identifier.

 
 
 
amount

Token amount.

UnresolvedToken

Size: 16 bytes = 0x10
schema

A quantity of a certain token, specified either through a TokenId or an alias.

 
 
 
token_id

Unresolved token identifier.

 
 
 
amount

Token amount.

VrfProof

Size: 80 bytes = 0x50
schema
bitxorcore model

verfiable random function proof

 
 
 
gamma

gamma

 
 
 
verification_hash

verification hash

 
 
 
scalar

scalar

GenesisBlockHeader

NormalBlockHeader

Size: 379 bytes = 0x17b
schema

binary layout for a normal block header

 
 
 
BLOCK_VERSION
byte[1]
const 1
 
 
 
BLOCK_TYPE
const NORMAL (0x8143)
BlockHeader372 bytes = 0x174
SizePrefixedEntity4 bytes = 0x4
 
 
 
size
byte[4]

Entity size in bytes.
This size includes the header and the full payload of the entity. I.e, the size field matches the size reported in the structure documentation (plus the variable part, if there is any).

VerifiableEntity68 bytes = 0x44
 
 
 
verifiable_​entity_​header_​reserved_​1
byte[4]
reserved 0

Reserved padding to align Signature to an 8-byte boundary.

 
 
 
signature

Entity's signature generated by the signing account.

EntityBody38 bytes = 0x26
 
 
 
signer_public_key

Public key of the signer of the entity.

 
 
 
entity_body_reserved_1
byte[4]
reserved 0

Reserved padding to align end of EntityBody to an 8-byte boundary.

 
 
 
version
byte[1]

Version of this structure.

 
 
 
network

Network on which this entity was created.

 
 
 
type

block type

 
 
 
height

block height

 
 
 
timestamp

number of milliseconds elapsed since creation of genesis block

 
 
 
difficulty

block difficulty

 
 
 
generation_hash_proof

generation hash proof

 
 
 
previous_block_hash

previous block hash

 
 
 
transactions_hash

hash of the transactions in this block

 
 
 
receipts_hash

hash of the receipts generated by this block

 
 
 
state_hash

hash of the global chain state at this block

 
 
 
beneficiary_address

beneficiary address designated by harvester

 
 
 
fee_multiplier

fee multiplier applied to block transactions

 
 
 
block_header_reserved_1
byte[4]
reserved 0

reserved padding to align end of BlockHeader on 8-byte boundary

ImportanceBlockHeader

Size: 427 bytes = 0x1ab
schema

binary layout for an importance block header

 
 
 
BLOCK_VERSION
byte[1]
const 1
 
 
 
BLOCK_TYPE
const IMPORTANCE (0x8243)
BlockHeader372 bytes = 0x174
SizePrefixedEntity4 bytes = 0x4
 
 
 
size
byte[4]

Entity size in bytes.
This size includes the header and the full payload of the entity. I.e, the size field matches the size reported in the structure documentation (plus the variable part, if there is any).

VerifiableEntity68 bytes = 0x44
 
 
 
verifiable_​entity_​header_​reserved_​1
byte[4]
reserved 0

Reserved padding to align Signature to an 8-byte boundary.

 
 
 
signature

Entity's signature generated by the signing account.

EntityBody38 bytes = 0x26
 
 
 
signer_public_key

Public key of the signer of the entity.

 
 
 
entity_body_reserved_1
byte[4]
reserved 0

Reserved padding to align end of EntityBody to an 8-byte boundary.

 
 
 
version
byte[1]

Version of this structure.

 
 
 
network

Network on which this entity was created.

 
 
 
type

block type

 
 
 
height

block height

 
 
 
timestamp

number of milliseconds elapsed since creation of genesis block

 
 
 
difficulty

block difficulty

 
 
 
generation_hash_proof

generation hash proof

 
 
 
previous_block_hash

previous block hash

 
 
 
transactions_hash

hash of the transactions in this block

 
 
 
receipts_hash

hash of the receipts generated by this block

 
 
 
state_hash

hash of the global chain state at this block

 
 
 
beneficiary_address

beneficiary address designated by harvester

 
 
 
fee_multiplier

fee multiplier applied to block transactions

ImportanceBlockFooter52 bytes = 0x34
 
 
 
voting_eligible_accounts_count
byte[4]

number of voting eligible accounts

 
 
 
harvesting_​eligible_​accounts_​count
byte[8]

number of harvesting eligible accounts

 
 
 
total_voting_balance

total balance eligible for voting

 
 
 
previous_importance_block_hash

previous importance block hash

FinalizationRound

Size: 8 bytes = 0x8
schema
bitxorcore model

binary layout for finalization round

 
 
 
epoch

finalization epoch

 
 
 
point

finalization point

FinalizedBlockHeader

Size: 48 bytes = 0x30
schema

binary layout for finalized block header

 
 
 
round

finalization round

 
 
 
height

finalization height

 
 
 
hash

finalization hash

BalanceTransferReceipt

Size: 72 bytes = 0x48
schema
bitxorcore model

An invisible state change triggered a token transfer.

Receipt8 bytes = 0x8
SizePrefixedEntity4 bytes = 0x4
 
 
 
size
byte[4]

Entity size in bytes.
This size includes the header and the full payload of the entity. I.e, the size field matches the size reported in the structure documentation (plus the variable part, if there is any).

 
 
 
version
byte[2]

Receipt version.

 
 
 
type

Type of receipt.

 
 
 
token

Transferred token

 
 
 
sender_address

Address of the sender account.

 
 
 
recipient_address

Address of the recipient account.

BalanceChangeReceipt

Size: 48 bytes = 0x30
schema
bitxorcore model

An invisible state change modified an account's balance.

Receipt8 bytes = 0x8
SizePrefixedEntity4 bytes = 0x4
 
 
 
size
byte[4]

Entity size in bytes.
This size includes the header and the full payload of the entity. I.e, the size field matches the size reported in the structure documentation (plus the variable part, if there is any).

 
 
 
version
byte[2]

Receipt version.

 
 
 
type

Type of receipt.

 
 
 
token

Modified token.

 
 
 
target_address

Address of the affected account.

InflationReceipt

Size: 24 bytes = 0x18
schema
bitxorcore model

Network currency tokens were created due to inflation.

Receipt8 bytes = 0x8
SizePrefixedEntity4 bytes = 0x4
 
 
 
size
byte[4]

Entity size in bytes.
This size includes the header and the full payload of the entity. I.e, the size field matches the size reported in the structure documentation (plus the variable part, if there is any).

 
 
 
version
byte[2]

Receipt version.

 
 
 
type

Type of receipt.

 
 
 
token

Created token.

TokenExpiryReceipt

Size: 16 bytes = 0x10
schema

An token expired.

Receipt8 bytes = 0x8
SizePrefixedEntity4 bytes = 0x4
 
 
 
size
byte[4]

Entity size in bytes.
This size includes the header and the full payload of the entity. I.e, the size field matches the size reported in the structure documentation (plus the variable part, if there is any).

 
 
 
version
byte[2]

Receipt version.

 
 
 
type

Type of receipt.

 
 
 
artifact_id

Expiring token id.

NamespaceExpiryReceipt

Size: 16 bytes = 0x10
schema

Receipt generated when a namespace expires.

Receipt8 bytes = 0x8
SizePrefixedEntity4 bytes = 0x4
 
 
 
size
byte[4]

Entity size in bytes.
This size includes the header and the full payload of the entity. I.e, the size field matches the size reported in the structure documentation (plus the variable part, if there is any).

 
 
 
version
byte[2]

Receipt version.

 
 
 
type

Type of receipt.

 
 
 
artifact_id

Expiring namespace identifier.

ReceiptSource

Size: 8 bytes = 0x8
schema
bitxorcore model

The transaction inside the block that triggered the receipt.

 
 
 
primary_id
byte[4]

Transaction primary source (e.g. index within the block).

 
 
 
secondary_id
byte[4]

Transaction secondary source (e.g. index within aggregate).

AddressResolutionEntry

Size: 32 bytes = 0x20
schema

Actual Address behind a NamespaceId at the time a transaction was confirmed.

 
 
 
source

Information about the transaction that triggered the receipt.

 
 
 
resolved

Resolved Address.

TokenResolutionEntry

Size: 16 bytes = 0x10
schema

Actual TokenId behind a NamespaceId at the time a transaction was confirmed.

 
 
 
source

Information about the transaction that triggered the receipt.

 
 
 
resolved

Resolved TokenId.

TokenResolutionStatement

Size: 16 bytes = 0x10
schema

A Token resolution statement links a namespace alias used in a transaction to the real token id at the time of the transaction.

Receipt8 bytes = 0x8
SizePrefixedEntity4 bytes = 0x4
 
 
 
size
byte[4]

Entity size in bytes.
This size includes the header and the full payload of the entity. I.e, the size field matches the size reported in the structure documentation (plus the variable part, if there is any).

 
 
 
version
byte[2]

Receipt version.

 
 
 
type

Type of receipt.

 
 
 
unresolved

Unresolved token.

 
 
 
resolution_entries

Resolution entries.

AddressResolutionStatement

Size: 32 bytes = 0x20
schema

An Address resolution statement links a namespace alias used in a transaction to the real address at the time of the transaction.

Receipt8 bytes = 0x8
SizePrefixedEntity4 bytes = 0x4
 
 
 
size
byte[4]

Entity size in bytes.
This size includes the header and the full payload of the entity. I.e, the size field matches the size reported in the structure documentation (plus the variable part, if there is any).

 
 
 
version
byte[2]

Receipt version.

 
 
 
type

Type of receipt.

 
 
 
unresolved

Unresolved address.

 
 
 
resolution_entries

Resolution entries.

PinnedVotingKey

Size: 40 bytes = 0x28
schema
bitxorcore model

pinned voting key

 
 
 
voting_key

voting key

 
 
 
start_epoch

start finalization epoch

 
 
 
end_epoch

end finalization epoch

ImportanceSnapshot

Size: 16 bytes = 0x10
schema
bitxorcore model

temporal importance information

 
 
 
importance

account importance

 
 
 
height

importance height

HeightActivityBucket

Size: 28 bytes = 0x1c
schema

account activity bucket

 
 
 
start_height

activity start height

 
 
 
total_fees_paid

total fees paid by account

 
 
 
beneficiary_count
byte[4]

number of times account has been used as a beneficiary

 
 
 
raw_score
byte[8]

raw importance score

HeightActivityBuckets

Size: 140 bytes = 0x8c
schema

account activity buckets

 
 
 
buckets

account activity buckets

AccountState

Size: 332+ bytes = 0x14c+ (variable)
schema
bitxorcore model

binary layout for non-historical account state

StateHeader2 bytes = 0x2
 
 
 
version
byte[2]

serialization version

 
 
 
address

address of account

 
 
 
address_height

height at which address has been obtained

 
 
 
public_key

public key of account

 
 
 
public_key_height

height at which public key has been obtained

 
 
 
account_type

type of account

 
 
 
format

account format

 
 
 
supplemental_public_keys_mask

mask of supplemental public key flags

 
 
 
voting_public_keys_count
byte[1]

number of voting public keys

 
 
 
linked_public_key

linked account public key

 
 
 
node_public_key

node public key

 
 
 
vrf_public_key

vrf public key

 
 
 
voting_public_keys
PinnedVotingKey​[voting_public_keys_count]

voting public keys

 
 
 
importance_snapshots

current importance snapshot of the account

 
 
 
activity_buckets

activity buckets of the account

 
 
 
balances_count
byte[2]

number of total balances (tokens)

 
 
 
balances
Token​[balances_count]

balances of account

HashLockInfo

Size: 83 bytes = 0x53
schema
bitxorcore model

binary layout for hash lock transaction info

StateHeader2 bytes = 0x2
 
 
 
version
byte[2]

serialization version

 
 
 
owner_address

owner address

 
 
 
token

token associated with lock

 
 
 
end_height

height at which the lock expires

 
 
 
status

flag indicating whether or not the lock was already used

 
 
 
hash

hash

MetadataValue

Size: 2+ bytes = 0x2+ (variable)
schema

binary layout of a metadata entry value

 
 
 
size
byte[2]

size of the value

 
 
 
data
byte[size]

data of the value

MetadataEntry

Size: 69+ bytes = 0x45+ (variable)
schema

binary layout of a metadata entry

StateHeader2 bytes = 0x2
 
 
 
version
byte[2]

serialization version

 
 
 
source_address

metadata source address (provider)

 
 
 
target_address

metadata target address

 
 
 
scoped_metadata_key

metadata key scoped to source, target and type

 
 
 
target_id
byte[8]

target id

 
 
 
metadata_type

metadata type

 
 
 
value

value

TokenProperties

Size: 10 bytes = 0xa
schema

binary layout for token properties

 
 
 
flags

token flags

 
 
 
divisibility
byte[1]

token divisibility

 
 
 
duration

token duration

TokenDefinition

Size: 46 bytes = 0x2e
schema

binary layout for token definition

 
 
 
start_height

block height

 
 
 
owner_address

token owner

 
 
 
revision
byte[4]

revision

 
 
 
properties

properties

TokenEntry

Size: 64 bytes = 0x40
schema

binary layout for token entry

StateHeader2 bytes = 0x2
 
 
 
version
byte[2]

serialization version

 
 
 
token_id

entry id

 
 
 
supply

total supply amount

 
 
 
definition

definition comprised of entry properties

MultisigEntry

Size: 50+ bytes = 0x32+ (variable)
schema

binary layout for a multisig entry

StateHeader2 bytes = 0x2
 
 
 
version
byte[2]

serialization version

 
 
 
min_approval
byte[4]

minimum approval for modifications

 
 
 
min_removal
byte[4]

minimum approval for removal

 
 
 
account_address

account address

 
 
 
cosignatory_addresses_count
byte[8]

number of cosignatories

 
 
 
cosignatory_addresses
Address​[cosignatory_addresses_count]

cosignatories for account

 
 
 
multisig_addresses_count
byte[8]

number of other accounts for which the entry is cosignatory

 
 
 
multisig_addresses
Address​[multisig_addresses_count]

accounts for which the entry is cosignatory

NamespaceLifetime

Size: 16 bytes = 0x10
schema
bitxorcore model

binary layout for namespace lifetime

 
 
 
lifetime_start

start height

 
 
 
lifetime_end

end height

NamespaceAlias

Size: 33 bytes = 0x21
schema

binary layout for alias

 
 
 
namespace_alias_type

namespace alias type

 
 
 
token_alias

token alias

 
 
 
address_alias

address alias

NamespacePath

Size: 34+ bytes = 0x22+ (variable)
schema

binary layout for a namespace path

 
 
 
path_size
byte[1]

number of paths (excluding root id)

 
 
 
path
NamespaceId​[path_size]

namespace path (excluding root id)

 
 
 
alias

namespace alias

RootNamespaceHistory

Size: 91+ bytes = 0x5b+ (variable)
schema

binary layout for non-historical root namespace history

StateHeader2 bytes = 0x2
 
 
 
version
byte[2]

serialization version

 
 
 
id

id of the root namespace history

 
 
 
owner_address

namespace owner address

 
 
 
lifetime

lifetime in blocks

 
 
 
root_alias

root namespace alias

 
 
 
children_count
byte[8]

number of children

 
 
 
paths
NamespacePath​[children_count]

save child sub-namespace paths

AccountRestrictionAddressValue

Size: 8+ bytes = 0x8+ (variable)
schema

binary layout for address based account restriction

 
 
 
restriction_values_count
byte[8]

number of restrictions for a particular account

 
 
 
restriction_values
Address​[restriction_values_count]

restriction values

AccountRestrictionTokenValue

Size: 8+ bytes = 0x8+ (variable)
schema

binary layout for token id based account restriction

 
 
 
restriction_values_count
byte[8]

number of restrictions for a particular account

 
 
 
restriction_values
TokenId​[restriction_values_count]

restriction values

AccountRestrictionTransactionTypeValue

Size: 8+ bytes = 0x8+ (variable)
schema

binary layout for transaction type based account restriction

 
 
 
restriction_values_count
byte[8]

number of restrictions for a particular account

 
 
 
restriction_values
TransactionType​[restriction_values_count]

restriction values

AccountRestrictionsInfo

Size: 26+ bytes = 0x1a+ (variable)
schema

binary layout for account restrictions

 
 
 
restriction_flags

raw restriction flags

 
 
 
address_restrictions

address restrictions

 
 
 
token_id_restrictions

token identifier restrictions

 
 
 
transaction_type_restrictions

transaction type restrictions

AccountRestrictions

Size: 34+ bytes = 0x22+ (variable)
schema

binary layout for account restrictions

StateHeader2 bytes = 0x2
 
 
 
version
byte[2]

serialization version

 
 
 
address

address on which restrictions are placed

 
 
 
restrictions_count
byte[8]

number of restrictions

 
 
 
restrictions
AccountRestrictionsInfo​[restrictions_count]

account restrictions

AddressKeyValue

Size: 16 bytes = 0x10
schema

layout for token address restriction key-value pair

 
 
 
key

key for value

 
 
 
value
byte[8]

value associated by key

AddressKeyValueSet

Size: 1+ byte = 0x1+ (variable)
schema

binary layout for token address restriction key-value set

 
 
 
key_value_count
byte[1]

number of key value pairs

 
 
 
keys
AddressKeyValue​[key_value_count]

key value array

RestrictionRule

Size: 17 bytes = 0x11
schema
bitxorcore model

binary layout of restriction rule being applied

 
 
 
reference_token_id

identifier of the token providing the restriction key

 
 
 
restriction_value
byte[8]

restriction value

 
 
 
restriction_type

restriction type

GlobalKeyValue

Size: 25 bytes = 0x19
schema

binary layout for a global key-value

 
 
 
key

key associated with a restriction rule

 
 
 
restriction_rule

restriction rule (the value) associated with a key

GlobalKeyValueSet

Size: 1+ byte = 0x1+ (variable)
schema

binary layout for a global restriction key-value set

 
 
 
key_value_count
byte[1]

number of key value pairs

 
 
 
keys
GlobalKeyValue​[key_value_count]

key value array

TokenAddressRestrictionEntry

Size: 33+ bytes = 0x21+ (variable)
schema

binary layout for a token restriction

 
 
 
token_id

identifier of the token to which the restriction applies

 
 
 
address

address being restricted

 
 
 
key_pairs

address key value restriction set

TokenGlobalRestrictionEntry

Size: 9+ bytes = 0x9+ (variable)
schema

binary layout for a token restriction

 
 
 
token_id

identifier of the token to which the restriction applies

 
 
 
key_pairs

global key value restriction set

TokenRestrictionEntry

Size: 45+ bytes = 0x2d+ (variable)
schema

binary layout for a token restriction

StateHeader2 bytes = 0x2
 
 
 
version
byte[2]

serialization version

 
 
 
entry_type

type of restriction being placed upon the entity

 
 
 
address_entry

address restriction rule

 
 
 
global_entry

global token rule

SecretLockInfo

Size: 108 bytes = 0x6c
schema
bitxorcore model

binary layout for serialized lock transaction

StateHeader2 bytes = 0x2
 
 
 
version
byte[2]

serialization version

 
 
 
owner_address

owner address

 
 
 
token

token associated with lock

 
 
 
end_height

height at which the lock expires

 
 
 
status

flag indicating whether or not the lock was already used

 
 
 
hash_algorithm

hash algorithm

 
 
 
secret

transaction secret

 
 
 
recipient

transaction recipient

AccountKeyLinkTransaction

Size: 164 bytes = 0xa4
schema
bitxorcore model

This transaction is required for all accounts wanting to activate remote or delegated harvesting.
Announce an AccountKeyLinkTransaction to delegate the account importance score to a proxy account.

 
 
 
TRANSACTION_VERSION
byte[1]
const 1
 
 
 
TRANSACTION_TYPE
const ACCOUNT_KEY_LINK (0x414c)
Transaction128 bytes = 0x80
SizePrefixedEntity4 bytes = 0x4
 
 
 
size
byte[4]

Entity size in bytes.
This size includes the header and the full payload of the entity. I.e, the size field matches the size reported in the structure documentation (plus the variable part, if there is any).

VerifiableEntity68 bytes = 0x44
 
 
 
verifiable_​entity_​header_​reserved_​1
byte[4]
reserved 0

Reserved padding to align Signature to an 8-byte boundary.

 
 
 
signature

Entity's signature generated by the signing account.

EntityBody38 bytes = 0x26
 
 
 
signer_public_key

Public key of the signer of the entity.

 
 
 
entity_body_reserved_1
byte[4]
reserved 0

Reserved padding to align end of EntityBody to an 8-byte boundary.

 
 
 
version
byte[1]

Version of this structure.

 
 
 
network

Network on which this entity was created.

 
 
 
type

transaction type

 
 
 
fee

transaction fee

 
 
 
deadline

transaction deadline

 
 
 
linked_public_key

Linked public key.

 
 
 
link_action

Account link action.

EmbeddedAccountKeyLinkTransaction

Size: 84 bytes = 0x54
schema
bitxorcore model

Embedded version of AccountKeyLinkTransaction.

 
 
 
TRANSACTION_VERSION
byte[1]
const 1
 
 
 
TRANSACTION_TYPE
const ACCOUNT_KEY_LINK (0x414c)
EmbeddedTransaction48 bytes = 0x30
SizePrefixedEntity4 bytes = 0x4
 
 
 
size
byte[4]

Entity size in bytes.
This size includes the header and the full payload of the entity. I.e, the size field matches the size reported in the structure documentation (plus the variable part, if there is any).

 
 
 
embedded_​transaction_​header_​reserved_​1
byte[4]
reserved 0

reserved padding to align end of EmbeddedTransactionHeader on 8-byte boundary

EntityBody38 bytes = 0x26
 
 
 
signer_public_key

Public key of the signer of the entity.

 
 
 
entity_body_reserved_1
byte[4]
reserved 0

Reserved padding to align end of EntityBody to an 8-byte boundary.

 
 
 
version
byte[1]

Version of this structure.

 
 
 
network

Network on which this entity was created.

 
 
 
type

transaction type

 
 
 
linked_public_key

Linked public key.

 
 
 
link_action

Account link action.

NodeKeyLinkTransaction

Size: 164 bytes = 0xa4
schema
bitxorcore model

This transaction is required for all accounts willing to activate delegated harvesting.
Announce a NodeKeyLinkTransaction to link an account with a public key used by TLS to create sessions.

 
 
 
TRANSACTION_VERSION
byte[1]
const 1
 
 
 
TRANSACTION_TYPE
const NODE_KEY_LINK (0x424c)
Transaction128 bytes = 0x80
SizePrefixedEntity4 bytes = 0x4
 
 
 
size
byte[4]

Entity size in bytes.
This size includes the header and the full payload of the entity. I.e, the size field matches the size reported in the structure documentation (plus the variable part, if there is any).

VerifiableEntity68 bytes = 0x44
 
 
 
verifiable_​entity_​header_​reserved_​1
byte[4]
reserved 0

Reserved padding to align Signature to an 8-byte boundary.

 
 
 
signature

Entity's signature generated by the signing account.

EntityBody38 bytes = 0x26
 
 
 
signer_public_key

Public key of the signer of the entity.

 
 
 
entity_body_reserved_1
byte[4]
reserved 0

Reserved padding to align end of EntityBody to an 8-byte boundary.

 
 
 
version
byte[1]

Version of this structure.

 
 
 
network

Network on which this entity was created.

 
 
 
type

transaction type

 
 
 
fee

transaction fee

 
 
 
deadline

transaction deadline

 
 
 
linked_public_key

Linked public key.

 
 
 
link_action

Account link action.

EmbeddedNodeKeyLinkTransaction

Size: 84 bytes = 0x54
schema
bitxorcore model

Embedded version of NodeKeyLinkTransaction.

 
 
 
TRANSACTION_VERSION
byte[1]
const 1
 
 
 
TRANSACTION_TYPE
const NODE_KEY_LINK (0x424c)
EmbeddedTransaction48 bytes = 0x30
SizePrefixedEntity4 bytes = 0x4
 
 
 
size
byte[4]

Entity size in bytes.
This size includes the header and the full payload of the entity. I.e, the size field matches the size reported in the structure documentation (plus the variable part, if there is any).

 
 
 
embedded_​transaction_​header_​reserved_​1
byte[4]
reserved 0

reserved padding to align end of EmbeddedTransactionHeader on 8-byte boundary

EntityBody38 bytes = 0x26
 
 
 
signer_public_key

Public key of the signer of the entity.

 
 
 
entity_body_reserved_1
byte[4]
reserved 0

Reserved padding to align end of EntityBody to an 8-byte boundary.

 
 
 
version
byte[1]

Version of this structure.

 
 
 
network

Network on which this entity was created.

 
 
 
type

transaction type

 
 
 
linked_public_key

Linked public key.

 
 
 
link_action

Account link action.

DetachedCosignature

Size: 136 bytes = 0x88
schema
bitxorcore model

Cosignature detached from an AggregateCompleteTransaction or AggregateBondedTransaction.

Cosignature104 bytes = 0x68
 
 
 
version
byte[8]

Version.

 
 
 
signer_public_key

Cosigner public key.

 
 
 
signature

Transaction signature.

 
 
 
parent_hash

Hash of the AggregateBondedTransaction that is signed by this cosignature.

AggregateCompleteTransaction

Size: 171+ bytes = 0xab+ (variable)
schema
bitxorcore model

Send transactions in batches to different accounts.
Use this transaction when all required signatures are available when the transaction is created.

 
 
 
TRANSACTION_VERSION
byte[1]
const 1
 
 
 
TRANSACTION_TYPE
const AGGREGATE_COMPLETE (0x4141)
Transaction128 bytes = 0x80
SizePrefixedEntity4 bytes = 0x4
 
 
 
size
byte[4]

Entity size in bytes.
This size includes the header and the full payload of the entity. I.e, the size field matches the size reported in the structure documentation (plus the variable part, if there is any).

VerifiableEntity68 bytes = 0x44
 
 
 
verifiable_​entity_​header_​reserved_​1
byte[4]
reserved 0

Reserved padding to align Signature to an 8-byte boundary.

 
 
 
signature

Entity's signature generated by the signing account.

EntityBody38 bytes = 0x26
 
 
 
signer_public_key

Public key of the signer of the entity.

 
 
 
entity_body_reserved_1
byte[4]
reserved 0

Reserved padding to align end of EntityBody to an 8-byte boundary.

 
 
 
version
byte[1]

Version of this structure.

 
 
 
network

Network on which this entity was created.

 
 
 
type

transaction type

 
 
 
fee

transaction fee

 
 
 
deadline

transaction deadline

AggregateTransactionBody40+ bytes = 0x28+ (variable)
 
 
 
transactions_hash

Hash of the aggregate's transaction.

 
 
 
payload_size
byte[4]

Transaction payload size in bytes.
This is the total number of bytes occupied by all embedded transactions, including any padding present.

 
 
 
aggregate_​transaction_​header_​reserved_​1
byte[4]
reserved 0

Reserved padding to align end of AggregateTransactionHeader to an 8-byte boundary.

 
 
 
transactions
EmbeddedTransaction​[payload_size]

Embedded transaction data.
Transactions are variable-sized and the total payload size is in bytes.
Embedded transactions cannot be aggregates.

 
 
 
cosignatures

Cosignatures data.
Fills up remaining body space after transactions.

AggregateBondedTransaction

Size: 171+ bytes = 0xab+ (variable)
schema
bitxorcore model

Propose an arrangement of transactions between different accounts.
Use this transaction when not all required signatures are available when the transaction is created.
Missing signatures must be provided using a Cosignature or DetachedCosignature.
To prevent spam attacks, before trying to announce this transaction a HashLockTransaction must be successfully announced and confirmed.

 
 
 
TRANSACTION_VERSION
byte[1]
const 1
 
 
 
TRANSACTION_TYPE
const AGGREGATE_BONDED (0x4241)
Transaction128 bytes = 0x80
SizePrefixedEntity4 bytes = 0x4
 
 
 
size
byte[4]

Entity size in bytes.
This size includes the header and the full payload of the entity. I.e, the size field matches the size reported in the structure documentation (plus the variable part, if there is any).

VerifiableEntity68 bytes = 0x44
 
 
 
verifiable_​entity_​header_​reserved_​1
byte[4]
reserved 0

Reserved padding to align Signature to an 8-byte boundary.

 
 
 
signature

Entity's signature generated by the signing account.

EntityBody38 bytes = 0x26
 
 
 
signer_public_key

Public key of the signer of the entity.

 
 
 
entity_body_reserved_1
byte[4]
reserved 0

Reserved padding to align end of EntityBody to an 8-byte boundary.

 
 
 
version
byte[1]

Version of this structure.

 
 
 
network

Network on which this entity was created.

 
 
 
type

transaction type

 
 
 
fee

transaction fee

 
 
 
deadline

transaction deadline

AggregateTransactionBody40+ bytes = 0x28+ (variable)
 
 
 
transactions_hash

Hash of the aggregate's transaction.

 
 
 
payload_size
byte[4]

Transaction payload size in bytes.
This is the total number of bytes occupied by all embedded transactions, including any padding present.

 
 
 
aggregate_​transaction_​header_​reserved_​1
byte[4]
reserved 0

Reserved padding to align end of AggregateTransactionHeader to an 8-byte boundary.

 
 
 
transactions
EmbeddedTransaction​[payload_size]

Embedded transaction data.
Transactions are variable-sized and the total payload size is in bytes.
Embedded transactions cannot be aggregates.

 
 
 
cosignatures

Cosignatures data.
Fills up remaining body space after transactions.

VotingKeyLinkTransaction

Size: 172 bytes = 0xac
schema
bitxorcore model

Link an account with a BLS public key required for finalization voting.
This transaction is required for node operators wanting to vote for finalization.
Announce a VotingKeyLinkTransaction to associate a voting key with an account during a fixed period. An account can be linked to up to 3 different voting keys at the same time.
The recommended production setting is to always have at least 2 linked keys with different endPoint values to ensure a key is registered after the first one expires.
See more details in the manual node setup guide.

 
 
 
TRANSACTION_VERSION
byte[1]
const 1
 
 
 
TRANSACTION_TYPE
const VOTING_KEY_LINK (0x4143)
Transaction128 bytes = 0x80
SizePrefixedEntity4 bytes = 0x4
 
 
 
size
byte[4]

Entity size in bytes.
This size includes the header and the full payload of the entity. I.e, the size field matches the size reported in the structure documentation (plus the variable part, if there is any).

VerifiableEntity68 bytes = 0x44
 
 
 
verifiable_​entity_​header_​reserved_​1
byte[4]
reserved 0

Reserved padding to align Signature to an 8-byte boundary.

 
 
 
signature

Entity's signature generated by the signing account.

EntityBody38 bytes = 0x26
 
 
 
signer_public_key

Public key of the signer of the entity.

 
 
 
entity_body_reserved_1
byte[4]
reserved 0

Reserved padding to align end of EntityBody to an 8-byte boundary.

 
 
 
version
byte[1]

Version of this structure.

 
 
 
network

Network on which this entity was created.

 
 
 
type

transaction type

 
 
 
fee

transaction fee

 
 
 
deadline

transaction deadline

 
 
 
linked_public_key

Linked voting public key.

 
 
 
start_epoch

Starting finalization epoch.

 
 
 
end_epoch

Ending finalization epoch.

 
 
 
link_action

Account link action.

EmbeddedVotingKeyLinkTransaction

Size: 92 bytes = 0x5c
schema
bitxorcore model

Embedded version of VotingKeyLinkTransaction.

 
 
 
TRANSACTION_VERSION
byte[1]
const 1
 
 
 
TRANSACTION_TYPE
const VOTING_KEY_LINK (0x4143)
EmbeddedTransaction48 bytes = 0x30
SizePrefixedEntity4 bytes = 0x4
 
 
 
size
byte[4]

Entity size in bytes.
This size includes the header and the full payload of the entity. I.e, the size field matches the size reported in the structure documentation (plus the variable part, if there is any).

 
 
 
embedded_​transaction_​header_​reserved_​1
byte[4]
reserved 0

reserved padding to align end of EmbeddedTransactionHeader on 8-byte boundary

EntityBody38 bytes = 0x26
 
 
 
signer_public_key

Public key of the signer of the entity.

 
 
 
entity_body_reserved_1
byte[4]
reserved 0

Reserved padding to align end of EntityBody to an 8-byte boundary.

 
 
 
version
byte[1]

Version of this structure.

 
 
 
network

Network on which this entity was created.

 
 
 
type

transaction type

 
 
 
linked_public_key

Linked voting public key.

 
 
 
start_epoch

Starting finalization epoch.

 
 
 
end_epoch

Ending finalization epoch.

 
 
 
link_action

Account link action.

VrfKeyLinkTransaction

Size: 164 bytes = 0xa4
schema
bitxorcore model

Link an account with a VRF public key required for harvesting.
Announce a VrfKeyLinkTransaction to link an account with a VRF public key. The linked key is used to randomize block production and leader/participant selection.
This transaction is required for all accounts wishing to harvest.

 
 
 
TRANSACTION_VERSION
byte[1]
const 1
 
 
 
TRANSACTION_TYPE
const VRF_KEY_LINK (0x4243)
Transaction128 bytes = 0x80
SizePrefixedEntity4 bytes = 0x4
 
 
 
size
byte[4]

Entity size in bytes.
This size includes the header and the full payload of the entity. I.e, the size field matches the size reported in the structure documentation (plus the variable part, if there is any).

VerifiableEntity68 bytes = 0x44
 
 
 
verifiable_​entity_​header_​reserved_​1
byte[4]
reserved 0

Reserved padding to align Signature to an 8-byte boundary.

 
 
 
signature

Entity's signature generated by the signing account.

EntityBody38 bytes = 0x26
 
 
 
signer_public_key

Public key of the signer of the entity.

 
 
 
entity_body_reserved_1
byte[4]
reserved 0

Reserved padding to align end of EntityBody to an 8-byte boundary.

 
 
 
version
byte[1]

Version of this structure.

 
 
 
network

Network on which this entity was created.

 
 
 
type

transaction type

 
 
 
fee

transaction fee

 
 
 
deadline

transaction deadline

 
 
 
linked_public_key

Linked VRF public key.

 
 
 
link_action

Account link action.

EmbeddedVrfKeyLinkTransaction

Size: 84 bytes = 0x54
schema
bitxorcore model

Embedded version of VrfKeyLinkTransaction.

 
 
 
TRANSACTION_VERSION
byte[1]
const 1
 
 
 
TRANSACTION_TYPE
const VRF_KEY_LINK (0x4243)
EmbeddedTransaction48 bytes = 0x30
SizePrefixedEntity4 bytes = 0x4
 
 
 
size
byte[4]

Entity size in bytes.
This size includes the header and the full payload of the entity. I.e, the size field matches the size reported in the structure documentation (plus the variable part, if there is any).

 
 
 
embedded_​transaction_​header_​reserved_​1
byte[4]
reserved 0

reserved padding to align end of EmbeddedTransactionHeader on 8-byte boundary

EntityBody38 bytes = 0x26
 
 
 
signer_public_key

Public key of the signer of the entity.

 
 
 
entity_body_reserved_1
byte[4]
reserved 0

Reserved padding to align end of EntityBody to an 8-byte boundary.

 
 
 
version
byte[1]

Version of this structure.

 
 
 
network

Network on which this entity was created.

 
 
 
type

transaction type

 
 
 
linked_public_key

Linked VRF public key.

 
 
 
link_action

Account link action.

HashLockTransaction

Size: 187 bytes = 0xbb
schema
bitxorcore model

Lock a deposit needed to announce an AggregateBondedTransaction.
An AggregateBondedTransaction consumes network resources as it is stored in every node's partial cache while it waits to be fully signed. To avoid spam attacks a HashLockTransaction must be announced and confirmed before an AggregateBondedTransaction can be announced. The HashLockTransaction locks a certain amount of funds (10 BXR by default) until the aggregate is signed.
Upon completion of the aggregate, the locked funds become available again to the account that signed the HashLockTransaction.
If the lock expires before the aggregate is signed by all cosignatories (**48h by default), the locked funds become a reward collected by the block harvester at the height where the lock expires.

Note: It is not necessary to sign the aggregate and its HashLockTransaction with the same account. For example, if Bob wants to announce an aggregate and does not have enough funds to announce a HashLockTransaction, he can ask Alice to announce the lock transaction for him by sharing the signed AggregateTransaction hash.

 
 
 
TRANSACTION_VERSION
byte[1]
const 1
 
 
 
TRANSACTION_TYPE
const HASH_LOCK (0x4148)
Transaction128 bytes = 0x80
SizePrefixedEntity4 bytes = 0x4
 
 
 
size
byte[4]

Entity size in bytes.
This size includes the header and the full payload of the entity. I.e, the size field matches the size reported in the structure documentation (plus the variable part, if there is any).

VerifiableEntity68 bytes = 0x44
 
 
 
verifiable_​entity_​header_​reserved_​1
byte[4]
reserved 0

Reserved padding to align Signature to an 8-byte boundary.

 
 
 
signature

Entity's signature generated by the signing account.

EntityBody38 bytes = 0x26
 
 
 
signer_public_key

Public key of the signer of the entity.

 
 
 
entity_body_reserved_1
byte[4]
reserved 0

Reserved padding to align end of EntityBody to an 8-byte boundary.

 
 
 
version
byte[1]

Version of this structure.

 
 
 
network

Network on which this entity was created.

 
 
 
type

transaction type

 
 
 
fee

transaction fee

 
 
 
deadline

transaction deadline

 
 
 
token

Locked token.

 
 
 
duration

Number of blocks for which a lock should be valid.
The default maximum is 48h (See the maxHashLockDuration network property).

 
 
 
hash

Hash of the AggregateBondedTransaction to be confirmed before unlocking the tokens.

EmbeddedHashLockTransaction

Size: 107 bytes = 0x6b
schema
bitxorcore model

Embedded version of HashLockTransaction.

 
 
 
TRANSACTION_VERSION
byte[1]
const 1
 
 
 
TRANSACTION_TYPE
const HASH_LOCK (0x4148)
EmbeddedTransaction48 bytes = 0x30
SizePrefixedEntity4 bytes = 0x4
 
 
 
size
byte[4]

Entity size in bytes.
This size includes the header and the full payload of the entity. I.e, the size field matches the size reported in the structure documentation (plus the variable part, if there is any).

 
 
 
embedded_​transaction_​header_​reserved_​1
byte[4]
reserved 0

reserved padding to align end of EmbeddedTransactionHeader on 8-byte boundary

EntityBody38 bytes = 0x26
 
 
 
signer_public_key

Public key of the signer of the entity.

 
 
 
entity_body_reserved_1
byte[4]
reserved 0

Reserved padding to align end of EntityBody to an 8-byte boundary.

 
 
 
version
byte[1]

Version of this structure.

 
 
 
network

Network on which this entity was created.

 
 
 
type

transaction type

 
 
 
token

Locked token.

 
 
 
duration

Number of blocks for which a lock should be valid.
The default maximum is 48h (See the maxHashLockDuration network property).

 
 
 
hash

Hash of the AggregateBondedTransaction to be confirmed before unlocking the tokens.

SecretLockTransaction

Size: 212 bytes = 0xd4
schema
bitxorcore model

Start a token swap between different chains.
Use a SecretLockTransaction to transfer tokens between two accounts. The tokens sent remain locked until a valid SecretProofTransaction unlocks them.
The default expiration date is 365 days after announcement (See the maxSecretLockDuration network property). If the lock expires before a valid SecretProofTransaction is announced the locked amount goes back to the initiator of the SecretLockTransaction.

 
 
 
TRANSACTION_VERSION
byte[1]
const 1
 
 
 
TRANSACTION_TYPE
const SECRET_LOCK (0x4152)
Transaction128 bytes = 0x80
SizePrefixedEntity4 bytes = 0x4
 
 
 
size
byte[4]

Entity size in bytes.
This size includes the header and the full payload of the entity. I.e, the size field matches the size reported in the structure documentation (plus the variable part, if there is any).

VerifiableEntity68 bytes = 0x44
 
 
 
verifiable_​entity_​header_​reserved_​1
byte[4]
reserved 0

Reserved padding to align Signature to an 8-byte boundary.

 
 
 
signature

Entity's signature generated by the signing account.

EntityBody38 bytes = 0x26
 
 
 
signer_public_key

Public key of the signer of the entity.

 
 
 
entity_body_reserved_1
byte[4]
reserved 0

Reserved padding to align end of EntityBody to an 8-byte boundary.

 
 
 
version
byte[1]

Version of this structure.

 
 
 
network

Network on which this entity was created.

 
 
 
type

transaction type

 
 
 
fee

transaction fee

 
 
 
deadline

transaction deadline

 
 
 
recipient_address

Address that receives the funds once successfully unlocked by a SecretProofTransaction.

 
 
 
secret

Hashed proof.

 
 
 
token

Locked tokens.

 
 
 
duration

Number of blocks to wait for the SecretProofTransaction.

 
 
 
hash_algorithm

Algorithm used to hash the proof.

EmbeddedSecretLockTransaction

Size: 132 bytes = 0x84
schema
bitxorcore model

Embedded version of SecretLockTransaction.

 
 
 
TRANSACTION_VERSION
byte[1]
const 1
 
 
 
TRANSACTION_TYPE
const SECRET_LOCK (0x4152)
EmbeddedTransaction48 bytes = 0x30
SizePrefixedEntity4 bytes = 0x4
 
 
 
size
byte[4]

Entity size in bytes.
This size includes the header and the full payload of the entity. I.e, the size field matches the size reported in the structure documentation (plus the variable part, if there is any).

 
 
 
embedded_​transaction_​header_​reserved_​1
byte[4]
reserved 0

reserved padding to align end of EmbeddedTransactionHeader on 8-byte boundary

EntityBody38 bytes = 0x26
 
 
 
signer_public_key

Public key of the signer of the entity.

 
 
 
entity_body_reserved_1
byte[4]
reserved 0

Reserved padding to align end of EntityBody to an 8-byte boundary.

 
 
 
version
byte[1]

Version of this structure.

 
 
 
network

Network on which this entity was created.

 
 
 
type

transaction type

 
 
 
recipient_address

Address that receives the funds once successfully unlocked by a SecretProofTransaction.

 
 
 
secret

Hashed proof.

 
 
 
token

Locked tokens.

 
 
 
duration

Number of blocks to wait for the SecretProofTransaction.

 
 
 
hash_algorithm

Algorithm used to hash the proof.

SecretProofTransaction

Size: 190+ bytes = 0xbe+ (variable)
schema
bitxorcore model

Conclude a token swap between different chains.
Use a SecretProofTransaction to unlock the funds locked by a SecretLockTransaction.
The transaction must prove knowing the proof that unlocks the tokens.

 
 
 
TRANSACTION_VERSION
byte[1]
const 1
 
 
 
TRANSACTION_TYPE
const SECRET_PROOF (0x4252)
Transaction128 bytes = 0x80
SizePrefixedEntity4 bytes = 0x4
 
 
 
size
byte[4]

Entity size in bytes.
This size includes the header and the full payload of the entity. I.e, the size field matches the size reported in the structure documentation (plus the variable part, if there is any).

VerifiableEntity68 bytes = 0x44
 
 
 
verifiable_​entity_​header_​reserved_​1
byte[4]
reserved 0

Reserved padding to align Signature to an 8-byte boundary.

 
 
 
signature

Entity's signature generated by the signing account.

EntityBody38 bytes = 0x26
 
 
 
signer_public_key

Public key of the signer of the entity.

 
 
 
entity_body_reserved_1
byte[4]
reserved 0

Reserved padding to align end of EntityBody to an 8-byte boundary.

 
 
 
version
byte[1]

Version of this structure.

 
 
 
network

Network on which this entity was created.

 
 
 
type

transaction type

 
 
 
fee

transaction fee

 
 
 
deadline

transaction deadline

SecretProofTransactionBody59+ bytes = 0x3b+ (variable)
 
 
 
recipient_address

Address that receives the funds once unlocked.

 
 
 
secret

Hashed proof.

 
 
 
proof_size
byte[2]

Proof size in bytes

 
 
 
hash_algorithm

Algorithm used to hash the proof.

 
 
 
proof
byte[proof_size]

Original random set of bytes that were hashed.

EmbeddedSecretProofTransaction

Size: 110+ bytes = 0x6e+ (variable)
schema
bitxorcore model

Embedded version of SecretProofTransaction.

 
 
 
TRANSACTION_VERSION
byte[1]
const 1
 
 
 
TRANSACTION_TYPE
const SECRET_PROOF (0x4252)
EmbeddedTransaction48 bytes = 0x30
SizePrefixedEntity4 bytes = 0x4
 
 
 
size
byte[4]

Entity size in bytes.
This size includes the header and the full payload of the entity. I.e, the size field matches the size reported in the structure documentation (plus the variable part, if there is any).

 
 
 
embedded_​transaction_​header_​reserved_​1
byte[4]
reserved 0

reserved padding to align end of EmbeddedTransactionHeader on 8-byte boundary

EntityBody38 bytes = 0x26
 
 
 
signer_public_key

Public key of the signer of the entity.

 
 
 
entity_body_reserved_1
byte[4]
reserved 0

Reserved padding to align end of EntityBody to an 8-byte boundary.

 
 
 
version
byte[1]

Version of this structure.

 
 
 
network

Network on which this entity was created.

 
 
 
type

transaction type

SecretProofTransactionBody59+ bytes = 0x3b+ (variable)
 
 
 
recipient_address

Address that receives the funds once unlocked.

 
 
 
secret

Hashed proof.

 
 
 
proof_size
byte[2]

Proof size in bytes

 
 
 
hash_algorithm

Algorithm used to hash the proof.

 
 
 
proof
byte[proof_size]

Original random set of bytes that were hashed.

AccountMetadataTransaction

Size: 167+ bytes = 0xa7+ (variable)
schema
bitxorcore model

Associate a key-value state (metadata) to an account.

Note: This transaction must always be wrapped in an AggregateTransaction so that a cosignature from target_address can be provided. Without this cosignature the transaction is invalid.
Compare to TokenMetadataTransaction and NamespaceMetadataTransaction.

 
 
 
TRANSACTION_VERSION
byte[1]
const 1
 
 
 
TRANSACTION_TYPE
const ACCOUNT_METADATA (0x4144)
Transaction128 bytes = 0x80
SizePrefixedEntity4 bytes = 0x4
 
 
 
size
byte[4]

Entity size in bytes.
This size includes the header and the full payload of the entity. I.e, the size field matches the size reported in the structure documentation (plus the variable part, if there is any).

VerifiableEntity68 bytes = 0x44
 
 
 
verifiable_​entity_​header_​reserved_​1
byte[4]
reserved 0

Reserved padding to align Signature to an 8-byte boundary.

 
 
 
signature

Entity's signature generated by the signing account.

EntityBody38 bytes = 0x26
 
 
 
signer_public_key

Public key of the signer of the entity.

 
 
 
entity_body_reserved_1
byte[4]
reserved 0

Reserved padding to align end of EntityBody to an 8-byte boundary.

 
 
 
version
byte[1]

Version of this structure.

 
 
 
network

Network on which this entity was created.

 
 
 
type

transaction type

 
 
 
fee

transaction fee

 
 
 
deadline

transaction deadline

AccountMetadataTransactionBody36+ bytes = 0x24+ (variable)
 
 
 
target_address

Account whose metadata should be modified.

 
 
 
scoped_metadata_key
byte[8]

Metadata key scoped to source, target and type.

 
 
 
value_size_delta
byte[2]

Change in value size in bytes, compared to previous size.

 
 
 
value_size
byte[2]

Size in bytes of the value array.

 
 
 
value
byte[value_size]

Difference between existing value and new value.
Note: When there is no existing value, this array is directly used and value_size_delta==value_size.
Note: When there is an existing value, the new value is the byte-wise XOR of the previous value and this array.

EmbeddedAccountMetadataTransaction

Size: 87+ bytes = 0x57+ (variable)
schema
bitxorcore model

Embedded version of AccountMetadataTransaction.

 
 
 
TRANSACTION_VERSION
byte[1]
const 1
 
 
 
TRANSACTION_TYPE
const ACCOUNT_METADATA (0x4144)
EmbeddedTransaction48 bytes = 0x30
SizePrefixedEntity4 bytes = 0x4
 
 
 
size
byte[4]

Entity size in bytes.
This size includes the header and the full payload of the entity. I.e, the size field matches the size reported in the structure documentation (plus the variable part, if there is any).

 
 
 
embedded_​transaction_​header_​reserved_​1
byte[4]
reserved 0

reserved padding to align end of EmbeddedTransactionHeader on 8-byte boundary

EntityBody38 bytes = 0x26
 
 
 
signer_public_key

Public key of the signer of the entity.

 
 
 
entity_body_reserved_1
byte[4]
reserved 0

Reserved padding to align end of EntityBody to an 8-byte boundary.

 
 
 
version
byte[1]

Version of this structure.

 
 
 
network

Network on which this entity was created.

 
 
 
type

transaction type

AccountMetadataTransactionBody36+ bytes = 0x24+ (variable)
 
 
 
target_address

Account whose metadata should be modified.

 
 
 
scoped_metadata_key
byte[8]

Metadata key scoped to source, target and type.

 
 
 
value_size_delta
byte[2]

Change in value size in bytes, compared to previous size.

 
 
 
value_size
byte[2]

Size in bytes of the value array.

 
 
 
value
byte[value_size]

Difference between existing value and new value.
Note: When there is no existing value, this array is directly used and value_size_delta==value_size.
Note: When there is an existing value, the new value is the byte-wise XOR of the previous value and this array.

TokenMetadataTransaction

Size: 175+ bytes = 0xaf+ (variable)
schema
bitxorcore model

Associate a key-value state (metadata) to a token.
Compare to AccountMetadataTransaction and NamespaceMetadataTransaction.

 
 
 
TRANSACTION_VERSION
byte[1]
const 1
 
 
 
TRANSACTION_TYPE
const TOKEN_METADATA (0x4244)
Transaction128 bytes = 0x80
SizePrefixedEntity4 bytes = 0x4
 
 
 
size
byte[4]

Entity size in bytes.
This size includes the header and the full payload of the entity. I.e, the size field matches the size reported in the structure documentation (plus the variable part, if there is any).

VerifiableEntity68 bytes = 0x44
 
 
 
verifiable_​entity_​header_​reserved_​1
byte[4]
reserved 0

Reserved padding to align Signature to an 8-byte boundary.

 
 
 
signature

Entity's signature generated by the signing account.

EntityBody38 bytes = 0x26
 
 
 
signer_public_key

Public key of the signer of the entity.

 
 
 
entity_body_reserved_1
byte[4]
reserved 0

Reserved padding to align end of EntityBody to an 8-byte boundary.

 
 
 
version
byte[1]

Version of this structure.

 
 
 
network

Network on which this entity was created.

 
 
 
type

transaction type

 
 
 
fee

transaction fee

 
 
 
deadline

transaction deadline

TokenMetadataTransactionBody44+ bytes = 0x2c+ (variable)
 
 
 
target_address

Account owning the token whose metadata should be modified.

 
 
 
scoped_metadata_key
byte[8]

Metadata key scoped to source, target and type.

 
 
 
target_token_id

Token whose metadata should be modified.

 
 
 
value_size_delta
byte[2]

Change in value size in bytes, compared to previous size.

 
 
 
value_size
byte[2]

Size in bytes of the value array.

 
 
 
value
byte[value_size]

Difference between existing value and new value.
Note: When there is no existing value, this array is directly used and value_size_delta==value_size.
Note: When there is an existing value, the new value is the byte-wise XOR of the previous value and this array.

EmbeddedTokenMetadataTransaction

Size: 95+ bytes = 0x5f+ (variable)
schema
bitxorcore model

Embedded version of TokenMetadataTransaction.

 
 
 
TRANSACTION_VERSION
byte[1]
const 1
 
 
 
TRANSACTION_TYPE
const TOKEN_METADATA (0x4244)
EmbeddedTransaction48 bytes = 0x30
SizePrefixedEntity4 bytes = 0x4
 
 
 
size
byte[4]

Entity size in bytes.
This size includes the header and the full payload of the entity. I.e, the size field matches the size reported in the structure documentation (plus the variable part, if there is any).

 
 
 
embedded_​transaction_​header_​reserved_​1
byte[4]
reserved 0

reserved padding to align end of EmbeddedTransactionHeader on 8-byte boundary

EntityBody38 bytes = 0x26
 
 
 
signer_public_key

Public key of the signer of the entity.

 
 
 
entity_body_reserved_1
byte[4]
reserved 0

Reserved padding to align end of EntityBody to an 8-byte boundary.

 
 
 
version
byte[1]

Version of this structure.

 
 
 
network

Network on which this entity was created.

 
 
 
type

transaction type

TokenMetadataTransactionBody44+ bytes = 0x2c+ (variable)
 
 
 
target_address

Account owning the token whose metadata should be modified.

 
 
 
scoped_metadata_key
byte[8]

Metadata key scoped to source, target and type.

 
 
 
target_token_id

Token whose metadata should be modified.

 
 
 
value_size_delta
byte[2]

Change in value size in bytes, compared to previous size.

 
 
 
value_size
byte[2]

Size in bytes of the value array.

 
 
 
value
byte[value_size]

Difference between existing value and new value.
Note: When there is no existing value, this array is directly used and value_size_delta==value_size.
Note: When there is an existing value, the new value is the byte-wise XOR of the previous value and this array.

NamespaceMetadataTransaction

Size: 175+ bytes = 0xaf+ (variable)
schema
bitxorcore model

Associate a key-value state (metadata) to a namespace.
Compare to AccountMetadataTransaction and TokenMetadataTransaction.

 
 
 
TRANSACTION_VERSION
byte[1]
const 1
 
 
 
TRANSACTION_TYPE
const NAMESPACE_METADATA (0x4344)
Transaction128 bytes = 0x80
SizePrefixedEntity4 bytes = 0x4
 
 
 
size
byte[4]

Entity size in bytes.
This size includes the header and the full payload of the entity. I.e, the size field matches the size reported in the structure documentation (plus the variable part, if there is any).

VerifiableEntity68 bytes = 0x44
 
 
 
verifiable_​entity_​header_​reserved_​1
byte[4]
reserved 0

Reserved padding to align Signature to an 8-byte boundary.

 
 
 
signature

Entity's signature generated by the signing account.

EntityBody38 bytes = 0x26
 
 
 
signer_public_key

Public key of the signer of the entity.

 
 
 
entity_body_reserved_1
byte[4]
reserved 0

Reserved padding to align end of EntityBody to an 8-byte boundary.

 
 
 
version
byte[1]

Version of this structure.

 
 
 
network

Network on which this entity was created.

 
 
 
type

transaction type

 
 
 
fee

transaction fee

 
 
 
deadline

transaction deadline

NamespaceMetadataTransactionBody44+ bytes = 0x2c+ (variable)
 
 
 
target_address

Account owning the namespace whose metadata should be modified.

 
 
 
scoped_metadata_key
byte[8]

Metadata key scoped to source, target and type.

 
 
 
target_namespace_id

Namespace whose metadata should be modified.

 
 
 
value_size_delta
byte[2]

Change in value size in bytes, compared to previous size.

 
 
 
value_size
byte[2]

Size in bytes of the value array.

 
 
 
value
byte[value_size]

Difference between existing value and new value.
Note: When there is no existing value, this array is directly used and value_size_delta==value_size.
Note: When there is an existing value, the new value is the byte-wise XOR of the previous value and this array.

EmbeddedNamespaceMetadataTransaction

Size: 95+ bytes = 0x5f+ (variable)
schema
bitxorcore model

Embedded version of NamespaceMetadataTransaction.

 
 
 
TRANSACTION_VERSION
byte[1]
const 1
 
 
 
TRANSACTION_TYPE
const NAMESPACE_METADATA (0x4344)
EmbeddedTransaction48 bytes = 0x30
SizePrefixedEntity4 bytes = 0x4
 
 
 
size
byte[4]

Entity size in bytes.
This size includes the header and the full payload of the entity. I.e, the size field matches the size reported in the structure documentation (plus the variable part, if there is any).

 
 
 
embedded_​transaction_​header_​reserved_​1
byte[4]
reserved 0

reserved padding to align end of EmbeddedTransactionHeader on 8-byte boundary

EntityBody38 bytes = 0x26
 
 
 
signer_public_key

Public key of the signer of the entity.

 
 
 
entity_body_reserved_1
byte[4]
reserved 0

Reserved padding to align end of EntityBody to an 8-byte boundary.

 
 
 
version
byte[1]

Version of this structure.

 
 
 
network

Network on which this entity was created.

 
 
 
type

transaction type

NamespaceMetadataTransactionBody44+ bytes = 0x2c+ (variable)
 
 
 
target_address

Account owning the namespace whose metadata should be modified.

 
 
 
scoped_metadata_key
byte[8]

Metadata key scoped to source, target and type.

 
 
 
target_namespace_id

Namespace whose metadata should be modified.

 
 
 
value_size_delta
byte[2]

Change in value size in bytes, compared to previous size.

 
 
 
value_size
byte[2]

Size in bytes of the value array.

 
 
 
value
byte[value_size]

Difference between existing value and new value.
Note: When there is no existing value, this array is directly used and value_size_delta==value_size.
Note: When there is an existing value, the new value is the byte-wise XOR of the previous value and this array.

TokenDefinitionTransaction

Size: 153 bytes = 0x99
schema
bitxorcore model

Create a new token.

 
 
 
TRANSACTION_VERSION
byte[1]
const 1
 
 
 
TRANSACTION_TYPE
const TOKEN_DEFINITION (0x414d)
Transaction128 bytes = 0x80
SizePrefixedEntity4 bytes = 0x4
 
 
 
size
byte[4]

Entity size in bytes.
This size includes the header and the full payload of the entity. I.e, the size field matches the size reported in the structure documentation (plus the variable part, if there is any).

VerifiableEntity68 bytes = 0x44
 
 
 
verifiable_​entity_​header_​reserved_​1
byte[4]
reserved 0

Reserved padding to align Signature to an 8-byte boundary.

 
 
 
signature

Entity's signature generated by the signing account.

EntityBody38 bytes = 0x26
 
 
 
signer_public_key

Public key of the signer of the entity.

 
 
 
entity_body_reserved_1
byte[4]
reserved 0

Reserved padding to align end of EntityBody to an 8-byte boundary.

 
 
 
version
byte[1]

Version of this structure.

 
 
 
network

Network on which this entity was created.

 
 
 
type

transaction type

 
 
 
fee

transaction fee

 
 
 
deadline

transaction deadline

 
 
 
id

Unique token identifier obtained from the generator account's public key and the nonce.
The SDK's can take care of generating this ID for you.

 
 
 
duration

Token duration expressed in blocks. If set to 0, the token never expires.

 
 
 
nonce

Random nonce used to generate the token id.

 
 
 
flags

Token flags.

 
 
 
divisibility
byte[1]

Token divisibility.

EmbeddedTokenDefinitionTransaction

Size: 73 bytes = 0x49
schema
bitxorcore model

Embedded version of TokenDefinitionTransaction.

 
 
 
TRANSACTION_VERSION
byte[1]
const 1
 
 
 
TRANSACTION_TYPE
const TOKEN_DEFINITION (0x414d)
EmbeddedTransaction48 bytes = 0x30
SizePrefixedEntity4 bytes = 0x4
 
 
 
size
byte[4]

Entity size in bytes.
This size includes the header and the full payload of the entity. I.e, the size field matches the size reported in the structure documentation (plus the variable part, if there is any).

 
 
 
embedded_​transaction_​header_​reserved_​1
byte[4]
reserved 0

reserved padding to align end of EmbeddedTransactionHeader on 8-byte boundary

EntityBody38 bytes = 0x26
 
 
 
signer_public_key

Public key of the signer of the entity.

 
 
 
entity_body_reserved_1
byte[4]
reserved 0

Reserved padding to align end of EntityBody to an 8-byte boundary.

 
 
 
version
byte[1]

Version of this structure.

 
 
 
network

Network on which this entity was created.

 
 
 
type

transaction type

 
 
 
id

Unique token identifier obtained from the generator account's public key and the nonce.
The SDK's can take care of generating this ID for you.

 
 
 
duration

Token duration expressed in blocks. If set to 0, the token never expires.

 
 
 
nonce

Random nonce used to generate the token id.

 
 
 
flags

Token flags.

 
 
 
divisibility
byte[1]

Token divisibility.

TokenSupplyChangeTransaction

Size: 148 bytes = 0x94
schema
bitxorcore model

Change the total supply of a token.

 
 
 
TRANSACTION_VERSION
byte[1]
const 1
 
 
 
TRANSACTION_TYPE
const TOKEN_SUPPLY_CHANGE (0x424d)
Transaction128 bytes = 0x80
SizePrefixedEntity4 bytes = 0x4
 
 
 
size
byte[4]

Entity size in bytes.
This size includes the header and the full payload of the entity. I.e, the size field matches the size reported in the structure documentation (plus the variable part, if there is any).

VerifiableEntity68 bytes = 0x44
 
 
 
verifiable_​entity_​header_​reserved_​1
byte[4]
reserved 0

Reserved padding to align Signature to an 8-byte boundary.

 
 
 
signature

Entity's signature generated by the signing account.

EntityBody38 bytes = 0x26
 
 
 
signer_public_key

Public key of the signer of the entity.

 
 
 
entity_body_reserved_1
byte[4]
reserved 0

Reserved padding to align end of EntityBody to an 8-byte boundary.

 
 
 
version
byte[1]

Version of this structure.

 
 
 
network

Network on which this entity was created.

 
 
 
type

transaction type

 
 
 
fee

transaction fee

 
 
 
deadline

transaction deadline

 
 
 
token_id

Affected token identifier.

 
 
 
delta

Change amount. It cannot be negative, use the action field to indicate if this amount should be added or subtracted from the current supply.

 
 
 
action

Supply change action.

EmbeddedTokenSupplyChangeTransaction

Size: 68 bytes = 0x44
schema
bitxorcore model

Embedded version of TokenSupplyChangeTransaction.

 
 
 
TRANSACTION_VERSION
byte[1]
const 1
 
 
 
TRANSACTION_TYPE
const TOKEN_SUPPLY_CHANGE (0x424d)
EmbeddedTransaction48 bytes = 0x30
SizePrefixedEntity4 bytes = 0x4
 
 
 
size
byte[4]

Entity size in bytes.
This size includes the header and the full payload of the entity. I.e, the size field matches the size reported in the structure documentation (plus the variable part, if there is any).

 
 
 
embedded_​transaction_​header_​reserved_​1
byte[4]
reserved 0

reserved padding to align end of EmbeddedTransactionHeader on 8-byte boundary

EntityBody38 bytes = 0x26
 
 
 
signer_public_key

Public key of the signer of the entity.

 
 
 
entity_body_reserved_1
byte[4]
reserved 0

Reserved padding to align end of EntityBody to an 8-byte boundary.

 
 
 
version
byte[1]

Version of this structure.

 
 
 
network

Network on which this entity was created.

 
 
 
type

transaction type

 
 
 
token_id

Affected token identifier.

 
 
 
delta

Change amount. It cannot be negative, use the action field to indicate if this amount should be added or subtracted from the current supply.

 
 
 
action

Supply change action.

TokenSupplyRevocationTransaction

Size: 171 bytes = 0xab
schema

Revoke token.

 
 
 
TRANSACTION_VERSION
byte[1]
const 1
 
 
 
TRANSACTION_TYPE
const TOKEN_SUPPLY_REVOCATION (0x434d)
Transaction128 bytes = 0x80
SizePrefixedEntity4 bytes = 0x4
 
 
 
size
byte[4]

Entity size in bytes.
This size includes the header and the full payload of the entity. I.e, the size field matches the size reported in the structure documentation (plus the variable part, if there is any).

VerifiableEntity68 bytes = 0x44
 
 
 
verifiable_​entity_​header_​reserved_​1
byte[4]
reserved 0

Reserved padding to align Signature to an 8-byte boundary.

 
 
 
signature

Entity's signature generated by the signing account.

EntityBody38 bytes = 0x26
 
 
 
signer_public_key

Public key of the signer of the entity.

 
 
 
entity_body_reserved_1
byte[4]
reserved 0

Reserved padding to align end of EntityBody to an 8-byte boundary.

 
 
 
version
byte[1]

Version of this structure.

 
 
 
network

Network on which this entity was created.

 
 
 
type

transaction type

 
 
 
fee

transaction fee

 
 
 
deadline

transaction deadline

 
 
 
source_address

Address from which tokens should be revoked.

 
 
 
token

Revoked token and amount.

EmbeddedTokenSupplyRevocationTransaction

Size: 91 bytes = 0x5b
schema

Embedded version of TokenSupplyRevocationTransaction.

 
 
 
TRANSACTION_VERSION
byte[1]
const 1
 
 
 
TRANSACTION_TYPE
const TOKEN_SUPPLY_REVOCATION (0x434d)
EmbeddedTransaction48 bytes = 0x30
SizePrefixedEntity4 bytes = 0x4
 
 
 
size
byte[4]

Entity size in bytes.
This size includes the header and the full payload of the entity. I.e, the size field matches the size reported in the structure documentation (plus the variable part, if there is any).

 
 
 
embedded_​transaction_​header_​reserved_​1
byte[4]
reserved 0

reserved padding to align end of EmbeddedTransactionHeader on 8-byte boundary

EntityBody38 bytes = 0x26
 
 
 
signer_public_key

Public key of the signer of the entity.

 
 
 
entity_body_reserved_1
byte[4]
reserved 0

Reserved padding to align end of EntityBody to an 8-byte boundary.

 
 
 
version
byte[1]

Version of this structure.

 
 
 
network

Network on which this entity was created.

 
 
 
type

transaction type

 
 
 
source_address

Address from which tokens should be revoked.

 
 
 
token

Revoked token and amount.

MultisigAccountModificationTransaction

Size: 139+ bytes = 0x8b+ (variable)
schema
bitxorcore model

Create or modify a multi-signature account.
This transaction allows you to: - Transform a regular account into a multisig account. - Change the configurable properties of a multisig account. - Add or delete cosignatories from a multisig account (removing all cosignatories turns a multisig account into a regular account again).

 
 
 
TRANSACTION_VERSION
byte[1]
const 1
 
 
 
TRANSACTION_TYPE
const MULTISIG_ACCOUNT_MODIFICATION (0x4155)
Transaction128 bytes = 0x80
SizePrefixedEntity4 bytes = 0x4
 
 
 
size
byte[4]

Entity size in bytes.
This size includes the header and the full payload of the entity. I.e, the size field matches the size reported in the structure documentation (plus the variable part, if there is any).

VerifiableEntity68 bytes = 0x44
 
 
 
verifiable_​entity_​header_​reserved_​1
byte[4]
reserved 0

Reserved padding to align Signature to an 8-byte boundary.

 
 
 
signature

Entity's signature generated by the signing account.

EntityBody38 bytes = 0x26
 
 
 
signer_public_key

Public key of the signer of the entity.

 
 
 
entity_body_reserved_1
byte[4]
reserved 0

Reserved padding to align end of EntityBody to an 8-byte boundary.

 
 
 
version
byte[1]

Version of this structure.

 
 
 
network

Network on which this entity was created.

 
 
 
type

transaction type

 
 
 
fee

transaction fee

 
 
 
deadline

transaction deadline

 
 
 
min_removal_delta
byte[1]

Relative change to the minimum number of cosignatures required when removing a cosignatory.
E.g., when moving from 0 to 2 cosignatures this number would be 2. When moving from 4 to 3 cosignatures, the number would be -1.

 
 
 
min_approval_delta
byte[1]

Relative change to the minimum number of cosignatures required when approving a transaction.
E.g., when moving from 0 to 2 cosignatures this number would be 2. When moving from 4 to 3 cosignatures, the number would be -1.

 
 
 
address_additions_count
byte[1]

Number of cosignatory address additions.

 
 
 
address_deletions_count
byte[1]

Number of cosignatory address deletions.

 
 
 
multisig_​account_​modification_​transaction_​body_​reserved_​1
byte[4]
reserved 0

Reserved padding to align addressAdditions to an 8-byte boundary.

 
 
 
address_additions
UnresolvedAddress​[address_additions_count]

Cosignatory address additions.
All accounts in this list will be able to cosign transactions on behalf of the multisig account. The number of required cosignatures depends on the configured minimum approval and minimum removal values.

 
 
 
address_deletions
UnresolvedAddress​[address_deletions_count]

Cosignatory address deletions.
All accounts in this list will stop being able to cosign transactions on behalf of the multisig account. A transaction containing any address in this array requires a number of cosignatures at least equal to the minimum removal value.

EmbeddedMultisigAccountModificationTransaction

Size: 59+ bytes = 0x3b+ (variable)
schema
bitxorcore model

Embedded version of MultisigAccountModificationTransaction.

 
 
 
TRANSACTION_VERSION
byte[1]
const 1
 
 
 
TRANSACTION_TYPE
const MULTISIG_ACCOUNT_MODIFICATION (0x4155)
EmbeddedTransaction48 bytes = 0x30
SizePrefixedEntity4 bytes = 0x4
 
 
 
size
byte[4]

Entity size in bytes.
This size includes the header and the full payload of the entity. I.e, the size field matches the size reported in the structure documentation (plus the variable part, if there is any).

 
 
 
embedded_​transaction_​header_​reserved_​1
byte[4]
reserved 0

reserved padding to align end of EmbeddedTransactionHeader on 8-byte boundary

EntityBody38 bytes = 0x26
 
 
 
signer_public_key

Public key of the signer of the entity.

 
 
 
entity_body_reserved_1
byte[4]
reserved 0

Reserved padding to align end of EntityBody to an 8-byte boundary.

 
 
 
version
byte[1]

Version of this structure.

 
 
 
network

Network on which this entity was created.

 
 
 
type

transaction type

 
 
 
min_removal_delta
byte[1]

Relative change to the minimum number of cosignatures required when removing a cosignatory.
E.g., when moving from 0 to 2 cosignatures this number would be 2. When moving from 4 to 3 cosignatures, the number would be -1.

 
 
 
min_approval_delta
byte[1]

Relative change to the minimum number of cosignatures required when approving a transaction.
E.g., when moving from 0 to 2 cosignatures this number would be 2. When moving from 4 to 3 cosignatures, the number would be -1.

 
 
 
address_additions_count
byte[1]

Number of cosignatory address additions.

 
 
 
address_deletions_count
byte[1]

Number of cosignatory address deletions.

 
 
 
multisig_​account_​modification_​transaction_​body_​reserved_​1
byte[4]
reserved 0

Reserved padding to align addressAdditions to an 8-byte boundary.

 
 
 
address_additions
UnresolvedAddress​[address_additions_count]

Cosignatory address additions.
All accounts in this list will be able to cosign transactions on behalf of the multisig account. The number of required cosignatures depends on the configured minimum approval and minimum removal values.

 
 
 
address_deletions
UnresolvedAddress​[address_deletions_count]

Cosignatory address deletions.
All accounts in this list will stop being able to cosign transactions on behalf of the multisig account. A transaction containing any address in this array requires a number of cosignatures at least equal to the minimum removal value.

AddressAliasTransaction

Size: 164 bytes = 0xa4
schema
bitxorcore model

Attach or detach a namespace (alias) to an account address..
A namespace can be assigned to any account present in the network (this is, an account which has received at least one transaction).

 
 
 
TRANSACTION_VERSION
byte[1]
const 1
 
 
 
TRANSACTION_TYPE
const ADDRESS_ALIAS (0x424e)
Transaction128 bytes = 0x80
SizePrefixedEntity4 bytes = 0x4
 
 
 
size
byte[4]

Entity size in bytes.
This size includes the header and the full payload of the entity. I.e, the size field matches the size reported in the structure documentation (plus the variable part, if there is any).

VerifiableEntity68 bytes = 0x44
 
 
 
verifiable_​entity_​header_​reserved_​1
byte[4]
reserved 0

Reserved padding to align Signature to an 8-byte boundary.

 
 
 
signature

Entity's signature generated by the signing account.

EntityBody38 bytes = 0x26
 
 
 
signer_public_key

Public key of the signer of the entity.

 
 
 
entity_body_reserved_1
byte[4]
reserved 0

Reserved padding to align end of EntityBody to an 8-byte boundary.

 
 
 
version
byte[1]

Version of this structure.

 
 
 
network

Network on which this entity was created.

 
 
 
type

transaction type

 
 
 
fee

transaction fee

 
 
 
deadline

transaction deadline

 
 
 
namespace_id

Identifier of the namespace that will become (or stop being) an alias for the address.

 
 
 
address

Aliased address.

 
 
 
alias_action

Alias action.

EmbeddedAddressAliasTransaction

Size: 84 bytes = 0x54
schema
bitxorcore model

Embedded version of AddressAliasTransaction.

 
 
 
TRANSACTION_VERSION
byte[1]
const 1
 
 
 
TRANSACTION_TYPE
const ADDRESS_ALIAS (0x424e)
EmbeddedTransaction48 bytes = 0x30
SizePrefixedEntity4 bytes = 0x4
 
 
 
size
byte[4]

Entity size in bytes.
This size includes the header and the full payload of the entity. I.e, the size field matches the size reported in the structure documentation (plus the variable part, if there is any).

 
 
 
embedded_​transaction_​header_​reserved_​1
byte[4]
reserved 0

reserved padding to align end of EmbeddedTransactionHeader on 8-byte boundary

EntityBody38 bytes = 0x26
 
 
 
signer_public_key

Public key of the signer of the entity.

 
 
 
entity_body_reserved_1
byte[4]
reserved 0

Reserved padding to align end of EntityBody to an 8-byte boundary.

 
 
 
version
byte[1]

Version of this structure.

 
 
 
network

Network on which this entity was created.

 
 
 
type

transaction type

 
 
 
namespace_id

Identifier of the namespace that will become (or stop being) an alias for the address.

 
 
 
address

Aliased address.

 
 
 
alias_action

Alias action.

TokenAliasTransaction

Size: 148 bytes = 0x94
schema
bitxorcore model

Attach or detach a namespace to a Token.
Setting an alias to a token is only possible if the account announcing this transaction has also created the namespace and the token involved.

 
 
 
TRANSACTION_VERSION
byte[1]
const 1
 
 
 
TRANSACTION_TYPE
const TOKEN_ALIAS (0x434e)
Transaction128 bytes = 0x80
SizePrefixedEntity4 bytes = 0x4
 
 
 
size
byte[4]

Entity size in bytes.
This size includes the header and the full payload of the entity. I.e, the size field matches the size reported in the structure documentation (plus the variable part, if there is any).

VerifiableEntity68 bytes = 0x44
 
 
 
verifiable_​entity_​header_​reserved_​1
byte[4]
reserved 0

Reserved padding to align Signature to an 8-byte boundary.

 
 
 
signature

Entity's signature generated by the signing account.

EntityBody38 bytes = 0x26
 
 
 
signer_public_key

Public key of the signer of the entity.

 
 
 
entity_body_reserved_1
byte[4]
reserved 0

Reserved padding to align end of EntityBody to an 8-byte boundary.

 
 
 
version
byte[1]

Version of this structure.

 
 
 
network

Network on which this entity was created.

 
 
 
type

transaction type

 
 
 
fee

transaction fee

 
 
 
deadline

transaction deadline

 
 
 
namespace_id

Identifier of the namespace that will become (or stop being) an alias for the Token.

 
 
 
token_id

Aliased token identifier.

 
 
 
alias_action

Alias action.

EmbeddedTokenAliasTransaction

Size: 68 bytes = 0x44
schema
bitxorcore model

Embedded version of TokenAliasTransaction

 
 
 
TRANSACTION_VERSION
byte[1]
const 1
 
 
 
TRANSACTION_TYPE
const TOKEN_ALIAS (0x434e)
EmbeddedTransaction48 bytes = 0x30
SizePrefixedEntity4 bytes = 0x4
 
 
 
size
byte[4]

Entity size in bytes.
This size includes the header and the full payload of the entity. I.e, the size field matches the size reported in the structure documentation (plus the variable part, if there is any).

 
 
 
embedded_​transaction_​header_​reserved_​1
byte[4]
reserved 0

reserved padding to align end of EmbeddedTransactionHeader on 8-byte boundary

EntityBody38 bytes = 0x26
 
 
 
signer_public_key

Public key of the signer of the entity.

 
 
 
entity_body_reserved_1
byte[4]
reserved 0

Reserved padding to align end of EntityBody to an 8-byte boundary.

 
 
 
version
byte[1]

Version of this structure.

 
 
 
network

Network on which this entity was created.

 
 
 
type

transaction type

 
 
 
namespace_id

Identifier of the namespace that will become (or stop being) an alias for the Token.

 
 
 
token_id

Aliased token identifier.

 
 
 
alias_action

Alias action.

NamespaceRegistrationTransaction

Size: 157+ bytes = 0x9d+ (variable)
schema
bitxorcore model

Register (or renew a registration for) a namespace.
Namespaces help keep assets organized.

 
 
 
TRANSACTION_VERSION
byte[1]
const 1
 
 
 
TRANSACTION_TYPE
const NAMESPACE_REGISTRATION (0x414e)
Transaction128 bytes = 0x80
SizePrefixedEntity4 bytes = 0x4
 
 
 
size
byte[4]

Entity size in bytes.
This size includes the header and the full payload of the entity. I.e, the size field matches the size reported in the structure documentation (plus the variable part, if there is any).

VerifiableEntity68 bytes = 0x44
 
 
 
verifiable_​entity_​header_​reserved_​1
byte[4]
reserved 0

Reserved padding to align Signature to an 8-byte boundary.

 
 
 
signature

Entity's signature generated by the signing account.

EntityBody38 bytes = 0x26
 
 
 
signer_public_key

Public key of the signer of the entity.

 
 
 
entity_body_reserved_1
byte[4]
reserved 0

Reserved padding to align end of EntityBody to an 8-byte boundary.

 
 
 
version
byte[1]

Version of this structure.

 
 
 
network

Network on which this entity was created.

 
 
 
type

transaction type

 
 
 
fee

transaction fee

 
 
 
deadline

transaction deadline

NamespaceRegistrationTransactionBody26+ bytes = 0x1a+ (variable)
 
 
 
duration

Number of confirmed blocks you would like to rent the namespace for. Required for root namespaces.

 
 
 
parent_id

Parent namespace identifier. Required for sub-namespaces.

 
 
 
id

Namespace identifier.

 
 
 
registration_type

Namespace registration type.

 
 
 
name_size
byte[1]

Namespace name size in bytes.

 
 
 
name
byte[name_size]

Namespace name.

EmbeddedNamespaceRegistrationTransaction

Size: 77+ bytes = 0x4d+ (variable)
schema
bitxorcore model

Embedded version of NamespaceRegistrationTransaction.

 
 
 
TRANSACTION_VERSION
byte[1]
const 1
 
 
 
TRANSACTION_TYPE
const NAMESPACE_REGISTRATION (0x414e)
EmbeddedTransaction48 bytes = 0x30
SizePrefixedEntity4 bytes = 0x4
 
 
 
size
byte[4]

Entity size in bytes.
This size includes the header and the full payload of the entity. I.e, the size field matches the size reported in the structure documentation (plus the variable part, if there is any).

 
 
 
embedded_​transaction_​header_​reserved_​1
byte[4]
reserved 0

reserved padding to align end of EmbeddedTransactionHeader on 8-byte boundary

EntityBody38 bytes = 0x26
 
 
 
signer_public_key

Public key of the signer of the entity.

 
 
 
entity_body_reserved_1
byte[4]
reserved 0

Reserved padding to align end of EntityBody to an 8-byte boundary.

 
 
 
version
byte[1]

Version of this structure.

 
 
 
network

Network on which this entity was created.

 
 
 
type

transaction type

NamespaceRegistrationTransactionBody26+ bytes = 0x1a+ (variable)
 
 
 
duration

Number of confirmed blocks you would like to rent the namespace for. Required for root namespaces.

 
 
 
parent_id

Parent namespace identifier. Required for sub-namespaces.

 
 
 
id

Namespace identifier.

 
 
 
registration_type

Namespace registration type.

 
 
 
name_size
byte[1]

Namespace name size in bytes.

 
 
 
name
byte[name_size]

Namespace name.

AccountAddressRestrictionTransaction

Size: 139+ bytes = 0x8b+ (variable)
schema
bitxorcore model

Allow or block incoming and outgoing transactions for a given a set of addresses.

 
 
 
TRANSACTION_VERSION
byte[1]
const 1
 
 
 
TRANSACTION_TYPE
const ACCOUNT_ADDRESS_RESTRICTION (0x4150)
Transaction128 bytes = 0x80
SizePrefixedEntity4 bytes = 0x4
 
 
 
size
byte[4]

Entity size in bytes.
This size includes the header and the full payload of the entity. I.e, the size field matches the size reported in the structure documentation (plus the variable part, if there is any).

VerifiableEntity68 bytes = 0x44
 
 
 
verifiable_​entity_​header_​reserved_​1
byte[4]
reserved 0

Reserved padding to align Signature to an 8-byte boundary.

 
 
 
signature

Entity's signature generated by the signing account.

EntityBody38 bytes = 0x26
 
 
 
signer_public_key

Public key of the signer of the entity.

 
 
 
entity_body_reserved_1
byte[4]
reserved 0

Reserved padding to align end of EntityBody to an 8-byte boundary.

 
 
 
version
byte[1]

Version of this structure.

 
 
 
network

Network on which this entity was created.

 
 
 
type

transaction type

 
 
 
fee

transaction fee

 
 
 
deadline

transaction deadline

 
 
 
restriction_flags

Type of restriction being applied to the listed addresses.

 
 
 
restriction_additions_count
byte[1]

Number of addresses being added.

 
 
 
restriction_deletions_count
byte[1]

Number of addresses being removed.

 
 
 
account_​restriction_​transaction_​body_​reserved_​1
byte[4]
reserved 0

Reserved padding to align restriction_additions to an 8-byte boundary.

 
 
 
restriction_additions
UnresolvedAddress​[restriction_additions_count]

Array of account addresses being added to the restricted list.

 
 
 
restriction_deletions
UnresolvedAddress​[restriction_deletions_count]

Array of account addresses being removed from the restricted list.

EmbeddedAccountAddressRestrictionTransaction

Size: 59+ bytes = 0x3b+ (variable)
schema
bitxorcore model

Embedded version of AccountAddressRestrictionTransaction.

 
 
 
TRANSACTION_VERSION
byte[1]
const 1
 
 
 
TRANSACTION_TYPE
const ACCOUNT_ADDRESS_RESTRICTION (0x4150)
EmbeddedTransaction48 bytes = 0x30
SizePrefixedEntity4 bytes = 0x4
 
 
 
size
byte[4]

Entity size in bytes.
This size includes the header and the full payload of the entity. I.e, the size field matches the size reported in the structure documentation (plus the variable part, if there is any).

 
 
 
embedded_​transaction_​header_​reserved_​1
byte[4]
reserved 0

reserved padding to align end of EmbeddedTransactionHeader on 8-byte boundary

EntityBody38 bytes = 0x26
 
 
 
signer_public_key

Public key of the signer of the entity.

 
 
 
entity_body_reserved_1
byte[4]
reserved 0

Reserved padding to align end of EntityBody to an 8-byte boundary.

 
 
 
version
byte[1]

Version of this structure.

 
 
 
network

Network on which this entity was created.

 
 
 
type

transaction type

 
 
 
restriction_flags

Type of restriction being applied to the listed addresses.

 
 
 
restriction_additions_count
byte[1]

Number of addresses being added.

 
 
 
restriction_deletions_count
byte[1]

Number of addresses being removed.

 
 
 
account_​restriction_​transaction_​body_​reserved_​1
byte[4]
reserved 0

Reserved padding to align restriction_additions to an 8-byte boundary.

 
 
 
restriction_additions
UnresolvedAddress​[restriction_additions_count]

Array of account addresses being added to the restricted list.

 
 
 
restriction_deletions
UnresolvedAddress​[restriction_deletions_count]

Array of account addresses being removed from the restricted list.

AccountTokenRestrictionTransaction

Size: 139+ bytes = 0x8b+ (variable)
schema
bitxorcore model

Allow or block incoming transactions containing a given set of tokens.

 
 
 
TRANSACTION_VERSION
byte[1]
const 1
 
 
 
TRANSACTION_TYPE
const ACCOUNT_TOKEN_RESTRICTION (0x4250)
Transaction128 bytes = 0x80
SizePrefixedEntity4 bytes = 0x4
 
 
 
size
byte[4]

Entity size in bytes.
This size includes the header and the full payload of the entity. I.e, the size field matches the size reported in the structure documentation (plus the variable part, if there is any).

VerifiableEntity68 bytes = 0x44
 
 
 
verifiable_​entity_​header_​reserved_​1
byte[4]
reserved 0

Reserved padding to align Signature to an 8-byte boundary.

 
 
 
signature

Entity's signature generated by the signing account.

EntityBody38 bytes = 0x26
 
 
 
signer_public_key

Public key of the signer of the entity.

 
 
 
entity_body_reserved_1
byte[4]
reserved 0

Reserved padding to align end of EntityBody to an 8-byte boundary.

 
 
 
version
byte[1]

Version of this structure.

 
 
 
network

Network on which this entity was created.

 
 
 
type

transaction type

 
 
 
fee

transaction fee

 
 
 
deadline

transaction deadline

AccountTokenRestrictionTransactionBody8+ bytes = 0x8+ (variable)
 
 
 
restriction_flags

Type of restriction being applied to the listed tokens.

 
 
 
restriction_additions_count
byte[1]

Number of tokens being added.

 
 
 
restriction_deletions_count
byte[1]

Number of tokens being removed.

 
 
 
account_​restriction_​transaction_​body_​reserved_​1
byte[4]
reserved 0

Reserved padding to align restriction_additions to an 8-byte boundary.

 
 
 
restriction_additions
UnresolvedTokenId​[restriction_additions_count]

Array of tokens being added to the restricted list.

 
 
 
restriction_deletions
UnresolvedTokenId​[restriction_deletions_count]

Array of tokens being removed from the restricted list.

EmbeddedAccountTokenRestrictionTransaction

Size: 59+ bytes = 0x3b+ (variable)
schema
bitxorcore model

Embedded version of AccountTokenRestrictionTransaction.

 
 
 
TRANSACTION_VERSION
byte[1]
const 1
 
 
 
TRANSACTION_TYPE
const ACCOUNT_TOKEN_RESTRICTION (0x4250)
EmbeddedTransaction48 bytes = 0x30
SizePrefixedEntity4 bytes = 0x4
 
 
 
size
byte[4]

Entity size in bytes.
This size includes the header and the full payload of the entity. I.e, the size field matches the size reported in the structure documentation (plus the variable part, if there is any).

 
 
 
embedded_​transaction_​header_​reserved_​1
byte[4]
reserved 0

reserved padding to align end of EmbeddedTransactionHeader on 8-byte boundary

EntityBody38 bytes = 0x26
 
 
 
signer_public_key

Public key of the signer of the entity.

 
 
 
entity_body_reserved_1
byte[4]
reserved 0

Reserved padding to align end of EntityBody to an 8-byte boundary.

 
 
 
version
byte[1]

Version of this structure.

 
 
 
network

Network on which this entity was created.

 
 
 
type

transaction type

AccountTokenRestrictionTransactionBody8+ bytes = 0x8+ (variable)
 
 
 
restriction_flags

Type of restriction being applied to the listed tokens.

 
 
 
restriction_additions_count
byte[1]

Number of tokens being added.

 
 
 
restriction_deletions_count
byte[1]

Number of tokens being removed.

 
 
 
account_​restriction_​transaction_​body_​reserved_​1
byte[4]
reserved 0

Reserved padding to align restriction_additions to an 8-byte boundary.

 
 
 
restriction_additions
UnresolvedTokenId​[restriction_additions_count]

Array of tokens being added to the restricted list.

 
 
 
restriction_deletions
UnresolvedTokenId​[restriction_deletions_count]

Array of tokens being removed from the restricted list.

AccountOperationRestrictionTransaction

Size: 139+ bytes = 0x8b+ (variable)
schema
bitxorcore model

Allow or block outgoing transactions depending on their transaction type.

 
 
 
TRANSACTION_VERSION
byte[1]
const 1
 
 
 
TRANSACTION_TYPE
const ACCOUNT_OPERATION_RESTRICTION (0x4350)
Transaction128 bytes = 0x80
SizePrefixedEntity4 bytes = 0x4
 
 
 
size
byte[4]

Entity size in bytes.
This size includes the header and the full payload of the entity. I.e, the size field matches the size reported in the structure documentation (plus the variable part, if there is any).

VerifiableEntity68 bytes = 0x44
 
 
 
verifiable_​entity_​header_​reserved_​1
byte[4]
reserved 0

Reserved padding to align Signature to an 8-byte boundary.

 
 
 
signature

Entity's signature generated by the signing account.

EntityBody38 bytes = 0x26
 
 
 
signer_public_key

Public key of the signer of the entity.

 
 
 
entity_body_reserved_1
byte[4]
reserved 0

Reserved padding to align end of EntityBody to an 8-byte boundary.

 
 
 
version
byte[1]

Version of this structure.

 
 
 
network

Network on which this entity was created.

 
 
 
type

transaction type

 
 
 
fee

transaction fee

 
 
 
deadline

transaction deadline

 
 
 
restriction_flags

Type of restriction being applied to the listed transaction types.

 
 
 
restriction_additions_count
byte[1]

Number of transaction types being added.

 
 
 
restriction_deletions_count
byte[1]

Number of transaction types being removed.

 
 
 
account_​restriction_​transaction_​body_​reserved_​1
byte[4]
reserved 0

Reserved padding to align restriction_additions to an 8-byte boundary.

 
 
 
restriction_additions
TransactionType​[restriction_additions_count]

Array of transaction types being added to the restricted list.

 
 
 
restriction_deletions
TransactionType​[restriction_deletions_count]

Array of transaction types being rtemoved from the restricted list.

EmbeddedAccountOperationRestrictionTransaction

Size: 59+ bytes = 0x3b+ (variable)
schema
bitxorcore model

Embedded version of AccountOperationRestrictionTransaction.

 
 
 
TRANSACTION_VERSION
byte[1]
const 1
 
 
 
TRANSACTION_TYPE
const ACCOUNT_OPERATION_RESTRICTION (0x4350)
EmbeddedTransaction48 bytes = 0x30
SizePrefixedEntity4 bytes = 0x4
 
 
 
size
byte[4]

Entity size in bytes.
This size includes the header and the full payload of the entity. I.e, the size field matches the size reported in the structure documentation (plus the variable part, if there is any).

 
 
 
embedded_​transaction_​header_​reserved_​1
byte[4]
reserved 0

reserved padding to align end of EmbeddedTransactionHeader on 8-byte boundary

EntityBody38 bytes = 0x26
 
 
 
signer_public_key

Public key of the signer of the entity.

 
 
 
entity_body_reserved_1
byte[4]
reserved 0

Reserved padding to align end of EntityBody to an 8-byte boundary.

 
 
 
version
byte[1]

Version of this structure.

 
 
 
network

Network on which this entity was created.

 
 
 
type

transaction type

 
 
 
restriction_flags

Type of restriction being applied to the listed transaction types.

 
 
 
restriction_additions_count
byte[1]

Number of transaction types being added.

 
 
 
restriction_deletions_count
byte[1]

Number of transaction types being removed.

 
 
 
account_​restriction_​transaction_​body_​reserved_​1
byte[4]
reserved 0

Reserved padding to align restriction_additions to an 8-byte boundary.

 
 
 
restriction_additions
TransactionType​[restriction_additions_count]

Array of transaction types being added to the restricted list.

 
 
 
restriction_deletions
TransactionType​[restriction_deletions_count]

Array of transaction types being rtemoved from the restricted list.

TokenAddressRestrictionTransaction

Size: 187 bytes = 0xbb
schema
bitxorcore model

Set address specific rules to transfer a restrictable token.

 
 
 
TRANSACTION_VERSION
byte[1]
const 1
 
 
 
TRANSACTION_TYPE
const TOKEN_ADDRESS_RESTRICTION (0x4251)
Transaction128 bytes = 0x80
SizePrefixedEntity4 bytes = 0x4
 
 
 
size
byte[4]

Entity size in bytes.
This size includes the header and the full payload of the entity. I.e, the size field matches the size reported in the structure documentation (plus the variable part, if there is any).

VerifiableEntity68 bytes = 0x44
 
 
 
verifiable_​entity_​header_​reserved_​1
byte[4]
reserved 0

Reserved padding to align Signature to an 8-byte boundary.

 
 
 
signature

Entity's signature generated by the signing account.

EntityBody38 bytes = 0x26
 
 
 
signer_public_key

Public key of the signer of the entity.

 
 
 
entity_body_reserved_1
byte[4]
reserved 0

Reserved padding to align end of EntityBody to an 8-byte boundary.

 
 
 
version
byte[1]

Version of this structure.

 
 
 
network

Network on which this entity was created.

 
 
 
type

transaction type

 
 
 
fee

transaction fee

 
 
 
deadline

transaction deadline

 
 
 
token_id

Identifier of the token to which the restriction applies.

 
 
 
restriction_key
byte[8]

Restriction key.

 
 
 
previous_restriction_value
byte[8]

Previous restriction value. Set previousRestrictionValue to FFFFFFFFFFFFFFFF if the target address does not have a previous restriction value for this token id and restriction key.

 
 
 
new_restriction_value
byte[8]

New restriction value.

 
 
 
target_address

Address being restricted.

EmbeddedTokenAddressRestrictionTransaction

Size: 107 bytes = 0x6b
schema
bitxorcore model

Embedded version of TokenAddressRestrictionTransaction.

 
 
 
TRANSACTION_VERSION
byte[1]
const 1
 
 
 
TRANSACTION_TYPE
const TOKEN_ADDRESS_RESTRICTION (0x4251)
EmbeddedTransaction48 bytes = 0x30
SizePrefixedEntity4 bytes = 0x4
 
 
 
size
byte[4]

Entity size in bytes.
This size includes the header and the full payload of the entity. I.e, the size field matches the size reported in the structure documentation (plus the variable part, if there is any).

 
 
 
embedded_​transaction_​header_​reserved_​1
byte[4]
reserved 0

reserved padding to align end of EmbeddedTransactionHeader on 8-byte boundary

EntityBody38 bytes = 0x26
 
 
 
signer_public_key

Public key of the signer of the entity.

 
 
 
entity_body_reserved_1
byte[4]
reserved 0

Reserved padding to align end of EntityBody to an 8-byte boundary.

 
 
 
version
byte[1]

Version of this structure.

 
 
 
network

Network on which this entity was created.

 
 
 
type

transaction type

 
 
 
token_id

Identifier of the token to which the restriction applies.

 
 
 
restriction_key
byte[8]

Restriction key.

 
 
 
previous_restriction_value
byte[8]

Previous restriction value. Set previousRestrictionValue to FFFFFFFFFFFFFFFF if the target address does not have a previous restriction value for this token id and restriction key.

 
 
 
new_restriction_value
byte[8]

New restriction value.

 
 
 
target_address

Address being restricted.

TokenGlobalRestrictionTransaction

Size: 173 bytes = 0xad
schema
bitxorcore model

Set global rules to transfer a restrictable token.

 
 
 
TRANSACTION_VERSION
byte[1]
const 1
 
 
 
TRANSACTION_TYPE
const TOKEN_GLOBAL_RESTRICTION (0x4151)
Transaction128 bytes = 0x80
SizePrefixedEntity4 bytes = 0x4
 
 
 
size
byte[4]

Entity size in bytes.
This size includes the header and the full payload of the entity. I.e, the size field matches the size reported in the structure documentation (plus the variable part, if there is any).

VerifiableEntity68 bytes = 0x44
 
 
 
verifiable_​entity_​header_​reserved_​1
byte[4]
reserved 0

Reserved padding to align Signature to an 8-byte boundary.

 
 
 
signature

Entity's signature generated by the signing account.

EntityBody38 bytes = 0x26
 
 
 
signer_public_key

Public key of the signer of the entity.

 
 
 
entity_body_reserved_1
byte[4]
reserved 0

Reserved padding to align end of EntityBody to an 8-byte boundary.

 
 
 
version
byte[1]

Version of this structure.

 
 
 
network

Network on which this entity was created.

 
 
 
type

transaction type

 
 
 
fee

transaction fee

 
 
 
deadline

transaction deadline

 
 
 
token_id

Identifier of the token being restricted. The token creator must be the signer of the transaction.

 
 
 
reference_token_id

Identifier of the token providing the restriction key. The token global restriction for the token identifier depends on global restrictions set on the reference token. Set reference_token_id to 0 if the token giving the restriction equals the token_id.

 
 
 
restriction_key
byte[8]

Restriction key relative to the reference token identifier.

 
 
 
previous_restriction_value
byte[8]

Previous restriction value.

 
 
 
new_restriction_value
byte[8]

New restriction value.

 
 
 
previous_restriction_type

Previous restriction type.

 
 
 
new_restriction_type

New restriction type.

EmbeddedTokenGlobalRestrictionTransaction

Size: 93 bytes = 0x5d
schema
bitxorcore model

Embedded version of TokenGlobalRestrictionTransaction.

 
 
 
TRANSACTION_VERSION
byte[1]
const 1
 
 
 
TRANSACTION_TYPE
const TOKEN_GLOBAL_RESTRICTION (0x4151)
EmbeddedTransaction48 bytes = 0x30
SizePrefixedEntity4 bytes = 0x4
 
 
 
size
byte[4]

Entity size in bytes.
This size includes the header and the full payload of the entity. I.e, the size field matches the size reported in the structure documentation (plus the variable part, if there is any).

 
 
 
embedded_​transaction_​header_​reserved_​1
byte[4]
reserved 0

reserved padding to align end of EmbeddedTransactionHeader on 8-byte boundary

EntityBody38 bytes = 0x26
 
 
 
signer_public_key

Public key of the signer of the entity.

 
 
 
entity_body_reserved_1
byte[4]
reserved 0

Reserved padding to align end of EntityBody to an 8-byte boundary.

 
 
 
version
byte[1]

Version of this structure.

 
 
 
network

Network on which this entity was created.

 
 
 
type

transaction type

 
 
 
token_id

Identifier of the token being restricted. The token creator must be the signer of the transaction.

 
 
 
reference_token_id

Identifier of the token providing the restriction key. The token global restriction for the token identifier depends on global restrictions set on the reference token. Set reference_token_id to 0 if the token giving the restriction equals the token_id.

 
 
 
restriction_key
byte[8]

Restriction key relative to the reference token identifier.

 
 
 
previous_restriction_value
byte[8]

Previous restriction value.

 
 
 
new_restriction_value
byte[8]

New restriction value.

 
 
 
previous_restriction_type

Previous restriction type.

 
 
 
new_restriction_type

New restriction type.

TransferTransaction

Size: 163+ bytes = 0xa3+ (variable)
schema
bitxorcore model

Send tokens and messages between two accounts.

 
 
 
TRANSACTION_VERSION
byte[1]
const 1
 
 
 
TRANSACTION_TYPE
const TRANSFER (0x4154)
Transaction128 bytes = 0x80
SizePrefixedEntity4 bytes = 0x4
 
 
 
size
byte[4]

Entity size in bytes.
This size includes the header and the full payload of the entity. I.e, the size field matches the size reported in the structure documentation (plus the variable part, if there is any).

VerifiableEntity68 bytes = 0x44
 
 
 
verifiable_​entity_​header_​reserved_​1
byte[4]
reserved 0

Reserved padding to align Signature to an 8-byte boundary.

 
 
 
signature

Entity's signature generated by the signing account.

EntityBody38 bytes = 0x26
 
 
 
signer_public_key

Public key of the signer of the entity.

 
 
 
entity_body_reserved_1
byte[4]
reserved 0

Reserved padding to align end of EntityBody to an 8-byte boundary.

 
 
 
version
byte[1]

Version of this structure.

 
 
 
network

Network on which this entity was created.

 
 
 
type

transaction type

 
 
 
fee

transaction fee

 
 
 
deadline

transaction deadline

TransferTransactionBody32+ bytes = 0x20+ (variable)
 
 
 
recipient_address

recipient address

 
 
 
message_size
byte[2]

size of attached message

 
 
 
tokens_count
byte[1]

number of attached tokens

 
 
 
transfer_​transaction_​body_​reserved_​1
byte[4]
reserved 0

reserved padding to align tokens on 8-byte boundary

 
 
 
transfer_​transaction_​body_​reserved_​2
byte[1]
reserved 0

reserved padding to align tokens on 8-byte boundary

 
 
 
tokens
UnresolvedToken​[tokens_count]

attached tokens

 
 
 
message
byte[message_size]

attached message

EmbeddedTransferTransaction

Size: 83+ bytes = 0x53+ (variable)
schema
bitxorcore model

Embedded version of TransferTransaction.

 
 
 
TRANSACTION_VERSION
byte[1]
const 1
 
 
 
TRANSACTION_TYPE
const TRANSFER (0x4154)
EmbeddedTransaction48 bytes = 0x30
SizePrefixedEntity4 bytes = 0x4
 
 
 
size
byte[4]

Entity size in bytes.
This size includes the header and the full payload of the entity. I.e, the size field matches the size reported in the structure documentation (plus the variable part, if there is any).

 
 
 
embedded_​transaction_​header_​reserved_​1
byte[4]
reserved 0

reserved padding to align end of EmbeddedTransactionHeader on 8-byte boundary

EntityBody38 bytes = 0x26
 
 
 
signer_public_key

Public key of the signer of the entity.

 
 
 
entity_body_reserved_1
byte[4]
reserved 0

Reserved padding to align end of EntityBody to an 8-byte boundary.

 
 
 
version
byte[1]

Version of this structure.

 
 
 
network

Network on which this entity was created.

 
 
 
type

transaction type

TransferTransactionBody32+ bytes = 0x20+ (variable)
 
 
 
recipient_address

recipient address

 
 
 
message_size
byte[2]

size of attached message

 
 
 
tokens_count
byte[1]

number of attached tokens

 
 
 
transfer_​transaction_​body_​reserved_​1
byte[4]
reserved 0

reserved padding to align tokens on 8-byte boundary

 
 
 
transfer_​transaction_​body_​reserved_​2
byte[1]
reserved 0

reserved padding to align tokens on 8-byte boundary

 
 
 
tokens
UnresolvedToken​[tokens_count]

attached tokens

 
 
 
message
byte[message_size]

attached message

Inner Structures

These are structures only meant to be included inside other structures. Their description is already present in the containing structures above and is only repeated here for completeness.

SizePrefixedEntity

Size: 4 bytes = 0x4
schema
bitxorcore model

Serialization of an entity that has its size stated as a prefix (header).

 
 
 
size
byte[4]

Entity size in bytes.
This size includes the header and the full payload of the entity. I.e, the size field matches the size reported in the structure documentation (plus the variable part, if there is any).

Included in:

VerifiableEntity

Size: 68 bytes = 0x44
schema
bitxorcore model

Serialization of an entity that should be signed by an account.

 
 
 
verifiable_​entity_​header_​reserved_​1
byte[4]
reserved 0

Reserved padding to align Signature to an 8-byte boundary.

 
 
 
signature

Entity's signature generated by the signing account.

Included in:

EntityBody

Size: 38 bytes = 0x26
schema
bitxorcore model

Serialization of an entity.
An entity could be a Block or a Transaction.

 
 
 
signer_public_key

Public key of the signer of the entity.

 
 
 
entity_body_reserved_1
byte[4]
reserved 0

Reserved padding to align end of EntityBody to an 8-byte boundary.

 
 
 
version
byte[1]

Version of this structure.

 
 
 
network

Network on which this entity was created.

Included in:

BlockHeader

Size: 372 bytes = 0x174
schema
bitxorcore model

binary layout for a block header

SizePrefixedEntity4 bytes = 0x4
 
 
 
size
byte[4]

Entity size in bytes.
This size includes the header and the full payload of the entity. I.e, the size field matches the size reported in the structure documentation (plus the variable part, if there is any).

VerifiableEntity68 bytes = 0x44
 
 
 
verifiable_​entity_​header_​reserved_​1
byte[4]
reserved 0

Reserved padding to align Signature to an 8-byte boundary.

 
 
 
signature

Entity's signature generated by the signing account.

EntityBody38 bytes = 0x26
 
 
 
signer_public_key

Public key of the signer of the entity.

 
 
 
entity_body_reserved_1
byte[4]
reserved 0

Reserved padding to align end of EntityBody to an 8-byte boundary.

 
 
 
version
byte[1]

Version of this structure.

 
 
 
network

Network on which this entity was created.

 
 
 
type

block type

 
 
 
height

block height

 
 
 
timestamp

number of milliseconds elapsed since creation of genesis block

 
 
 
difficulty

block difficulty

 
 
 
generation_hash_proof

generation hash proof

 
 
 
previous_block_hash

previous block hash

 
 
 
transactions_hash

hash of the transactions in this block

 
 
 
receipts_hash

hash of the receipts generated by this block

 
 
 
state_hash

hash of the global chain state at this block

 
 
 
beneficiary_address

beneficiary address designated by harvester

 
 
 
fee_multiplier

fee multiplier applied to block transactions

Included in:

ImportanceBlockFooter

Size: 52 bytes = 0x34
schema
bitxorcore model

binary layout for an importance block footer

 
 
 
voting_eligible_accounts_count
byte[4]

number of voting eligible accounts

 
 
 
harvesting_​eligible_​accounts_​count
byte[8]

number of harvesting eligible accounts

 
 
 
total_voting_balance

total balance eligible for voting

 
 
 
previous_importance_block_hash

previous importance block hash

Included in:

Receipt

Size: 8 bytes = 0x8
schema
bitxorcore model

Receipts provide proof for every state change not retrievable from the block.

SizePrefixedEntity4 bytes = 0x4
 
 
 
size
byte[4]

Entity size in bytes.
This size includes the header and the full payload of the entity. I.e, the size field matches the size reported in the structure documentation (plus the variable part, if there is any).

 
 
 
version
byte[2]

Receipt version.

 
 
 
type

Type of receipt.

Included in:

StateHeader

Size: 2 bytes = 0x2
schema

header common to all serialized states

 
 
 
version
byte[2]

serialization version

Included in:

Transaction

Size: 128 bytes = 0x80
schema
bitxorcore model

binary layout for a transaction

SizePrefixedEntity4 bytes = 0x4
 
 
 
size
byte[4]

Entity size in bytes.
This size includes the header and the full payload of the entity. I.e, the size field matches the size reported in the structure documentation (plus the variable part, if there is any).

VerifiableEntity68 bytes = 0x44
 
 
 
verifiable_​entity_​header_​reserved_​1
byte[4]
reserved 0

Reserved padding to align Signature to an 8-byte boundary.

 
 
 
signature

Entity's signature generated by the signing account.

EntityBody38 bytes = 0x26
 
 
 
signer_public_key

Public key of the signer of the entity.

 
 
 
entity_body_reserved_1
byte[4]
reserved 0

Reserved padding to align end of EntityBody to an 8-byte boundary.

 
 
 
version
byte[1]

Version of this structure.

 
 
 
network

Network on which this entity was created.

 
 
 
type

transaction type

 
 
 
fee

transaction fee

 
 
 
deadline

transaction deadline

Included in:

EmbeddedTransactionHeader

Size: 8 bytes = 0x8
schema
bitxorcore model

binary layout for an embedded transaction header

SizePrefixedEntity4 bytes = 0x4
 
 
 
size
byte[4]

Entity size in bytes.
This size includes the header and the full payload of the entity. I.e, the size field matches the size reported in the structure documentation (plus the variable part, if there is any).

 
 
 
embedded_​transaction_​header_​reserved_​1
byte[4]
reserved 0

reserved padding to align end of EmbeddedTransactionHeader on 8-byte boundary

Included in:

EmbeddedTransaction

Size: 48 bytes = 0x30
schema
bitxorcore model

binary layout for an embedded transaction

SizePrefixedEntity4 bytes = 0x4
 
 
 
size
byte[4]

Entity size in bytes.
This size includes the header and the full payload of the entity. I.e, the size field matches the size reported in the structure documentation (plus the variable part, if there is any).

 
 
 
embedded_​transaction_​header_​reserved_​1
byte[4]
reserved 0

reserved padding to align end of EmbeddedTransactionHeader on 8-byte boundary

EntityBody38 bytes = 0x26
 
 
 
signer_public_key

Public key of the signer of the entity.

 
 
 
entity_body_reserved_1
byte[4]
reserved 0

Reserved padding to align end of EntityBody to an 8-byte boundary.

 
 
 
version
byte[1]

Version of this structure.

 
 
 
network

Network on which this entity was created.

 
 
 
type

transaction type

Included in:

AccountKeyLinkTransactionBody

Size: 33 bytes = 0x21
schema
bitxorcore model

Shared content between AccountKeyLinkTransactionBody and EmbeddedAccountKeyLinkTransaction.

 
 
 
linked_public_key

Linked public key.

 
 
 
link_action

Account link action.

Included in:

NodeKeyLinkTransactionBody

Size: 33 bytes = 0x21
schema
bitxorcore model

Shared content between NodeKeyLinkTransaction and EmbeddedNodeKeyLinkTransaction.

 
 
 
linked_public_key

Linked public key.

 
 
 
link_action

Account link action.

Included in:

Cosignature

Size: 104 bytes = 0x68
schema
bitxorcore model

Cosignature attached to an AggregateCompleteTransaction or AggregateBondedTransaction.

 
 
 
version
byte[8]

Version.

 
 
 
signer_public_key

Cosigner public key.

 
 
 
signature

Transaction signature.

Included in:

AggregateTransactionBody

Size: 40+ bytes = 0x28+ (variable)
schema

Shared content between AggregateCompleteTransaction and AggregateBondedTransaction.

 
 
 
transactions_hash

Hash of the aggregate's transaction.

 
 
 
payload_size
byte[4]

Transaction payload size in bytes.
This is the total number of bytes occupied by all embedded transactions, including any padding present.

 
 
 
aggregate_​transaction_​header_​reserved_​1
byte[4]
reserved 0

Reserved padding to align end of AggregateTransactionHeader to an 8-byte boundary.

 
 
 
transactions
EmbeddedTransaction​[payload_size]

Embedded transaction data.
Transactions are variable-sized and the total payload size is in bytes.
Embedded transactions cannot be aggregates.

 
 
 
cosignatures

Cosignatures data.
Fills up remaining body space after transactions.

Included in:

VotingKeyLinkTransactionBody

Size: 41 bytes = 0x29
schema
bitxorcore model

Shared content between VotingKeyLinkTransaction and EmbeddedVotingKeyLinkTransaction.

 
 
 
linked_public_key

Linked voting public key.

 
 
 
start_epoch

Starting finalization epoch.

 
 
 
end_epoch

Ending finalization epoch.

 
 
 
link_action

Account link action.

Included in:

VrfKeyLinkTransactionBody

Size: 33 bytes = 0x21
schema
bitxorcore model

Shared content between VrfKeyLinkTransaction and EmbeddedVrfKeyLinkTransaction.

 
 
 
linked_public_key

Linked VRF public key.

 
 
 
link_action

Account link action.

Included in:

HashLockTransactionBody

Size: 56 bytes = 0x38
schema
bitxorcore model

Shared content between HashLockTransaction and EmbeddedHashLockTransaction.

 
 
 
token

Locked token.

 
 
 
duration

Number of blocks for which a lock should be valid.
The default maximum is 48h (See the maxHashLockDuration network property).

 
 
 
hash

Hash of the AggregateBondedTransaction to be confirmed before unlocking the tokens.

Included in:

SecretLockTransactionBody

Size: 81 bytes = 0x51
schema
bitxorcore model

Shared content between SecretLockTransaction and EmbeddedSecretLockTransaction.

 
 
 
recipient_address

Address that receives the funds once successfully unlocked by a SecretProofTransaction.

 
 
 
secret

Hashed proof.

 
 
 
token

Locked tokens.

 
 
 
duration

Number of blocks to wait for the SecretProofTransaction.

 
 
 
hash_algorithm

Algorithm used to hash the proof.

Included in:

SecretProofTransactionBody

Size: 59+ bytes = 0x3b+ (variable)
schema
bitxorcore model

Shared content between SecretProofTransaction and EmbeddedSecretProofTransaction.

 
 
 
recipient_address

Address that receives the funds once unlocked.

 
 
 
secret

Hashed proof.

 
 
 
proof_size
byte[2]

Proof size in bytes

 
 
 
hash_algorithm

Algorithm used to hash the proof.

 
 
 
proof
byte[proof_size]

Original random set of bytes that were hashed.

Included in:

AccountMetadataTransactionBody

Size: 36+ bytes = 0x24+ (variable)
schema
bitxorcore model

Shared content between AccountMetadataTransaction and EmbeddedAccountMetadataTransaction.

 
 
 
target_address

Account whose metadata should be modified.

 
 
 
scoped_metadata_key
byte[8]

Metadata key scoped to source, target and type.

 
 
 
value_size_delta
byte[2]

Change in value size in bytes, compared to previous size.

 
 
 
value_size
byte[2]

Size in bytes of the value array.

 
 
 
value
byte[value_size]

Difference between existing value and new value.
Note: When there is no existing value, this array is directly used and value_size_delta==value_size.
Note: When there is an existing value, the new value is the byte-wise XOR of the previous value and this array.

Included in:

TokenMetadataTransactionBody

Size: 44+ bytes = 0x2c+ (variable)
schema
bitxorcore model

Shared content between TokenMetadataTransaction and EmbeddedTokenMetadataTransaction.

 
 
 
target_address

Account owning the token whose metadata should be modified.

 
 
 
scoped_metadata_key
byte[8]

Metadata key scoped to source, target and type.

 
 
 
target_token_id

Token whose metadata should be modified.

 
 
 
value_size_delta
byte[2]

Change in value size in bytes, compared to previous size.

 
 
 
value_size
byte[2]

Size in bytes of the value array.

 
 
 
value
byte[value_size]

Difference between existing value and new value.
Note: When there is no existing value, this array is directly used and value_size_delta==value_size.
Note: When there is an existing value, the new value is the byte-wise XOR of the previous value and this array.

Included in:

NamespaceMetadataTransactionBody

Size: 44+ bytes = 0x2c+ (variable)
schema
bitxorcore model

Shared content between NamespaceMetadataTransaction and EmbeddedNamespaceMetadataTransaction.

 
 
 
target_address

Account owning the namespace whose metadata should be modified.

 
 
 
scoped_metadata_key
byte[8]

Metadata key scoped to source, target and type.

 
 
 
target_namespace_id

Namespace whose metadata should be modified.

 
 
 
value_size_delta
byte[2]

Change in value size in bytes, compared to previous size.

 
 
 
value_size
byte[2]

Size in bytes of the value array.

 
 
 
value
byte[value_size]

Difference between existing value and new value.
Note: When there is no existing value, this array is directly used and value_size_delta==value_size.
Note: When there is an existing value, the new value is the byte-wise XOR of the previous value and this array.

Included in:

TokenDefinitionTransactionBody

Size: 22 bytes = 0x16
schema
bitxorcore model

Shared content between TokenDefinitionTransaction and Embedded TokenDefinitionTransaction.

 
 
 
id

Unique token identifier obtained from the generator account's public key and the nonce.
The SDK's can take care of generating this ID for you.

 
 
 
duration

Token duration expressed in blocks. If set to 0, the token never expires.

 
 
 
nonce

Random nonce used to generate the token id.

 
 
 
flags

Token flags.

 
 
 
divisibility
byte[1]

Token divisibility.

Included in:

TokenSupplyChangeTransactionBody

Size: 17 bytes = 0x11
schema
bitxorcore model

Shared content between TokenSupplyChangeTransaction and EmbeddedTokenSupplyChangeTransaction.

 
 
 
token_id

Affected token identifier.

 
 
 
delta

Change amount. It cannot be negative, use the action field to indicate if this amount should be added or subtracted from the current supply.

 
 
 
action

Supply change action.

Included in:

TokenSupplyRevocationTransactionBody

Size: 40 bytes = 0x28
schema

Shared content between TokenSupplyRevocationTransaction and EmbeddedTokenSupplyRevocationTransaction.

 
 
 
source_address

Address from which tokens should be revoked.

 
 
 
token

Revoked token and amount.

Included in:

MultisigAccountModificationTransactionBody

Size: 8+ bytes = 0x8+ (variable)
schema
bitxorcore model

Shared content between MultisigAccountModificationTransaction and EmbeddedMultisigAccountModificationTransaction.

 
 
 
min_removal_delta
byte[1]

Relative change to the minimum number of cosignatures required when removing a cosignatory.
E.g., when moving from 0 to 2 cosignatures this number would be 2. When moving from 4 to 3 cosignatures, the number would be -1.

 
 
 
min_approval_delta
byte[1]

Relative change to the minimum number of cosignatures required when approving a transaction.
E.g., when moving from 0 to 2 cosignatures this number would be 2. When moving from 4 to 3 cosignatures, the number would be -1.

 
 
 
address_additions_count
byte[1]

Number of cosignatory address additions.

 
 
 
address_deletions_count
byte[1]

Number of cosignatory address deletions.

 
 
 
multisig_​account_​modification_​transaction_​body_​reserved_​1
byte[4]
reserved 0

Reserved padding to align addressAdditions to an 8-byte boundary.

 
 
 
address_additions
UnresolvedAddress​[address_additions_count]

Cosignatory address additions.
All accounts in this list will be able to cosign transactions on behalf of the multisig account. The number of required cosignatures depends on the configured minimum approval and minimum removal values.

 
 
 
address_deletions
UnresolvedAddress​[address_deletions_count]

Cosignatory address deletions.
All accounts in this list will stop being able to cosign transactions on behalf of the multisig account. A transaction containing any address in this array requires a number of cosignatures at least equal to the minimum removal value.

Included in:

AddressAliasTransactionBody

Size: 33 bytes = 0x21
schema
bitxorcore model

Shared content between AddressAliasTransaction and EmbeddedAddressAliasTransaction.

 
 
 
namespace_id

Identifier of the namespace that will become (or stop being) an alias for the address.

 
 
 
address

Aliased address.

 
 
 
alias_action

Alias action.

Included in:

TokenAliasTransactionBody

Size: 17 bytes = 0x11
schema
bitxorcore model

Shared content between TokenAliasTransaction and EmbeddedTokenAliasTransaction

 
 
 
namespace_id

Identifier of the namespace that will become (or stop being) an alias for the Token.

 
 
 
token_id

Aliased token identifier.

 
 
 
alias_action

Alias action.

Included in:

NamespaceRegistrationTransactionBody

Size: 26+ bytes = 0x1a+ (variable)
schema
bitxorcore model

Shared content between NamespaceRegistrationTransaction and EmbeddedNamespaceRegistrationTransaction.

 
 
 
duration

Number of confirmed blocks you would like to rent the namespace for. Required for root namespaces.

 
 
 
parent_id

Parent namespace identifier. Required for sub-namespaces.

 
 
 
id

Namespace identifier.

 
 
 
registration_type

Namespace registration type.

 
 
 
name_size
byte[1]

Namespace name size in bytes.

 
 
 
name
byte[name_size]

Namespace name.

Included in:

AccountAddressRestrictionTransactionBody

Size: 8+ bytes = 0x8+ (variable)
schema

Shared content between AccountAddressRestrictionTransaction and EmbeddedAccountAddressRestrictionTransaction.

 
 
 
restriction_flags

Type of restriction being applied to the listed addresses.

 
 
 
restriction_additions_count
byte[1]

Number of addresses being added.

 
 
 
restriction_deletions_count
byte[1]

Number of addresses being removed.

 
 
 
account_​restriction_​transaction_​body_​reserved_​1
byte[4]
reserved 0

Reserved padding to align restriction_additions to an 8-byte boundary.

 
 
 
restriction_additions
UnresolvedAddress​[restriction_additions_count]

Array of account addresses being added to the restricted list.

 
 
 
restriction_deletions
UnresolvedAddress​[restriction_deletions_count]

Array of account addresses being removed from the restricted list.

Included in:

AccountTokenRestrictionTransactionBody

Size: 8+ bytes = 0x8+ (variable)
schema

Shared content between AccountTokenRestrictionTransaction and EmbeddedAccountTokenRestrictionTransaction.

 
 
 
restriction_flags

Type of restriction being applied to the listed tokens.

 
 
 
restriction_additions_count
byte[1]

Number of tokens being added.

 
 
 
restriction_deletions_count
byte[1]

Number of tokens being removed.

 
 
 
account_​restriction_​transaction_​body_​reserved_​1
byte[4]
reserved 0

Reserved padding to align restriction_additions to an 8-byte boundary.

 
 
 
restriction_additions
UnresolvedTokenId​[restriction_additions_count]

Array of tokens being added to the restricted list.

 
 
 
restriction_deletions
UnresolvedTokenId​[restriction_deletions_count]

Array of tokens being removed from the restricted list.

Included in:

AccountOperationRestrictionTransactionBody

Size: 8+ bytes = 0x8+ (variable)
schema

Shared content between AccountOperationRestrictionTransaction and EmbeddedAccountOperationRestrictionTransaction.

 
 
 
restriction_flags

Type of restriction being applied to the listed transaction types.

 
 
 
restriction_additions_count
byte[1]

Number of transaction types being added.

 
 
 
restriction_deletions_count
byte[1]

Number of transaction types being removed.

 
 
 
account_​restriction_​transaction_​body_​reserved_​1
byte[4]
reserved 0

Reserved padding to align restriction_additions to an 8-byte boundary.

 
 
 
restriction_additions
TransactionType​[restriction_additions_count]

Array of transaction types being added to the restricted list.

 
 
 
restriction_deletions
TransactionType​[restriction_deletions_count]

Array of transaction types being rtemoved from the restricted list.

Included in:

TokenAddressRestrictionTransactionBody

Size: 56 bytes = 0x38
schema
bitxorcore model

Shared content between TokenAddressRestrictionTransaction and EmbeddedTokenAddressRestrictionTransaction.

 
 
 
token_id

Identifier of the token to which the restriction applies.

 
 
 
restriction_key
byte[8]

Restriction key.

 
 
 
previous_restriction_value
byte[8]

Previous restriction value. Set previousRestrictionValue to FFFFFFFFFFFFFFFF if the target address does not have a previous restriction value for this token id and restriction key.

 
 
 
new_restriction_value
byte[8]

New restriction value.

 
 
 
target_address

Address being restricted.

Included in:

TokenGlobalRestrictionTransactionBody

Size: 42 bytes = 0x2a
schema
bitxorcore model

Shared content between TokenGlobalRestrictionTransaction and EmbeddedTokenGlobalRestrictionTransaction.

 
 
 
token_id

Identifier of the token being restricted. The token creator must be the signer of the transaction.

 
 
 
reference_token_id

Identifier of the token providing the restriction key. The token global restriction for the token identifier depends on global restrictions set on the reference token. Set reference_token_id to 0 if the token giving the restriction equals the token_id.

 
 
 
restriction_key
byte[8]

Restriction key relative to the reference token identifier.

 
 
 
previous_restriction_value
byte[8]

Previous restriction value.

 
 
 
new_restriction_value
byte[8]

New restriction value.

 
 
 
previous_restriction_type

Previous restriction type.

 
 
 
new_restriction_type

New restriction type.

Included in:

TransferTransactionBody

Size: 32+ bytes = 0x20+ (variable)
schema
bitxorcore model

Shared content between TransferTransaction and EmbeddedTransferTransaction.

 
 
 
recipient_address

recipient address

 
 
 
message_size
byte[2]

size of attached message

 
 
 
tokens_count
byte[1]

number of attached tokens

 
 
 
transfer_​transaction_​body_​reserved_​1
byte[4]
reserved 0

reserved padding to align tokens on 8-byte boundary

 
 
 
transfer_​transaction_​body_​reserved_​2
byte[1]
reserved 0

reserved padding to align tokens on 8-byte boundary

 
 
 
tokens
UnresolvedToken​[tokens_count]

attached tokens

 
 
 
message
byte[message_size]

attached message

Included in: