P2P message format¶
This page details the structure and layout of messages used by the Tezos P2P layer.
The elementary types used for message or header fields are documented in the Data_encoding module, for example:
Additionally, the type unsigned 30-bit integer
is used to denote the subset of positive integers of type signed 31-bit integers.
Note
31-bit integers: The internal representation of integers in OCaml reserves one bit for GC tagging. The remaining bits encode a signed integer. For compatibility with 32-bit machines, we restrict these native integers to the 31-bit range.
Block header (shell)¶
Name |
Size |
Contents |
---|---|---|
level |
4 bytes |
signed 32-bit integer |
proto |
1 byte |
unsigned 8-bit integer |
predecessor |
32 bytes |
bytes |
timestamp |
8 bytes |
signed 64-bit integer |
validation_pass |
1 byte |
unsigned 8-bit integer |
operations_hash |
32 bytes |
bytes |
# bytes in field “fitness” |
4 bytes |
unsigned 30-bit integer |
fitness |
Variable |
sequence of $fitness.elem |
context |
32 bytes |
bytes |
protocol_data |
Variable |
bytes |
fitness.elem¶
Name |
Size |
Contents |
---|---|---|
# bytes in next field |
4 bytes |
unsigned 30-bit integer |
Unnamed field 0 |
Variable |
bytes |
Operation (shell)¶
Name |
Size |
Contents |
---|---|---|
branch |
32 bytes |
bytes |
data |
Variable |
bytes |
Block_header (alpha-specific)¶
Name |
Size |
Contents |
---|---|---|
payload_hash |
32 bytes |
bytes |
payload_round |
4 bytes |
signed 32-bit integer |
proof_of_work_nonce |
8 bytes |
bytes |
? presence of field “seed_nonce_hash” |
1 byte |
boolean (0 for false, 255 for true) |
seed_nonce_hash |
32 bytes |
bytes |
liquidity_baking_toggle_vote |
1 byte |
signed 8-bit integer |
signature |
64 bytes |
bytes |
Operation (alpha-specific)¶
Name |
Size |
Contents |
---|---|---|
contents |
Variable |
sequence of $alpha.operation.alpha.contents |
signature |
64 bytes |
bytes |
alpha.operation.alpha.contents (Determined from data, 8-bit tag)¶
Seed_nonce_revelation (tag 1)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
level |
4 bytes |
signed 32-bit integer |
nonce |
32 bytes |
bytes |
Double_endorsement_evidence (tag 2)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
# bytes in next field |
4 bytes |
unsigned 30-bit integer |
op1 |
Variable |
$alpha.inlined.endorsement |
# bytes in next field |
4 bytes |
unsigned 30-bit integer |
op2 |
Variable |
$alpha.inlined.endorsement |
Double_baking_evidence (tag 3)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
# bytes in next field |
4 bytes |
unsigned 30-bit integer |
bh1 |
Determined from data |
$alpha.block_header.alpha.full_header |
# bytes in next field |
4 bytes |
unsigned 30-bit integer |
bh2 |
Determined from data |
$alpha.block_header.alpha.full_header |
Activate_account (tag 4)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
pkh |
20 bytes |
bytes |
secret |
20 bytes |
bytes |
Proposals (tag 5)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
source |
21 bytes |
$public_key_hash |
period |
4 bytes |
signed 32-bit integer |
# bytes in next field |
4 bytes |
unsigned 30-bit integer |
proposals |
Variable |
sequence of bytes |
Ballot (tag 6)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
source |
21 bytes |
$public_key_hash |
period |
4 bytes |
signed 32-bit integer |
proposal |
32 bytes |
bytes |
ballot |
1 byte |
signed 8-bit integer |
Double_preendorsement_evidence (tag 7)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
# bytes in next field |
4 bytes |
unsigned 30-bit integer |
op1 |
Variable |
$alpha.inlined.preendorsement |
# bytes in next field |
4 bytes |
unsigned 30-bit integer |
op2 |
Variable |
$alpha.inlined.preendorsement |
Failing_noop (tag 17)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
# bytes in next field |
4 bytes |
unsigned 30-bit integer |
arbitrary |
Variable |
bytes |
Preendorsement (tag 20)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
slot |
2 bytes |
unsigned 16-bit integer |
level |
4 bytes |
signed 32-bit integer |
round |
4 bytes |
signed 32-bit integer |
block_payload_hash |
32 bytes |
bytes |
Endorsement (tag 21)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
slot |
2 bytes |
unsigned 16-bit integer |
level |
4 bytes |
signed 32-bit integer |
round |
4 bytes |
signed 32-bit integer |
block_payload_hash |
32 bytes |
bytes |
Reveal (tag 107)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
source |
21 bytes |
$public_key_hash |
fee |
Determined from data |
$N.t |
counter |
Determined from data |
$N.t |
gas_limit |
Determined from data |
$N.t |
storage_limit |
Determined from data |
$N.t |
public_key |
Determined from data |
$public_key |
Transaction (tag 108)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
source |
21 bytes |
$public_key_hash |
fee |
Determined from data |
$N.t |
counter |
Determined from data |
$N.t |
gas_limit |
Determined from data |
$N.t |
storage_limit |
Determined from data |
$N.t |
amount |
Determined from data |
$N.t |
destination |
22 bytes |
$alpha.transaction_destination |
? presence of field “parameters” |
1 byte |
boolean (0 for false, 255 for true) |
parameters |
Determined from data |
$X_142 |
Origination (tag 109)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
source |
21 bytes |
$public_key_hash |
fee |
Determined from data |
$N.t |
counter |
Determined from data |
$N.t |
gas_limit |
Determined from data |
$N.t |
storage_limit |
Determined from data |
$N.t |
balance |
Determined from data |
$N.t |
? presence of field “delegate” |
1 byte |
boolean (0 for false, 255 for true) |
delegate |
21 bytes |
$public_key_hash |
script |
Determined from data |
$alpha.scripted.contracts |
Delegation (tag 110)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
source |
21 bytes |
$public_key_hash |
fee |
Determined from data |
$N.t |
counter |
Determined from data |
$N.t |
gas_limit |
Determined from data |
$N.t |
storage_limit |
Determined from data |
$N.t |
? presence of field “delegate” |
1 byte |
boolean (0 for false, 255 for true) |
delegate |
21 bytes |
$public_key_hash |
Register_global_constant (tag 111)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
source |
21 bytes |
$public_key_hash |
fee |
Determined from data |
$N.t |
counter |
Determined from data |
$N.t |
gas_limit |
Determined from data |
$N.t |
storage_limit |
Determined from data |
$N.t |
# bytes in next field |
4 bytes |
unsigned 30-bit integer |
value |
Variable |
bytes |
Set_deposits_limit (tag 112)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
source |
21 bytes |
$public_key_hash |
fee |
Determined from data |
$N.t |
counter |
Determined from data |
$N.t |
gas_limit |
Determined from data |
$N.t |
storage_limit |
Determined from data |
$N.t |
? presence of field “limit” |
1 byte |
boolean (0 for false, 255 for true) |
limit |
Determined from data |
$N.t |
Tx_rollup_origination (tag 150)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
source |
21 bytes |
$public_key_hash |
fee |
Determined from data |
$N.t |
counter |
Determined from data |
$N.t |
gas_limit |
Determined from data |
$N.t |
storage_limit |
Determined from data |
$N.t |
Tx_rollup_submit_batch (tag 151)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
source |
21 bytes |
$public_key_hash |
fee |
Determined from data |
$N.t |
counter |
Determined from data |
$N.t |
gas_limit |
Determined from data |
$N.t |
storage_limit |
Determined from data |
$N.t |
rollup |
20 bytes |
bytes |
# bytes in next field |
4 bytes |
unsigned 30-bit integer |
content |
Variable |
bytes |
? presence of field “burn_limit” |
1 byte |
boolean (0 for false, 255 for true) |
burn_limit |
Determined from data |
$N.t |
Tx_rollup_commit (tag 152)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
source |
21 bytes |
$public_key_hash |
fee |
Determined from data |
$N.t |
counter |
Determined from data |
$N.t |
gas_limit |
Determined from data |
$N.t |
storage_limit |
Determined from data |
$N.t |
rollup |
20 bytes |
bytes |
commitment |
Determined from data |
$X_140 |
Tx_rollup_return_bond (tag 153)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
source |
21 bytes |
$public_key_hash |
fee |
Determined from data |
$N.t |
counter |
Determined from data |
$N.t |
gas_limit |
Determined from data |
$N.t |
storage_limit |
Determined from data |
$N.t |
rollup |
20 bytes |
bytes |
Tx_rollup_finalize_commitment (tag 154)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
source |
21 bytes |
$public_key_hash |
fee |
Determined from data |
$N.t |
counter |
Determined from data |
$N.t |
gas_limit |
Determined from data |
$N.t |
storage_limit |
Determined from data |
$N.t |
rollup |
20 bytes |
bytes |
Tx_rollup_remove_commitment (tag 155)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
source |
21 bytes |
$public_key_hash |
fee |
Determined from data |
$N.t |
counter |
Determined from data |
$N.t |
gas_limit |
Determined from data |
$N.t |
storage_limit |
Determined from data |
$N.t |
rollup |
20 bytes |
bytes |
Tx_rollup_rejection (tag 156)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
source |
21 bytes |
$public_key_hash |
fee |
Determined from data |
$N.t |
counter |
Determined from data |
$N.t |
gas_limit |
Determined from data |
$N.t |
storage_limit |
Determined from data |
$N.t |
rollup |
20 bytes |
bytes |
level |
4 bytes |
signed 32-bit integer |
message |
Determined from data |
$X_13 |
message_position |
Determined from data |
$N.t |
# bytes in next field |
4 bytes |
unsigned 30-bit integer |
message_path |
Variable |
sequence of bytes |
message_result_hash |
32 bytes |
bytes |
# bytes in next field |
4 bytes |
unsigned 30-bit integer |
message_result_path |
Variable |
sequence of bytes |
previous_message_result |
64 bytes |
$X_14 |
# bytes in next field |
4 bytes |
unsigned 30-bit integer |
previous_message_result_path |
Variable |
sequence of bytes |
proof |
Determined from data |
$X_139 |
Tx_rollup_dispatch_tickets (tag 157)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
source |
21 bytes |
$public_key_hash |
fee |
Determined from data |
$N.t |
counter |
Determined from data |
$N.t |
gas_limit |
Determined from data |
$N.t |
storage_limit |
Determined from data |
$N.t |
tx_rollup |
20 bytes |
bytes |
level |
4 bytes |
signed 32-bit integer |
context_hash |
32 bytes |
bytes |
message_index |
4 bytes |
signed 31-bit integer in the range -1073741824 to 1073741823 |
# bytes in next field |
4 bytes |
unsigned 30-bit integer |
message_result_path |
Variable |
sequence of bytes |
# bytes in next field |
4 bytes |
unsigned 30-bit integer |
tickets_info |
Variable |
sequence of $X_9 |
Transfer_ticket (tag 158)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
source |
21 bytes |
$public_key_hash |
fee |
Determined from data |
$N.t |
counter |
Determined from data |
$N.t |
gas_limit |
Determined from data |
$N.t |
storage_limit |
Determined from data |
$N.t |
# bytes in next field |
4 bytes |
unsigned 30-bit integer |
ticket_contents |
Variable |
bytes |
# bytes in next field |
4 bytes |
unsigned 30-bit integer |
ticket_ty |
Variable |
bytes |
ticket_ticketer |
22 bytes |
$alpha.contract_id |
ticket_amount |
Determined from data |
$N.t |
destination |
22 bytes |
$alpha.contract_id |
# bytes in next field |
4 bytes |
unsigned 30-bit integer |
entrypoint |
Variable |
bytes |
Sc_rollup_originate (tag 200)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
source |
21 bytes |
$public_key_hash |
fee |
Determined from data |
$N.t |
counter |
Determined from data |
$N.t |
gas_limit |
Determined from data |
$N.t |
storage_limit |
Determined from data |
$N.t |
kind |
2 bytes |
$X_8 |
# bytes in next field |
4 bytes |
unsigned 30-bit integer |
boot_sector |
Variable |
bytes |
Sc_rollup_add_messages (tag 201)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
source |
21 bytes |
$public_key_hash |
fee |
Determined from data |
$N.t |
counter |
Determined from data |
$N.t |
gas_limit |
Determined from data |
$N.t |
storage_limit |
Determined from data |
$N.t |
# bytes in field “alpha.rollup_address” |
4 bytes |
unsigned 30-bit integer |
rollup |
Variable |
bytes |
# bytes in next field |
4 bytes |
unsigned 30-bit integer |
message |
Variable |
sequence of $X_7 |
Sc_rollup_cement (tag 202)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
source |
21 bytes |
$public_key_hash |
fee |
Determined from data |
$N.t |
counter |
Determined from data |
$N.t |
gas_limit |
Determined from data |
$N.t |
storage_limit |
Determined from data |
$N.t |
# bytes in field “alpha.rollup_address” |
4 bytes |
unsigned 30-bit integer |
rollup |
Variable |
bytes |
commitment |
32 bytes |
bytes |
Sc_rollup_publish (tag 203)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
source |
21 bytes |
$public_key_hash |
fee |
Determined from data |
$N.t |
counter |
Determined from data |
$N.t |
gas_limit |
Determined from data |
$N.t |
storage_limit |
Determined from data |
$N.t |
# bytes in field “alpha.rollup_address” |
4 bytes |
unsigned 30-bit integer |
rollup |
Variable |
bytes |
commitment |
76 bytes |
$X_6 |
Sc_rollup_refute (tag 204)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
source |
21 bytes |
$public_key_hash |
fee |
Determined from data |
$N.t |
counter |
Determined from data |
$N.t |
gas_limit |
Determined from data |
$N.t |
storage_limit |
Determined from data |
$N.t |
# bytes in field “alpha.rollup_address” |
4 bytes |
unsigned 30-bit integer |
rollup |
Variable |
bytes |
opponent |
21 bytes |
$public_key_hash |
refutation |
Determined from data |
$X_1 |
Sc_rollup_timeout (tag 205)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
source |
21 bytes |
$public_key_hash |
fee |
Determined from data |
$N.t |
counter |
Determined from data |
$N.t |
gas_limit |
Determined from data |
$N.t |
storage_limit |
Determined from data |
$N.t |
# bytes in field “alpha.rollup_address” |
4 bytes |
unsigned 30-bit integer |
rollup |
Variable |
bytes |
stakers |
42 bytes |
$X_0 |
alpha.inlined.endorsement¶
Name |
Size |
Contents |
---|---|---|
branch |
32 bytes |
bytes |
operations |
43 bytes |
$alpha.inlined.endorsement_mempool.contents |
signature |
Variable |
bytes |
alpha.inlined.endorsement_mempool.contents (43 bytes, 8-bit tag)¶
Endorsement (tag 21)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
slot |
2 bytes |
unsigned 16-bit integer |
level |
4 bytes |
signed 32-bit integer |
round |
4 bytes |
signed 32-bit integer |
block_payload_hash |
32 bytes |
bytes |
alpha.block_header.alpha.full_header¶
Name |
Size |
Contents |
---|---|---|
level |
4 bytes |
signed 32-bit integer |
proto |
1 byte |
unsigned 8-bit integer |
predecessor |
32 bytes |
bytes |
timestamp |
8 bytes |
signed 64-bit integer |
validation_pass |
1 byte |
unsigned 8-bit integer |
operations_hash |
32 bytes |
bytes |
# bytes in field “fitness” |
4 bytes |
unsigned 30-bit integer |
fitness |
Variable |
sequence of $fitness.elem |
context |
32 bytes |
bytes |
payload_hash |
32 bytes |
bytes |
payload_round |
4 bytes |
signed 32-bit integer |
proof_of_work_nonce |
8 bytes |
bytes |
? presence of field “seed_nonce_hash” |
1 byte |
boolean (0 for false, 255 for true) |
seed_nonce_hash |
32 bytes |
bytes |
liquidity_baking_toggle_vote |
1 byte |
signed 8-bit integer |
signature |
64 bytes |
bytes |
fitness.elem¶
Name |
Size |
Contents |
---|---|---|
# bytes in next field |
4 bytes |
unsigned 30-bit integer |
Unnamed field 0 |
Variable |
bytes |
public_key_hash (21 bytes, 8-bit tag)¶
Ed25519 (tag 0)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
Ed25519.Public_key_hash |
20 bytes |
bytes |
Secp256k1 (tag 1)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
Secp256k1.Public_key_hash |
20 bytes |
bytes |
P256 (tag 2)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
P256.Public_key_hash |
20 bytes |
bytes |
alpha.inlined.preendorsement¶
Name |
Size |
Contents |
---|---|---|
branch |
32 bytes |
bytes |
operations |
43 bytes |
$alpha.inlined.preendorsement.contents |
signature |
Variable |
bytes |
alpha.inlined.preendorsement.contents (43 bytes, 8-bit tag)¶
Preendorsement (tag 20)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
slot |
2 bytes |
unsigned 16-bit integer |
level |
4 bytes |
signed 32-bit integer |
round |
4 bytes |
signed 32-bit integer |
block_payload_hash |
32 bytes |
bytes |
public_key (Determined from data, 8-bit tag)¶
Ed25519 (tag 0)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
Ed25519.Public_key |
32 bytes |
bytes |
Secp256k1 (tag 1)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
Secp256k1.Public_key |
33 bytes |
bytes |
P256 (tag 2)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
P256.Public_key |
33 bytes |
bytes |
N.t¶
A variable-length sequence of bytes encoding a Zarith natural number. Each byte has a running unary size bit: the most significant bit of each byte indicates whether this is the last byte in the sequence (0) or whether the sequence continues (1). Size bits ignored, the data is the binary representation of the number in little-endian order.
Name |
Size |
Contents |
---|---|---|
N.t |
Determined from data |
bytes |
X_142¶
Name |
Size |
Contents |
---|---|---|
entrypoint |
Determined from data |
$alpha.entrypoint |
# bytes in next field |
4 bytes |
unsigned 30-bit integer |
value |
Variable |
bytes |
alpha.entrypoint (Determined from data, 8-bit tag)¶
default (tag 0)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
root (tag 1)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
do (tag 2)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
set_delegate (tag 3)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
remove_delegate (tag 4)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
named (tag 255)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
# bytes in next field |
1 byte |
unsigned 8-bit integer |
Unnamed field 0 |
Variable |
bytes |
alpha.transaction_destination (22 bytes, 8-bit tag)¶
Implicit (tag 0)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
Signature.Public_key_hash |
21 bytes |
$public_key_hash |
Originated (tag 1)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
Contract_hash |
20 bytes |
bytes |
padding |
1 byte |
padding |
Tx_rollup (tag 2)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
Rollup_hash |
20 bytes |
bytes |
padding |
1 byte |
padding |
alpha.scripted.contracts¶
Name |
Size |
Contents |
---|---|---|
# bytes in next field |
4 bytes |
unsigned 30-bit integer |
code |
Variable |
bytes |
# bytes in next field |
4 bytes |
unsigned 30-bit integer |
storage |
Variable |
bytes |
X_140¶
Name |
Size |
Contents |
---|---|---|
level |
4 bytes |
signed 32-bit integer |
# bytes in next field |
4 bytes |
unsigned 30-bit integer |
messages |
Variable |
sequence of bytes |
predecessor |
Determined from data |
$X_141 |
inbox_merkle_root |
32 bytes |
bytes |
X_141 (Determined from data, 8-bit tag)¶
None (tag 0)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
Some (tag 1)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
Commitment_hash |
32 bytes |
bytes |
X_139 (Determined from data, 8-bit tag)¶
case 0 (tag 0)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
Unnamed field 0 |
2 bytes |
signed 16-bit integer |
Unnamed field 1 |
32 bytes |
bytes |
Unnamed field 2 |
32 bytes |
bytes |
Unnamed field 3 |
Determined from data |
$X_15 |
case 1 (tag 1)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
Unnamed field 0 |
2 bytes |
signed 16-bit integer |
Unnamed field 1 |
32 bytes |
bytes |
Unnamed field 2 |
32 bytes |
bytes |
Unnamed field 3 |
Determined from data |
$X_15 |
case 2 (tag 2)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
Unnamed field 0 |
2 bytes |
signed 16-bit integer |
Unnamed field 1 |
32 bytes |
bytes |
Unnamed field 2 |
32 bytes |
bytes |
Unnamed field 3 |
Determined from data |
$X_15 |
case 3 (tag 3)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
Unnamed field 0 |
2 bytes |
signed 16-bit integer |
Unnamed field 1 |
32 bytes |
bytes |
Unnamed field 2 |
32 bytes |
bytes |
Unnamed field 3 |
Determined from data |
$X_15 |
X_138 (Determined from data, 8-bit tag)¶
case 0 (tag 0)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
Unnamed field 0 |
1 byte |
unsigned 8-bit integer |
case 1 (tag 1)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
Unnamed field 0 |
2 bytes |
unsigned 16-bit integer |
case 2 (tag 2)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
Unnamed field 0 |
4 bytes |
signed 32-bit integer |
case 3 (tag 3)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
Unnamed field 0 |
8 bytes |
signed 64-bit integer |
case 4 (tag 4)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
Unnamed field 0 |
1 byte |
unsigned 8-bit integer |
Unnamed field 1 |
32 bytes |
$X_133 |
case 5 (tag 5)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
Unnamed field 0 |
2 bytes |
unsigned 16-bit integer |
Unnamed field 1 |
32 bytes |
$X_133 |
case 6 (tag 6)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
Unnamed field 0 |
4 bytes |
signed 32-bit integer |
Unnamed field 1 |
32 bytes |
$X_133 |
case 7 (tag 7)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
Unnamed field 0 |
8 bytes |
signed 64-bit integer |
Unnamed field 1 |
32 bytes |
$X_133 |
case 8 (tag 8)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
Unnamed field 0 |
1 byte |
unsigned 8-bit integer |
Unnamed field 1 |
32 bytes |
$X_133 |
case 9 (tag 9)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
Unnamed field 0 |
2 bytes |
unsigned 16-bit integer |
Unnamed field 1 |
32 bytes |
$X_133 |
case 10 (tag 10)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
Unnamed field 0 |
4 bytes |
signed 32-bit integer |
Unnamed field 1 |
32 bytes |
$X_133 |
case 11 (tag 11)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
Unnamed field 0 |
8 bytes |
signed 64-bit integer |
Unnamed field 1 |
32 bytes |
$X_133 |
case 12 (tag 12)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
Unnamed field 0 |
1 byte |
unsigned 8-bit integer |
Unnamed field 1 |
64 bytes |
$X_125 |
case 13 (tag 13)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
Unnamed field 0 |
2 bytes |
unsigned 16-bit integer |
Unnamed field 1 |
64 bytes |
$X_125 |
case 14 (tag 14)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
Unnamed field 0 |
4 bytes |
signed 32-bit integer |
Unnamed field 1 |
64 bytes |
$X_125 |
case 15 (tag 15)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
Unnamed field 0 |
8 bytes |
signed 64-bit integer |
Unnamed field 1 |
64 bytes |
$X_125 |
case 128 (tag 128)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
case 129 (tag 129)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
Unnamed field 0 |
Variable |
sequence of exactly 1 $X_20 |
case 130 (tag 130)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
Unnamed field 0 |
Variable |
sequence of exactly 2 $X_20 |
case 131 (tag 131)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
# bytes in next field |
4 bytes |
unsigned 30-bit integer |
Unnamed field 0 |
Variable |
sequence of $X_20 |
case 192 (tag 192)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
# bytes in next field |
1 byte |
unsigned 8-bit integer |
Unnamed field 0 |
Variable |
bytes |
case 193 (tag 193)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
# bytes in next field |
2 bytes |
unsigned 16-bit integer |
Unnamed field 0 |
Variable |
bytes |
case 195 (tag 195)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
# bytes in next field |
4 bytes |
unsigned 30-bit integer |
Unnamed field 0 |
Variable |
bytes |
case 224 (tag 224)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
Unnamed field 0 |
1 byte |
unsigned 8-bit integer |
Unnamed field 1 |
Determined from data |
$X_120 |
Unnamed field 2 |
32 bytes |
bytes |
case 225 (tag 225)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
Unnamed field 0 |
2 bytes |
unsigned 16-bit integer |
Unnamed field 1 |
Determined from data |
$X_120 |
Unnamed field 2 |
32 bytes |
bytes |
case 226 (tag 226)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
Unnamed field 0 |
4 bytes |
signed 32-bit integer |
Unnamed field 1 |
Determined from data |
$X_120 |
Unnamed field 2 |
32 bytes |
bytes |
case 227 (tag 227)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
Unnamed field 0 |
8 bytes |
signed 64-bit integer |
Unnamed field 1 |
Determined from data |
$X_120 |
Unnamed field 2 |
32 bytes |
bytes |
X_137¶
This value’s binary representation is empty. It takes zero (0) bytes of output. X_133 *
Name |
Size |
Contents |
---|---|---|
Unnamed field 0 |
32 bytes |
bytes |
X_125¶
Name |
Size |
Contents |
---|---|---|
Unnamed field 0 |
32 bytes |
bytes |
Unnamed field 1 |
32 bytes |
bytes |
X_121 (33 bytes, 8-bit tag) ***********************
case 0 (tag 0)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
Context_hash |
32 bytes |
bytes |
case 1 (tag 1)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
Context_hash |
32 bytes |
bytes |
X_120¶
Name |
Size |
Contents |
---|---|---|
# bytes in next field |
1 byte |
unsigned 8-bit integer |
Unnamed field 0 |
Variable |
bytes |
X_15¶
Name |
Size |
Contents |
---|---|---|
# bytes in next field |
4 bytes |
unsigned 30-bit integer |
Unnamed field 0 |
Variable |
sequence of $X_138 |
X_20¶
Name |
Size |
Contents |
---|---|---|
Unnamed field 0 |
Determined from data |
$X_120 |
Unnamed field 1 |
33 bytes |
$X_121 |
X_14¶
Name |
Size |
Contents |
---|---|---|
context_hash |
32 bytes |
bytes |
withdraw_list_hash |
32 bytes |
bytes |
X_13 (Determined from data, 8-bit tag)¶
Batch (tag 0)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
# bytes in next field |
4 bytes |
unsigned 30-bit integer |
batch |
Variable |
bytes |
Deposit (tag 1)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
deposit |
Determined from data |
$X_11 |
X_11¶
Name |
Size |
Contents |
---|---|---|
sender |
21 bytes |
$public_key_hash |
destination |
20 bytes |
bytes |
ticket_hash |
32 bytes |
bytes |
amount |
Determined from data |
$X_12 |
X_12 (Determined from data, 8-bit tag)¶
case 0 (tag 0)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
Unnamed field 0 |
1 byte |
unsigned 8-bit integer |
case 1 (tag 1)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
Unnamed field 0 |
2 bytes |
unsigned 16-bit integer |
case 2 (tag 2)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
Unnamed field 0 |
4 bytes |
signed 32-bit integer |
case 3 (tag 3)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
Unnamed field 0 |
8 bytes |
signed 64-bit integer |
X_9¶
Name |
Size |
Contents |
---|---|---|
# bytes in next field |
4 bytes |
unsigned 30-bit integer |
contents |
Variable |
bytes |
# bytes in next field |
4 bytes |
unsigned 30-bit integer |
ty |
Variable |
bytes |
ticketer |
22 bytes |
$alpha.contract_id |
amount |
Determined from data |
$X_12 |
claimer |
21 bytes |
$public_key_hash |
alpha.contract_id (22 bytes, 8-bit tag)¶
Implicit (tag 0)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
Signature.Public_key_hash |
21 bytes |
$public_key_hash |
Originated (tag 1)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
Contract_hash |
20 bytes |
bytes |
padding |
1 byte |
padding |
X_8 (2 bytes, 16-bit tag)¶
Example_arith smart contract rollup kind (tag 0)¶
Name |
Size |
Contents |
---|---|---|
Tag |
2 bytes |
unsigned 16-bit integer |
X_7¶
Name |
Size |
Contents |
---|---|---|
# bytes in next field |
4 bytes |
unsigned 30-bit integer |
Unnamed field 0 |
Variable |
bytes |
X_6¶
Name |
Size |
Contents |
---|---|---|
compressed_state |
32 bytes |
bytes |
inbox_level |
4 bytes |
signed 32-bit integer |
predecessor |
32 bytes |
bytes |
number_of_messages |
4 bytes |
signed 32-bit integer |
number_of_ticks |
4 bytes |
signed 32-bit integer |
X_1¶
Name |
Size |
Contents |
---|---|---|
choice |
Determined from data |
$N.t |
step |
Determined from data |
$X_5 |
X_5 (Determined from data, 8-bit tag)¶
Dissection (tag 0)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
# bytes in next field |
4 bytes |
unsigned 30-bit integer |
Unnamed field 0 |
Variable |
sequence of $X_3 |
Proof (tag 1)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
Unnamed field 0 |
Determined from data |
$X_2 |
X_3¶
Name |
Size |
Contents |
---|---|---|
Unnamed field 0 |
Determined from data |
$X_4 |
Unnamed field 1 |
Determined from data |
$N.t |
X_4 (Determined from data, 8-bit tag)¶
None (tag 0)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
Some (tag 1)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
state_hash |
32 bytes |
bytes |
X_2 (Determined from data, 8-bit tag)¶
Proof of a normal computation step (tag 0)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
Unnamed field 0 |
1 byte |
boolean (0 for false, 255 for true) |
Unnamed field 1 |
32 bytes |
bytes |
Unnamed field 2 |
32 bytes |
bytes |
Proof of an input step (tag 1)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
Unnamed field 0 |
1 byte |
boolean (0 for false, 255 for true) |
Unnamed field 1 |
32 bytes |
bytes |
Unnamed field 2 |
32 bytes |
bytes |
Proof that the PVM is blocked (tag 2)¶
Name |
Size |
Contents |
---|---|---|
Tag |
1 byte |
unsigned 8-bit integer |
Unnamed field 0 |
1 byte |
boolean (0 for false, 255 for true) |
Unnamed field 1 |
32 bytes |
bytes |
X_0¶
Name |
Size |
Contents |
---|---|---|
Unnamed field 0 |
21 bytes |
$public_key_hash |
Unnamed field 1 |
21 bytes |
$public_key_hash |