RPCs - Index¶
Shell¶
- /
- /admin
- /chains
- /chains/<chain_id>
- /describe (GET)
- /dune
- /errors (GET)
- /fetch_protocol
- /fetch_protocol/<Protocol_hash> (GET)
- /injection
- /monitor
- /network
- /protocols (GET)
- /protocols/<Protocol_hash> (GET)
- /stats
- /storage
- /workers
Protocol Alpha¶
- ../<block_id> (GET)
- ../<block_id>/allowed_peer_ids (GET)
- ../<block_id>/context
- ../<block_id>/context/activate_protocol (GET)
- ../<block_id>/context/big_maps
- ../<block_id>/context/codes
- ../<block_id>/context/constants (GET)
- ../<block_id>/context/constants/errors (GET)
- ../<block_id>/context/contracts (GET)
- ../<block_id>/context/contracts/<contract_id> (GET)
- ../<block_id>/context/contracts/<contract_id>/balance (GET)
- ../<block_id>/context/contracts/<contract_id>/big_map_get (POST)
- ../<block_id>/context/contracts/<contract_id>/counter (GET)
- ../<block_id>/context/contracts/<contract_id>/delegate (GET)
- ../<block_id>/context/contracts/<contract_id>/entrypoints (GET)
- ../<block_id>/context/contracts/<contract_id>/entrypoints/<string> (GET)
- ../<block_id>/context/contracts/<contract_id>/exec_fun
- ../<block_id>/context/contracts/<contract_id>/exec_fun/<string> (POST)
- ../<block_id>/context/contracts/<contract_id>/get_value
- ../<block_id>/context/contracts/<contract_id>/get_value/<string> (GET)
- ../<block_id>/context/contracts/<contract_id>/info (GET)
- ../<block_id>/context/contracts/<contract_id>/manager_key (GET)
- ../<block_id>/context/contracts/<contract_id>/parameters (GET)
- ../<block_id>/context/contracts/<contract_id>/script (GET)
- ../<block_id>/context/contracts/<contract_id>/storage (GET)
- ../<block_id>/context/contracts/<contract_id> (GET)
- ../<block_id>/context/delegates (GET)
- ../<block_id>/context/delegates/<pkh> (GET)
- ../<block_id>/context/delegates/<pkh>/balance (GET)
- ../<block_id>/context/delegates/<pkh>/deactivated (GET)
- ../<block_id>/context/delegates/<pkh>/delegated_balance (GET)
- ../<block_id>/context/delegates/<pkh>/delegated_contracts (GET)
- ../<block_id>/context/delegates/<pkh>/frozen_balance (GET)
- ../<block_id>/context/delegates/<pkh>/frozen_balance_by_cycle (GET)
- ../<block_id>/context/delegates/<pkh>/grace_period (GET)
- ../<block_id>/context/delegates/<pkh>/staking_balance (GET)
- ../<block_id>/context/delegates/<pkh> (GET)
- ../<block_id>/context/next_deflate (GET)
- ../<block_id>/context/nonces
- ../<block_id>/context/nonces/<block_level> (GET)
- ../<block_id>/context/protocol_revision (GET)
- ../<block_id>/context/raw
- ../<block_id>/context/raw/bytes (GET)
- ../<block_id>/context/raw/json (<dyn>)
- ../<block_id>/context/seed (POST)
- ../<block_id>/context/unburn (GET)
- ../<block_id>/dune
- ../<block_id>/dune/build_operation (POST)
- ../<block_id>/endorsing_power (POST)
- ../<block_id>/hash (GET)
- ../<block_id>/header (GET)
- ../<block_id>/helpers
- ../<block_id>/helpers/baking_rights (GET)
- ../<block_id>/helpers/complete
- ../<block_id>/helpers/complete/<prefix> (GET)
- ../<block_id>/helpers/current_level (GET)
- ../<block_id>/helpers/endorsing_rights (GET)
- ../<block_id>/helpers/forge
- ../<block_id>/helpers/forge_block_header (POST)
- ../<block_id>/helpers/levels_in_current_cycle (GET)
- ../<block_id>/helpers/parse
- ../<block_id>/helpers/preapply
- ../<block_id>/helpers/scripts
- ../<block_id>/helpers/scripts/entrypoint (POST)
- ../<block_id>/helpers/scripts/entrypoints (POST)
- ../<block_id>/helpers/scripts/pack_data (POST)
- ../<block_id>/helpers/scripts/run_code (POST)
- ../<block_id>/helpers/scripts/run_operation (POST)
- ../<block_id>/helpers/scripts/trace_code (POST)
- ../<block_id>/helpers/scripts/typecheck_code (POST)
- ../<block_id>/helpers/scripts/typecheck_data (POST)
- ../<block_id>/helpers/scripts/unpack_data (POST)
- ../<block_id>/live_blocks (GET)
- ../<block_id>/metadata (GET)
- ../<block_id>/minimal_valid_time (GET)
- ../<block_id>/operation
- ../<block_id>/operation/<operation_hash> (GET)
- ../<block_id>/operation_hashes (GET)
- ../<block_id>/operations (GET)
- ../<block_id>/protocols (GET)
- ../<block_id>/raw_context (GET)
- ../<block_id>/required_endorsements (GET)
- ../<block_id>/votes
RPCs - Full description¶
Shell¶
GET /admin/account/<alias>
Returns a public key hash for a registered alias.
$Signature.Public_key_hash $Signature.Public_key_hash: /* A Ed25519, Secp256k1, or P256 public key hash (Base58Check-encoded) */ $unistring $unistring: /* Universal string representation Either a plain UTF8 string, or a sequence of bytes for strings that contain invalid byte sequences. */ string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
+---------------------------+----------+------------------+ | Name | Size | Contents | +===========================+==========+==================+ | Signature.Public_key_hash | 21 bytes | $public_key_hash | +---------------------------+----------+------------------+ 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 | +----------------------+----------+------------------------+
GET /admin/accounts
Returns registered accounts with their alias.
[ { "alias": $unistring, "pkh": $Signature.Public_key_hash } ... ] $Signature.Public_key_hash: /* A Ed25519, Secp256k1, or P256 public key hash (Base58Check-encoded) */ $unistring $unistring: /* Universal string representation Either a plain UTF8 string, or a sequence of bytes for strings that contain invalid byte sequences. */ string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
+-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | Unnamed field 0 | Variable | sequence of $X_0 | +-----------------------+----------+-------------------------+ 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 | +----------------------+----------+------------------------+ X_0 *** +-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | alias | Variable | bytes | +-----------------------+----------+-------------------------+ | pkh | 21 bytes | $public_key_hash | +-----------------------+----------+-------------------------+
POST /admin/accounts/register
Register accounts with their aliases.
[ { "alias": $unistring, "pkh": $Signature.Public_key_hash } ... ] $Signature.Public_key_hash: /* A Ed25519, Secp256k1, or P256 public key hash (Base58Check-encoded) */ $unistring $unistring: /* Universal string representation Either a plain UTF8 string, or a sequence of bytes for strings that contain invalid byte sequences. */ string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
+-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | Unnamed field 0 | Variable | sequence of $X_0 | +-----------------------+----------+-------------------------+ 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 | +----------------------+----------+------------------------+ X_0 *** +-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | alias | Variable | bytes | +-----------------------+----------+-------------------------+ | pkh | 21 bytes | $public_key_hash | +-----------------------+----------+-------------------------+
any
+-----------------+---------+----------------------------------------------------+ | Name | Size | Contents | +=================+=========+====================================================+ | Unnamed field 0 | 0 bytes | placeholder (not actually present in the encoding) | +-----------------+---------+----------------------------------------------------+
POST /admin/accounts/register_client_dir
Register local client directory for daemons.
$unistring $unistring: /* Universal string representation Either a plain UTF8 string, or a sequence of bytes for strings that contain invalid byte sequences. */ string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
+-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | Unnamed field 0 | Variable | bytes | +-----------------------+----------+-------------------------+
any
+-----------------+---------+----------------------------------------------------+ | Name | Size | Contents | +=================+=========+====================================================+ | Unnamed field 0 | 0 bytes | placeholder (not actually present in the encoding) | +-----------------+---------+----------------------------------------------------+
GET /admin/daemon/<id>
Returns information about a daemon on this node.
{ "id": integer ∈ [-2^30-2, 2^30+2], "kind": "baker", "delegates": [ $Signature.Public_key_hash ... ], "minimal_fees"?: $unistring, "minimal_nanotez_per_gas_unit"?: $bignum, "minimal_nanotez_per_byte"?: $bignum, "await_endorsements"?: boolean, "max_priority"?: integer ∈ [-2^30-2, 2^30+2], "protocols": [ $Protocol_hash ... ], "all_active_protocols": boolean, "spawned": boolean, "last_ping": $timestamp.system, "state": { "pid": integer ∈ [-2^30-2, 2^30+2], "state": "running" } || { "pid": integer ∈ [-2^30-2, 2^30+2], "state": "exited", "code"?: integer ∈ [-2^30-2, 2^30+2] } || { "pid": integer ∈ [-2^30-2, 2^30+2], "state": "stopped", "code": integer ∈ [-2^30-2, 2^30+2] } || { "pid": integer ∈ [-2^30-2, 2^30+2], "state": "signaled", "code": integer ∈ [-2^30-2, 2^30+2] } } || { "id": integer ∈ [-2^30-2, 2^30+2], "kind": "endorser", "delegates": [ $Signature.Public_key_hash ... ], "delay"?: integer ∈ [-2^30-2, 2^30+2], "protocols": [ $Protocol_hash ... ], "all_active_protocols": boolean, "spawned": boolean, "last_ping": $timestamp.system, "state": { "pid": integer ∈ [-2^30-2, 2^30+2], "state": "running" } || { "pid": integer ∈ [-2^30-2, 2^30+2], "state": "exited", "code"?: integer ∈ [-2^30-2, 2^30+2] } || { "pid": integer ∈ [-2^30-2, 2^30+2], "state": "stopped", "code": integer ∈ [-2^30-2, 2^30+2] } || { "pid": integer ∈ [-2^30-2, 2^30+2], "state": "signaled", "code": integer ∈ [-2^30-2, 2^30+2] } } || { "id": integer ∈ [-2^30-2, 2^30+2], "kind": "accuser", "preserved_levels"?: integer ∈ [-2^30-2, 2^30+2], "protocols": [ $Protocol_hash ... ], "all_active_protocols": boolean, "spawned": boolean, "last_ping": $timestamp.system, "state": { "pid": integer ∈ [-2^30-2, 2^30+2], "state": "running" } || { "pid": integer ∈ [-2^30-2, 2^30+2], "state": "exited", "code"?: integer ∈ [-2^30-2, 2^30+2] } || { "pid": integer ∈ [-2^30-2, 2^30+2], "state": "stopped", "code": integer ∈ [-2^30-2, 2^30+2] } || { "pid": integer ∈ [-2^30-2, 2^30+2], "state": "signaled", "code": integer ∈ [-2^30-2, 2^30+2] } } $Protocol_hash: /* A Dune protocol ID (Base58Check-encoded) */ $unistring $Signature.Public_key_hash: /* A Ed25519, Secp256k1, or P256 public key hash (Base58Check-encoded) */ $unistring $bignum: /* Big number Decimal representation of a big number */ string $int64: /* 64 bit integers Decimal representation of 64 bit integers */ string $timestamp.rfc: /* RFC 3339 formatted timestamp A date in RFC 3339 notation. */ $unistring $timestamp.system: /* A timestamp as seen by the underlying, local computer: subsecond-level precision, epoch or rfc3339 based. */ $timestamp.rfc || $int64 $unistring: /* Universal string representation Either a plain UTF8 string, or a sequence of bytes for strings that contain invalid byte sequences. */ string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
+-----------------------+----------------------+--------------------------------------------------------------+ | Name | Size | Contents | +=======================+======================+==============================================================+ | id | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +-----------------------+----------------------+--------------------------------------------------------------+ | Unnamed field 0 | Determined from data | $X_1 | +-----------------------+----------------------+--------------------------------------------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------------------+--------------------------------------------------------------+ | protocols | Variable | sequence of bytes | +-----------------------+----------------------+--------------------------------------------------------------+ | all_active_protocols | 1 byte | boolean (0 for false, 255 for true) | +-----------------------+----------------------+--------------------------------------------------------------+ | spawned | 1 byte | boolean (0 for false, 255 for true) | +-----------------------+----------------------+--------------------------------------------------------------+ | last_ping | 8 bytes | signed 64-bit integer | +-----------------------+----------------------+--------------------------------------------------------------+ | state | Determined from data | $X_2 | +-----------------------+----------------------+--------------------------------------------------------------+ 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 | +----------------------+----------+------------------------+ X_0 *** +-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | Unnamed field 0 | Variable | bytes | +-----------------------+----------+-------------------------+ Z.t *** A variable length sequence of bytes, encoding a Zarith number. Each byte has a running unary size bit: the most significant bit of each byte tells is this is the last byte in the sequence (0) or if there is more to read (1). The second most significant bit of the first byte is reserved for the sign (positive if zero). Size and sign bits ignored, data is then the binary representation of the absolute value of the number in little endian order. +------+----------------------+----------+ | Name | Size | Contents | +======+======================+==========+ | Z.t | Determined from data | bytes | +------+----------------------+----------+ X_1 (Determined from data, 8-bit tag) ************************************* daemon.baker (tag 0) ==================== +----------------------------------------------------+----------------------+--------------------------------------------------------------+ | Name | Size | Contents | +====================================================+======================+==============================================================+ | Tag | 1 byte | unsigned 8-bit integer | +----------------------------------------------------+----------------------+--------------------------------------------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +----------------------------------------------------+----------------------+--------------------------------------------------------------+ | delegates | Variable | sequence of $public_key_hash | +----------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "minimal_fees" | 1 byte | boolean (0 for false, 255 for true) | +----------------------------------------------------+----------------------+--------------------------------------------------------------+ | minimal_fees | Determined from data | $X_0 | +----------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "minimal_nanotez_per_gas_unit" | 1 byte | boolean (0 for false, 255 for true) | +----------------------------------------------------+----------------------+--------------------------------------------------------------+ | minimal_nanotez_per_gas_unit | Determined from data | $Z.t | +----------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "minimal_nanotez_per_byte" | 1 byte | boolean (0 for false, 255 for true) | +----------------------------------------------------+----------------------+--------------------------------------------------------------+ | minimal_nanotez_per_byte | Determined from data | $Z.t | +----------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "await_endorsements" | 1 byte | boolean (0 for false, 255 for true) | +----------------------------------------------------+----------------------+--------------------------------------------------------------+ | await_endorsements | 1 byte | boolean (0 for false, 255 for true) | +----------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "max_priority" | 1 byte | boolean (0 for false, 255 for true) | +----------------------------------------------------+----------------------+--------------------------------------------------------------+ | max_priority | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +----------------------------------------------------+----------------------+--------------------------------------------------------------+ daemon.endorser (tag 1) ======================= +-----------------------------+----------+--------------------------------------------------------------+ | Name | Size | Contents | +=============================+==========+==============================================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------------------+----------+--------------------------------------------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------------+----------+--------------------------------------------------------------+ | delegates | Variable | sequence of $public_key_hash | +-----------------------------+----------+--------------------------------------------------------------+ | ? presence of field "delay" | 1 byte | boolean (0 for false, 255 for true) | +-----------------------------+----------+--------------------------------------------------------------+ | delay | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +-----------------------------+----------+--------------------------------------------------------------+ daemon.accuser (tag 2) ====================== +----------------------------------------+---------+--------------------------------------------------------------+ | Name | Size | Contents | +========================================+=========+==============================================================+ | Tag | 1 byte | unsigned 8-bit integer | +----------------------------------------+---------+--------------------------------------------------------------+ | ? presence of field "preserved_levels" | 1 byte | boolean (0 for false, 255 for true) | +----------------------------------------+---------+--------------------------------------------------------------+ | preserved_levels | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +----------------------------------------+---------+--------------------------------------------------------------+ X_3 (Determined from data, 8-bit tag) ************************************* process.running (tag 0) ======================= +------+--------+------------------------+ | Name | Size | Contents | +======+========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +------+--------+------------------------+ process.exited (tag 1) ====================== +------+---------+--------------------------------------------------------------+ | Name | Size | Contents | +======+=========+==============================================================+ | Tag | 1 byte | unsigned 8-bit integer | +------+---------+--------------------------------------------------------------+ | code | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +------+---------+--------------------------------------------------------------+ process.stopped (tag 2) ======================= +------+---------+--------------------------------------------------------------+ | Name | Size | Contents | +======+=========+==============================================================+ | Tag | 1 byte | unsigned 8-bit integer | +------+---------+--------------------------------------------------------------+ | code | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +------+---------+--------------------------------------------------------------+ process.signaled (tag 3) ======================== +------+---------+--------------------------------------------------------------+ | Name | Size | Contents | +======+=========+==============================================================+ | Tag | 1 byte | unsigned 8-bit integer | +------+---------+--------------------------------------------------------------+ | code | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +------+---------+--------------------------------------------------------------+ X_2 *** +-----------------+----------------------+--------------------------------------------------------------+ | Name | Size | Contents | +=================+======================+==============================================================+ | pid | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +-----------------+----------------------+--------------------------------------------------------------+ | Unnamed field 0 | Determined from data | $X_3 | +-----------------+----------------------+--------------------------------------------------------------+
POST /admin/daemon/<id>/kill?[signal=<Unix_signal>]
Kill a running daemon.
Optional query arguments :
- signal = <Unix_signal>
any
+-----------------+---------+----------------------------------------------------+ | Name | Size | Contents | +=================+=========+====================================================+ | Unnamed field 0 | 0 bytes | placeholder (not actually present in the encoding) | +-----------------+---------+----------------------------------------------------+
any
+-----------------+---------+----------------------------------------------------+ | Name | Size | Contents | +=================+=========+====================================================+ | Unnamed field 0 | 0 bytes | placeholder (not actually present in the encoding) | +-----------------+---------+----------------------------------------------------+
GET /admin/daemon/<id>/log?[size=<size>]
Get the tail of the log for a daemon.
Optional query arguments :
- size = <size>
$unistring $unistring: /* Universal string representation Either a plain UTF8 string, or a sequence of bytes for strings that contain invalid byte sequences. */ string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
+-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | Unnamed field 0 | Variable | bytes | +-----------------------+----------+-------------------------+
POST /admin/daemon/<id>/ping
Update a running daemon on this node.
any
+-----------------+---------+----------------------------------------------------+ | Name | Size | Contents | +=================+=========+====================================================+ | Unnamed field 0 | 0 bytes | placeholder (not actually present in the encoding) | +-----------------+---------+----------------------------------------------------+
any
+-----------------+---------+----------------------------------------------------+ | Name | Size | Contents | +=================+=========+====================================================+ | Unnamed field 0 | 0 bytes | placeholder (not actually present in the encoding) | +-----------------+---------+----------------------------------------------------+
DELETE /admin/daemon/<id>/remove?[fail]
Remove a daemon on this node.
Optional query arguments :
- fail
any
+-----------------+---------+----------------------------------------------------+ | Name | Size | Contents | +=================+=========+====================================================+ | Unnamed field 0 | 0 bytes | placeholder (not actually present in the encoding) | +-----------------+---------+----------------------------------------------------+
POST /admin/daemon/<id>/start
Start a registered daemon on this node.
any
+-----------------+---------+----------------------------------------------------+ | Name | Size | Contents | +=================+=========+====================================================+ | Unnamed field 0 | 0 bytes | placeholder (not actually present in the encoding) | +-----------------+---------+----------------------------------------------------+
{ "id": integer ∈ [-2^30-2, 2^30+2], "pid": integer ∈ [-2^30-2, 2^30+2], "state": "running" } || { "id": integer ∈ [-2^30-2, 2^30+2], "pid": integer ∈ [-2^30-2, 2^30+2], "state": "exited", "code"?: integer ∈ [-2^30-2, 2^30+2] } || { "id": integer ∈ [-2^30-2, 2^30+2], "pid": integer ∈ [-2^30-2, 2^30+2], "state": "stopped", "code": integer ∈ [-2^30-2, 2^30+2] } || { "id": integer ∈ [-2^30-2, 2^30+2], "pid": integer ∈ [-2^30-2, 2^30+2], "state": "signaled", "code": integer ∈ [-2^30-2, 2^30+2] }
+-----------------+----------------------+--------------------------------------------------------------+ | Name | Size | Contents | +=================+======================+==============================================================+ | id | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +-----------------+----------------------+--------------------------------------------------------------+ | pid | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +-----------------+----------------------+--------------------------------------------------------------+ | Unnamed field 0 | Determined from data | $X_0 | +-----------------+----------------------+--------------------------------------------------------------+ X_0 (Determined from data, 8-bit tag) ************************************* process.running (tag 0) ======================= +------+--------+------------------------+ | Name | Size | Contents | +======+========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +------+--------+------------------------+ process.exited (tag 1) ====================== +------+---------+--------------------------------------------------------------+ | Name | Size | Contents | +======+=========+==============================================================+ | Tag | 1 byte | unsigned 8-bit integer | +------+---------+--------------------------------------------------------------+ | code | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +------+---------+--------------------------------------------------------------+ process.stopped (tag 2) ======================= +------+---------+--------------------------------------------------------------+ | Name | Size | Contents | +======+=========+==============================================================+ | Tag | 1 byte | unsigned 8-bit integer | +------+---------+--------------------------------------------------------------+ | code | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +------+---------+--------------------------------------------------------------+ process.signaled (tag 3) ======================== +------+---------+--------------------------------------------------------------+ | Name | Size | Contents | +======+=========+==============================================================+ | Tag | 1 byte | unsigned 8-bit integer | +------+---------+--------------------------------------------------------------+ | code | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +------+---------+--------------------------------------------------------------+
GET /admin/daemons?[kind=<daemon_kind>]&[running]
Returns the running daemons on this node.
Optional query arguments :
- kind = <daemon_kind>
- running
[ { "id": integer ∈ [-2^30-2, 2^30+2], "kind": "baker", "delegates": [ $Signature.Public_key_hash ... ], "minimal_fees"?: $unistring, "minimal_nanotez_per_gas_unit"?: $bignum, "minimal_nanotez_per_byte"?: $bignum, "await_endorsements"?: boolean, "max_priority"?: integer ∈ [-2^30-2, 2^30+2], "protocols": [ $Protocol_hash ... ], "all_active_protocols": boolean, "spawned": boolean, "last_ping": $timestamp.system, "state": { "pid": integer ∈ [-2^30-2, 2^30+2], "state": "running" } || { "pid": integer ∈ [-2^30-2, 2^30+2], "state": "exited", "code"?: integer ∈ [-2^30-2, 2^30+2] } || { "pid": integer ∈ [-2^30-2, 2^30+2], "state": "stopped", "code": integer ∈ [-2^30-2, 2^30+2] } || { "pid": integer ∈ [-2^30-2, 2^30+2], "state": "signaled", "code": integer ∈ [-2^30-2, 2^30+2] } } || { "id": integer ∈ [-2^30-2, 2^30+2], "kind": "endorser", "delegates": [ $Signature.Public_key_hash ... ], "delay"?: integer ∈ [-2^30-2, 2^30+2], "protocols": [ $Protocol_hash ... ], "all_active_protocols": boolean, "spawned": boolean, "last_ping": $timestamp.system, "state": { "pid": integer ∈ [-2^30-2, 2^30+2], "state": "running" } || { "pid": integer ∈ [-2^30-2, 2^30+2], "state": "exited", "code"?: integer ∈ [-2^30-2, 2^30+2] } || { "pid": integer ∈ [-2^30-2, 2^30+2], "state": "stopped", "code": integer ∈ [-2^30-2, 2^30+2] } || { "pid": integer ∈ [-2^30-2, 2^30+2], "state": "signaled", "code": integer ∈ [-2^30-2, 2^30+2] } } || { "id": integer ∈ [-2^30-2, 2^30+2], "kind": "accuser", "preserved_levels"?: integer ∈ [-2^30-2, 2^30+2], "protocols": [ $Protocol_hash ... ], "all_active_protocols": boolean, "spawned": boolean, "last_ping": $timestamp.system, "state": { "pid": integer ∈ [-2^30-2, 2^30+2], "state": "running" } || { "pid": integer ∈ [-2^30-2, 2^30+2], "state": "exited", "code"?: integer ∈ [-2^30-2, 2^30+2] } || { "pid": integer ∈ [-2^30-2, 2^30+2], "state": "stopped", "code": integer ∈ [-2^30-2, 2^30+2] } || { "pid": integer ∈ [-2^30-2, 2^30+2], "state": "signaled", "code": integer ∈ [-2^30-2, 2^30+2] } } ... ] $Protocol_hash: /* A Dune protocol ID (Base58Check-encoded) */ $unistring $Signature.Public_key_hash: /* A Ed25519, Secp256k1, or P256 public key hash (Base58Check-encoded) */ $unistring $bignum: /* Big number Decimal representation of a big number */ string $int64: /* 64 bit integers Decimal representation of 64 bit integers */ string $timestamp.rfc: /* RFC 3339 formatted timestamp A date in RFC 3339 notation. */ $unistring $timestamp.system: /* A timestamp as seen by the underlying, local computer: subsecond-level precision, epoch or rfc3339 based. */ $timestamp.rfc || $int64 $unistring: /* Universal string representation Either a plain UTF8 string, or a sequence of bytes for strings that contain invalid byte sequences. */ string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
+-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | Unnamed field 0 | Variable | sequence of $X_0 | +-----------------------+----------+-------------------------+ 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 | +----------------------+----------+------------------------+ X_1 *** +-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | Unnamed field 0 | Variable | bytes | +-----------------------+----------+-------------------------+ Z.t *** A variable length sequence of bytes, encoding a Zarith number. Each byte has a running unary size bit: the most significant bit of each byte tells is this is the last byte in the sequence (0) or if there is more to read (1). The second most significant bit of the first byte is reserved for the sign (positive if zero). Size and sign bits ignored, data is then the binary representation of the absolute value of the number in little endian order. +------+----------------------+----------+ | Name | Size | Contents | +======+======================+==========+ | Z.t | Determined from data | bytes | +------+----------------------+----------+ X_2 (Determined from data, 8-bit tag) ************************************* daemon.baker (tag 0) ==================== +----------------------------------------------------+----------------------+--------------------------------------------------------------+ | Name | Size | Contents | +====================================================+======================+==============================================================+ | Tag | 1 byte | unsigned 8-bit integer | +----------------------------------------------------+----------------------+--------------------------------------------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +----------------------------------------------------+----------------------+--------------------------------------------------------------+ | delegates | Variable | sequence of $public_key_hash | +----------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "minimal_fees" | 1 byte | boolean (0 for false, 255 for true) | +----------------------------------------------------+----------------------+--------------------------------------------------------------+ | minimal_fees | Determined from data | $X_1 | +----------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "minimal_nanotez_per_gas_unit" | 1 byte | boolean (0 for false, 255 for true) | +----------------------------------------------------+----------------------+--------------------------------------------------------------+ | minimal_nanotez_per_gas_unit | Determined from data | $Z.t | +----------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "minimal_nanotez_per_byte" | 1 byte | boolean (0 for false, 255 for true) | +----------------------------------------------------+----------------------+--------------------------------------------------------------+ | minimal_nanotez_per_byte | Determined from data | $Z.t | +----------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "await_endorsements" | 1 byte | boolean (0 for false, 255 for true) | +----------------------------------------------------+----------------------+--------------------------------------------------------------+ | await_endorsements | 1 byte | boolean (0 for false, 255 for true) | +----------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "max_priority" | 1 byte | boolean (0 for false, 255 for true) | +----------------------------------------------------+----------------------+--------------------------------------------------------------+ | max_priority | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +----------------------------------------------------+----------------------+--------------------------------------------------------------+ daemon.endorser (tag 1) ======================= +-----------------------------+----------+--------------------------------------------------------------+ | Name | Size | Contents | +=============================+==========+==============================================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------------------+----------+--------------------------------------------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------------+----------+--------------------------------------------------------------+ | delegates | Variable | sequence of $public_key_hash | +-----------------------------+----------+--------------------------------------------------------------+ | ? presence of field "delay" | 1 byte | boolean (0 for false, 255 for true) | +-----------------------------+----------+--------------------------------------------------------------+ | delay | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +-----------------------------+----------+--------------------------------------------------------------+ daemon.accuser (tag 2) ====================== +----------------------------------------+---------+--------------------------------------------------------------+ | Name | Size | Contents | +========================================+=========+==============================================================+ | Tag | 1 byte | unsigned 8-bit integer | +----------------------------------------+---------+--------------------------------------------------------------+ | ? presence of field "preserved_levels" | 1 byte | boolean (0 for false, 255 for true) | +----------------------------------------+---------+--------------------------------------------------------------+ | preserved_levels | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +----------------------------------------+---------+--------------------------------------------------------------+ X_4 (Determined from data, 8-bit tag) ************************************* process.running (tag 0) ======================= +------+--------+------------------------+ | Name | Size | Contents | +======+========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +------+--------+------------------------+ process.exited (tag 1) ====================== +------+---------+--------------------------------------------------------------+ | Name | Size | Contents | +======+=========+==============================================================+ | Tag | 1 byte | unsigned 8-bit integer | +------+---------+--------------------------------------------------------------+ | code | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +------+---------+--------------------------------------------------------------+ process.stopped (tag 2) ======================= +------+---------+--------------------------------------------------------------+ | Name | Size | Contents | +======+=========+==============================================================+ | Tag | 1 byte | unsigned 8-bit integer | +------+---------+--------------------------------------------------------------+ | code | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +------+---------+--------------------------------------------------------------+ process.signaled (tag 3) ======================== +------+---------+--------------------------------------------------------------+ | Name | Size | Contents | +======+=========+==============================================================+ | Tag | 1 byte | unsigned 8-bit integer | +------+---------+--------------------------------------------------------------+ | code | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +------+---------+--------------------------------------------------------------+ X_3 *** +-----------------+----------------------+--------------------------------------------------------------+ | Name | Size | Contents | +=================+======================+==============================================================+ | pid | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +-----------------+----------------------+--------------------------------------------------------------+ | Unnamed field 0 | Determined from data | $X_4 | +-----------------+----------------------+--------------------------------------------------------------+ X_0 *** +-----------------------+----------------------+--------------------------------------------------------------+ | Name | Size | Contents | +=======================+======================+==============================================================+ | id | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +-----------------------+----------------------+--------------------------------------------------------------+ | Unnamed field 0 | Determined from data | $X_2 | +-----------------------+----------------------+--------------------------------------------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------------------+--------------------------------------------------------------+ | protocols | Variable | sequence of bytes | +-----------------------+----------------------+--------------------------------------------------------------+ | all_active_protocols | 1 byte | boolean (0 for false, 255 for true) | +-----------------------+----------------------+--------------------------------------------------------------+ | spawned | 1 byte | boolean (0 for false, 255 for true) | +-----------------------+----------------------+--------------------------------------------------------------+ | last_ping | 8 bytes | signed 64-bit integer | +-----------------------+----------------------+--------------------------------------------------------------+ | state | Determined from data | $X_3 | +-----------------------+----------------------+--------------------------------------------------------------+
POST /admin/daemons/clean
Clean dead daemons from running list.
any
+-----------------+---------+----------------------------------------------------+ | Name | Size | Contents | +=================+=========+====================================================+ | Unnamed field 0 | 0 bytes | placeholder (not actually present in the encoding) | +-----------------+---------+----------------------------------------------------+
any
+-----------------+---------+----------------------------------------------------+ | Name | Size | Contents | +=================+=========+====================================================+ | Unnamed field 0 | 0 bytes | placeholder (not actually present in the encoding) | +-----------------+---------+----------------------------------------------------+
POST /admin/daemons/ping_pid/<pid>
Update a running daemon on this node.
any
+-----------------+---------+----------------------------------------------------+ | Name | Size | Contents | +=================+=========+====================================================+ | Unnamed field 0 | 0 bytes | placeholder (not actually present in the encoding) | +-----------------+---------+----------------------------------------------------+
any
+-----------------+---------+----------------------------------------------------+ | Name | Size | Contents | +=================+=========+====================================================+ | Unnamed field 0 | 0 bytes | placeholder (not actually present in the encoding) | +-----------------+---------+----------------------------------------------------+
POST /admin/daemons/register?[fail]
Register a daemon on this node.
Optional query arguments :
- fail
{ "id"?: integer ∈ [-2^30-2, 2^30+2], "desc": { "kind": "baker", "delegates": [ $Signature.Public_key_hash ... ], "minimal_fees"?: $unistring, "minimal_nanotez_per_gas_unit"?: $bignum, "minimal_nanotez_per_byte"?: $bignum, "await_endorsements"?: boolean, "max_priority"?: integer ∈ [-2^30-2, 2^30+2] } || { "kind": "endorser", "delegates": [ $Signature.Public_key_hash ... ], "delay"?: integer ∈ [-2^30-2, 2^30+2] } || { "kind": "accuser", "preserved_levels"?: integer ∈ [-2^30-2, 2^30+2] }, "protocols": [ $Protocol_hash ... ], "all_active_protocols": boolean, "pid"?: integer ∈ [-2^30-2, 2^30+2] } $Protocol_hash: /* A Dune protocol ID (Base58Check-encoded) */ $unistring $Signature.Public_key_hash: /* A Ed25519, Secp256k1, or P256 public key hash (Base58Check-encoded) */ $unistring $bignum: /* Big number Decimal representation of a big number */ string $unistring: /* Universal string representation Either a plain UTF8 string, or a sequence of bytes for strings that contain invalid byte sequences. */ string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
+---------------------------+----------------------+--------------------------------------------------------------+ | Name | Size | Contents | +===========================+======================+==============================================================+ | ? presence of field "id" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------+----------------------+--------------------------------------------------------------+ | id | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +---------------------------+----------------------+--------------------------------------------------------------+ | desc | Determined from data | $X_1 | +---------------------------+----------------------+--------------------------------------------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +---------------------------+----------------------+--------------------------------------------------------------+ | protocols | Variable | sequence of bytes | +---------------------------+----------------------+--------------------------------------------------------------+ | all_active_protocols | 1 byte | boolean (0 for false, 255 for true) | +---------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "pid" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------+----------------------+--------------------------------------------------------------+ | pid | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +---------------------------+----------------------+--------------------------------------------------------------+ 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 | +----------------------+----------+------------------------+ X_0 *** +-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | Unnamed field 0 | Variable | bytes | +-----------------------+----------+-------------------------+ Z.t *** A variable length sequence of bytes, encoding a Zarith number. Each byte has a running unary size bit: the most significant bit of each byte tells is this is the last byte in the sequence (0) or if there is more to read (1). The second most significant bit of the first byte is reserved for the sign (positive if zero). Size and sign bits ignored, data is then the binary representation of the absolute value of the number in little endian order. +------+----------------------+----------+ | Name | Size | Contents | +======+======================+==========+ | Z.t | Determined from data | bytes | +------+----------------------+----------+ X_1 (Determined from data, 8-bit tag) ************************************* daemon.baker (tag 0) ==================== +----------------------------------------------------+----------------------+--------------------------------------------------------------+ | Name | Size | Contents | +====================================================+======================+==============================================================+ | Tag | 1 byte | unsigned 8-bit integer | +----------------------------------------------------+----------------------+--------------------------------------------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +----------------------------------------------------+----------------------+--------------------------------------------------------------+ | delegates | Variable | sequence of $public_key_hash | +----------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "minimal_fees" | 1 byte | boolean (0 for false, 255 for true) | +----------------------------------------------------+----------------------+--------------------------------------------------------------+ | minimal_fees | Determined from data | $X_0 | +----------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "minimal_nanotez_per_gas_unit" | 1 byte | boolean (0 for false, 255 for true) | +----------------------------------------------------+----------------------+--------------------------------------------------------------+ | minimal_nanotez_per_gas_unit | Determined from data | $Z.t | +----------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "minimal_nanotez_per_byte" | 1 byte | boolean (0 for false, 255 for true) | +----------------------------------------------------+----------------------+--------------------------------------------------------------+ | minimal_nanotez_per_byte | Determined from data | $Z.t | +----------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "await_endorsements" | 1 byte | boolean (0 for false, 255 for true) | +----------------------------------------------------+----------------------+--------------------------------------------------------------+ | await_endorsements | 1 byte | boolean (0 for false, 255 for true) | +----------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "max_priority" | 1 byte | boolean (0 for false, 255 for true) | +----------------------------------------------------+----------------------+--------------------------------------------------------------+ | max_priority | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +----------------------------------------------------+----------------------+--------------------------------------------------------------+ daemon.endorser (tag 1) ======================= +-----------------------------+----------+--------------------------------------------------------------+ | Name | Size | Contents | +=============================+==========+==============================================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------------------+----------+--------------------------------------------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------------+----------+--------------------------------------------------------------+ | delegates | Variable | sequence of $public_key_hash | +-----------------------------+----------+--------------------------------------------------------------+ | ? presence of field "delay" | 1 byte | boolean (0 for false, 255 for true) | +-----------------------------+----------+--------------------------------------------------------------+ | delay | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +-----------------------------+----------+--------------------------------------------------------------+ daemon.accuser (tag 2) ====================== +----------------------------------------+---------+--------------------------------------------------------------+ | Name | Size | Contents | +========================================+=========+==============================================================+ | Tag | 1 byte | unsigned 8-bit integer | +----------------------------------------+---------+--------------------------------------------------------------+ | ? presence of field "preserved_levels" | 1 byte | boolean (0 for false, 255 for true) | +----------------------------------------+---------+--------------------------------------------------------------+ | preserved_levels | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +----------------------------------------+---------+--------------------------------------------------------------+
{ "id": integer ∈ [-2^30-2, 2^30+2], "pid": integer ∈ [-2^30-2, 2^30+2], "state": "running" } || { "id": integer ∈ [-2^30-2, 2^30+2], "pid": integer ∈ [-2^30-2, 2^30+2], "state": "exited", "code"?: integer ∈ [-2^30-2, 2^30+2] } || { "id": integer ∈ [-2^30-2, 2^30+2], "pid": integer ∈ [-2^30-2, 2^30+2], "state": "stopped", "code": integer ∈ [-2^30-2, 2^30+2] } || { "id": integer ∈ [-2^30-2, 2^30+2], "pid": integer ∈ [-2^30-2, 2^30+2], "state": "signaled", "code": integer ∈ [-2^30-2, 2^30+2] }
+-----------------+----------------------+--------------------------------------------------------------+ | Name | Size | Contents | +=================+======================+==============================================================+ | id | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +-----------------+----------------------+--------------------------------------------------------------+ | pid | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +-----------------+----------------------+--------------------------------------------------------------+ | Unnamed field 0 | Determined from data | $X_0 | +-----------------+----------------------+--------------------------------------------------------------+ X_0 (Determined from data, 8-bit tag) ************************************* process.running (tag 0) ======================= +------+--------+------------------------+ | Name | Size | Contents | +======+========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +------+--------+------------------------+ process.exited (tag 1) ====================== +------+---------+--------------------------------------------------------------+ | Name | Size | Contents | +======+=========+==============================================================+ | Tag | 1 byte | unsigned 8-bit integer | +------+---------+--------------------------------------------------------------+ | code | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +------+---------+--------------------------------------------------------------+ process.stopped (tag 2) ======================= +------+---------+--------------------------------------------------------------+ | Name | Size | Contents | +======+=========+==============================================================+ | Tag | 1 byte | unsigned 8-bit integer | +------+---------+--------------------------------------------------------------+ | code | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +------+---------+--------------------------------------------------------------+ process.signaled (tag 3) ======================== +------+---------+--------------------------------------------------------------+ | Name | Size | Contents | +======+=========+==============================================================+ | Tag | 1 byte | unsigned 8-bit integer | +------+---------+--------------------------------------------------------------+ | code | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +------+---------+--------------------------------------------------------------+
POST /admin/daemons/start_accuser
Start an accuser on this node.
{ "protocols"?: [ $Protocol_hash ... ], "preserved_levels"?: integer ∈ [-2^30-2, 2^30+2] } $Protocol_hash: /* A Dune protocol ID (Base58Check-encoded) */ $unistring $unistring: /* Universal string representation Either a plain UTF8 string, or a sequence of bytes for strings that contain invalid byte sequences. */ string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
+----------------------------------------+----------------------+--------------------------------------------------------------+ | Name | Size | Contents | +========================================+======================+==============================================================+ | ? presence of field "protocols" | 1 byte | boolean (0 for false, 255 for true) | +----------------------------------------+----------------------+--------------------------------------------------------------+ | protocols | Determined from data | $X_0 | +----------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "preserved_levels" | 1 byte | boolean (0 for false, 255 for true) | +----------------------------------------+----------------------+--------------------------------------------------------------+ | preserved_levels | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +----------------------------------------+----------------------+--------------------------------------------------------------+ X_0 *** +-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | Unnamed field 0 | Variable | sequence of bytes | +-----------------------+----------+-------------------------+
{ "id": integer ∈ [-2^30-2, 2^30+2], "pid": integer ∈ [-2^30-2, 2^30+2], "state": "running" } || { "id": integer ∈ [-2^30-2, 2^30+2], "pid": integer ∈ [-2^30-2, 2^30+2], "state": "exited", "code"?: integer ∈ [-2^30-2, 2^30+2] } || { "id": integer ∈ [-2^30-2, 2^30+2], "pid": integer ∈ [-2^30-2, 2^30+2], "state": "stopped", "code": integer ∈ [-2^30-2, 2^30+2] } || { "id": integer ∈ [-2^30-2, 2^30+2], "pid": integer ∈ [-2^30-2, 2^30+2], "state": "signaled", "code": integer ∈ [-2^30-2, 2^30+2] }
+-----------------+----------------------+--------------------------------------------------------------+ | Name | Size | Contents | +=================+======================+==============================================================+ | id | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +-----------------+----------------------+--------------------------------------------------------------+ | pid | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +-----------------+----------------------+--------------------------------------------------------------+ | Unnamed field 0 | Determined from data | $X_0 | +-----------------+----------------------+--------------------------------------------------------------+ X_0 (Determined from data, 8-bit tag) ************************************* process.running (tag 0) ======================= +------+--------+------------------------+ | Name | Size | Contents | +======+========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +------+--------+------------------------+ process.exited (tag 1) ====================== +------+---------+--------------------------------------------------------------+ | Name | Size | Contents | +======+=========+==============================================================+ | Tag | 1 byte | unsigned 8-bit integer | +------+---------+--------------------------------------------------------------+ | code | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +------+---------+--------------------------------------------------------------+ process.stopped (tag 2) ======================= +------+---------+--------------------------------------------------------------+ | Name | Size | Contents | +======+=========+==============================================================+ | Tag | 1 byte | unsigned 8-bit integer | +------+---------+--------------------------------------------------------------+ | code | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +------+---------+--------------------------------------------------------------+ process.signaled (tag 3) ======================== +------+---------+--------------------------------------------------------------+ | Name | Size | Contents | +======+=========+==============================================================+ | Tag | 1 byte | unsigned 8-bit integer | +------+---------+--------------------------------------------------------------+ | code | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +------+---------+--------------------------------------------------------------+
POST /admin/daemons/start_baker
Start a baker on this node.
{ "protocols"?: [ $Protocol_hash ... ], "minimal_fees"?: $unistring, "minimal_nanotez_per_gas_unit"?: $bignum, "minimal_nanotez_per_byte"?: $bignum, "await_endorsements"?: boolean, "max_priority"?: integer ∈ [-2^30-2, 2^30+2], "delegates": [ $unistring ... ] } $Protocol_hash: /* A Dune protocol ID (Base58Check-encoded) */ $unistring $bignum: /* Big number Decimal representation of a big number */ string $unistring: /* Universal string representation Either a plain UTF8 string, or a sequence of bytes for strings that contain invalid byte sequences. */ string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
+----------------------------------------------------+----------------------+--------------------------------------------------------------+ | Name | Size | Contents | +====================================================+======================+==============================================================+ | ? presence of field "protocols" | 1 byte | boolean (0 for false, 255 for true) | +----------------------------------------------------+----------------------+--------------------------------------------------------------+ | protocols | Determined from data | $X_0 | +----------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "minimal_fees" | 1 byte | boolean (0 for false, 255 for true) | +----------------------------------------------------+----------------------+--------------------------------------------------------------+ | minimal_fees | Determined from data | $X_1 | +----------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "minimal_nanotez_per_gas_unit" | 1 byte | boolean (0 for false, 255 for true) | +----------------------------------------------------+----------------------+--------------------------------------------------------------+ | minimal_nanotez_per_gas_unit | Determined from data | $Z.t | +----------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "minimal_nanotez_per_byte" | 1 byte | boolean (0 for false, 255 for true) | +----------------------------------------------------+----------------------+--------------------------------------------------------------+ | minimal_nanotez_per_byte | Determined from data | $Z.t | +----------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "await_endorsements" | 1 byte | boolean (0 for false, 255 for true) | +----------------------------------------------------+----------------------+--------------------------------------------------------------+ | await_endorsements | 1 byte | boolean (0 for false, 255 for true) | +----------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "max_priority" | 1 byte | boolean (0 for false, 255 for true) | +----------------------------------------------------+----------------------+--------------------------------------------------------------+ | max_priority | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +----------------------------------------------------+----------------------+--------------------------------------------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +----------------------------------------------------+----------------------+--------------------------------------------------------------+ | delegates | Variable | sequence of $X_2 | +----------------------------------------------------+----------------------+--------------------------------------------------------------+ X_0 *** +-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | Unnamed field 0 | Variable | sequence of bytes | +-----------------------+----------+-------------------------+ Z.t *** A variable length sequence of bytes, encoding a Zarith number. Each byte has a running unary size bit: the most significant bit of each byte tells is this is the last byte in the sequence (0) or if there is more to read (1). The second most significant bit of the first byte is reserved for the sign (positive if zero). Size and sign bits ignored, data is then the binary representation of the absolute value of the number in little endian order. +------+----------------------+----------+ | Name | Size | Contents | +======+======================+==========+ | Z.t | Determined from data | bytes | +------+----------------------+----------+ X_2 *** +-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | Unnamed field 0 | Variable | bytes | +-----------------------+----------+-------------------------+
{ "id": integer ∈ [-2^30-2, 2^30+2], "pid": integer ∈ [-2^30-2, 2^30+2], "state": "running" } || { "id": integer ∈ [-2^30-2, 2^30+2], "pid": integer ∈ [-2^30-2, 2^30+2], "state": "exited", "code"?: integer ∈ [-2^30-2, 2^30+2] } || { "id": integer ∈ [-2^30-2, 2^30+2], "pid": integer ∈ [-2^30-2, 2^30+2], "state": "stopped", "code": integer ∈ [-2^30-2, 2^30+2] } || { "id": integer ∈ [-2^30-2, 2^30+2], "pid": integer ∈ [-2^30-2, 2^30+2], "state": "signaled", "code": integer ∈ [-2^30-2, 2^30+2] }
+-----------------+----------------------+--------------------------------------------------------------+ | Name | Size | Contents | +=================+======================+==============================================================+ | id | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +-----------------+----------------------+--------------------------------------------------------------+ | pid | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +-----------------+----------------------+--------------------------------------------------------------+ | Unnamed field 0 | Determined from data | $X_0 | +-----------------+----------------------+--------------------------------------------------------------+ X_0 (Determined from data, 8-bit tag) ************************************* process.running (tag 0) ======================= +------+--------+------------------------+ | Name | Size | Contents | +======+========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +------+--------+------------------------+ process.exited (tag 1) ====================== +------+---------+--------------------------------------------------------------+ | Name | Size | Contents | +======+=========+==============================================================+ | Tag | 1 byte | unsigned 8-bit integer | +------+---------+--------------------------------------------------------------+ | code | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +------+---------+--------------------------------------------------------------+ process.stopped (tag 2) ======================= +------+---------+--------------------------------------------------------------+ | Name | Size | Contents | +======+=========+==============================================================+ | Tag | 1 byte | unsigned 8-bit integer | +------+---------+--------------------------------------------------------------+ | code | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +------+---------+--------------------------------------------------------------+ process.signaled (tag 3) ======================== +------+---------+--------------------------------------------------------------+ | Name | Size | Contents | +======+=========+==============================================================+ | Tag | 1 byte | unsigned 8-bit integer | +------+---------+--------------------------------------------------------------+ | code | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +------+---------+--------------------------------------------------------------+
POST /admin/daemons/start_endorser
Start a endorser on this node.
{ "protocols"?: [ $Protocol_hash ... ], "delay"?: integer ∈ [-2^30-2, 2^30+2], "delegates": [ $unistring ... ] } $Protocol_hash: /* A Dune protocol ID (Base58Check-encoded) */ $unistring $unistring: /* Universal string representation Either a plain UTF8 string, or a sequence of bytes for strings that contain invalid byte sequences. */ string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
+---------------------------------+----------------------+--------------------------------------------------------------+ | Name | Size | Contents | +=================================+======================+==============================================================+ | ? presence of field "protocols" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------+----------------------+--------------------------------------------------------------+ | protocols | Determined from data | $X_0 | +---------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "delay" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------+----------------------+--------------------------------------------------------------+ | delay | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +---------------------------------+----------------------+--------------------------------------------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +---------------------------------+----------------------+--------------------------------------------------------------+ | delegates | Variable | sequence of $X_1 | +---------------------------------+----------------------+--------------------------------------------------------------+ X_0 *** +-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | Unnamed field 0 | Variable | sequence of bytes | +-----------------------+----------+-------------------------+ X_1 *** +-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | Unnamed field 0 | Variable | bytes | +-----------------------+----------+-------------------------+
{ "id": integer ∈ [-2^30-2, 2^30+2], "pid": integer ∈ [-2^30-2, 2^30+2], "state": "running" } || { "id": integer ∈ [-2^30-2, 2^30+2], "pid": integer ∈ [-2^30-2, 2^30+2], "state": "exited", "code"?: integer ∈ [-2^30-2, 2^30+2] } || { "id": integer ∈ [-2^30-2, 2^30+2], "pid": integer ∈ [-2^30-2, 2^30+2], "state": "stopped", "code": integer ∈ [-2^30-2, 2^30+2] } || { "id": integer ∈ [-2^30-2, 2^30+2], "pid": integer ∈ [-2^30-2, 2^30+2], "state": "signaled", "code": integer ∈ [-2^30-2, 2^30+2] }
+-----------------+----------------------+--------------------------------------------------------------+ | Name | Size | Contents | +=================+======================+==============================================================+ | id | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +-----------------+----------------------+--------------------------------------------------------------+ | pid | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +-----------------+----------------------+--------------------------------------------------------------+ | Unnamed field 0 | Determined from data | $X_0 | +-----------------+----------------------+--------------------------------------------------------------+ X_0 (Determined from data, 8-bit tag) ************************************* process.running (tag 0) ======================= +------+--------+------------------------+ | Name | Size | Contents | +======+========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +------+--------+------------------------+ process.exited (tag 1) ====================== +------+---------+--------------------------------------------------------------+ | Name | Size | Contents | +======+=========+==============================================================+ | Tag | 1 byte | unsigned 8-bit integer | +------+---------+--------------------------------------------------------------+ | code | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +------+---------+--------------------------------------------------------------+ process.stopped (tag 2) ======================= +------+---------+--------------------------------------------------------------+ | Name | Size | Contents | +======+=========+==============================================================+ | Tag | 1 byte | unsigned 8-bit integer | +------+---------+--------------------------------------------------------------+ | code | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +------+---------+--------------------------------------------------------------+ process.signaled (tag 3) ======================== +------+---------+--------------------------------------------------------------+ | Name | Size | Contents | +======+=========+==============================================================+ | Tag | 1 byte | unsigned 8-bit integer | +------+---------+--------------------------------------------------------------+ | code | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +------+---------+--------------------------------------------------------------+
GET /chains/<chain_id>/blocks?[length=<int>]&(head=<block_hash>)*&[min_date=<date>]
Lists known heads of the blockchain sorted with decreasing fitness. Optional arguments allows to returns the list of predecessors for known heads or the list of predecessors for a given list of blocks.
Optional query arguments :
- length = <int> : The requested number of predecessors to returns (per requested head).
- head = <block_hash> : An empty argument requests blocks from the current heads. A non empty list allow to request specific fragment of the chain.
- min_date = <date> : When `min_date` is provided, heads with a timestamp before `min_date` are filtered out
[ [ $block_hash ... ] ... ] $block_hash: /* A block identifier (Base58Check-encoded) */ $unistring $unistring: /* Universal string representation Either a plain UTF8 string, or a sequence of bytes for strings that contain invalid byte sequences. */ string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
+-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | Unnamed field 0 | Variable | sequence of $X_0 | +-----------------------+----------+-------------------------+ X_0 *** +-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | Unnamed field 0 | Variable | sequence of bytes | +-----------------------+----------+-------------------------+
GET /chains/<chain_id>/chain_id
The chain unique identifier.
$Chain_id $Chain_id: /* Network identifier (Base58Check-encoded) */ $unistring $unistring: /* Universal string representation Either a plain UTF8 string, or a sequence of bytes for strings that contain invalid byte sequences. */ string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
+----------+---------+----------+ | Name | Size | Contents | +==========+=========+==========+ | Chain_id | 4 bytes | bytes | +----------+---------+----------+
GET /chains/<chain_id>/checkpoint
The current checkpoint for this chain.
{ "block": $block_header, "save_point": integer ∈ [-2^31-2, 2^31+2], "caboose": integer ∈ [-2^31-2, 2^31+2], "history_mode": "full" | "archive" | "rolling" } $Context_hash: /* A hash of context (Base58Check-encoded) */ $unistring $Operation_list_list_hash: /* A list of list of operations (Base58Check-encoded) */ $unistring $block_hash: /* A block identifier (Base58Check-encoded) */ $unistring $block_header: /* Block header Block header. It contains both shell and protocol specific data. */ { "level": integer ∈ [-2^31-2, 2^31+2], "proto": integer ∈ [0, 255], "predecessor": $block_hash, "timestamp": $timestamp.protocol, "validation_pass": integer ∈ [0, 255], "operations_hash": $Operation_list_list_hash, "fitness": $fitness, "context": $Context_hash, "protocol_data": /^[a-zA-Z0-9]+$/ } $fitness: /* Block fitness The fitness, or score, of a block, that allow the Dune to decide which chain is the best. A fitness value is a list of byte sequences. They are compared as follows: shortest lists are smaller; lists of the same length are compared according to the lexicographical order. */ [ /^[a-zA-Z0-9]+$/ ... ] $int64: /* 64 bit integers Decimal representation of 64 bit integers */ string $timestamp.protocol: /* A timestamp as seen by the protocol: second-level precision, epoch based. */ $timestamp.rfc || $int64 $timestamp.rfc: /* RFC 3339 formatted timestamp A date in RFC 3339 notation. */ $unistring $unistring: /* Universal string representation Either a plain UTF8 string, or a sequence of bytes for strings that contain invalid byte sequences. */ string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
+--------------+----------+----------------------------------------------------------+ | Name | Size | Contents | +==============+==========+==========================================================+ | block | Variable | $block_header | +--------------+----------+----------------------------------------------------------+ | save_point | 4 bytes | signed 32-bit integer | +--------------+----------+----------------------------------------------------------+ | caboose | 4 bytes | signed 32-bit integer | +--------------+----------+----------------------------------------------------------+ | history_mode | 1 byte | unsigned 8-bit integer encoding an enumeration (see X_0) | +--------------+----------+----------------------------------------------------------+ fitness.elem ************ +-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | Unnamed field 0 | Variable | bytes | +-----------------------+----------+-------------------------+ block_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 | +----------------------------+----------+---------------------------+ | protocol_data | Variable | bytes | +----------------------------+----------+---------------------------+ X_0 (Enumeration: unsigned 8-bit integer): ****************************************** +-------------+----------------+ | Case number | Encoded string | +=============+================+ | 0 | archive | +-------------+----------------+ | 1 | full | +-------------+----------------+ | 2 | rolling | +-------------+----------------+
GET /chains/<chain_id>/invalid_blocks
Lists blocks that have been declared invalid along with the errors that led to them being declared invalid.
[ { "block": $block_hash, "level": integer ∈ [-2^31-2, 2^31+2], "errors": $error } ... ] $block_hash: /* A block identifier (Base58Check-encoded) */ $unistring $error: /* The full list of error is available with the global RPC `GET errors` */ any $unistring: /* Universal string representation Either a plain UTF8 string, or a sequence of bytes for strings that contain invalid byte sequences. */ string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
+-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | Unnamed field 0 | Variable | sequence of $X_0 | +-----------------------+----------+-------------------------+ X_0 *** +--------------------------+----------+-------------------------+ | Name | Size | Contents | +==========================+==========+=========================+ | block | 32 bytes | bytes | +--------------------------+----------+-------------------------+ | level | 4 bytes | signed 32-bit integer | +--------------------------+----------+-------------------------+ | # bytes in field "error" | 4 bytes | unsigned 30-bit integer | +--------------------------+----------+-------------------------+ | errors | Variable | bytes | +--------------------------+----------+-------------------------+
GET /chains/<chain_id>/invalid_blocks/<block_hash>
The errors that appears during the block (in)validation.
{ "block": $block_hash, "level": integer ∈ [-2^31-2, 2^31+2], "errors": $error } $block_hash: /* A block identifier (Base58Check-encoded) */ $unistring $error: /* The full list of error is available with the global RPC `GET errors` */ any $unistring: /* Universal string representation Either a plain UTF8 string, or a sequence of bytes for strings that contain invalid byte sequences. */ string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
+--------------------------+----------+-------------------------+ | Name | Size | Contents | +==========================+==========+=========================+ | block | 32 bytes | bytes | +--------------------------+----------+-------------------------+ | level | 4 bytes | signed 32-bit integer | +--------------------------+----------+-------------------------+ | # bytes in field "error" | 4 bytes | unsigned 30-bit integer | +--------------------------+----------+-------------------------+ | errors | Variable | bytes | +--------------------------+----------+-------------------------+
DELETE /chains/<chain_id>/invalid_blocks/<block_hash>
Remove an invalid block for the Dune storage
{ }
+-----------------+---------+----------------------------------------------------+ | Name | Size | Contents | +=================+=========+====================================================+ | Unnamed field 0 | 0 bytes | placeholder (not actually present in the encoding) | +-----------------+---------+----------------------------------------------------+
GET /describe?[recurse=<bool>]
RPCs documentation and input/output schema
Optional query arguments :
- recurse = <bool>
$service_tree $layout: { "kind": "Zero_width" } || { "size": "Int32" | "Int16" | "Uint16" | "Int64" | "Int8" | "Uint8", "kind": "Int" } || { "kind": "Bool" } || { "min": integer ∈ [-2^30-2, 2^30+2], "max": integer ∈ [-2^30-2, 2^30+2], "kind": "RangedInt" } || { "min": number, "max": number, "kind": "RangedFloat" } || { "kind": "Float" } || { "kind": "Bytes" } || { "kind": "String" } || { "size": "Int16" | "Uint16" | "Int8" | "Uint8", "reference": $unistring, "kind": "Enum" } || { "layout": $layout, "kind": "Seq", "max_length"?: integer ∈ [-2^30-2, 2^30+2] } || { "name": $unistring, "kind": "Ref" } || { "kind": "Padding" } $schema.field: { "name": $unistring, "layout": $layout, "data_kind": $schema.kind, "kind": "named" } || { "layout": $layout, "kind": "anon", "data_kind": $schema.kind } || { "kind": "dyn", "name"?: $unistring, "num_fields": integer ∈ [-2^30-2, 2^30+2], "size": "Uint30" | "Uint16" | "Uint8" } || { "kind": "option_indicator", "name": $unistring } $schema.kind: { "size": integer ∈ [-2^30-2, 2^30+2], "kind": "Float" } || { "kind": "Dynamic" } || { "kind": "Variable" } $service_tree: { "static": { "get_service"?: { "meth": "PATCH" | "GET" | "POST" | "PUT" | "DELETE", "path": [ $unistring || { "id": "single", "name": $unistring, "descr"?: $unistring } || { "id": "multiple", "name": $unistring, "descr"?: $unistring } ... ], "description"?: $unistring, "query": [ { "name": $unistring, "description"?: $unistring, "kind": { "single": { "id": "single", "name": $unistring, "descr"?: $unistring } } || { "optional": { "id": "single", "name": $unistring, "descr"?: $unistring } } || { "flag": { } } || { "multi": { "id": "single", "name": $unistring, "descr"?: $unistring } } } ... ], "input"?: { "json_schema": any, "binary_schema": { "toplevel": { "fields": [ $schema.field ... ] } || { "tag_size": "Uint16" | "Uint8", "kind": $schema.kind, "cases": [ $union case ... ] } || { "size": "Int16" | "Uint16" | "Int8" | "Uint8", "cases": [ [ integer ∈ [-2^30-2, 2^30+2], $unistring ] ... ] }, "fields": [ { "description": { "title": $unistring, "description"?: $unistring }, "encoding": { "fields": [ $schema.field ... ] } || { "tag_size": "Uint16" | "Uint8", "kind": $schema.kind, "cases": [ $union case ... ] } || { "size": "Int16" | "Uint16" | "Int8" | "Uint8", "cases": [ [ integer ∈ [-2^30-2, 2^30+2], $unistring ] ... ] } } ... ] } }, "output": { "json_schema": any, "binary_schema": { "toplevel": { "fields": [ $schema.field ... ] } || { "tag_size": "Uint16" | "Uint8", "kind": $schema.kind, "cases": [ $union case ... ] } || { "size": "Int16" | "Uint16" | "Int8" | "Uint8", "cases": [ [ integer ∈ [-2^30-2, 2^30+2], $unistring ] ... ] }, "fields": [ { "description": { "title": $unistring, "description"?: $unistring }, "encoding": { "fields": [ $schema.field ... ] } || { "tag_size": "Uint16" | "Uint8", "kind": $schema.kind, "cases": [ $union case ... ] } || { "size": "Int16" | "Uint16" | "Int8" | "Uint8", "cases": [ [ integer ∈ [-2^30-2, 2^30+2], $unistring ] ... ] } } ... ] } }, "error": { "json_schema": any, "binary_schema": { "toplevel": { "fields": [ $schema.field ... ] } || { "tag_size": "Uint16" | "Uint8", "kind": $schema.kind, "cases": [ $union case ... ] } || { "size": "Int16" | "Uint16" | "Int8" | "Uint8", "cases": [ [ integer ∈ [-2^30-2, 2^30+2], $unistring ] ... ] }, "fields": [ { "description": { "title": $unistring, "description"?: $unistring }, "encoding": { "fields": [ $schema.field ... ] } || { "tag_size": "Uint16" | "Uint8", "kind": $schema.kind, "cases": [ $union case ... ] } || { "size": "Int16" | "Uint16" | "Int8" | "Uint8", "cases": [ [ integer ∈ [-2^30-2, 2^30+2], $unistring ] ... ] } } ... ] } } }, "post_service"?: { "meth": "PATCH" | "GET" | "POST" | "PUT" | "DELETE", "path": [ $unistring || { "id": "single", "name": $unistring, "descr"?: $unistring } || { "id": "multiple", "name": $unistring, "descr"?: $unistring } ... ], "description"?: $unistring, "query": [ { "name": $unistring, "description"?: $unistring, "kind": { "single": { "id": "single", "name": $unistring, "descr"?: $unistring } } || { "optional": { "id": "single", "name": $unistring, "descr"?: $unistring } } || { "flag": { } } || { "multi": { "id": "single", "name": $unistring, "descr"?: $unistring } } } ... ], "input"?: { "json_schema": any, "binary_schema": { "toplevel": { "fields": [ $schema.field ... ] } || { "tag_size": "Uint16" | "Uint8", "kind": $schema.kind, "cases": [ $union case ... ] } || { "size": "Int16" | "Uint16" | "Int8" | "Uint8", "cases": [ [ integer ∈ [-2^30-2, 2^30+2], $unistring ] ... ] }, "fields": [ { "description": { "title": $unistring, "description"?: $unistring }, "encoding": { "fields": [ $schema.field ... ] } || { "tag_size": "Uint16" | "Uint8", "kind": $schema.kind, "cases": [ $union case ... ] } || { "size": "Int16" | "Uint16" | "Int8" | "Uint8", "cases": [ [ integer ∈ [-2^30-2, 2^30+2], $unistring ] ... ] } } ... ] } }, "output": { "json_schema": any, "binary_schema": { "toplevel": { "fields": [ $schema.field ... ] } || { "tag_size": "Uint16" | "Uint8", "kind": $schema.kind, "cases": [ $union case ... ] } || { "size": "Int16" | "Uint16" | "Int8" | "Uint8", "cases": [ [ integer ∈ [-2^30-2, 2^30+2], $unistring ] ... ] }, "fields": [ { "description": { "title": $unistring, "description"?: $unistring }, "encoding": { "fields": [ $schema.field ... ] } || { "tag_size": "Uint16" | "Uint8", "kind": $schema.kind, "cases": [ $union case ... ] } || { "size": "Int16" | "Uint16" | "Int8" | "Uint8", "cases": [ [ integer ∈ [-2^30-2, 2^30+2], $unistring ] ... ] } } ... ] } }, "error": { "json_schema": any, "binary_schema": { "toplevel": { "fields": [ $schema.field ... ] } || { "tag_size": "Uint16" | "Uint8", "kind": $schema.kind, "cases": [ $union case ... ] } || { "size": "Int16" | "Uint16" | "Int8" | "Uint8", "cases": [ [ integer ∈ [-2^30-2, 2^30+2], $unistring ] ... ] }, "fields": [ { "description": { "title": $unistring, "description"?: $unistring }, "encoding": { "fields": [ $schema.field ... ] } || { "tag_size": "Uint16" | "Uint8", "kind": $schema.kind, "cases": [ $union case ... ] } || { "size": "Int16" | "Uint16" | "Int8" | "Uint8", "cases": [ [ integer ∈ [-2^30-2, 2^30+2], $unistring ] ... ] } } ... ] } } }, "delete_service"?: { "meth": "PATCH" | "GET" | "POST" | "PUT" | "DELETE", "path": [ $unistring || { "id": "single", "name": $unistring, "descr"?: $unistring } || { "id": "multiple", "name": $unistring, "descr"?: $unistring } ... ], "description"?: $unistring, "query": [ { "name": $unistring, "description"?: $unistring, "kind": { "single": { "id": "single", "name": $unistring, "descr"?: $unistring } } || { "optional": { "id": "single", "name": $unistring, "descr"?: $unistring } } || { "flag": { } } || { "multi": { "id": "single", "name": $unistring, "descr"?: $unistring } } } ... ], "input"?: { "json_schema": any, "binary_schema": { "toplevel": { "fields": [ $schema.field ... ] } || { "tag_size": "Uint16" | "Uint8", "kind": $schema.kind, "cases": [ $union case ... ] } || { "size": "Int16" | "Uint16" | "Int8" | "Uint8", "cases": [ [ integer ∈ [-2^30-2, 2^30+2], $unistring ] ... ] }, "fields": [ { "description": { "title": $unistring, "description"?: $unistring }, "encoding": { "fields": [ $schema.field ... ] } || { "tag_size": "Uint16" | "Uint8", "kind": $schema.kind, "cases": [ $union case ... ] } || { "size": "Int16" | "Uint16" | "Int8" | "Uint8", "cases": [ [ integer ∈ [-2^30-2, 2^30+2], $unistring ] ... ] } } ... ] } }, "output": { "json_schema": any, "binary_schema": { "toplevel": { "fields": [ $schema.field ... ] } || { "tag_size": "Uint16" | "Uint8", "kind": $schema.kind, "cases": [ $union case ... ] } || { "size": "Int16" | "Uint16" | "Int8" | "Uint8", "cases": [ [ integer ∈ [-2^30-2, 2^30+2], $unistring ] ... ] }, "fields": [ { "description": { "title": $unistring, "description"?: $unistring }, "encoding": { "fields": [ $schema.field ... ] } || { "tag_size": "Uint16" | "Uint8", "kind": $schema.kind, "cases": [ $union case ... ] } || { "size": "Int16" | "Uint16" | "Int8" | "Uint8", "cases": [ [ integer ∈ [-2^30-2, 2^30+2], $unistring ] ... ] } } ... ] } }, "error": { "json_schema": any, "binary_schema": { "toplevel": { "fields": [ $schema.field ... ] } || { "tag_size": "Uint16" | "Uint8", "kind": $schema.kind, "cases": [ $union case ... ] } || { "size": "Int16" | "Uint16" | "Int8" | "Uint8", "cases": [ [ integer ∈ [-2^30-2, 2^30+2], $unistring ] ... ] }, "fields": [ { "description": { "title": $unistring, "description"?: $unistring }, "encoding": { "fields": [ $schema.field ... ] } || { "tag_size": "Uint16" | "Uint8", "kind": $schema.kind, "cases": [ $union case ... ] } || { "size": "Int16" | "Uint16" | "Int8" | "Uint8", "cases": [ [ integer ∈ [-2^30-2, 2^30+2], $unistring ] ... ] } } ... ] } } }, "put_service"?: { "meth": "PATCH" | "GET" | "POST" | "PUT" | "DELETE", "path": [ $unistring || { "id": "single", "name": $unistring, "descr"?: $unistring } || { "id": "multiple", "name": $unistring, "descr"?: $unistring } ... ], "description"?: $unistring, "query": [ { "name": $unistring, "description"?: $unistring, "kind": { "single": { "id": "single", "name": $unistring, "descr"?: $unistring } } || { "optional": { "id": "single", "name": $unistring, "descr"?: $unistring } } || { "flag": { } } || { "multi": { "id": "single", "name": $unistring, "descr"?: $unistring } } } ... ], "input"?: { "json_schema": any, "binary_schema": { "toplevel": { "fields": [ $schema.field ... ] } || { "tag_size": "Uint16" | "Uint8", "kind": $schema.kind, "cases": [ $union case ... ] } || { "size": "Int16" | "Uint16" | "Int8" | "Uint8", "cases": [ [ integer ∈ [-2^30-2, 2^30+2], $unistring ] ... ] }, "fields": [ { "description": { "title": $unistring, "description"?: $unistring }, "encoding": { "fields": [ $schema.field ... ] } || { "tag_size": "Uint16" | "Uint8", "kind": $schema.kind, "cases": [ $union case ... ] } || { "size": "Int16" | "Uint16" | "Int8" | "Uint8", "cases": [ [ integer ∈ [-2^30-2, 2^30+2], $unistring ] ... ] } } ... ] } }, "output": { "json_schema": any, "binary_schema": { "toplevel": { "fields": [ $schema.field ... ] } || { "tag_size": "Uint16" | "Uint8", "kind": $schema.kind, "cases": [ $union case ... ] } || { "size": "Int16" | "Uint16" | "Int8" | "Uint8", "cases": [ [ integer ∈ [-2^30-2, 2^30+2], $unistring ] ... ] }, "fields": [ { "description": { "title": $unistring, "description"?: $unistring }, "encoding": { "fields": [ $schema.field ... ] } || { "tag_size": "Uint16" | "Uint8", "kind": $schema.kind, "cases": [ $union case ... ] } || { "size": "Int16" | "Uint16" | "Int8" | "Uint8", "cases": [ [ integer ∈ [-2^30-2, 2^30+2], $unistring ] ... ] } } ... ] } }, "error": { "json_schema": any, "binary_schema": { "toplevel": { "fields": [ $schema.field ... ] } || { "tag_size": "Uint16" | "Uint8", "kind": $schema.kind, "cases": [ $union case ... ] } || { "size": "Int16" | "Uint16" | "Int8" | "Uint8", "cases": [ [ integer ∈ [-2^30-2, 2^30+2], $unistring ] ... ] }, "fields": [ { "description": { "title": $unistring, "description"?: $unistring }, "encoding": { "fields": [ $schema.field ... ] } || { "tag_size": "Uint16" | "Uint8", "kind": $schema.kind, "cases": [ $union case ... ] } || { "size": "Int16" | "Uint16" | "Int8" | "Uint8", "cases": [ [ integer ∈ [-2^30-2, 2^30+2], $unistring ] ... ] } } ... ] } } }, "patch_service"?: { "meth": "PATCH" | "GET" | "POST" | "PUT" | "DELETE", "path": [ $unistring || { "id": "single", "name": $unistring, "descr"?: $unistring } || { "id": "multiple", "name": $unistring, "descr"?: $unistring } ... ], "description"?: $unistring, "query": [ { "name": $unistring, "description"?: $unistring, "kind": { "single": { "id": "single", "name": $unistring, "descr"?: $unistring } } || { "optional": { "id": "single", "name": $unistring, "descr"?: $unistring } } || { "flag": { } } || { "multi": { "id": "single", "name": $unistring, "descr"?: $unistring } } } ... ], "input"?: { "json_schema": any, "binary_schema": { "toplevel": { "fields": [ $schema.field ... ] } || { "tag_size": "Uint16" | "Uint8", "kind": $schema.kind, "cases": [ $union case ... ] } || { "size": "Int16" | "Uint16" | "Int8" | "Uint8", "cases": [ [ integer ∈ [-2^30-2, 2^30+2], $unistring ] ... ] }, "fields": [ { "description": { "title": $unistring, "description"?: $unistring }, "encoding": { "fields": [ $schema.field ... ] } || { "tag_size": "Uint16" | "Uint8", "kind": $schema.kind, "cases": [ $union case ... ] } || { "size": "Int16" | "Uint16" | "Int8" | "Uint8", "cases": [ [ integer ∈ [-2^30-2, 2^30+2], $unistring ] ... ] } } ... ] } }, "output": { "json_schema": any, "binary_schema": { "toplevel": { "fields": [ $schema.field ... ] } || { "tag_size": "Uint16" | "Uint8", "kind": $schema.kind, "cases": [ $union case ... ] } || { "size": "Int16" | "Uint16" | "Int8" | "Uint8", "cases": [ [ integer ∈ [-2^30-2, 2^30+2], $unistring ] ... ] }, "fields": [ { "description": { "title": $unistring, "description"?: $unistring }, "encoding": { "fields": [ $schema.field ... ] } || { "tag_size": "Uint16" | "Uint8", "kind": $schema.kind, "cases": [ $union case ... ] } || { "size": "Int16" | "Uint16" | "Int8" | "Uint8", "cases": [ [ integer ∈ [-2^30-2, 2^30+2], $unistring ] ... ] } } ... ] } }, "error": { "json_schema": any, "binary_schema": { "toplevel": { "fields": [ $schema.field ... ] } || { "tag_size": "Uint16" | "Uint8", "kind": $schema.kind, "cases": [ $union case ... ] } || { "size": "Int16" | "Uint16" | "Int8" | "Uint8", "cases": [ [ integer ∈ [-2^30-2, 2^30+2], $unistring ] ... ] }, "fields": [ { "description": { "title": $unistring, "description"?: $unistring }, "encoding": { "fields": [ $schema.field ... ] } || { "tag_size": "Uint16" | "Uint8", "kind": $schema.kind, "cases": [ $union case ... ] } || { "size": "Int16" | "Uint16" | "Int8" | "Uint8", "cases": [ [ integer ∈ [-2^30-2, 2^30+2], $unistring ] ... ] } } ... ] } } }, "subdirs"?: { "suffixes": [ { "name": $unistring, "tree": $service_tree } ... ] } || { "dynamic_dispatch": { "arg": { "id": "single", "name": $unistring, "descr"?: $unistring }, "tree": $service_tree } } } } || { "dynamic": $unistring || null } $union case: { "tag": integer ∈ [-2^30-2, 2^30+2], "fields": [ $schema.field ... ], "name"?: $unistring } $unistring: /* Universal string representation Either a plain UTF8 string, or a sequence of bytes for strings that contain invalid byte sequences. */ string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
+-----------------+----------------------+---------------+ | Name | Size | Contents | +=================+======================+===============+ | Unnamed field 0 | Determined from data | $service_tree | +-----------------+----------------------+---------------+ service_tree (Determined from data, 8-bit tag) ********************************************** Static (tag 0) ============== +--------+----------------------+------------------------+ | Name | Size | Contents | +========+======================+========================+ | Tag | 1 byte | unsigned 8-bit integer | +--------+----------------------+------------------------+ | static | Determined from data | $X_1 | +--------+----------------------+------------------------+ Dynamic (tag 1) =============== +---------+----------------------+------------------------+ | Name | Size | Contents | +=========+======================+========================+ | Tag | 1 byte | unsigned 8-bit integer | +---------+----------------------+------------------------+ | dynamic | Determined from data | $X_0 | +---------+----------------------+------------------------+ X_1 *** +--------------------------------------+----------------------+-------------------------------------+ | Name | Size | Contents | +======================================+======================+=====================================+ | ? presence of field "get_service" | 1 byte | boolean (0 for false, 255 for true) | +--------------------------------------+----------------------+-------------------------------------+ | get_service | Determined from data | $X_2 | +--------------------------------------+----------------------+-------------------------------------+ | ? presence of field "post_service" | 1 byte | boolean (0 for false, 255 for true) | +--------------------------------------+----------------------+-------------------------------------+ | post_service | Determined from data | $X_2 | +--------------------------------------+----------------------+-------------------------------------+ | ? presence of field "delete_service" | 1 byte | boolean (0 for false, 255 for true) | +--------------------------------------+----------------------+-------------------------------------+ | delete_service | Determined from data | $X_2 | +--------------------------------------+----------------------+-------------------------------------+ | ? presence of field "put_service" | 1 byte | boolean (0 for false, 255 for true) | +--------------------------------------+----------------------+-------------------------------------+ | put_service | Determined from data | $X_2 | +--------------------------------------+----------------------+-------------------------------------+ | ? presence of field "patch_service" | 1 byte | boolean (0 for false, 255 for true) | +--------------------------------------+----------------------+-------------------------------------+ | patch_service | Determined from data | $X_2 | +--------------------------------------+----------------------+-------------------------------------+ | ? presence of field "subdirs" | 1 byte | boolean (0 for false, 255 for true) | +--------------------------------------+----------------------+-------------------------------------+ | subdirs | Determined from data | $X_936 | +--------------------------------------+----------------------+-------------------------------------+ X_936 (Determined from data, 8-bit tag) *************************************** Suffixes (tag 0) ================ +-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------------+----------+-------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | suffixes | Variable | sequence of $X_935 | +-----------------------+----------+-------------------------+ Arg (tag 1) =========== +------------------+----------------------+------------------------+ | Name | Size | Contents | +==================+======================+========================+ | Tag | 1 byte | unsigned 8-bit integer | +------------------+----------------------+------------------------+ | dynamic_dispatch | Determined from data | $X_932 | +------------------+----------------------+------------------------+ X_935 ***** +-----------------------+----------------------+-------------------------+ | Name | Size | Contents | +=======================+======================+=========================+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------------------+-------------------------+ | name | Variable | bytes | +-----------------------+----------------------+-------------------------+ | tree | Determined from data | $service_tree | +-----------------------+----------------------+-------------------------+ X_932 ***** +------+----------------------+---------------+ | Name | Size | Contents | +======+======================+===============+ | arg | Determined from data | $X_10 | +------+----------------------+---------------+ | tree | Determined from data | $service_tree | +------+----------------------+---------------+ X_934 ***** +-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | Unnamed field 0 | Variable | bytes | +-----------------------+----------+-------------------------+ X_875 ***** +-----------------------+----------------------+-------------------------+ | Name | Size | Contents | +=======================+======================+=========================+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------------------+-------------------------+ | json_schema | Variable | bytes | +-----------------------+----------------------+-------------------------+ | binary_schema | Determined from data | $X_18 | +-----------------------+----------------------+-------------------------+ X_903 ***** +-------------+----------------------+----------+ | Name | Size | Contents | +=============+======================+==========+ | description | Determined from data | $X_46 | +-------------+----------------------+----------+ | encoding | Determined from data | $X_44 | +-------------+----------------------+----------+ X_921 ***** +-----------------------+----------------------+-------------------------+ | Name | Size | Contents | +=======================+======================+=========================+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------------------+-------------------------+ | Unnamed field 0 | Determined from data | $X_32 | +-----------------------+----------------------+-------------------------+ schema.kind (Determined from data, 8-bit tag) ********************************************* Dynamic (tag 0) =============== +------+--------+------------------------+ | Name | Size | Contents | +======+========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +------+--------+------------------------+ Variable (tag 1) ================ +------+--------+------------------------+ | Name | Size | Contents | +======+========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +------+--------+------------------------+ Fixed (tag 2) ============= +------+---------+--------------------------------------------------------------+ | Name | Size | Contents | +======+=========+==============================================================+ | Tag | 1 byte | unsigned 8-bit integer | +------+---------+--------------------------------------------------------------+ | size | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +------+---------+--------------------------------------------------------------+ X_928 (Enumeration: unsigned 8-bit integer): ******************************************** +-------------+----------------+ | Case number | Encoded string | +=============+================+ | 0 | Int64 | +-------------+----------------+ | 1 | Int32 | +-------------+----------------+ | 2 | Int16 | +-------------+----------------+ | 3 | Int8 | +-------------+----------------+ | 4 | Uint16 | +-------------+----------------+ | 5 | Uint8 | +-------------+----------------+ X_927 (Enumeration: unsigned 8-bit integer): ******************************************** +-------------+----------------+ | Case number | Encoded string | +=============+================+ | 0 | Int16 | +-------------+----------------+ | 1 | Int8 | +-------------+----------------+ | 2 | Uint16 | +-------------+----------------+ | 3 | Uint8 | +-------------+----------------+ X_923 (Enumeration: unsigned 8-bit integer): ******************************************** +-------------+----------------+ | Case number | Encoded string | +=============+================+ | 0 | Uint30 | +-------------+----------------+ | 1 | Uint16 | +-------------+----------------+ | 2 | Uint8 | +-------------+----------------+ X_909 (Enumeration: unsigned 8-bit integer): ******************************************** +-------------+----------------+ | Case number | Encoded string | +=============+================+ | 0 | Uint16 | +-------------+----------------+ | 1 | Uint8 | +-------------+----------------+ X_760 (Determined from data, 8-bit tag) *************************************** Single (tag 0) ============== +--------+----------------------+------------------------+ | Name | Size | Contents | +========+======================+========================+ | Tag | 1 byte | unsigned 8-bit integer | +--------+----------------------+------------------------+ | single | Determined from data | $X_10 | +--------+----------------------+------------------------+ Optional (tag 1) ================ +----------+----------------------+------------------------+ | Name | Size | Contents | +==========+======================+========================+ | Tag | 1 byte | unsigned 8-bit integer | +----------+----------------------+------------------------+ | optional | Determined from data | $X_10 | +----------+----------------------+------------------------+ Flag (tag 2) ============ +------+--------+------------------------+ | Name | Size | Contents | +======+========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +------+--------+------------------------+ Multi (tag 3) ============= +-------+----------------------+------------------------+ | Name | Size | Contents | +=======+======================+========================+ | Tag | 1 byte | unsigned 8-bit integer | +-------+----------------------+------------------------+ | multi | Determined from data | $X_10 | +-------+----------------------+------------------------+ X_747 (Enumeration: unsigned 8-bit integer): ******************************************** +-------------+----------------+ | Case number | Encoded string | +=============+================+ | 0 | GET | +-------------+----------------+ | 1 | POST | +-------------+----------------+ | 2 | DELETE | +-------------+----------------+ | 3 | PUT | +-------------+----------------+ | 4 | PATCH | +-------------+----------------+ X_2 *** +-----------------------------------+----------------------+------------------------------------------------------------+ | Name | Size | Contents | +===================================+======================+============================================================+ | meth | 1 byte | unsigned 8-bit integer encoding an enumeration (see X_747) | +-----------------------------------+----------------------+------------------------------------------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------------------+----------------------+------------------------------------------------------------+ | path | Variable | sequence of $X_6 | +-----------------------------------+----------------------+------------------------------------------------------------+ | ? presence of field "description" | 1 byte | boolean (0 for false, 255 for true) | +-----------------------------------+----------------------+------------------------------------------------------------+ | description | Determined from data | $X_934 | +-----------------------------------+----------------------+------------------------------------------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------------------+----------------------+------------------------------------------------------------+ | query | Variable | sequence of $X_8 | +-----------------------------------+----------------------+------------------------------------------------------------+ | ? presence of field "input" | 1 byte | boolean (0 for false, 255 for true) | +-----------------------------------+----------------------+------------------------------------------------------------+ | input | Determined from data | $X_875 | +-----------------------------------+----------------------+------------------------------------------------------------+ | output | Determined from data | $X_875 | +-----------------------------------+----------------------+------------------------------------------------------------+ | error | Determined from data | $X_875 | +-----------------------------------+----------------------+------------------------------------------------------------+ X_18 **** +-----------------------+----------------------+-------------------------+ | Name | Size | Contents | +=======================+======================+=========================+ | toplevel | Determined from data | $X_44 | +-----------------------+----------------------+-------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------------------+-------------------------+ | fields | Variable | sequence of $X_903 | +-----------------------+----------------------+-------------------------+ X_46 **** +-----------------------------------+----------------------+-------------------------------------+ | Name | Size | Contents | +===================================+======================+=====================================+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------------------+----------------------+-------------------------------------+ | title | Variable | bytes | +-----------------------------------+----------------------+-------------------------------------+ | ? presence of field "description" | 1 byte | boolean (0 for false, 255 for true) | +-----------------------------------+----------------------+-------------------------------------+ | description | Determined from data | $X_934 | +-----------------------------------+----------------------+-------------------------------------+ X_44 (Determined from data, 8-bit tag) ************************************** Obj (tag 0) =========== +-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------------+----------+-------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | fields | Variable | sequence of $X_921 | +-----------------------+----------+-------------------------+ Cases (tag 1) ============= +-----------------------+----------------------+------------------------------------------------------------+ | Name | Size | Contents | +=======================+======================+============================================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------------+----------------------+------------------------------------------------------------+ | tag_size | 1 byte | unsigned 8-bit integer encoding an enumeration (see X_909) | +-----------------------+----------------------+------------------------------------------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------------------+------------------------------------------------------------+ | kind | Determined from data | $schema.kind | +-----------------------+----------------------+------------------------------------------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------------------+------------------------------------------------------------+ | cases | Variable | sequence of $union case | +-----------------------+----------------------+------------------------------------------------------------+ Int_enum (tag 2) ================ +-----------------------+----------+------------------------------------------------------------+ | Name | Size | Contents | +=======================+==========+============================================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------------+----------+------------------------------------------------------------+ | size | 1 byte | unsigned 8-bit integer encoding an enumeration (see X_927) | +-----------------------+----------+------------------------------------------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+------------------------------------------------------------+ | cases | Variable | sequence of $X_20 | +-----------------------+----------+------------------------------------------------------------+ union case ********** +----------------------------+----------------------+--------------------------------------------------------------+ | Name | Size | Contents | +============================+======================+==============================================================+ | tag | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +----------------------------+----------------------+--------------------------------------------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +----------------------------+----------------------+--------------------------------------------------------------+ | fields | Variable | sequence of $X_921 | +----------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "name" | 1 byte | boolean (0 for false, 255 for true) | +----------------------------+----------------------+--------------------------------------------------------------+ | name | Determined from data | $X_934 | +----------------------------+----------------------+--------------------------------------------------------------+ X_32 (Determined from data, 8-bit tag) ************************************** Named_field (tag 0) =================== +-----------------------+----------------------+-------------------------+ | Name | Size | Contents | +=======================+======================+=========================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------------+----------------------+-------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------------------+-------------------------+ | name | Variable | bytes | +-----------------------+----------------------+-------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------------------+-------------------------+ | layout | Determined from data | $layout | +-----------------------+----------------------+-------------------------+ | data_kind | Determined from data | $schema.kind | +-----------------------+----------------------+-------------------------+ Anonymous_field (tag 1) ======================= +-----------------------+----------------------+-------------------------+ | Name | Size | Contents | +=======================+======================+=========================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------------+----------------------+-------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------------------+-------------------------+ | layout | Determined from data | $layout | +-----------------------+----------------------+-------------------------+ | data_kind | Determined from data | $schema.kind | +-----------------------+----------------------+-------------------------+ Dynamic_field (tag 2) ===================== +----------------------------+----------------------+--------------------------------------------------------------+ | Name | Size | Contents | +============================+======================+==============================================================+ | Tag | 1 byte | unsigned 8-bit integer | +----------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "name" | 1 byte | boolean (0 for false, 255 for true) | +----------------------------+----------------------+--------------------------------------------------------------+ | name | Determined from data | $X_934 | +----------------------------+----------------------+--------------------------------------------------------------+ | num_fields | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +----------------------------+----------------------+--------------------------------------------------------------+ | size | 1 byte | unsigned 8-bit integer encoding an enumeration (see X_923) | +----------------------------+----------------------+--------------------------------------------------------------+ Optional_field (tag 3) ====================== +-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------------+----------+-------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | name | Variable | bytes | +-----------------------+----------+-------------------------+ layout (Determined from data, 8-bit tag) **************************************** Zero_width (tag 0) ================== +------+--------+------------------------+ | Name | Size | Contents | +======+========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +------+--------+------------------------+ Int (tag 1) =========== +------+--------+------------------------------------------------------------+ | Name | Size | Contents | +======+========+============================================================+ | Tag | 1 byte | unsigned 8-bit integer | +------+--------+------------------------------------------------------------+ | size | 1 byte | unsigned 8-bit integer encoding an enumeration (see X_928) | +------+--------+------------------------------------------------------------+ Bool (tag 2) ============ +------+--------+------------------------+ | Name | Size | Contents | +======+========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +------+--------+------------------------+ RangedInt (tag 3) ================= +------+---------+--------------------------------------------------------------+ | Name | Size | Contents | +======+=========+==============================================================+ | Tag | 1 byte | unsigned 8-bit integer | +------+---------+--------------------------------------------------------------+ | min | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +------+---------+--------------------------------------------------------------+ | max | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +------+---------+--------------------------------------------------------------+ RangedFloat (tag 4) =================== +------+---------+----------------------------------------+ | Name | Size | Contents | +======+=========+========================================+ | Tag | 1 byte | unsigned 8-bit integer | +------+---------+----------------------------------------+ | min | 8 bytes | double-precision floating-point number | +------+---------+----------------------------------------+ | max | 8 bytes | double-precision floating-point number | +------+---------+----------------------------------------+ Float (tag 5) ============= +------+--------+------------------------+ | Name | Size | Contents | +======+========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +------+--------+------------------------+ Bytes (tag 6) ============= +------+--------+------------------------+ | Name | Size | Contents | +======+========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +------+--------+------------------------+ String (tag 7) ============== +------+--------+------------------------+ | Name | Size | Contents | +======+========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +------+--------+------------------------+ Enum (tag 8) ============ +-----------------------+----------+------------------------------------------------------------+ | Name | Size | Contents | +=======================+==========+============================================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------------+----------+------------------------------------------------------------+ | size | 1 byte | unsigned 8-bit integer encoding an enumeration (see X_927) | +-----------------------+----------+------------------------------------------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+------------------------------------------------------------+ | reference | Variable | bytes | +-----------------------+----------+------------------------------------------------------------+ Seq (tag 9) =========== +----------------------------------+----------------------+--------------------------------------------------------------+ | Name | Size | Contents | +==================================+======================+==============================================================+ | Tag | 1 byte | unsigned 8-bit integer | +----------------------------------+----------------------+--------------------------------------------------------------+ | layout | Determined from data | $layout | +----------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "max_length" | 1 byte | boolean (0 for false, 255 for true) | +----------------------------------+----------------------+--------------------------------------------------------------+ | max_length | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +----------------------------------+----------------------+--------------------------------------------------------------+ Ref (tag 10) ============ +-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------------+----------+-------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | name | Variable | bytes | +-----------------------+----------+-------------------------+ Padding (tag 11) ================ +------+--------+------------------------+ | Name | Size | Contents | +======+========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +------+--------+------------------------+ X_20 **** +-----------------+----------------------+--------------------------------------------------------------+ | Name | Size | Contents | +=================+======================+==============================================================+ | Unnamed field 0 | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +-----------------+----------------------+--------------------------------------------------------------+ | Unnamed field 1 | Determined from data | $X_934 | +-----------------+----------------------+--------------------------------------------------------------+ X_8 *** +-----------------------------------+----------------------+-------------------------------------+ | Name | Size | Contents | +===================================+======================+=====================================+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------------------+----------------------+-------------------------------------+ | name | Variable | bytes | +-----------------------------------+----------------------+-------------------------------------+ | ? presence of field "description" | 1 byte | boolean (0 for false, 255 for true) | +-----------------------------------+----------------------+-------------------------------------+ | description | Determined from data | $X_934 | +-----------------------------------+----------------------+-------------------------------------+ | kind | Determined from data | $X_760 | +-----------------------------------+----------------------+-------------------------------------+ X_10 **** +-----------------------------+----------------------+-------------------------------------+ | Name | Size | Contents | +=============================+======================+=====================================+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------------+----------------------+-------------------------------------+ | name | Variable | bytes | +-----------------------------+----------------------+-------------------------------------+ | ? presence of field "descr" | 1 byte | boolean (0 for false, 255 for true) | +-----------------------------+----------------------+-------------------------------------+ | descr | Determined from data | $X_934 | +-----------------------------+----------------------+-------------------------------------+ X_6 (Determined from data, 8-bit tag) ************************************* PStatic (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 | bytes | +-----------------------+----------+-------------------------+ PDynamic (tag 1) ================ +-----------------------------+----------------------+-------------------------------------+ | Name | Size | Contents | +=============================+======================+=====================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------------------+----------------------+-------------------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------------+----------------------+-------------------------------------+ | name | Variable | bytes | +-----------------------------+----------------------+-------------------------------------+ | ? presence of field "descr" | 1 byte | boolean (0 for false, 255 for true) | +-----------------------------+----------------------+-------------------------------------+ | descr | Determined from data | $X_934 | +-----------------------------+----------------------+-------------------------------------+ PDynamicTail (tag 2) ==================== +-----------------------------+----------------------+-------------------------------------+ | Name | Size | Contents | +=============================+======================+=====================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------------------+----------------------+-------------------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------------+----------------------+-------------------------------------+ | name | Variable | bytes | +-----------------------------+----------------------+-------------------------------------+ | ? presence of field "descr" | 1 byte | boolean (0 for false, 255 for true) | +-----------------------------+----------------------+-------------------------------------+ | descr | Determined from data | $X_934 | +-----------------------------+----------------------+-------------------------------------+ X_0 (Determined from data, 8-bit tag) ************************************* None (tag 0) ============ +-----------------+---------+----------------------------------------------------+ | Name | Size | Contents | +=================+=========+====================================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------+---------+----------------------------------------------------+ | Unnamed field 0 | 0 bytes | placeholder (not actually present in the encoding) | +-----------------+---------+----------------------------------------------------+ Some (tag 1) ============ +-----------------------+----------+-------------------------+ | 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 | +-----------------------+----------+-------------------------+
GET /dune/banned/peers
Return the list of banned peers.
[ { "id": $Crypto_box.Public_key_hash, "info": { "score": number, "trusted": boolean, "conn_metadata"?: { "disable_mempool": boolean, "private_node": boolean }, "peer_metadata": { "responses": { "sent": { "branch": $bignum, "head": $bignum, "block_header": $bignum, "operations": $bignum, "protocols": $bignum, "operation_hashes_for_block": $bignum, "operations_for_block": $bignum, "other": $bignum }, "failed": { "branch": $bignum, "head": $bignum, "block_header": $bignum, "operations": $bignum, "protocols": $bignum, "operation_hashes_for_block": $bignum, "operations_for_block": $bignum, "other": $bignum }, "received": { "branch": $bignum, "head": $bignum, "block_header": $bignum, "operations": $bignum, "protocols": $bignum, "operation_hashes_for_block": $bignum, "operations_for_block": $bignum, "other": $bignum }, "unexpected": $bignum, "outdated": $bignum }, "requests": { "sent": { "branch": $bignum, "head": $bignum, "block_header": $bignum, "operations": $bignum, "protocols": $bignum, "operation_hashes_for_block": $bignum, "operations_for_block": $bignum, "other": $bignum }, "received": { "branch": $bignum, "head": $bignum, "block_header": $bignum, "operations": $bignum, "protocols": $bignum, "operation_hashes_for_block": $bignum, "operations_for_block": $bignum, "other": $bignum }, "failed": { "branch": $bignum, "head": $bignum, "block_header": $bignum, "operations": $bignum, "protocols": $bignum, "operation_hashes_for_block": $bignum, "operations_for_block": $bignum, "other": $bignum }, "scheduled": { "branch": $bignum, "head": $bignum, "block_header": $bignum, "operations": $bignum, "protocols": $bignum, "operation_hashes_for_block": $bignum, "operations_for_block": $bignum, "other": $bignum } }, "valid_blocks": $bignum, "old_heads": $bignum, "prevalidator_results": { "cannot_download": $bignum, "cannot_parse": $bignum, "refused_by_prefilter": $bignum, "refused_by_postfilter": $bignum, "applied": $bignum, "branch_delayed": $bignum, "branch_refused": $bignum, "refused": $bignum, "duplicate": $bignum, "outdated": $bignum }, "unactivated_chains": $bignum, "inactive_chains": $bignum, "future_blocks_advertised": $bignum, "unadvertised": { "block": $bignum, "operations": $bignum, "protocol": $bignum }, "advertisements": { "sent": { "head": $bignum, "branch": $bignum }, "received": { "head": $bignum, "branch": $bignum } } }, "state": $p2p_peer.state, "reachable_at"?: $p2p_connection.id, "stat": $p2p_stat, "last_failed_connection"?: [ $p2p_connection.id, $timestamp.system ], "last_rejected_connection"?: [ $p2p_connection.id, $timestamp.system ], "last_established_connection"?: [ $p2p_connection.id, $timestamp.system ], "last_disconnection"?: [ $p2p_connection.id, $timestamp.system ], "last_seen"?: [ $p2p_connection.id, $timestamp.system ], "last_miss"?: [ $p2p_connection.id, $timestamp.system ] } } ... ] $Crypto_box.Public_key_hash: /* A Cryptobox public key ID (Base58Check-encoded) */ $unistring $bignum: /* Big number Decimal representation of a big number */ string $int64: /* 64 bit integers Decimal representation of 64 bit integers */ string $p2p_address: /* An address for locating peers. */ $unistring $p2p_connection.id: /* The identifier for a p2p connection. It includes an address and a port number. */ { "addr": $p2p_address, "port"?: integer ∈ [0, 2^16-1] } $p2p_peer.state: /* The state a peer connection can be in: accepted (when the connection is being established), running (when the connection is already established), disconnected (otherwise). */ "running" | "accepted" | "disconnected" $p2p_stat: /* Statistics about the p2p network. */ { "total_sent": $int64, "total_recv": $int64, "current_inflow": integer ∈ [-2^30-2, 2^30+2], "current_outflow": integer ∈ [-2^30-2, 2^30+2] } $timestamp.rfc: /* RFC 3339 formatted timestamp A date in RFC 3339 notation. */ $unistring $timestamp.system: /* A timestamp as seen by the underlying, local computer: subsecond-level precision, epoch or rfc3339 based. */ $timestamp.rfc || $int64 $unistring: /* Universal string representation Either a plain UTF8 string, or a sequence of bytes for strings that contain invalid byte sequences. */ string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
+-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | Unnamed field 0 | Variable | sequence of $X_0 | +-----------------------+----------+-------------------------+ X_2 *** +-----------------+--------+-------------------------------------+ | Name | Size | Contents | +=================+========+=====================================+ | disable_mempool | 1 byte | boolean (0 for false, 255 for true) | +-----------------+--------+-------------------------------------+ | private_node | 1 byte | boolean (0 for false, 255 for true) | +-----------------+--------+-------------------------------------+ X_4 *** +------------+----------------------+----------+ | Name | Size | Contents | +============+======================+==========+ | sent | Determined from data | $X_12 | +------------+----------------------+----------+ | failed | Determined from data | $X_12 | +------------+----------------------+----------+ | received | Determined from data | $X_12 | +------------+----------------------+----------+ | unexpected | Determined from data | $Z.t | +------------+----------------------+----------+ | outdated | Determined from data | $Z.t | +------------+----------------------+----------+ X_12 **** +----------------------------+----------------------+----------+ | Name | Size | Contents | +============================+======================+==========+ | branch | Determined from data | $Z.t | +----------------------------+----------------------+----------+ | head | Determined from data | $Z.t | +----------------------------+----------------------+----------+ | block_header | Determined from data | $Z.t | +----------------------------+----------------------+----------+ | operations | Determined from data | $Z.t | +----------------------------+----------------------+----------+ | protocols | Determined from data | $Z.t | +----------------------------+----------------------+----------+ | operation_hashes_for_block | Determined from data | $Z.t | +----------------------------+----------------------+----------+ | operations_for_block | Determined from data | $Z.t | +----------------------------+----------------------+----------+ | other | Determined from data | $Z.t | +----------------------------+----------------------+----------+ X_8 *** +-----------+----------------------+----------+ | Name | Size | Contents | +===========+======================+==========+ | sent | Determined from data | $X_12 | +-----------+----------------------+----------+ | received | Determined from data | $X_12 | +-----------+----------------------+----------+ | failed | Determined from data | $X_12 | +-----------+----------------------+----------+ | scheduled | Determined from data | $X_12 | +-----------+----------------------+----------+ X_13 **** +-----------------------+----------------------+----------+ | Name | Size | Contents | +=======================+======================+==========+ | cannot_download | Determined from data | $Z.t | +-----------------------+----------------------+----------+ | cannot_parse | Determined from data | $Z.t | +-----------------------+----------------------+----------+ | refused_by_prefilter | Determined from data | $Z.t | +-----------------------+----------------------+----------+ | refused_by_postfilter | Determined from data | $Z.t | +-----------------------+----------------------+----------+ | applied | Determined from data | $Z.t | +-----------------------+----------------------+----------+ | branch_delayed | Determined from data | $Z.t | +-----------------------+----------------------+----------+ | branch_refused | Determined from data | $Z.t | +-----------------------+----------------------+----------+ | refused | Determined from data | $Z.t | +-----------------------+----------------------+----------+ | duplicate | Determined from data | $Z.t | +-----------------------+----------------------+----------+ | outdated | Determined from data | $Z.t | +-----------------------+----------------------+----------+ X_14 **** +------------+----------------------+----------+ | Name | Size | Contents | +============+======================+==========+ | block | Determined from data | $Z.t | +------------+----------------------+----------+ | operations | Determined from data | $Z.t | +------------+----------------------+----------+ | protocol | Determined from data | $Z.t | +------------+----------------------+----------+ Z.t *** A variable length sequence of bytes, encoding a Zarith number. Each byte has a running unary size bit: the most significant bit of each byte tells is this is the last byte in the sequence (0) or if there is more to read (1). The second most significant bit of the first byte is reserved for the sign (positive if zero). Size and sign bits ignored, data is then the binary representation of the absolute value of the number in little endian order. +------+----------------------+----------+ | Name | Size | Contents | +======+======================+==========+ | Z.t | Determined from data | bytes | +------+----------------------+----------+ X_17 **** +--------+----------------------+----------+ | Name | Size | Contents | +========+======================+==========+ | head | Determined from data | $Z.t | +--------+----------------------+----------+ | branch | Determined from data | $Z.t | +--------+----------------------+----------+ X_15 **** +----------+----------------------+----------+ | Name | Size | Contents | +==========+======================+==========+ | sent | Determined from data | $X_17 | +----------+----------------------+----------+ | received | Determined from data | $X_17 | +----------+----------------------+----------+ X_3 *** +--------------------------+----------------------+----------+ | Name | Size | Contents | +==========================+======================+==========+ | responses | Determined from data | $X_4 | +--------------------------+----------------------+----------+ | requests | Determined from data | $X_8 | +--------------------------+----------------------+----------+ | valid_blocks | Determined from data | $Z.t | +--------------------------+----------------------+----------+ | old_heads | Determined from data | $Z.t | +--------------------------+----------------------+----------+ | prevalidator_results | Determined from data | $X_13 | +--------------------------+----------------------+----------+ | unactivated_chains | Determined from data | $Z.t | +--------------------------+----------------------+----------+ | inactive_chains | Determined from data | $Z.t | +--------------------------+----------------------+----------+ | future_blocks_advertised | Determined from data | $Z.t | +--------------------------+----------------------+----------+ | unadvertised | Determined from data | $X_14 | +--------------------------+----------------------+----------+ | advertisements | Determined from data | $X_15 | +--------------------------+----------------------+----------+ p2p_peer.state (Enumeration: unsigned 8-bit integer): ***************************************************** +-------------+----------------+ | Case number | Encoded string | +=============+================+ | 0 | accepted | +-------------+----------------+ | 1 | running | +-------------+----------------+ | 2 | disconnected | +-------------+----------------+ p2p_stat ******** +-----------------+---------+--------------------------------------------------------------+ | Name | Size | Contents | +=================+=========+==============================================================+ | total_sent | 8 bytes | signed 64-bit integer | +-----------------+---------+--------------------------------------------------------------+ | total_recv | 8 bytes | signed 64-bit integer | +-----------------+---------+--------------------------------------------------------------+ | current_inflow | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +-----------------+---------+--------------------------------------------------------------+ | current_outflow | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +-----------------+---------+--------------------------------------------------------------+ p2p_connection.id ***************** +--------------------------------+----------+-------------------------------------+ | Name | Size | Contents | +================================+==========+=====================================+ | # bytes in field "p2p_address" | 4 bytes | unsigned 30-bit integer | +--------------------------------+----------+-------------------------------------+ | addr | Variable | bytes | +--------------------------------+----------+-------------------------------------+ | ? presence of field "port" | 1 byte | boolean (0 for false, 255 for true) | +--------------------------------+----------+-------------------------------------+ | port | 2 bytes | unsigned 16-bit integer | +--------------------------------+----------+-------------------------------------+ X_23 **** +-----------------+----------------------+-----------------------+ | Name | Size | Contents | +=================+======================+=======================+ | Unnamed field 0 | Determined from data | $p2p_connection.id | +-----------------+----------------------+-----------------------+ | Unnamed field 1 | 8 bytes | signed 64-bit integer | +-----------------+----------------------+-----------------------+ X_1 *** +---------------------------------------------------+----------------------+---------------------------------------------------------------------+ | Name | Size | Contents | +===================================================+======================+=====================================================================+ | score | 8 bytes | double-precision floating-point number | +---------------------------------------------------+----------------------+---------------------------------------------------------------------+ | trusted | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------+----------------------+---------------------------------------------------------------------+ | ? presence of field "conn_metadata" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------+----------------------+---------------------------------------------------------------------+ | conn_metadata | 2 bytes | $X_2 | +---------------------------------------------------+----------------------+---------------------------------------------------------------------+ | peer_metadata | Determined from data | $X_3 | +---------------------------------------------------+----------------------+---------------------------------------------------------------------+ | state | 1 byte | unsigned 8-bit integer encoding an enumeration (see p2p_peer.state) | +---------------------------------------------------+----------------------+---------------------------------------------------------------------+ | ? presence of field "reachable_at" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------+----------------------+---------------------------------------------------------------------+ | reachable_at | Determined from data | $p2p_connection.id | +---------------------------------------------------+----------------------+---------------------------------------------------------------------+ | stat | 24 bytes | $p2p_stat | +---------------------------------------------------+----------------------+---------------------------------------------------------------------+ | ? presence of field "last_failed_connection" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------+----------------------+---------------------------------------------------------------------+ | last_failed_connection | Determined from data | $X_23 | +---------------------------------------------------+----------------------+---------------------------------------------------------------------+ | ? presence of field "last_rejected_connection" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------+----------------------+---------------------------------------------------------------------+ | last_rejected_connection | Determined from data | $X_23 | +---------------------------------------------------+----------------------+---------------------------------------------------------------------+ | ? presence of field "last_established_connection" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------+----------------------+---------------------------------------------------------------------+ | last_established_connection | Determined from data | $X_23 | +---------------------------------------------------+----------------------+---------------------------------------------------------------------+ | ? presence of field "last_disconnection" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------+----------------------+---------------------------------------------------------------------+ | last_disconnection | Determined from data | $X_23 | +---------------------------------------------------+----------------------+---------------------------------------------------------------------+ | ? presence of field "last_seen" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------+----------------------+---------------------------------------------------------------------+ | last_seen | Determined from data | $X_23 | +---------------------------------------------------+----------------------+---------------------------------------------------------------------+ | ? presence of field "last_miss" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------+----------------------+---------------------------------------------------------------------+ | last_miss | Determined from data | $X_23 | +---------------------------------------------------+----------------------+---------------------------------------------------------------------+ X_0 *** +------+----------------------+----------+ | Name | Size | Contents | +======+======================+==========+ | id | 16 bytes | bytes | +------+----------------------+----------+ | info | Determined from data | $X_1 | +------+----------------------+----------+
GET /dune/banned/points
Return the list of banned points.
[ { "id": $p2p_point.id, "info": $p2p_point.info } ... ] $Crypto_box.Public_key_hash: /* A Cryptobox public key ID (Base58Check-encoded) */ $unistring $int64: /* 64 bit integers Decimal representation of 64 bit integers */ string $p2p_point.id: /* Identifier for a peer point */ $unistring $p2p_point.info: /* Information about a peer point. Includes flags, state, and records about past events. */ { "trusted": boolean, "greylisted_until"?: $timestamp.system, "state": $p2p_point.state, "p2p_peer_id"?: $Crypto_box.Public_key_hash, "last_failed_connection"?: $timestamp.system, "last_rejected_connection"?: [ $Crypto_box.Public_key_hash, $timestamp.system ], "last_established_connection"?: [ $Crypto_box.Public_key_hash, $timestamp.system ], "last_disconnection"?: [ $Crypto_box.Public_key_hash, $timestamp.system ], "last_seen"?: [ $Crypto_box.Public_key_hash, $timestamp.system ], "last_miss"?: $timestamp.system } $p2p_point.state: /* The state a connection to a peer point can be in: requested (connection open from here), accepted (handshake), running (connection already established), disconnected (no connection). */ { "event_kind": "requested" } || { "event_kind": "accepted", "p2p_peer_id": $Crypto_box.Public_key_hash } || { "event_kind": "running", "p2p_peer_id": $Crypto_box.Public_key_hash } || { "event_kind": "disconnected" } $timestamp.rfc: /* RFC 3339 formatted timestamp A date in RFC 3339 notation. */ $unistring $timestamp.system: /* A timestamp as seen by the underlying, local computer: subsecond-level precision, epoch or rfc3339 based. */ $timestamp.rfc || $int64 $unistring: /* Universal string representation Either a plain UTF8 string, or a sequence of bytes for strings that contain invalid byte sequences. */ string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
+-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | Unnamed field 0 | Variable | sequence of $X_0 | +-----------------------+----------+-------------------------+ p2p_point.state (Determined from data, 8-bit tag) ************************************************* Requested (tag 0) ================= +-----------------+---------+----------------------------------------------------+ | Name | Size | Contents | +=================+=========+====================================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------+---------+----------------------------------------------------+ | Unnamed field 0 | 0 bytes | placeholder (not actually present in the encoding) | +-----------------+---------+----------------------------------------------------+ Accepted (tag 1) ================ +-------------+----------+------------------------+ | Name | Size | Contents | +=============+==========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +-------------+----------+------------------------+ | p2p_peer_id | 16 bytes | bytes | +-------------+----------+------------------------+ Running (tag 2) =============== +-------------+----------+------------------------+ | Name | Size | Contents | +=============+==========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +-------------+----------+------------------------+ | p2p_peer_id | 16 bytes | bytes | +-------------+----------+------------------------+ Disconnected (tag 3) ==================== +-----------------+---------+----------------------------------------------------+ | Name | Size | Contents | +=================+=========+====================================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------+---------+----------------------------------------------------+ | Unnamed field 0 | 0 bytes | placeholder (not actually present in the encoding) | +-----------------+---------+----------------------------------------------------+ X_4 *** +-----------------+----------+-----------------------+ | Name | Size | Contents | +=================+==========+=======================+ | Unnamed field 0 | 16 bytes | bytes | +-----------------+----------+-----------------------+ | Unnamed field 1 | 8 bytes | signed 64-bit integer | +-----------------+----------+-----------------------+ p2p_point.info ************** +---------------------------------------------------+----------------------+-------------------------------------+ | Name | Size | Contents | +===================================================+======================+=====================================+ | trusted | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------+----------------------+-------------------------------------+ | greylisted_until | 8 bytes | signed 64-bit integer | +---------------------------------------------------+----------------------+-------------------------------------+ | state | Determined from data | $p2p_point.state | +---------------------------------------------------+----------------------+-------------------------------------+ | ? presence of field "p2p_peer_id" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------+----------------------+-------------------------------------+ | p2p_peer_id | 16 bytes | bytes | +---------------------------------------------------+----------------------+-------------------------------------+ | ? presence of field "last_failed_connection" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------+----------------------+-------------------------------------+ | last_failed_connection | 8 bytes | signed 64-bit integer | +---------------------------------------------------+----------------------+-------------------------------------+ | ? presence of field "last_rejected_connection" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------+----------------------+-------------------------------------+ | last_rejected_connection | 24 bytes | $X_4 | +---------------------------------------------------+----------------------+-------------------------------------+ | ? presence of field "last_established_connection" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------+----------------------+-------------------------------------+ | last_established_connection | 24 bytes | $X_4 | +---------------------------------------------------+----------------------+-------------------------------------+ | ? presence of field "last_disconnection" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------+----------------------+-------------------------------------+ | last_disconnection | 24 bytes | $X_4 | +---------------------------------------------------+----------------------+-------------------------------------+ | ? presence of field "last_seen" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------+----------------------+-------------------------------------+ | last_seen | 24 bytes | $X_4 | +---------------------------------------------------+----------------------+-------------------------------------+ | ? presence of field "last_miss" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------+----------------------+-------------------------------------+ | last_miss | 8 bytes | signed 64-bit integer | +---------------------------------------------------+----------------------+-------------------------------------+ X_0 *** +---------------------------------+----------------------+-------------------------+ | Name | Size | Contents | +=================================+======================+=========================+ | # bytes in field "p2p_point.id" | 4 bytes | unsigned 30-bit integer | +---------------------------------+----------------------+-------------------------+ | id | Variable | bytes | +---------------------------------+----------------------+-------------------------+ | info | Determined from data | $p2p_point.info | +---------------------------------+----------------------+-------------------------+
GET /dune/config
Return the current config.
{ "network"?: $unistring, "genesis_key"?: $unistring, "p2p_version"?: $unistring, "max_operation_data_length"?: integer ∈ [-2^30-2, 2^30+2], "encoding_version"?: integer ∈ [-2^30-2, 2^30+2], "prefix_dir"?: $unistring, "p2p_port"?: integer ∈ [-2^30-2, 2^30+2], "rpc_port"?: integer ∈ [-2^30-2, 2^30+2], "bootstrap_peers"?: [ $unistring ... ], "genesis_time"?: $unistring, "genesis_block"?: $unistring, "genesis_protocol"?: $unistring, "forced_protocol_upgrades"?: [ [ integer ∈ [-2^31-2, 2^31+2], $unistring ] ... ], "cursym"?: $unistring, "discovery_port"?: integer ∈ [-2^30-2, 2^30+2], "signer_tcp_port"?: integer ∈ [-2^30-2, 2^30+2], "signer_http_port"?: integer ∈ [-2^30-2, 2^30+2], "protocol_revision"?: integer ∈ [-2^30-2, 2^30+2], "only_allowed_bakers"?: boolean, "expected_pow"?: number, "self_amending"?: boolean, "number_of_cycles_between_burn"?: integer ∈ [-2^30-2, 2^30+2], "share_of_balance_to_burn_amending"?: integer ∈ [-2^30-2, 2^30+2], "frozen_account_cycles"?: integer ∈ [-2^30-2, 2^30+2], "p2p_secret"?: $unistring || null, "nodes_list"?: $unistring || null, "access_control"?: boolean, "minimal_fee_factor"?: integer ∈ [-2^30-2, 2^30+2], "closed_network"?: boolean, "kyc_level"?: "source" | "open" | "both" } $unistring: /* Universal string representation Either a plain UTF8 string, or a sequence of bytes for strings that contain invalid byte sequences. */ string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
+---------------------------------------------------------+----------------------+--------------------------------------------------------------+ | Name | Size | Contents | +=========================================================+======================+==============================================================+ | ? presence of field "network" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------------+----------------------+--------------------------------------------------------------+ | network | Determined from data | $X_0 | +---------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "genesis_key" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------------+----------------------+--------------------------------------------------------------+ | genesis_key | Determined from data | $X_1 | +---------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "p2p_version" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------------+----------------------+--------------------------------------------------------------+ | p2p_version | Determined from data | $X_2 | +---------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "max_operation_data_length" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------------+----------------------+--------------------------------------------------------------+ | max_operation_data_length | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +---------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "encoding_version" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------------+----------------------+--------------------------------------------------------------+ | encoding_version | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +---------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "prefix_dir" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------------+----------------------+--------------------------------------------------------------+ | prefix_dir | Determined from data | $X_3 | +---------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "p2p_port" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------------+----------------------+--------------------------------------------------------------+ | p2p_port | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +---------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "rpc_port" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------------+----------------------+--------------------------------------------------------------+ | rpc_port | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +---------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "bootstrap_peers" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------------+----------------------+--------------------------------------------------------------+ | bootstrap_peers | Determined from data | $X_4 | +---------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "genesis_time" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------------+----------------------+--------------------------------------------------------------+ | genesis_time | Determined from data | $X_6 | +---------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "genesis_block" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------------+----------------------+--------------------------------------------------------------+ | genesis_block | Determined from data | $X_7 | +---------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "genesis_protocol" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------------+----------------------+--------------------------------------------------------------+ | genesis_protocol | Determined from data | $X_8 | +---------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "forced_protocol_upgrades" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------------+----------------------+--------------------------------------------------------------+ | forced_protocol_upgrades | Determined from data | $X_9 | +---------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "cursym" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------------+----------------------+--------------------------------------------------------------+ | cursym | Determined from data | $X_12 | +---------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "discovery_port" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------------+----------------------+--------------------------------------------------------------+ | discovery_port | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +---------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "signer_tcp_port" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------------+----------------------+--------------------------------------------------------------+ | signer_tcp_port | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +---------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "signer_http_port" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------------+----------------------+--------------------------------------------------------------+ | signer_http_port | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +---------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "protocol_revision" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------------+----------------------+--------------------------------------------------------------+ | protocol_revision | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +---------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "only_allowed_bakers" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------------+----------------------+--------------------------------------------------------------+ | only_allowed_bakers | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "expected_pow" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------------+----------------------+--------------------------------------------------------------+ | expected_pow | 8 bytes | double-precision floating-point number | +---------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "self_amending" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------------+----------------------+--------------------------------------------------------------+ | self_amending | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "number_of_cycles_between_burn" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------------+----------------------+--------------------------------------------------------------+ | number_of_cycles_between_burn | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +---------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "share_of_balance_to_burn_amending" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------------+----------------------+--------------------------------------------------------------+ | share_of_balance_to_burn_amending | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +---------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "frozen_account_cycles" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------------+----------------------+--------------------------------------------------------------+ | frozen_account_cycles | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +---------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "p2p_secret" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------------+----------------------+--------------------------------------------------------------+ | p2p_secret | Determined from data | $X_13 | +---------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "nodes_list" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------------+----------------------+--------------------------------------------------------------+ | nodes_list | Determined from data | $X_14 | +---------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "access_control" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------------+----------------------+--------------------------------------------------------------+ | access_control | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "minimal_fee_factor" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------------+----------------------+--------------------------------------------------------------+ | minimal_fee_factor | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +---------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "closed_network" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------------+----------------------+--------------------------------------------------------------+ | closed_network | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "kyc_level" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------------+----------------------+--------------------------------------------------------------+ | kyc_level | 1 byte | unsigned 8-bit integer encoding an enumeration (see X_15) | +---------------------------------------------------------+----------------------+--------------------------------------------------------------+ X_4 *** +-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | Unnamed field 0 | Variable | sequence of $X_12 | +-----------------------+----------+-------------------------+ X_10 **** +-----------------+----------------------+-----------------------+ | Name | Size | Contents | +=================+======================+=======================+ | Unnamed field 0 | 4 bytes | signed 32-bit integer | +-----------------+----------------------+-----------------------+ | Unnamed field 1 | Determined from data | $X_12 | +-----------------+----------------------+-----------------------+ X_9 *** +-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | Unnamed field 0 | Variable | sequence of $X_10 | +-----------------------+----------+-------------------------+ X_12 **** +-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | Unnamed field 0 | Variable | bytes | +-----------------------+----------+-------------------------+ X_14 (Determined from data, 8-bit tag) ************************************** None (tag 0) ============ +-----------------+---------+----------------------------------------------------+ | Name | Size | Contents | +=================+=========+====================================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------+---------+----------------------------------------------------+ | Unnamed field 0 | 0 bytes | placeholder (not actually present in the encoding) | +-----------------+---------+----------------------------------------------------+ Some (tag 1) ============ +-----------------------+----------+-------------------------+ | 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 | +-----------------------+----------+-------------------------+ X_15 (Enumeration: unsigned 8-bit integer): ******************************************* +-------------+----------------+ | Case number | Encoded string | +=============+================+ | 0 | open | +-------------+----------------+ | 1 | source | +-------------+----------------+ | 2 | both | +-------------+----------------+
GET /dune/db/stats
Return DB storage information.
[ [ $unistring, [ { "psize": integer ∈ [-2^30-2, 2^30+2], "depth": integer ∈ [-2^30-2, 2^30+2], "branch_pages": integer ∈ [-2^30-2, 2^30+2], "leaf_pages": integer ∈ [-2^30-2, 2^30+2], "overflow_pages": integer ∈ [-2^30-2, 2^30+2], "entries": integer ∈ [-2^30-2, 2^30+2] }, { "mapsize": $int64, "last_pgno": integer ∈ [-2^30-2, 2^30+2], "last_txnid": integer ∈ [-2^30-2, 2^30+2], "maxreaders": integer ∈ [-2^30-2, 2^30+2], "numreaders": integer ∈ [-2^30-2, 2^30+2] } ] ] ... ] $int64: /* 64 bit integers Decimal representation of 64 bit integers */ string $unistring: /* Universal string representation Either a plain UTF8 string, or a sequence of bytes for strings that contain invalid byte sequences. */ string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
+-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | Unnamed field 0 | Variable | sequence of $X_0 | +-----------------------+----------+-------------------------+ X_1 *** +-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | Unnamed field 0 | Variable | bytes | +-----------------------+----------+-------------------------+ X_3 *** +----------------+---------+--------------------------------------------------------------+ | Name | Size | Contents | +================+=========+==============================================================+ | psize | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +----------------+---------+--------------------------------------------------------------+ | depth | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +----------------+---------+--------------------------------------------------------------+ | branch_pages | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +----------------+---------+--------------------------------------------------------------+ | leaf_pages | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +----------------+---------+--------------------------------------------------------------+ | overflow_pages | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +----------------+---------+--------------------------------------------------------------+ | entries | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +----------------+---------+--------------------------------------------------------------+ X_4 *** +------------+---------+--------------------------------------------------------------+ | Name | Size | Contents | +============+=========+==============================================================+ | mapsize | 8 bytes | signed 64-bit integer | +------------+---------+--------------------------------------------------------------+ | last_pgno | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +------------+---------+--------------------------------------------------------------+ | last_txnid | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +------------+---------+--------------------------------------------------------------+ | maxreaders | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +------------+---------+--------------------------------------------------------------+ | numreaders | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +------------+---------+--------------------------------------------------------------+ X_2 *** +-----------------+----------+----------+ | Name | Size | Contents | +=================+==========+==========+ | Unnamed field 0 | 24 bytes | $X_3 | +-----------------+----------+----------+ | Unnamed field 1 | 24 bytes | $X_4 | +-----------------+----------+----------+ X_0 *** +-----------------+----------------------+----------+ | Name | Size | Contents | +=================+======================+==========+ | Unnamed field 0 | Determined from data | $X_1 | +-----------------+----------------------+----------+ | Unnamed field 1 | 48 bytes | $X_2 | +-----------------+----------------------+----------+
GET /dune/keys/gen?[algo=<string>]
Generate a key pair.
Optional query arguments :
- algo = <string>
{ "pkh": $unistring, "pk": $unistring, "sk": $unistring } $unistring: /* Universal string representation Either a plain UTF8 string, or a sequence of bytes for strings that contain invalid byte sequences. */ string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
+-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | pkh | Variable | bytes | +-----------------------+----------+-------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | pk | Variable | bytes | +-----------------------+----------+-------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | sk | Variable | bytes | +-----------------------+----------+-------------------------+
GET /dune/max_revision
Returns the maximum revision supported by the node.
integer ∈ [-2^30-2, 2^30+2]
+-----------------+---------+--------------------------------------------------------------+ | Name | Size | Contents | +=================+=========+==============================================================+ | Unnamed field 0 | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +-----------------+---------+--------------------------------------------------------------+
GET /dune/version
Return the current version.
{ "commit_date": $unistring, "build_date": $unistring, "commit": $unistring, "branch": $unistring, "network": $unistring } $unistring: /* Universal string representation Either a plain UTF8 string, or a sequence of bytes for strings that contain invalid byte sequences. */ string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
+-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | commit_date | Variable | bytes | +-----------------------+----------+-------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | build_date | Variable | bytes | +-----------------------+----------+-------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | commit | Variable | bytes | +-----------------------+----------+-------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | branch | Variable | bytes | +-----------------------+----------+-------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | network | Variable | bytes | +-----------------------+----------+-------------------------+
GET /errors
Schema for all the RPC errors from the shell
any
+-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | Unnamed field 0 | Variable | bytes | +-----------------------+----------+-------------------------+
GET /fetch_protocol/<Protocol_hash>
Fetch a protocol from the network.
any
+-----------------+---------+----------------------------------------------------+ | Name | Size | Contents | +=================+=========+====================================================+ | Unnamed field 0 | 0 bytes | placeholder (not actually present in the encoding) | +-----------------+---------+----------------------------------------------------+
POST /injection/block?[async]&[force]&[chain=<chain_id>]
Inject a block in the node and broadcast it. The `operations` embedded in `blockHeader` might be pre-validated using a contextual RPCs from the latest block (e.g. '/blocks/head/context/preapply'). Returns the ID of the block. By default, the RPC will wait for the block to be validated before answering. If ?async is true, the function returns immediately. Otherwise, the block will be validated before the result is returned. If ?force is true, it will be injected even on non strictly increasing fitness. An optional ?chain parameter can be used to specify whether to inject on the test chain or the main chain.
Optional query arguments :
- async
- force
- chain = <chain_id>
{ "data": /^[a-zA-Z0-9]+$/, "operations": [ [ $operation ... ] ... ] } $block_hash: /* A block identifier (Base58Check-encoded) */ $unistring $operation: /* An operation. The shell_header part indicates a block an operation is meant to apply on top of. The proto part is protocol-specific and appears as a binary blob. */ { "branch": $block_hash, "data": /^[a-zA-Z0-9]+$/ } $unistring: /* Universal string representation Either a plain UTF8 string, or a sequence of bytes for strings that contain invalid byte sequences. */ string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
+-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | data | Variable | bytes | +-----------------------+----------+-------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | operations | Variable | sequence of $X_0 | +-----------------------+----------+-------------------------+ X_1 *** +--------------------------+----------+-------------------------+ | Name | Size | Contents | +==========================+==========+=========================+ | # bytes in next 2 fields | 4 bytes | unsigned 30-bit integer | +--------------------------+----------+-------------------------+ | branch | 32 bytes | bytes | +--------------------------+----------+-------------------------+ | data | Variable | bytes | +--------------------------+----------+-------------------------+ X_0 *** +--------------------------+----------+-------------------------+ | Name | Size | Contents | +==========================+==========+=========================+ | # bytes in next 2 fields | 4 bytes | unsigned 30-bit integer | +--------------------------+----------+-------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +--------------------------+----------+-------------------------+ | Unnamed field 0 | Variable | sequence of $X_1 | +--------------------------+----------+-------------------------+
$block_hash $block_hash: /* A block identifier (Base58Check-encoded) */ $unistring $unistring: /* Universal string representation Either a plain UTF8 string, or a sequence of bytes for strings that contain invalid byte sequences. */ string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
+------------+----------+----------+ | Name | Size | Contents | +============+==========+==========+ | block_hash | 32 bytes | bytes | +------------+----------+----------+
POST /injection/operation?[async]&[chain=<chain_id>]
Inject an operation in node and broadcast it. Returns the ID of the operation. The `signedOperationContents` should be constructed using a contextual RPCs from the latest block and signed by the client. By default, the RPC will wait for the operation to be (pre-)validated before answering. See RPCs under /blocks/prevalidation for more details on the prevalidation context. If ?async is true, the function returns immediately. Otherwise, the operation will be validated before the result is returned. An optional ?chain parameter can be used to specify whether to inject on the test chain or the main chain.
Optional query arguments :
- async
- chain = <chain_id>
/^[a-zA-Z0-9]+$/
+-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | Unnamed field 0 | Variable | bytes | +-----------------------+----------+-------------------------+
$Operation_hash $Operation_hash: /* A Dune operation ID (Base58Check-encoded) */ $unistring $unistring: /* Universal string representation Either a plain UTF8 string, or a sequence of bytes for strings that contain invalid byte sequences. */ string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
+----------------+----------+----------+ | Name | Size | Contents | +================+==========+==========+ | Operation_hash | 32 bytes | bytes | +----------------+----------+----------+
POST /injection/protocol?[async]
Inject a protocol in node. Returns the ID of the protocol. If ?async is true, the function returns immediately. Otherwise, the protocol will be validated before the result is returned.
Optional query arguments :
- async
$protocol $protocol: /* The environment a protocol relies on and the components a protocol is made of. */ { "expected_env_version": integer ∈ [-2^15, 2^15-1], "components": [ { "name": $unistring, "interface"?: $unistring, "implementation": $unistring } ... ] } $unistring: /* Universal string representation Either a plain UTF8 string, or a sequence of bytes for strings that contain invalid byte sequences. */ string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
+-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | expected_env_version | 2 bytes | signed 16-bit integer | +-----------------------+----------+-------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | components | Variable | sequence of $X_0 | +-----------------------+----------+-------------------------+ X_1 *** +-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | Unnamed field 0 | Variable | bytes | +-----------------------+----------+-------------------------+ X_0 *** +---------------------------------+----------------------+-------------------------------------+ | Name | Size | Contents | +=================================+======================+=====================================+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +---------------------------------+----------------------+-------------------------------------+ | name | Variable | bytes | +---------------------------------+----------------------+-------------------------------------+ | ? presence of field "interface" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------+----------------------+-------------------------------------+ | interface | Determined from data | $X_1 | +---------------------------------+----------------------+-------------------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +---------------------------------+----------------------+-------------------------------------+ | implementation | Variable | bytes | +---------------------------------+----------------------+-------------------------------------+
$Protocol_hash $Protocol_hash: /* A Dune protocol ID (Base58Check-encoded) */ $unistring $unistring: /* Universal string representation Either a plain UTF8 string, or a sequence of bytes for strings that contain invalid byte sequences. */ string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
+---------------+----------+----------+ | Name | Size | Contents | +===============+==========+==========+ | Protocol_hash | 32 bytes | bytes | +---------------+----------+----------+
GET /monitor/active_chains
Monitor every chain creation and destruction. Currently active chains will be given as first elements
[ { "chain_id": $Chain_id } || { "chain_id": $Chain_id, "test_protocol": $Protocol_hash, "expiration_date": $timestamp.protocol } || { "stopping": $Chain_id } ... ] $Chain_id: /* Network identifier (Base58Check-encoded) */ $unistring $Protocol_hash: /* A Dune protocol ID (Base58Check-encoded) */ $unistring $int64: /* 64 bit integers Decimal representation of 64 bit integers */ string $timestamp.protocol: /* A timestamp as seen by the protocol: second-level precision, epoch based. */ $timestamp.rfc || $int64 $timestamp.rfc: /* RFC 3339 formatted timestamp A date in RFC 3339 notation. */ $unistring $unistring: /* Universal string representation Either a plain UTF8 string, or a sequence of bytes for strings that contain invalid byte sequences. */ string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
+-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | Unnamed field 0 | Variable | sequence of $X_0 | +-----------------------+----------+-------------------------+ X_0 (Determined from data, 8-bit tag) ************************************* Main (tag 0) ============ +----------+---------+------------------------+ | Name | Size | Contents | +==========+=========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +----------+---------+------------------------+ | chain_id | 4 bytes | bytes | +----------+---------+------------------------+ Test (tag 1) ============ +-----------------+----------+------------------------+ | Name | Size | Contents | +=================+==========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------+----------+------------------------+ | chain_id | 4 bytes | bytes | +-----------------+----------+------------------------+ | test_protocol | 32 bytes | bytes | +-----------------+----------+------------------------+ | expiration_date | 8 bytes | signed 64-bit integer | +-----------------+----------+------------------------+ Stopping (tag 2) ================ +----------+---------+------------------------+ | Name | Size | Contents | +==========+=========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +----------+---------+------------------------+ | stopping | 4 bytes | bytes | +----------+---------+------------------------+
GET /monitor/bootstrapped
Wait for the node to have synchronized its chain with a few peers (configured by the node's administrator), streaming head updates that happen during the bootstrapping process, and closing the stream at the end. If the node was already bootstrapped, returns the current head immediately.
{ "block": $block_hash, "timestamp": $timestamp.protocol } $block_hash: /* A block identifier (Base58Check-encoded) */ $unistring $int64: /* 64 bit integers Decimal representation of 64 bit integers */ string $timestamp.protocol: /* A timestamp as seen by the protocol: second-level precision, epoch based. */ $timestamp.rfc || $int64 $timestamp.rfc: /* RFC 3339 formatted timestamp A date in RFC 3339 notation. */ $unistring $unistring: /* Universal string representation Either a plain UTF8 string, or a sequence of bytes for strings that contain invalid byte sequences. */ string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
+-----------+----------+-----------------------+ | Name | Size | Contents | +===========+==========+=======================+ | block | 32 bytes | bytes | +-----------+----------+-----------------------+ | timestamp | 8 bytes | signed 64-bit integer | +-----------+----------+-----------------------+
GET /monitor/commit_hash
Get information on the build of the node.
$unistring $unistring: /* Universal string representation Either a plain UTF8 string, or a sequence of bytes for strings that contain invalid byte sequences. */ string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
+-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | Unnamed field 0 | Variable | bytes | +-----------------------+----------+-------------------------+
GET /monitor/heads/<chain_id>?(next_protocol=<Protocol_hash>)*
Monitor all blocks that are successfully validated by the node and selected as the new head of the given chain.
Optional query arguments :
- next_protocol = <Protocol_hash>
{ "hash": $block_hash, "level": integer ∈ [-2^31-2, 2^31+2], "proto": integer ∈ [0, 255], "predecessor": $block_hash, "timestamp": $timestamp.protocol, "validation_pass": integer ∈ [0, 255], "operations_hash": $Operation_list_list_hash, "fitness": $fitness, "context": $Context_hash, "protocol_data": /^[a-zA-Z0-9]+$/ } $Context_hash: /* A hash of context (Base58Check-encoded) */ $unistring $Operation_list_list_hash: /* A list of list of operations (Base58Check-encoded) */ $unistring $block_hash: /* A block identifier (Base58Check-encoded) */ $unistring $fitness: /* Block fitness The fitness, or score, of a block, that allow the Dune to decide which chain is the best. A fitness value is a list of byte sequences. They are compared as follows: shortest lists are smaller; lists of the same length are compared according to the lexicographical order. */ [ /^[a-zA-Z0-9]+$/ ... ] $int64: /* 64 bit integers Decimal representation of 64 bit integers */ string $timestamp.protocol: /* A timestamp as seen by the protocol: second-level precision, epoch based. */ $timestamp.rfc || $int64 $timestamp.rfc: /* RFC 3339 formatted timestamp A date in RFC 3339 notation. */ $unistring $unistring: /* Universal string representation Either a plain UTF8 string, or a sequence of bytes for strings that contain invalid byte sequences. */ string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
+----------------------------+----------+---------------------------+ | Name | Size | Contents | +============================+==========+===========================+ | hash | 32 bytes | bytes | +----------------------------+----------+---------------------------+ | 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 | +-----------------------+----------+-------------------------+
GET /monitor/protocols
Monitor all economic protocols that are retrieved and successfully loaded and compiled by the node.
$Protocol_hash $Protocol_hash: /* A Dune protocol ID (Base58Check-encoded) */ $unistring $unistring: /* Universal string representation Either a plain UTF8 string, or a sequence of bytes for strings that contain invalid byte sequences. */ string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
+---------------+----------+----------+ | Name | Size | Contents | +===============+==========+==========+ | Protocol_hash | 32 bytes | bytes | +---------------+----------+----------+
GET /monitor/valid_blocks?(protocol=<Protocol_hash>)*&(next_protocol=<Protocol_hash>)*&(chain=<chain_id>)*
Monitor all blocks that are successfully validated by the node, disregarding whether they were selected as the new head or not.
Optional query arguments :
- protocol = <Protocol_hash>
- next_protocol = <Protocol_hash>
- chain = <chain_id>
{ "chain_id": $Chain_id, "hash": $block_hash, "level": integer ∈ [-2^31-2, 2^31+2], "proto": integer ∈ [0, 255], "predecessor": $block_hash, "timestamp": $timestamp.protocol, "validation_pass": integer ∈ [0, 255], "operations_hash": $Operation_list_list_hash, "fitness": $fitness, "context": $Context_hash, "protocol_data": /^[a-zA-Z0-9]+$/ } $Chain_id: /* Network identifier (Base58Check-encoded) */ $unistring $Context_hash: /* A hash of context (Base58Check-encoded) */ $unistring $Operation_list_list_hash: /* A list of list of operations (Base58Check-encoded) */ $unistring $block_hash: /* A block identifier (Base58Check-encoded) */ $unistring $fitness: /* Block fitness The fitness, or score, of a block, that allow the Dune to decide which chain is the best. A fitness value is a list of byte sequences. They are compared as follows: shortest lists are smaller; lists of the same length are compared according to the lexicographical order. */ [ /^[a-zA-Z0-9]+$/ ... ] $int64: /* 64 bit integers Decimal representation of 64 bit integers */ string $timestamp.protocol: /* A timestamp as seen by the protocol: second-level precision, epoch based. */ $timestamp.rfc || $int64 $timestamp.rfc: /* RFC 3339 formatted timestamp A date in RFC 3339 notation. */ $unistring $unistring: /* Universal string representation Either a plain UTF8 string, or a sequence of bytes for strings that contain invalid byte sequences. */ string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
+----------------------------+----------+---------------------------+ | Name | Size | Contents | +============================+==========+===========================+ | chain_id | 4 bytes | bytes | +----------------------------+----------+---------------------------+ | hash | 32 bytes | bytes | +----------------------------+----------+---------------------------+ | 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 | +-----------------------+----------+-------------------------+
GET /network/connections
List the running P2P connection.
[ { "incoming": boolean, "peer_id": $Crypto_box.Public_key_hash, "id_point": $p2p_connection.id, "remote_socket_port": integer ∈ [0, 2^16-1], "announced_version": $network_version, "private": boolean, "local_metadata": { "disable_mempool": boolean, "private_node": boolean }, "remote_metadata": { "disable_mempool": boolean, "private_node": boolean }, "features": [ $unistring ... ] } ... ] $Crypto_box.Public_key_hash: /* A Cryptobox public key ID (Base58Check-encoded) */ $unistring $distributed_db_version: /* A version number for the distributed DB protocol */ integer ∈ [0, 2^16-1] $distributed_db_version.name: /* A name for the distributed DB protocol */ $unistring $network_version: /* A version number for the network protocol (includes distributed DB version and p2p version) */ { "chain_name": $distributed_db_version.name, "distributed_db_version": $distributed_db_version, "p2p_version": $p2p_version } $p2p_address: /* An address for locating peers. */ $unistring $p2p_connection.id: /* The identifier for a p2p connection. It includes an address and a port number. */ { "addr": $p2p_address, "port"?: integer ∈ [0, 2^16-1] } $p2p_version: /* A version number for the p2p layer. */ integer ∈ [0, 2^16-1] $unistring: /* Universal string representation Either a plain UTF8 string, or a sequence of bytes for strings that contain invalid byte sequences. */ string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
+-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | Unnamed field 0 | Variable | sequence of $X_0 | +-----------------------+----------+-------------------------+ p2p_connection.id ***************** +--------------------------------+----------+-------------------------------------+ | Name | Size | Contents | +================================+==========+=====================================+ | # bytes in field "p2p_address" | 4 bytes | unsigned 30-bit integer | +--------------------------------+----------+-------------------------------------+ | addr | Variable | bytes | +--------------------------------+----------+-------------------------------------+ | ? presence of field "port" | 1 byte | boolean (0 for false, 255 for true) | +--------------------------------+----------+-------------------------------------+ | port | 2 bytes | unsigned 16-bit integer | +--------------------------------+----------+-------------------------------------+ network_version *************** +------------------------------------------------+----------+-------------------------+ | Name | Size | Contents | +================================================+==========+=========================+ | # bytes in field "distributed_db_version.name" | 4 bytes | unsigned 30-bit integer | +------------------------------------------------+----------+-------------------------+ | chain_name | Variable | bytes | +------------------------------------------------+----------+-------------------------+ | distributed_db_version | 2 bytes | unsigned 16-bit integer | +------------------------------------------------+----------+-------------------------+ | p2p_version | 2 bytes | unsigned 16-bit integer | +------------------------------------------------+----------+-------------------------+ X_2 *** +-----------------+--------+-------------------------------------+ | Name | Size | Contents | +=================+========+=====================================+ | disable_mempool | 1 byte | boolean (0 for false, 255 for true) | +-----------------+--------+-------------------------------------+ | private_node | 1 byte | boolean (0 for false, 255 for true) | +-----------------+--------+-------------------------------------+ X_3 *** +-----------------------+----------+------------------------+ | Name | Size | Contents | +=======================+==========+========================+ | # bytes in next field | 1 byte | unsigned 8-bit integer | +-----------------------+----------+------------------------+ | Unnamed field 0 | Variable | bytes | +-----------------------+----------+------------------------+ X_0 *** +-----------------------+----------------------+-------------------------------------+ | Name | Size | Contents | +=======================+======================+=====================================+ | incoming | 1 byte | boolean (0 for false, 255 for true) | +-----------------------+----------------------+-------------------------------------+ | peer_id | 16 bytes | bytes | +-----------------------+----------------------+-------------------------------------+ | id_point | Determined from data | $p2p_connection.id | +-----------------------+----------------------+-------------------------------------+ | remote_socket_port | 2 bytes | unsigned 16-bit integer | +-----------------------+----------------------+-------------------------------------+ | announced_version | Determined from data | $network_version | +-----------------------+----------------------+-------------------------------------+ | private | 1 byte | boolean (0 for false, 255 for true) | +-----------------------+----------------------+-------------------------------------+ | local_metadata | 2 bytes | $X_2 | +-----------------------+----------------------+-------------------------------------+ | remote_metadata | 2 bytes | $X_2 | +-----------------------+----------------------+-------------------------------------+ | # bytes in next field | 1 byte | unsigned 8-bit integer | +-----------------------+----------------------+-------------------------------------+ | features | Variable | sequence of $X_3 | +-----------------------+----------------------+-------------------------------------+
GET /network/connections/<peer_id>
Details about the current P2P connection to the given peer.
{ "incoming": boolean, "peer_id": $Crypto_box.Public_key_hash, "id_point": $p2p_connection.id, "remote_socket_port": integer ∈ [0, 2^16-1], "announced_version": $network_version, "private": boolean, "local_metadata": { "disable_mempool": boolean, "private_node": boolean }, "remote_metadata": { "disable_mempool": boolean, "private_node": boolean }, "features": [ $unistring ... ] } $Crypto_box.Public_key_hash: /* A Cryptobox public key ID (Base58Check-encoded) */ $unistring $distributed_db_version: /* A version number for the distributed DB protocol */ integer ∈ [0, 2^16-1] $distributed_db_version.name: /* A name for the distributed DB protocol */ $unistring $network_version: /* A version number for the network protocol (includes distributed DB version and p2p version) */ { "chain_name": $distributed_db_version.name, "distributed_db_version": $distributed_db_version, "p2p_version": $p2p_version } $p2p_address: /* An address for locating peers. */ $unistring $p2p_connection.id: /* The identifier for a p2p connection. It includes an address and a port number. */ { "addr": $p2p_address, "port"?: integer ∈ [0, 2^16-1] } $p2p_version: /* A version number for the p2p layer. */ integer ∈ [0, 2^16-1] $unistring: /* Universal string representation Either a plain UTF8 string, or a sequence of bytes for strings that contain invalid byte sequences. */ string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
+-----------------------+----------------------+-------------------------------------+ | Name | Size | Contents | +=======================+======================+=====================================+ | incoming | 1 byte | boolean (0 for false, 255 for true) | +-----------------------+----------------------+-------------------------------------+ | peer_id | 16 bytes | bytes | +-----------------------+----------------------+-------------------------------------+ | id_point | Determined from data | $p2p_connection.id | +-----------------------+----------------------+-------------------------------------+ | remote_socket_port | 2 bytes | unsigned 16-bit integer | +-----------------------+----------------------+-------------------------------------+ | announced_version | Determined from data | $network_version | +-----------------------+----------------------+-------------------------------------+ | private | 1 byte | boolean (0 for false, 255 for true) | +-----------------------+----------------------+-------------------------------------+ | local_metadata | 2 bytes | $X_0 | +-----------------------+----------------------+-------------------------------------+ | remote_metadata | 2 bytes | $X_1 | +-----------------------+----------------------+-------------------------------------+ | # bytes in next field | 1 byte | unsigned 8-bit integer | +-----------------------+----------------------+-------------------------------------+ | features | Variable | sequence of $X_2 | +-----------------------+----------------------+-------------------------------------+ p2p_connection.id ***************** +--------------------------------+----------+-------------------------------------+ | Name | Size | Contents | +================================+==========+=====================================+ | # bytes in field "p2p_address" | 4 bytes | unsigned 30-bit integer | +--------------------------------+----------+-------------------------------------+ | addr | Variable | bytes | +--------------------------------+----------+-------------------------------------+ | ? presence of field "port" | 1 byte | boolean (0 for false, 255 for true) | +--------------------------------+----------+-------------------------------------+ | port | 2 bytes | unsigned 16-bit integer | +--------------------------------+----------+-------------------------------------+ network_version *************** +------------------------------------------------+----------+-------------------------+ | Name | Size | Contents | +================================================+==========+=========================+ | # bytes in field "distributed_db_version.name" | 4 bytes | unsigned 30-bit integer | +------------------------------------------------+----------+-------------------------+ | chain_name | Variable | bytes | +------------------------------------------------+----------+-------------------------+ | distributed_db_version | 2 bytes | unsigned 16-bit integer | +------------------------------------------------+----------+-------------------------+ | p2p_version | 2 bytes | unsigned 16-bit integer | +------------------------------------------------+----------+-------------------------+ X_1 *** +-----------------+--------+-------------------------------------+ | Name | Size | Contents | +=================+========+=====================================+ | disable_mempool | 1 byte | boolean (0 for false, 255 for true) | +-----------------+--------+-------------------------------------+ | private_node | 1 byte | boolean (0 for false, 255 for true) | +-----------------+--------+-------------------------------------+ X_2 *** +-----------------------+----------+------------------------+ | Name | Size | Contents | +=======================+==========+========================+ | # bytes in next field | 1 byte | unsigned 8-bit integer | +-----------------------+----------+------------------------+ | Unnamed field 0 | Variable | bytes | +-----------------------+----------+------------------------+
DELETE /network/connections/<peer_id>?[wait]
Forced close of the current P2P connection to the given peer.
Optional query arguments :
- wait
{ }
+-----------------+---------+----------------------------------------------------+ | Name | Size | Contents | +=================+=========+====================================================+ | Unnamed field 0 | 0 bytes | placeholder (not actually present in the encoding) | +-----------------+---------+----------------------------------------------------+
GET /network/greylist/clear
Clear all greylists tables.
{ }
+-----------------+---------+----------------------------------------------------+ | Name | Size | Contents | +=================+=========+====================================================+ | Unnamed field 0 | 0 bytes | placeholder (not actually present in the encoding) | +-----------------+---------+----------------------------------------------------+
GET /network/log
Stream of all network events
$p2p_connection.pool_event $Crypto_box.Public_key_hash: /* A Cryptobox public key ID (Base58Check-encoded) */ $unistring $p2p_address: /* An address for locating peers. */ $unistring $p2p_connection.id: /* The identifier for a p2p connection. It includes an address and a port number. */ { "addr": $p2p_address, "port"?: integer ∈ [0, 2^16-1] } $p2p_connection.pool_event: /* An event that may happen during maintenance of and other operations on the p2p connection pool. Typically, it includes connection errors, peer swaps, etc. */ { "event": "too_few_connections" } || { "event": "too_many_connections" } || { "event": "new_point", "point": $p2p_point.id } || { "event": "new_peer", "peer_id": $Crypto_box.Public_key_hash } || { "event": "incoming_connection", "point": $p2p_point.id } || { "event": "outgoing_connection", "point": $p2p_point.id } || { "event": "authentication_failed", "point": $p2p_point.id } || { "event": "accepting_request", "point": $p2p_point.id, "id_point": $p2p_connection.id, "peer_id": $Crypto_box.Public_key_hash } || { "event": "rejecting_request", "point": $p2p_point.id, "id_point": $p2p_connection.id, "peer_id": $Crypto_box.Public_key_hash } || { "event": "request_rejected", "point": $p2p_point.id, "identity"?: [ $p2p_connection.id, $Crypto_box.Public_key_hash ] } || { "event": "connection_established", "id_point": $p2p_connection.id, "peer_id": $Crypto_box.Public_key_hash } || { "event": "disconnection", "peer_id": $Crypto_box.Public_key_hash } || { "event": "external_disconnection", "peer_id": $Crypto_box.Public_key_hash } || { "event": "gc_points" } || { "event": "gc_peer_ids" } || { "event": "swap_request_received", "source": $Crypto_box.Public_key_hash } || { "event": "swap_ack_received", "source": $Crypto_box.Public_key_hash } || { "event": "swap_request_sent", "source": $Crypto_box.Public_key_hash } || { "event": "swap_ack_sent", "source": $Crypto_box.Public_key_hash } || { "event": "swap_request_ignored", "source": $Crypto_box.Public_key_hash } || { "event": "swap_success", "source": $Crypto_box.Public_key_hash } || { "event": "swap_failure", "source": $Crypto_box.Public_key_hash } $p2p_point.id: /* Identifier for a peer point */ $unistring $unistring: /* Universal string representation Either a plain UTF8 string, or a sequence of bytes for strings that contain invalid byte sequences. */ string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
+-----------------+----------------------+----------+ | Name | Size | Contents | +=================+======================+==========+ | Unnamed field 0 | Determined from data | $X_1 | +-----------------+----------------------+----------+ X_0 *** +-----------------+----------------------+--------------------+ | Name | Size | Contents | +=================+======================+====================+ | Unnamed field 0 | Determined from data | $p2p_connection.id | +-----------------+----------------------+--------------------+ | Unnamed field 1 | 16 bytes | bytes | +-----------------+----------------------+--------------------+ p2p_connection.id ***************** +--------------------------------+----------+-------------------------------------+ | Name | Size | Contents | +================================+==========+=====================================+ | # bytes in field "p2p_address" | 4 bytes | unsigned 30-bit integer | +--------------------------------+----------+-------------------------------------+ | addr | Variable | bytes | +--------------------------------+----------+-------------------------------------+ | ? presence of field "port" | 1 byte | boolean (0 for false, 255 for true) | +--------------------------------+----------+-------------------------------------+ | port | 2 bytes | unsigned 16-bit integer | +--------------------------------+----------+-------------------------------------+ X_1 (Determined from data, 8-bit tag) ************************************* Too_few_connections (tag 0) =========================== +-----------------+---------+----------------------------------------------------+ | Name | Size | Contents | +=================+=========+====================================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------+---------+----------------------------------------------------+ | Unnamed field 0 | 0 bytes | placeholder (not actually present in the encoding) | +-----------------+---------+----------------------------------------------------+ Too_many_connections (tag 1) ============================ +-----------------+---------+----------------------------------------------------+ | Name | Size | Contents | +=================+=========+====================================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------+---------+----------------------------------------------------+ | Unnamed field 0 | 0 bytes | placeholder (not actually present in the encoding) | +-----------------+---------+----------------------------------------------------+ New_point (tag 2) ================= +---------------------------------+----------+-------------------------+ | Name | Size | Contents | +=================================+==========+=========================+ | Tag | 1 byte | unsigned 8-bit integer | +---------------------------------+----------+-------------------------+ | # bytes in field "p2p_point.id" | 4 bytes | unsigned 30-bit integer | +---------------------------------+----------+-------------------------+ | point | Variable | bytes | +---------------------------------+----------+-------------------------+ New_peer (tag 3) ================ +---------+----------+------------------------+ | Name | Size | Contents | +=========+==========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +---------+----------+------------------------+ | peer_id | 16 bytes | bytes | +---------+----------+------------------------+ Incoming_connection (tag 4) =========================== +---------------------------------+----------+-------------------------+ | Name | Size | Contents | +=================================+==========+=========================+ | Tag | 1 byte | unsigned 8-bit integer | +---------------------------------+----------+-------------------------+ | # bytes in field "p2p_point.id" | 4 bytes | unsigned 30-bit integer | +---------------------------------+----------+-------------------------+ | point | Variable | bytes | +---------------------------------+----------+-------------------------+ Outgoing_connection (tag 5) =========================== +---------------------------------+----------+-------------------------+ | Name | Size | Contents | +=================================+==========+=========================+ | Tag | 1 byte | unsigned 8-bit integer | +---------------------------------+----------+-------------------------+ | # bytes in field "p2p_point.id" | 4 bytes | unsigned 30-bit integer | +---------------------------------+----------+-------------------------+ | point | Variable | bytes | +---------------------------------+----------+-------------------------+ Authentication_failed (tag 6) ============================= +---------------------------------+----------+-------------------------+ | Name | Size | Contents | +=================================+==========+=========================+ | Tag | 1 byte | unsigned 8-bit integer | +---------------------------------+----------+-------------------------+ | # bytes in field "p2p_point.id" | 4 bytes | unsigned 30-bit integer | +---------------------------------+----------+-------------------------+ | point | Variable | bytes | +---------------------------------+----------+-------------------------+ Accepting_request (tag 7) ========================= +---------------------------------+----------------------+-------------------------+ | Name | Size | Contents | +=================================+======================+=========================+ | Tag | 1 byte | unsigned 8-bit integer | +---------------------------------+----------------------+-------------------------+ | # bytes in field "p2p_point.id" | 4 bytes | unsigned 30-bit integer | +---------------------------------+----------------------+-------------------------+ | point | Variable | bytes | +---------------------------------+----------------------+-------------------------+ | id_point | Determined from data | $p2p_connection.id | +---------------------------------+----------------------+-------------------------+ | peer_id | 16 bytes | bytes | +---------------------------------+----------------------+-------------------------+ Rejecting_request (tag 8) ========================= +---------------------------------+----------------------+-------------------------+ | Name | Size | Contents | +=================================+======================+=========================+ | Tag | 1 byte | unsigned 8-bit integer | +---------------------------------+----------------------+-------------------------+ | # bytes in field "p2p_point.id" | 4 bytes | unsigned 30-bit integer | +---------------------------------+----------------------+-------------------------+ | point | Variable | bytes | +---------------------------------+----------------------+-------------------------+ | id_point | Determined from data | $p2p_connection.id | +---------------------------------+----------------------+-------------------------+ | peer_id | 16 bytes | bytes | +---------------------------------+----------------------+-------------------------+ Request_rejected (tag 9) ======================== +---------------------------------+----------------------+-------------------------------------+ | Name | Size | Contents | +=================================+======================+=====================================+ | Tag | 1 byte | unsigned 8-bit integer | +---------------------------------+----------------------+-------------------------------------+ | # bytes in field "p2p_point.id" | 4 bytes | unsigned 30-bit integer | +---------------------------------+----------------------+-------------------------------------+ | point | Variable | bytes | +---------------------------------+----------------------+-------------------------------------+ | ? presence of field "identity" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------+----------------------+-------------------------------------+ | identity | Determined from data | $X_0 | +---------------------------------+----------------------+-------------------------------------+ Connection_established (tag 10) =============================== +----------+----------------------+------------------------+ | Name | Size | Contents | +==========+======================+========================+ | Tag | 1 byte | unsigned 8-bit integer | +----------+----------------------+------------------------+ | id_point | Determined from data | $p2p_connection.id | +----------+----------------------+------------------------+ | peer_id | 16 bytes | bytes | +----------+----------------------+------------------------+ Disconnection (tag 11) ====================== +---------+----------+------------------------+ | Name | Size | Contents | +=========+==========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +---------+----------+------------------------+ | peer_id | 16 bytes | bytes | +---------+----------+------------------------+ External_disconnection (tag 12) =============================== +---------+----------+------------------------+ | Name | Size | Contents | +=========+==========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +---------+----------+------------------------+ | peer_id | 16 bytes | bytes | +---------+----------+------------------------+ Gc_points (tag 13) ================== +-----------------+---------+----------------------------------------------------+ | Name | Size | Contents | +=================+=========+====================================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------+---------+----------------------------------------------------+ | Unnamed field 0 | 0 bytes | placeholder (not actually present in the encoding) | +-----------------+---------+----------------------------------------------------+ Gc_peer_ids (tag 14) ==================== +-----------------+---------+----------------------------------------------------+ | Name | Size | Contents | +=================+=========+====================================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------+---------+----------------------------------------------------+ | Unnamed field 0 | 0 bytes | placeholder (not actually present in the encoding) | +-----------------+---------+----------------------------------------------------+ Swap_request_received (tag 15) ============================== +--------+----------+------------------------+ | Name | Size | Contents | +========+==========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +--------+----------+------------------------+ | source | 16 bytes | bytes | +--------+----------+------------------------+ Swap_ack_received (tag 16) ========================== +--------+----------+------------------------+ | Name | Size | Contents | +========+==========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +--------+----------+------------------------+ | source | 16 bytes | bytes | +--------+----------+------------------------+ Swap_request_sent (tag 17) ========================== +--------+----------+------------------------+ | Name | Size | Contents | +========+==========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +--------+----------+------------------------+ | source | 16 bytes | bytes | +--------+----------+------------------------+ Swap_ack_sent (tag 18) ====================== +--------+----------+------------------------+ | Name | Size | Contents | +========+==========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +--------+----------+------------------------+ | source | 16 bytes | bytes | +--------+----------+------------------------+ Swap_request_ignored (tag 19) ============================= +--------+----------+------------------------+ | Name | Size | Contents | +========+==========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +--------+----------+------------------------+ | source | 16 bytes | bytes | +--------+----------+------------------------+ Swap_success (tag 20) ===================== +--------+----------+------------------------+ | Name | Size | Contents | +========+==========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +--------+----------+------------------------+ | source | 16 bytes | bytes | +--------+----------+------------------------+ Swap_failure (tag 21) ===================== +--------+----------+------------------------+ | Name | Size | Contents | +========+==========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +--------+----------+------------------------+ | source | 16 bytes | bytes | +--------+----------+------------------------+
GET /network/peers?(filter=<p2p.point.state_filter>)*
List the peers the node ever met.
Optional query arguments :
- filter = <p2p.point.state_filter>
[ [ $Crypto_box.Public_key_hash, { "score": number, "trusted": boolean, "conn_metadata"?: { "disable_mempool": boolean, "private_node": boolean }, "peer_metadata": { "responses": { "sent": { "branch": $bignum, "head": $bignum, "block_header": $bignum, "operations": $bignum, "protocols": $bignum, "operation_hashes_for_block": $bignum, "operations_for_block": $bignum, "other": $bignum }, "failed": { "branch": $bignum, "head": $bignum, "block_header": $bignum, "operations": $bignum, "protocols": $bignum, "operation_hashes_for_block": $bignum, "operations_for_block": $bignum, "other": $bignum }, "received": { "branch": $bignum, "head": $bignum, "block_header": $bignum, "operations": $bignum, "protocols": $bignum, "operation_hashes_for_block": $bignum, "operations_for_block": $bignum, "other": $bignum }, "unexpected": $bignum, "outdated": $bignum }, "requests": { "sent": { "branch": $bignum, "head": $bignum, "block_header": $bignum, "operations": $bignum, "protocols": $bignum, "operation_hashes_for_block": $bignum, "operations_for_block": $bignum, "other": $bignum }, "received": { "branch": $bignum, "head": $bignum, "block_header": $bignum, "operations": $bignum, "protocols": $bignum, "operation_hashes_for_block": $bignum, "operations_for_block": $bignum, "other": $bignum }, "failed": { "branch": $bignum, "head": $bignum, "block_header": $bignum, "operations": $bignum, "protocols": $bignum, "operation_hashes_for_block": $bignum, "operations_for_block": $bignum, "other": $bignum }, "scheduled": { "branch": $bignum, "head": $bignum, "block_header": $bignum, "operations": $bignum, "protocols": $bignum, "operation_hashes_for_block": $bignum, "operations_for_block": $bignum, "other": $bignum } }, "valid_blocks": $bignum, "old_heads": $bignum, "prevalidator_results": { "cannot_download": $bignum, "cannot_parse": $bignum, "refused_by_prefilter": $bignum, "refused_by_postfilter": $bignum, "applied": $bignum, "branch_delayed": $bignum, "branch_refused": $bignum, "refused": $bignum, "duplicate": $bignum, "outdated": $bignum }, "unactivated_chains": $bignum, "inactive_chains": $bignum, "future_blocks_advertised": $bignum, "unadvertised": { "block": $bignum, "operations": $bignum, "protocol": $bignum }, "advertisements": { "sent": { "head": $bignum, "branch": $bignum }, "received": { "head": $bignum, "branch": $bignum } } }, "state": $p2p_peer.state, "reachable_at"?: $p2p_connection.id, "stat": $p2p_stat, "last_failed_connection"?: [ $p2p_connection.id, $timestamp.system ], "last_rejected_connection"?: [ $p2p_connection.id, $timestamp.system ], "last_established_connection"?: [ $p2p_connection.id, $timestamp.system ], "last_disconnection"?: [ $p2p_connection.id, $timestamp.system ], "last_seen"?: [ $p2p_connection.id, $timestamp.system ], "last_miss"?: [ $p2p_connection.id, $timestamp.system ] } ] ... ] $Crypto_box.Public_key_hash: /* A Cryptobox public key ID (Base58Check-encoded) */ $unistring $bignum: /* Big number Decimal representation of a big number */ string $int64: /* 64 bit integers Decimal representation of 64 bit integers */ string $p2p_address: /* An address for locating peers. */ $unistring $p2p_connection.id: /* The identifier for a p2p connection. It includes an address and a port number. */ { "addr": $p2p_address, "port"?: integer ∈ [0, 2^16-1] } $p2p_peer.state: /* The state a peer connection can be in: accepted (when the connection is being established), running (when the connection is already established), disconnected (otherwise). */ "running" | "accepted" | "disconnected" $p2p_stat: /* Statistics about the p2p network. */ { "total_sent": $int64, "total_recv": $int64, "current_inflow": integer ∈ [-2^30-2, 2^30+2], "current_outflow": integer ∈ [-2^30-2, 2^30+2] } $timestamp.rfc: /* RFC 3339 formatted timestamp A date in RFC 3339 notation. */ $unistring $timestamp.system: /* A timestamp as seen by the underlying, local computer: subsecond-level precision, epoch or rfc3339 based. */ $timestamp.rfc || $int64 $unistring: /* Universal string representation Either a plain UTF8 string, or a sequence of bytes for strings that contain invalid byte sequences. */ string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
+-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | Unnamed field 0 | Variable | sequence of $X_0 | +-----------------------+----------+-------------------------+ X_2 *** +-----------------+--------+-------------------------------------+ | Name | Size | Contents | +=================+========+=====================================+ | disable_mempool | 1 byte | boolean (0 for false, 255 for true) | +-----------------+--------+-------------------------------------+ | private_node | 1 byte | boolean (0 for false, 255 for true) | +-----------------+--------+-------------------------------------+ X_4 *** +------------+----------------------+----------+ | Name | Size | Contents | +============+======================+==========+ | sent | Determined from data | $X_12 | +------------+----------------------+----------+ | failed | Determined from data | $X_12 | +------------+----------------------+----------+ | received | Determined from data | $X_12 | +------------+----------------------+----------+ | unexpected | Determined from data | $Z.t | +------------+----------------------+----------+ | outdated | Determined from data | $Z.t | +------------+----------------------+----------+ X_12 **** +----------------------------+----------------------+----------+ | Name | Size | Contents | +============================+======================+==========+ | branch | Determined from data | $Z.t | +----------------------------+----------------------+----------+ | head | Determined from data | $Z.t | +----------------------------+----------------------+----------+ | block_header | Determined from data | $Z.t | +----------------------------+----------------------+----------+ | operations | Determined from data | $Z.t | +----------------------------+----------------------+----------+ | protocols | Determined from data | $Z.t | +----------------------------+----------------------+----------+ | operation_hashes_for_block | Determined from data | $Z.t | +----------------------------+----------------------+----------+ | operations_for_block | Determined from data | $Z.t | +----------------------------+----------------------+----------+ | other | Determined from data | $Z.t | +----------------------------+----------------------+----------+ X_8 *** +-----------+----------------------+----------+ | Name | Size | Contents | +===========+======================+==========+ | sent | Determined from data | $X_12 | +-----------+----------------------+----------+ | received | Determined from data | $X_12 | +-----------+----------------------+----------+ | failed | Determined from data | $X_12 | +-----------+----------------------+----------+ | scheduled | Determined from data | $X_12 | +-----------+----------------------+----------+ X_13 **** +-----------------------+----------------------+----------+ | Name | Size | Contents | +=======================+======================+==========+ | cannot_download | Determined from data | $Z.t | +-----------------------+----------------------+----------+ | cannot_parse | Determined from data | $Z.t | +-----------------------+----------------------+----------+ | refused_by_prefilter | Determined from data | $Z.t | +-----------------------+----------------------+----------+ | refused_by_postfilter | Determined from data | $Z.t | +-----------------------+----------------------+----------+ | applied | Determined from data | $Z.t | +-----------------------+----------------------+----------+ | branch_delayed | Determined from data | $Z.t | +-----------------------+----------------------+----------+ | branch_refused | Determined from data | $Z.t | +-----------------------+----------------------+----------+ | refused | Determined from data | $Z.t | +-----------------------+----------------------+----------+ | duplicate | Determined from data | $Z.t | +-----------------------+----------------------+----------+ | outdated | Determined from data | $Z.t | +-----------------------+----------------------+----------+ X_14 **** +------------+----------------------+----------+ | Name | Size | Contents | +============+======================+==========+ | block | Determined from data | $Z.t | +------------+----------------------+----------+ | operations | Determined from data | $Z.t | +------------+----------------------+----------+ | protocol | Determined from data | $Z.t | +------------+----------------------+----------+ Z.t *** A variable length sequence of bytes, encoding a Zarith number. Each byte has a running unary size bit: the most significant bit of each byte tells is this is the last byte in the sequence (0) or if there is more to read (1). The second most significant bit of the first byte is reserved for the sign (positive if zero). Size and sign bits ignored, data is then the binary representation of the absolute value of the number in little endian order. +------+----------------------+----------+ | Name | Size | Contents | +======+======================+==========+ | Z.t | Determined from data | bytes | +------+----------------------+----------+ X_17 **** +--------+----------------------+----------+ | Name | Size | Contents | +========+======================+==========+ | head | Determined from data | $Z.t | +--------+----------------------+----------+ | branch | Determined from data | $Z.t | +--------+----------------------+----------+ X_15 **** +----------+----------------------+----------+ | Name | Size | Contents | +==========+======================+==========+ | sent | Determined from data | $X_17 | +----------+----------------------+----------+ | received | Determined from data | $X_17 | +----------+----------------------+----------+ X_3 *** +--------------------------+----------------------+----------+ | Name | Size | Contents | +==========================+======================+==========+ | responses | Determined from data | $X_4 | +--------------------------+----------------------+----------+ | requests | Determined from data | $X_8 | +--------------------------+----------------------+----------+ | valid_blocks | Determined from data | $Z.t | +--------------------------+----------------------+----------+ | old_heads | Determined from data | $Z.t | +--------------------------+----------------------+----------+ | prevalidator_results | Determined from data | $X_13 | +--------------------------+----------------------+----------+ | unactivated_chains | Determined from data | $Z.t | +--------------------------+----------------------+----------+ | inactive_chains | Determined from data | $Z.t | +--------------------------+----------------------+----------+ | future_blocks_advertised | Determined from data | $Z.t | +--------------------------+----------------------+----------+ | unadvertised | Determined from data | $X_14 | +--------------------------+----------------------+----------+ | advertisements | Determined from data | $X_15 | +--------------------------+----------------------+----------+ p2p_peer.state (Enumeration: unsigned 8-bit integer): ***************************************************** +-------------+----------------+ | Case number | Encoded string | +=============+================+ | 0 | accepted | +-------------+----------------+ | 1 | running | +-------------+----------------+ | 2 | disconnected | +-------------+----------------+ p2p_stat ******** +-----------------+---------+--------------------------------------------------------------+ | Name | Size | Contents | +=================+=========+==============================================================+ | total_sent | 8 bytes | signed 64-bit integer | +-----------------+---------+--------------------------------------------------------------+ | total_recv | 8 bytes | signed 64-bit integer | +-----------------+---------+--------------------------------------------------------------+ | current_inflow | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +-----------------+---------+--------------------------------------------------------------+ | current_outflow | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +-----------------+---------+--------------------------------------------------------------+ p2p_connection.id ***************** +--------------------------------+----------+-------------------------------------+ | Name | Size | Contents | +================================+==========+=====================================+ | # bytes in field "p2p_address" | 4 bytes | unsigned 30-bit integer | +--------------------------------+----------+-------------------------------------+ | addr | Variable | bytes | +--------------------------------+----------+-------------------------------------+ | ? presence of field "port" | 1 byte | boolean (0 for false, 255 for true) | +--------------------------------+----------+-------------------------------------+ | port | 2 bytes | unsigned 16-bit integer | +--------------------------------+----------+-------------------------------------+ X_23 **** +-----------------+----------------------+-----------------------+ | Name | Size | Contents | +=================+======================+=======================+ | Unnamed field 0 | Determined from data | $p2p_connection.id | +-----------------+----------------------+-----------------------+ | Unnamed field 1 | 8 bytes | signed 64-bit integer | +-----------------+----------------------+-----------------------+ X_1 *** +---------------------------------------------------+----------------------+---------------------------------------------------------------------+ | Name | Size | Contents | +===================================================+======================+=====================================================================+ | score | 8 bytes | double-precision floating-point number | +---------------------------------------------------+----------------------+---------------------------------------------------------------------+ | trusted | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------+----------------------+---------------------------------------------------------------------+ | ? presence of field "conn_metadata" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------+----------------------+---------------------------------------------------------------------+ | conn_metadata | 2 bytes | $X_2 | +---------------------------------------------------+----------------------+---------------------------------------------------------------------+ | peer_metadata | Determined from data | $X_3 | +---------------------------------------------------+----------------------+---------------------------------------------------------------------+ | state | 1 byte | unsigned 8-bit integer encoding an enumeration (see p2p_peer.state) | +---------------------------------------------------+----------------------+---------------------------------------------------------------------+ | ? presence of field "reachable_at" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------+----------------------+---------------------------------------------------------------------+ | reachable_at | Determined from data | $p2p_connection.id | +---------------------------------------------------+----------------------+---------------------------------------------------------------------+ | stat | 24 bytes | $p2p_stat | +---------------------------------------------------+----------------------+---------------------------------------------------------------------+ | ? presence of field "last_failed_connection" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------+----------------------+---------------------------------------------------------------------+ | last_failed_connection | Determined from data | $X_23 | +---------------------------------------------------+----------------------+---------------------------------------------------------------------+ | ? presence of field "last_rejected_connection" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------+----------------------+---------------------------------------------------------------------+ | last_rejected_connection | Determined from data | $X_23 | +---------------------------------------------------+----------------------+---------------------------------------------------------------------+ | ? presence of field "last_established_connection" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------+----------------------+---------------------------------------------------------------------+ | last_established_connection | Determined from data | $X_23 | +---------------------------------------------------+----------------------+---------------------------------------------------------------------+ | ? presence of field "last_disconnection" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------+----------------------+---------------------------------------------------------------------+ | last_disconnection | Determined from data | $X_23 | +---------------------------------------------------+----------------------+---------------------------------------------------------------------+ | ? presence of field "last_seen" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------+----------------------+---------------------------------------------------------------------+ | last_seen | Determined from data | $X_23 | +---------------------------------------------------+----------------------+---------------------------------------------------------------------+ | ? presence of field "last_miss" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------+----------------------+---------------------------------------------------------------------+ | last_miss | Determined from data | $X_23 | +---------------------------------------------------+----------------------+---------------------------------------------------------------------+ X_0 *** +-----------------+----------------------+----------+ | Name | Size | Contents | +=================+======================+==========+ | Unnamed field 0 | 16 bytes | bytes | +-----------------+----------------------+----------+ | Unnamed field 1 | Determined from data | $X_1 | +-----------------+----------------------+----------+
GET /network/peers/<peer_id>
Details about a given peer.
{ "score": number, "trusted": boolean, "conn_metadata"?: { "disable_mempool": boolean, "private_node": boolean }, "peer_metadata": { "responses": { "sent": { "branch": $bignum, "head": $bignum, "block_header": $bignum, "operations": $bignum, "protocols": $bignum, "operation_hashes_for_block": $bignum, "operations_for_block": $bignum, "other": $bignum }, "failed": { "branch": $bignum, "head": $bignum, "block_header": $bignum, "operations": $bignum, "protocols": $bignum, "operation_hashes_for_block": $bignum, "operations_for_block": $bignum, "other": $bignum }, "received": { "branch": $bignum, "head": $bignum, "block_header": $bignum, "operations": $bignum, "protocols": $bignum, "operation_hashes_for_block": $bignum, "operations_for_block": $bignum, "other": $bignum }, "unexpected": $bignum, "outdated": $bignum }, "requests": { "sent": { "branch": $bignum, "head": $bignum, "block_header": $bignum, "operations": $bignum, "protocols": $bignum, "operation_hashes_for_block": $bignum, "operations_for_block": $bignum, "other": $bignum }, "received": { "branch": $bignum, "head": $bignum, "block_header": $bignum, "operations": $bignum, "protocols": $bignum, "operation_hashes_for_block": $bignum, "operations_for_block": $bignum, "other": $bignum }, "failed": { "branch": $bignum, "head": $bignum, "block_header": $bignum, "operations": $bignum, "protocols": $bignum, "operation_hashes_for_block": $bignum, "operations_for_block": $bignum, "other": $bignum }, "scheduled": { "branch": $bignum, "head": $bignum, "block_header": $bignum, "operations": $bignum, "protocols": $bignum, "operation_hashes_for_block": $bignum, "operations_for_block": $bignum, "other": $bignum } }, "valid_blocks": $bignum, "old_heads": $bignum, "prevalidator_results": { "cannot_download": $bignum, "cannot_parse": $bignum, "refused_by_prefilter": $bignum, "refused_by_postfilter": $bignum, "applied": $bignum, "branch_delayed": $bignum, "branch_refused": $bignum, "refused": $bignum, "duplicate": $bignum, "outdated": $bignum }, "unactivated_chains": $bignum, "inactive_chains": $bignum, "future_blocks_advertised": $bignum, "unadvertised": { "block": $bignum, "operations": $bignum, "protocol": $bignum }, "advertisements": { "sent": { "head": $bignum, "branch": $bignum }, "received": { "head": $bignum, "branch": $bignum } } }, "state": $p2p_peer.state, "reachable_at"?: $p2p_connection.id, "stat": $p2p_stat, "last_failed_connection"?: [ $p2p_connection.id, $timestamp.system ], "last_rejected_connection"?: [ $p2p_connection.id, $timestamp.system ], "last_established_connection"?: [ $p2p_connection.id, $timestamp.system ], "last_disconnection"?: [ $p2p_connection.id, $timestamp.system ], "last_seen"?: [ $p2p_connection.id, $timestamp.system ], "last_miss"?: [ $p2p_connection.id, $timestamp.system ] } $bignum: /* Big number Decimal representation of a big number */ string $int64: /* 64 bit integers Decimal representation of 64 bit integers */ string $p2p_address: /* An address for locating peers. */ $unistring $p2p_connection.id: /* The identifier for a p2p connection. It includes an address and a port number. */ { "addr": $p2p_address, "port"?: integer ∈ [0, 2^16-1] } $p2p_peer.state: /* The state a peer connection can be in: accepted (when the connection is being established), running (when the connection is already established), disconnected (otherwise). */ "running" | "accepted" | "disconnected" $p2p_stat: /* Statistics about the p2p network. */ { "total_sent": $int64, "total_recv": $int64, "current_inflow": integer ∈ [-2^30-2, 2^30+2], "current_outflow": integer ∈ [-2^30-2, 2^30+2] } $timestamp.rfc: /* RFC 3339 formatted timestamp A date in RFC 3339 notation. */ $unistring $timestamp.system: /* A timestamp as seen by the underlying, local computer: subsecond-level precision, epoch or rfc3339 based. */ $timestamp.rfc || $int64 $unistring: /* Universal string representation Either a plain UTF8 string, or a sequence of bytes for strings that contain invalid byte sequences. */ string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
+---------------------------------------------------+----------------------+---------------------------------------------------------------------+ | Name | Size | Contents | +===================================================+======================+=====================================================================+ | score | 8 bytes | double-precision floating-point number | +---------------------------------------------------+----------------------+---------------------------------------------------------------------+ | trusted | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------+----------------------+---------------------------------------------------------------------+ | ? presence of field "conn_metadata" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------+----------------------+---------------------------------------------------------------------+ | conn_metadata | 2 bytes | $X_0 | +---------------------------------------------------+----------------------+---------------------------------------------------------------------+ | peer_metadata | Determined from data | $X_1 | +---------------------------------------------------+----------------------+---------------------------------------------------------------------+ | state | 1 byte | unsigned 8-bit integer encoding an enumeration (see p2p_peer.state) | +---------------------------------------------------+----------------------+---------------------------------------------------------------------+ | ? presence of field "reachable_at" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------+----------------------+---------------------------------------------------------------------+ | reachable_at | Determined from data | $p2p_connection.id | +---------------------------------------------------+----------------------+---------------------------------------------------------------------+ | stat | 24 bytes | $p2p_stat | +---------------------------------------------------+----------------------+---------------------------------------------------------------------+ | ? presence of field "last_failed_connection" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------+----------------------+---------------------------------------------------------------------+ | last_failed_connection | Determined from data | $X_16 | +---------------------------------------------------+----------------------+---------------------------------------------------------------------+ | ? presence of field "last_rejected_connection" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------+----------------------+---------------------------------------------------------------------+ | last_rejected_connection | Determined from data | $X_17 | +---------------------------------------------------+----------------------+---------------------------------------------------------------------+ | ? presence of field "last_established_connection" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------+----------------------+---------------------------------------------------------------------+ | last_established_connection | Determined from data | $X_18 | +---------------------------------------------------+----------------------+---------------------------------------------------------------------+ | ? presence of field "last_disconnection" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------+----------------------+---------------------------------------------------------------------+ | last_disconnection | Determined from data | $X_19 | +---------------------------------------------------+----------------------+---------------------------------------------------------------------+ | ? presence of field "last_seen" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------+----------------------+---------------------------------------------------------------------+ | last_seen | Determined from data | $X_20 | +---------------------------------------------------+----------------------+---------------------------------------------------------------------+ | ? presence of field "last_miss" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------+----------------------+---------------------------------------------------------------------+ | last_miss | Determined from data | $X_21 | +---------------------------------------------------+----------------------+---------------------------------------------------------------------+ X_0 *** +-----------------+--------+-------------------------------------+ | Name | Size | Contents | +=================+========+=====================================+ | disable_mempool | 1 byte | boolean (0 for false, 255 for true) | +-----------------+--------+-------------------------------------+ | private_node | 1 byte | boolean (0 for false, 255 for true) | +-----------------+--------+-------------------------------------+ X_2 *** +------------+----------------------+----------+ | Name | Size | Contents | +============+======================+==========+ | sent | Determined from data | $X_10 | +------------+----------------------+----------+ | failed | Determined from data | $X_10 | +------------+----------------------+----------+ | received | Determined from data | $X_10 | +------------+----------------------+----------+ | unexpected | Determined from data | $Z.t | +------------+----------------------+----------+ | outdated | Determined from data | $Z.t | +------------+----------------------+----------+ X_10 **** +----------------------------+----------------------+----------+ | Name | Size | Contents | +============================+======================+==========+ | branch | Determined from data | $Z.t | +----------------------------+----------------------+----------+ | head | Determined from data | $Z.t | +----------------------------+----------------------+----------+ | block_header | Determined from data | $Z.t | +----------------------------+----------------------+----------+ | operations | Determined from data | $Z.t | +----------------------------+----------------------+----------+ | protocols | Determined from data | $Z.t | +----------------------------+----------------------+----------+ | operation_hashes_for_block | Determined from data | $Z.t | +----------------------------+----------------------+----------+ | operations_for_block | Determined from data | $Z.t | +----------------------------+----------------------+----------+ | other | Determined from data | $Z.t | +----------------------------+----------------------+----------+ X_6 *** +-----------+----------------------+----------+ | Name | Size | Contents | +===========+======================+==========+ | sent | Determined from data | $X_10 | +-----------+----------------------+----------+ | received | Determined from data | $X_10 | +-----------+----------------------+----------+ | failed | Determined from data | $X_10 | +-----------+----------------------+----------+ | scheduled | Determined from data | $X_10 | +-----------+----------------------+----------+ X_11 **** +-----------------------+----------------------+----------+ | Name | Size | Contents | +=======================+======================+==========+ | cannot_download | Determined from data | $Z.t | +-----------------------+----------------------+----------+ | cannot_parse | Determined from data | $Z.t | +-----------------------+----------------------+----------+ | refused_by_prefilter | Determined from data | $Z.t | +-----------------------+----------------------+----------+ | refused_by_postfilter | Determined from data | $Z.t | +-----------------------+----------------------+----------+ | applied | Determined from data | $Z.t | +-----------------------+----------------------+----------+ | branch_delayed | Determined from data | $Z.t | +-----------------------+----------------------+----------+ | branch_refused | Determined from data | $Z.t | +-----------------------+----------------------+----------+ | refused | Determined from data | $Z.t | +-----------------------+----------------------+----------+ | duplicate | Determined from data | $Z.t | +-----------------------+----------------------+----------+ | outdated | Determined from data | $Z.t | +-----------------------+----------------------+----------+ X_12 **** +------------+----------------------+----------+ | Name | Size | Contents | +============+======================+==========+ | block | Determined from data | $Z.t | +------------+----------------------+----------+ | operations | Determined from data | $Z.t | +------------+----------------------+----------+ | protocol | Determined from data | $Z.t | +------------+----------------------+----------+ Z.t *** A variable length sequence of bytes, encoding a Zarith number. Each byte has a running unary size bit: the most significant bit of each byte tells is this is the last byte in the sequence (0) or if there is more to read (1). The second most significant bit of the first byte is reserved for the sign (positive if zero). Size and sign bits ignored, data is then the binary representation of the absolute value of the number in little endian order. +------+----------------------+----------+ | Name | Size | Contents | +======+======================+==========+ | Z.t | Determined from data | bytes | +------+----------------------+----------+ X_15 **** +--------+----------------------+----------+ | Name | Size | Contents | +========+======================+==========+ | head | Determined from data | $Z.t | +--------+----------------------+----------+ | branch | Determined from data | $Z.t | +--------+----------------------+----------+ X_13 **** +----------+----------------------+----------+ | Name | Size | Contents | +==========+======================+==========+ | sent | Determined from data | $X_15 | +----------+----------------------+----------+ | received | Determined from data | $X_15 | +----------+----------------------+----------+ X_1 *** +--------------------------+----------------------+----------+ | Name | Size | Contents | +==========================+======================+==========+ | responses | Determined from data | $X_2 | +--------------------------+----------------------+----------+ | requests | Determined from data | $X_6 | +--------------------------+----------------------+----------+ | valid_blocks | Determined from data | $Z.t | +--------------------------+----------------------+----------+ | old_heads | Determined from data | $Z.t | +--------------------------+----------------------+----------+ | prevalidator_results | Determined from data | $X_11 | +--------------------------+----------------------+----------+ | unactivated_chains | Determined from data | $Z.t | +--------------------------+----------------------+----------+ | inactive_chains | Determined from data | $Z.t | +--------------------------+----------------------+----------+ | future_blocks_advertised | Determined from data | $Z.t | +--------------------------+----------------------+----------+ | unadvertised | Determined from data | $X_12 | +--------------------------+----------------------+----------+ | advertisements | Determined from data | $X_13 | +--------------------------+----------------------+----------+ p2p_peer.state (Enumeration: unsigned 8-bit integer): ***************************************************** +-------------+----------------+ | Case number | Encoded string | +=============+================+ | 0 | accepted | +-------------+----------------+ | 1 | running | +-------------+----------------+ | 2 | disconnected | +-------------+----------------+ p2p_stat ******** +-----------------+---------+--------------------------------------------------------------+ | Name | Size | Contents | +=================+=========+==============================================================+ | total_sent | 8 bytes | signed 64-bit integer | +-----------------+---------+--------------------------------------------------------------+ | total_recv | 8 bytes | signed 64-bit integer | +-----------------+---------+--------------------------------------------------------------+ | current_inflow | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +-----------------+---------+--------------------------------------------------------------+ | current_outflow | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +-----------------+---------+--------------------------------------------------------------+ p2p_connection.id ***************** +--------------------------------+----------+-------------------------------------+ | Name | Size | Contents | +================================+==========+=====================================+ | # bytes in field "p2p_address" | 4 bytes | unsigned 30-bit integer | +--------------------------------+----------+-------------------------------------+ | addr | Variable | bytes | +--------------------------------+----------+-------------------------------------+ | ? presence of field "port" | 1 byte | boolean (0 for false, 255 for true) | +--------------------------------+----------+-------------------------------------+ | port | 2 bytes | unsigned 16-bit integer | +--------------------------------+----------+-------------------------------------+ X_21 **** +-----------------+----------------------+-----------------------+ | Name | Size | Contents | +=================+======================+=======================+ | Unnamed field 0 | Determined from data | $p2p_connection.id | +-----------------+----------------------+-----------------------+ | Unnamed field 1 | 8 bytes | signed 64-bit integer | +-----------------+----------------------+-----------------------+
GET /network/peers/<peer_id>/ban
Blacklist the given peer and remove it from the whitelist if present.
{ }
+-----------------+---------+----------------------------------------------------+ | Name | Size | Contents | +=================+=========+====================================================+ | Unnamed field 0 | 0 bytes | placeholder (not actually present in the encoding) | +-----------------+---------+----------------------------------------------------+
GET /network/peers/<peer_id>/banned
Check if a given peer is blacklisted or greylisted.
boolean
+-----------------+--------+-------------------------------------+ | Name | Size | Contents | +=================+========+=====================================+ | Unnamed field 0 | 1 byte | boolean (0 for false, 255 for true) | +-----------------+--------+-------------------------------------+
GET /network/peers/<peer_id>/log?[monitor]
Monitor network events related to a given peer.
Optional query arguments :
- monitor
[ $p2p_peer.pool_event ... ] $int64: /* 64 bit integers Decimal representation of 64 bit integers */ string $p2p_address: /* An address for locating peers. */ $unistring $p2p_peer.pool_event: /* An event that may happen during maintenance of and other operations on the connection to a specific peer. */ { "kind": "rejecting_request" | "incoming_request" | "disconnection" | "external_disconnection" | "connection_established" | "request_rejected", "timestamp": $timestamp.system, "addr": $p2p_address, "port"?: integer ∈ [0, 2^16-1] } $timestamp.rfc: /* RFC 3339 formatted timestamp A date in RFC 3339 notation. */ $unistring $timestamp.system: /* A timestamp as seen by the underlying, local computer: subsecond-level precision, epoch or rfc3339 based. */ $timestamp.rfc || $int64 $unistring: /* Universal string representation Either a plain UTF8 string, or a sequence of bytes for strings that contain invalid byte sequences. */ string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
+-----------------------+----------+----------------------------------+ | Name | Size | Contents | +=======================+==========+==================================+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+----------------------------------+ | Unnamed field 0 | Variable | sequence of $p2p_peer.pool_event | +-----------------------+----------+----------------------------------+ X_0 (Enumeration: unsigned 8-bit integer): ****************************************** +-------------+------------------------+ | Case number | Encoded string | +=============+========================+ | 0 | incoming_request | +-------------+------------------------+ | 1 | rejecting_request | +-------------+------------------------+ | 2 | request_rejected | +-------------+------------------------+ | 3 | connection_established | +-------------+------------------------+ | 4 | disconnection | +-------------+------------------------+ | 5 | external_disconnection | +-------------+------------------------+ p2p_peer.pool_event ******************* +--------------------------------+----------+----------------------------------------------------------+ | Name | Size | Contents | +================================+==========+==========================================================+ | kind | 1 byte | unsigned 8-bit integer encoding an enumeration (see X_0) | +--------------------------------+----------+----------------------------------------------------------+ | timestamp | 8 bytes | signed 64-bit integer | +--------------------------------+----------+----------------------------------------------------------+ | # bytes in field "p2p_address" | 4 bytes | unsigned 30-bit integer | +--------------------------------+----------+----------------------------------------------------------+ | addr | Variable | bytes | +--------------------------------+----------+----------------------------------------------------------+ | ? presence of field "port" | 1 byte | boolean (0 for false, 255 for true) | +--------------------------------+----------+----------------------------------------------------------+ | port | 2 bytes | unsigned 16-bit integer | +--------------------------------+----------+----------------------------------------------------------+
GET /network/peers/<peer_id>/trust
Whitelist a given peer permanently and remove it from the blacklist if present. The peer cannot be blocked (but its host IP still can).
{ }
+-----------------+---------+----------------------------------------------------+ | Name | Size | Contents | +=================+=========+====================================================+ | Unnamed field 0 | 0 bytes | placeholder (not actually present in the encoding) | +-----------------+---------+----------------------------------------------------+
GET /network/peers/<peer_id>/unban
Remove the given peer from the blacklist.
{ }
+-----------------+---------+----------------------------------------------------+ | Name | Size | Contents | +=================+=========+====================================================+ | Unnamed field 0 | 0 bytes | placeholder (not actually present in the encoding) | +-----------------+---------+----------------------------------------------------+
GET /network/peers/<peer_id>/untrust
Remove a given peer from the whitelist.
{ }
+-----------------+---------+----------------------------------------------------+ | Name | Size | Contents | +=================+=========+====================================================+ | Unnamed field 0 | 0 bytes | placeholder (not actually present in the encoding) | +-----------------+---------+----------------------------------------------------+
GET /network/points?(filter=<p2p.point.state_filter>)*
List the pool of known `IP:port` used for establishing P2P connections.
Optional query arguments :
- filter = <p2p.point.state_filter>
[ [ $p2p_point.id, $p2p_point.info ] ... ] $Crypto_box.Public_key_hash: /* A Cryptobox public key ID (Base58Check-encoded) */ $unistring $int64: /* 64 bit integers Decimal representation of 64 bit integers */ string $p2p_point.id: /* Identifier for a peer point */ $unistring $p2p_point.info: /* Information about a peer point. Includes flags, state, and records about past events. */ { "trusted": boolean, "greylisted_until"?: $timestamp.system, "state": $p2p_point.state, "p2p_peer_id"?: $Crypto_box.Public_key_hash, "last_failed_connection"?: $timestamp.system, "last_rejected_connection"?: [ $Crypto_box.Public_key_hash, $timestamp.system ], "last_established_connection"?: [ $Crypto_box.Public_key_hash, $timestamp.system ], "last_disconnection"?: [ $Crypto_box.Public_key_hash, $timestamp.system ], "last_seen"?: [ $Crypto_box.Public_key_hash, $timestamp.system ], "last_miss"?: $timestamp.system } $p2p_point.state: /* The state a connection to a peer point can be in: requested (connection open from here), accepted (handshake), running (connection already established), disconnected (no connection). */ { "event_kind": "requested" } || { "event_kind": "accepted", "p2p_peer_id": $Crypto_box.Public_key_hash } || { "event_kind": "running", "p2p_peer_id": $Crypto_box.Public_key_hash } || { "event_kind": "disconnected" } $timestamp.rfc: /* RFC 3339 formatted timestamp A date in RFC 3339 notation. */ $unistring $timestamp.system: /* A timestamp as seen by the underlying, local computer: subsecond-level precision, epoch or rfc3339 based. */ $timestamp.rfc || $int64 $unistring: /* Universal string representation Either a plain UTF8 string, or a sequence of bytes for strings that contain invalid byte sequences. */ string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
+-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | Unnamed field 0 | Variable | sequence of $X_0 | +-----------------------+----------+-------------------------+ p2p_point.id ************ +-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | Unnamed field 0 | Variable | bytes | +-----------------------+----------+-------------------------+ p2p_point.state (Determined from data, 8-bit tag) ************************************************* Requested (tag 0) ================= +-----------------+---------+----------------------------------------------------+ | Name | Size | Contents | +=================+=========+====================================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------+---------+----------------------------------------------------+ | Unnamed field 0 | 0 bytes | placeholder (not actually present in the encoding) | +-----------------+---------+----------------------------------------------------+ Accepted (tag 1) ================ +-------------+----------+------------------------+ | Name | Size | Contents | +=============+==========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +-------------+----------+------------------------+ | p2p_peer_id | 16 bytes | bytes | +-------------+----------+------------------------+ Running (tag 2) =============== +-------------+----------+------------------------+ | Name | Size | Contents | +=============+==========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +-------------+----------+------------------------+ | p2p_peer_id | 16 bytes | bytes | +-------------+----------+------------------------+ Disconnected (tag 3) ==================== +-----------------+---------+----------------------------------------------------+ | Name | Size | Contents | +=================+=========+====================================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------+---------+----------------------------------------------------+ | Unnamed field 0 | 0 bytes | placeholder (not actually present in the encoding) | +-----------------+---------+----------------------------------------------------+ X_4 *** +-----------------+----------+-----------------------+ | Name | Size | Contents | +=================+==========+=======================+ | Unnamed field 0 | 16 bytes | bytes | +-----------------+----------+-----------------------+ | Unnamed field 1 | 8 bytes | signed 64-bit integer | +-----------------+----------+-----------------------+ p2p_point.info ************** +---------------------------------------------------+----------------------+-------------------------------------+ | Name | Size | Contents | +===================================================+======================+=====================================+ | trusted | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------+----------------------+-------------------------------------+ | greylisted_until | 8 bytes | signed 64-bit integer | +---------------------------------------------------+----------------------+-------------------------------------+ | state | Determined from data | $p2p_point.state | +---------------------------------------------------+----------------------+-------------------------------------+ | ? presence of field "p2p_peer_id" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------+----------------------+-------------------------------------+ | p2p_peer_id | 16 bytes | bytes | +---------------------------------------------------+----------------------+-------------------------------------+ | ? presence of field "last_failed_connection" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------+----------------------+-------------------------------------+ | last_failed_connection | 8 bytes | signed 64-bit integer | +---------------------------------------------------+----------------------+-------------------------------------+ | ? presence of field "last_rejected_connection" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------+----------------------+-------------------------------------+ | last_rejected_connection | 24 bytes | $X_4 | +---------------------------------------------------+----------------------+-------------------------------------+ | ? presence of field "last_established_connection" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------+----------------------+-------------------------------------+ | last_established_connection | 24 bytes | $X_4 | +---------------------------------------------------+----------------------+-------------------------------------+ | ? presence of field "last_disconnection" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------+----------------------+-------------------------------------+ | last_disconnection | 24 bytes | $X_4 | +---------------------------------------------------+----------------------+-------------------------------------+ | ? presence of field "last_seen" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------+----------------------+-------------------------------------+ | last_seen | 24 bytes | $X_4 | +---------------------------------------------------+----------------------+-------------------------------------+ | ? presence of field "last_miss" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------+----------------------+-------------------------------------+ | last_miss | 8 bytes | signed 64-bit integer | +---------------------------------------------------+----------------------+-------------------------------------+ X_0 *** +-----------------+----------------------+-----------------+ | Name | Size | Contents | +=================+======================+=================+ | Unnamed field 0 | Determined from data | $p2p_point.id | +-----------------+----------------------+-----------------+ | Unnamed field 1 | Determined from data | $p2p_point.info | +-----------------+----------------------+-----------------+
GET /network/points/<point>
Details about a given `IP:addr`.
$p2p_point.info $Crypto_box.Public_key_hash: /* A Cryptobox public key ID (Base58Check-encoded) */ $unistring $int64: /* 64 bit integers Decimal representation of 64 bit integers */ string $p2p_point.info: /* Information about a peer point. Includes flags, state, and records about past events. */ { "trusted": boolean, "greylisted_until"?: $timestamp.system, "state": $p2p_point.state, "p2p_peer_id"?: $Crypto_box.Public_key_hash, "last_failed_connection"?: $timestamp.system, "last_rejected_connection"?: [ $Crypto_box.Public_key_hash, $timestamp.system ], "last_established_connection"?: [ $Crypto_box.Public_key_hash, $timestamp.system ], "last_disconnection"?: [ $Crypto_box.Public_key_hash, $timestamp.system ], "last_seen"?: [ $Crypto_box.Public_key_hash, $timestamp.system ], "last_miss"?: $timestamp.system } $p2p_point.state: /* The state a connection to a peer point can be in: requested (connection open from here), accepted (handshake), running (connection already established), disconnected (no connection). */ { "event_kind": "requested" } || { "event_kind": "accepted", "p2p_peer_id": $Crypto_box.Public_key_hash } || { "event_kind": "running", "p2p_peer_id": $Crypto_box.Public_key_hash } || { "event_kind": "disconnected" } $timestamp.rfc: /* RFC 3339 formatted timestamp A date in RFC 3339 notation. */ $unistring $timestamp.system: /* A timestamp as seen by the underlying, local computer: subsecond-level precision, epoch or rfc3339 based. */ $timestamp.rfc || $int64 $unistring: /* Universal string representation Either a plain UTF8 string, or a sequence of bytes for strings that contain invalid byte sequences. */ string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
+---------------------------------------------------+----------------------+-------------------------------------+ | Name | Size | Contents | +===================================================+======================+=====================================+ | trusted | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------+----------------------+-------------------------------------+ | greylisted_until | 8 bytes | signed 64-bit integer | +---------------------------------------------------+----------------------+-------------------------------------+ | state | Determined from data | $p2p_point.state | +---------------------------------------------------+----------------------+-------------------------------------+ | ? presence of field "p2p_peer_id" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------+----------------------+-------------------------------------+ | p2p_peer_id | 16 bytes | bytes | +---------------------------------------------------+----------------------+-------------------------------------+ | ? presence of field "last_failed_connection" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------+----------------------+-------------------------------------+ | last_failed_connection | 8 bytes | signed 64-bit integer | +---------------------------------------------------+----------------------+-------------------------------------+ | ? presence of field "last_rejected_connection" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------+----------------------+-------------------------------------+ | last_rejected_connection | 24 bytes | $X_0 | +---------------------------------------------------+----------------------+-------------------------------------+ | ? presence of field "last_established_connection" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------+----------------------+-------------------------------------+ | last_established_connection | 24 bytes | $X_1 | +---------------------------------------------------+----------------------+-------------------------------------+ | ? presence of field "last_disconnection" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------+----------------------+-------------------------------------+ | last_disconnection | 24 bytes | $X_2 | +---------------------------------------------------+----------------------+-------------------------------------+ | ? presence of field "last_seen" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------+----------------------+-------------------------------------+ | last_seen | 24 bytes | $X_3 | +---------------------------------------------------+----------------------+-------------------------------------+ | ? presence of field "last_miss" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------------------+----------------------+-------------------------------------+ | last_miss | 8 bytes | signed 64-bit integer | +---------------------------------------------------+----------------------+-------------------------------------+ p2p_point.state (Determined from data, 8-bit tag) ************************************************* Requested (tag 0) ================= +-----------------+---------+----------------------------------------------------+ | Name | Size | Contents | +=================+=========+====================================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------+---------+----------------------------------------------------+ | Unnamed field 0 | 0 bytes | placeholder (not actually present in the encoding) | +-----------------+---------+----------------------------------------------------+ Accepted (tag 1) ================ +-------------+----------+------------------------+ | Name | Size | Contents | +=============+==========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +-------------+----------+------------------------+ | p2p_peer_id | 16 bytes | bytes | +-------------+----------+------------------------+ Running (tag 2) =============== +-------------+----------+------------------------+ | Name | Size | Contents | +=============+==========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +-------------+----------+------------------------+ | p2p_peer_id | 16 bytes | bytes | +-------------+----------+------------------------+ Disconnected (tag 3) ==================== +-----------------+---------+----------------------------------------------------+ | Name | Size | Contents | +=================+=========+====================================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------+---------+----------------------------------------------------+ | Unnamed field 0 | 0 bytes | placeholder (not actually present in the encoding) | +-----------------+---------+----------------------------------------------------+ X_3 *** +-----------------+----------+-----------------------+ | Name | Size | Contents | +=================+==========+=======================+ | Unnamed field 0 | 16 bytes | bytes | +-----------------+----------+-----------------------+ | Unnamed field 1 | 8 bytes | signed 64-bit integer | +-----------------+----------+-----------------------+
PUT /network/points/<point>?[timeout=<timespan>]
Connect to a peer
Optional query arguments :
- timeout = <timespan>
{ }
+-----------------+---------+----------------------------------------------------+ | Name | Size | Contents | +=================+=========+====================================================+ | Unnamed field 0 | 0 bytes | placeholder (not actually present in the encoding) | +-----------------+---------+----------------------------------------------------+
{ }
+-----------------+---------+----------------------------------------------------+ | Name | Size | Contents | +=================+=========+====================================================+ | Unnamed field 0 | 0 bytes | placeholder (not actually present in the encoding) | +-----------------+---------+----------------------------------------------------+
GET /network/points/<point>/ban
Blacklist the given address and remove it from the whitelist if present.
{ }
+-----------------+---------+----------------------------------------------------+ | Name | Size | Contents | +=================+=========+====================================================+ | Unnamed field 0 | 0 bytes | placeholder (not actually present in the encoding) | +-----------------+---------+----------------------------------------------------+
GET /network/points/<point>/banned
Check is a given address is blacklisted or greylisted.
boolean
+-----------------+--------+-------------------------------------+ | Name | Size | Contents | +=================+========+=====================================+ | Unnamed field 0 | 1 byte | boolean (0 for false, 255 for true) | +-----------------+--------+-------------------------------------+
GET /network/points/<point>/log?[monitor]
Monitor network events related to an `IP:addr`.
Optional query arguments :
- monitor
[ $p2p_point.pool_event ... ] $Crypto_box.Public_key_hash: /* A Cryptobox public key ID (Base58Check-encoded) */ $unistring $int64: /* 64 bit integers Decimal representation of 64 bit integers */ string $p2p_point.pool_event: /* Events happening during maintenance of and operations on a peer point pool (such as connections, disconnections, connection requests). */ [ $timestamp.system, { "event_kind": "outgoing_request" } || { "event_kind": "accepting_request", "p2p_peer_id": $Crypto_box.Public_key_hash } || { "event_kind": "rejecting_request", "p2p_peer_id": $Crypto_box.Public_key_hash } || { "event_kind": "request_rejected", "p2p_peer_id"?: $Crypto_box.Public_key_hash } || { "event_kind": "rejecting_request", "p2p_peer_id": $Crypto_box.Public_key_hash } || { "event_kind": "rejecting_request", "p2p_peer_id": $Crypto_box.Public_key_hash } || { "event_kind": "rejecting_request", "p2p_peer_id": $Crypto_box.Public_key_hash } ] $timestamp.rfc: /* RFC 3339 formatted timestamp A date in RFC 3339 notation. */ $unistring $timestamp.system: /* A timestamp as seen by the underlying, local computer: subsecond-level precision, epoch or rfc3339 based. */ $timestamp.rfc || $int64 $unistring: /* Universal string representation Either a plain UTF8 string, or a sequence of bytes for strings that contain invalid byte sequences. */ string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
+-----------------------+----------+-----------------------------------+ | Name | Size | Contents | +=======================+==========+===================================+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-----------------------------------+ | Unnamed field 0 | Variable | sequence of $p2p_point.pool_event | +-----------------------+----------+-----------------------------------+ X_0 (Determined from data, 8-bit tag) ************************************* Outgoing_request (tag 0) ======================== +-----------------+---------+----------------------------------------------------+ | Name | Size | Contents | +=================+=========+====================================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------+---------+----------------------------------------------------+ | Unnamed field 0 | 0 bytes | placeholder (not actually present in the encoding) | +-----------------+---------+----------------------------------------------------+ Accepting_request (tag 1) ========================= +-------------+----------+------------------------+ | Name | Size | Contents | +=============+==========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +-------------+----------+------------------------+ | p2p_peer_id | 16 bytes | bytes | +-------------+----------+------------------------+ Rejecting_request (tag 2) ========================= +-------------+----------+------------------------+ | Name | Size | Contents | +=============+==========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +-------------+----------+------------------------+ | p2p_peer_id | 16 bytes | bytes | +-------------+----------+------------------------+ Rejecting_rejected (tag 3) ========================== +-----------------------------------+----------+-------------------------------------+ | Name | Size | Contents | +===================================+==========+=====================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------------------------+----------+-------------------------------------+ | ? presence of field "p2p_peer_id" | 1 byte | boolean (0 for false, 255 for true) | +-----------------------------------+----------+-------------------------------------+ | p2p_peer_id | 16 bytes | bytes | +-----------------------------------+----------+-------------------------------------+ Connection_established (tag 4) ============================== +-------------+----------+------------------------+ | Name | Size | Contents | +=============+==========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +-------------+----------+------------------------+ | p2p_peer_id | 16 bytes | bytes | +-------------+----------+------------------------+ Disconnection (tag 5) ===================== +-------------+----------+------------------------+ | Name | Size | Contents | +=============+==========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +-------------+----------+------------------------+ | p2p_peer_id | 16 bytes | bytes | +-------------+----------+------------------------+ External_disconnection (tag 6) ============================== +-------------+----------+------------------------+ | Name | Size | Contents | +=============+==========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +-------------+----------+------------------------+ | p2p_peer_id | 16 bytes | bytes | +-------------+----------+------------------------+ p2p_point.pool_event ******************** +-----------------+----------------------+-----------------------+ | Name | Size | Contents | +=================+======================+=======================+ | Unnamed field 0 | 8 bytes | signed 64-bit integer | +-----------------+----------------------+-----------------------+ | Unnamed field 1 | Determined from data | $X_0 | +-----------------+----------------------+-----------------------+
GET /network/points/<point>/trust
Trust a given address permanently and remove it from the blacklist if present. Connections from this address can still be closed on authentication if the peer is greylisted.
{ }
+-----------------+---------+----------------------------------------------------+ | Name | Size | Contents | +=================+=========+====================================================+ | Unnamed field 0 | 0 bytes | placeholder (not actually present in the encoding) | +-----------------+---------+----------------------------------------------------+
GET /network/points/<point>/unban
Remove an address from the blacklist.
{ }
+-----------------+---------+----------------------------------------------------+ | Name | Size | Contents | +=================+=========+====================================================+ | Unnamed field 0 | 0 bytes | placeholder (not actually present in the encoding) | +-----------------+---------+----------------------------------------------------+
GET /network/points/<point>/untrust
Remove an address from the whitelist.
{ }
+-----------------+---------+----------------------------------------------------+ | Name | Size | Contents | +=================+=========+====================================================+ | Unnamed field 0 | 0 bytes | placeholder (not actually present in the encoding) | +-----------------+---------+----------------------------------------------------+
GET /network/self
Return the node's peer id
$Crypto_box.Public_key_hash $Crypto_box.Public_key_hash: /* A Cryptobox public key ID (Base58Check-encoded) */ $unistring $unistring: /* Universal string representation Either a plain UTF8 string, or a sequence of bytes for strings that contain invalid byte sequences. */ string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
+----------------------------+----------+----------+ | Name | Size | Contents | +============================+==========+==========+ | Crypto_box.Public_key_hash | 16 bytes | bytes | +----------------------------+----------+----------+
GET /network/stat
Global network bandwidth statistics in B/s.
$p2p_stat $int64: /* 64 bit integers Decimal representation of 64 bit integers */ string $p2p_stat: /* Statistics about the p2p network. */ { "total_sent": $int64, "total_recv": $int64, "current_inflow": integer ∈ [-2^30-2, 2^30+2], "current_outflow": integer ∈ [-2^30-2, 2^30+2] }
+-----------------+---------+--------------------------------------------------------------+ | Name | Size | Contents | +=================+=========+==============================================================+ | total_sent | 8 bytes | signed 64-bit integer | +-----------------+---------+--------------------------------------------------------------+ | total_recv | 8 bytes | signed 64-bit integer | +-----------------+---------+--------------------------------------------------------------+ | current_inflow | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +-----------------+---------+--------------------------------------------------------------+ | current_outflow | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +-----------------+---------+--------------------------------------------------------------+
GET /network/version
Supported network layer version.
$network_version $distributed_db_version: /* A version number for the distributed DB protocol */ integer ∈ [0, 2^16-1] $distributed_db_version.name: /* A name for the distributed DB protocol */ $unistring $network_version: /* A version number for the network protocol (includes distributed DB version and p2p version) */ { "chain_name": $distributed_db_version.name, "distributed_db_version": $distributed_db_version, "p2p_version": $p2p_version } $p2p_version: /* A version number for the p2p layer. */ integer ∈ [0, 2^16-1] $unistring: /* Universal string representation Either a plain UTF8 string, or a sequence of bytes for strings that contain invalid byte sequences. */ string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
+------------------------------------------------+----------+-------------------------+ | Name | Size | Contents | +================================================+==========+=========================+ | # bytes in field "distributed_db_version.name" | 4 bytes | unsigned 30-bit integer | +------------------------------------------------+----------+-------------------------+ | chain_name | Variable | bytes | +------------------------------------------------+----------+-------------------------+ | distributed_db_version | 2 bytes | unsigned 16-bit integer | +------------------------------------------------+----------+-------------------------+ | p2p_version | 2 bytes | unsigned 16-bit integer | +------------------------------------------------+----------+-------------------------+
GET /network/versions
DEPRECATED: use `version` instead.
[ $network_version ... ] $distributed_db_version: /* A version number for the distributed DB protocol */ integer ∈ [0, 2^16-1] $distributed_db_version.name: /* A name for the distributed DB protocol */ $unistring $network_version: /* A version number for the network protocol (includes distributed DB version and p2p version) */ { "chain_name": $distributed_db_version.name, "distributed_db_version": $distributed_db_version, "p2p_version": $p2p_version } $p2p_version: /* A version number for the p2p layer. */ integer ∈ [0, 2^16-1] $unistring: /* Universal string representation Either a plain UTF8 string, or a sequence of bytes for strings that contain invalid byte sequences. */ string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
+-----------------------+----------+------------------------------+ | Name | Size | Contents | +=======================+==========+==============================+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+------------------------------+ | Unnamed field 0 | Variable | sequence of $network_version | +-----------------------+----------+------------------------------+ network_version *************** +------------------------------------------------+----------+-------------------------+ | Name | Size | Contents | +================================================+==========+=========================+ | # bytes in field "distributed_db_version.name" | 4 bytes | unsigned 30-bit integer | +------------------------------------------------+----------+-------------------------+ | chain_name | Variable | bytes | +------------------------------------------------+----------+-------------------------+ | distributed_db_version | 2 bytes | unsigned 16-bit integer | +------------------------------------------------+----------+-------------------------+ | p2p_version | 2 bytes | unsigned 16-bit integer | +------------------------------------------------+----------+-------------------------+
GET /protocols
[ $Protocol_hash ... ] $Protocol_hash: /* A Dune protocol ID (Base58Check-encoded) */ $unistring $unistring: /* Universal string representation Either a plain UTF8 string, or a sequence of bytes for strings that contain invalid byte sequences. */ string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
+-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | Unnamed field 0 | Variable | sequence of bytes | +-----------------------+----------+-------------------------+
GET /protocols/<Protocol_hash>
$protocol $protocol: /* The environment a protocol relies on and the components a protocol is made of. */ { "expected_env_version": integer ∈ [-2^15, 2^15-1], "components": [ { "name": $unistring, "interface"?: $unistring, "implementation": $unistring } ... ] } $unistring: /* Universal string representation Either a plain UTF8 string, or a sequence of bytes for strings that contain invalid byte sequences. */ string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
+-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | expected_env_version | 2 bytes | signed 16-bit integer | +-----------------------+----------+-------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | components | Variable | sequence of $X_0 | +-----------------------+----------+-------------------------+ X_1 *** +-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | Unnamed field 0 | Variable | bytes | +-----------------------+----------+-------------------------+ X_0 *** +---------------------------------+----------------------+-------------------------------------+ | Name | Size | Contents | +=================================+======================+=====================================+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +---------------------------------+----------------------+-------------------------------------+ | name | Variable | bytes | +---------------------------------+----------------------+-------------------------------------+ | ? presence of field "interface" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------+----------------------+-------------------------------------+ | interface | Determined from data | $X_1 | +---------------------------------+----------------------+-------------------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +---------------------------------+----------------------+-------------------------------------+ | implementation | Variable | bytes | +---------------------------------+----------------------+-------------------------------------+
GET /stats/gc
Gets stats from the OCaml Garbage Collector
{ "minor_words": number, "promoted_words": number, "major_words": number, "minor_collections": integer ∈ [-2^30-2, 2^30+2], "major_collections": integer ∈ [-2^30-2, 2^30+2], "heap_words": integer ∈ [-2^30-2, 2^30+2], "heap_chunks": integer ∈ [-2^30-2, 2^30+2], "live_words": integer ∈ [-2^30-2, 2^30+2], "live_blocks": integer ∈ [-2^30-2, 2^30+2], "free_words": integer ∈ [-2^30-2, 2^30+2], "free_blocks": integer ∈ [-2^30-2, 2^30+2], "largest_free": integer ∈ [-2^30-2, 2^30+2], "fragments": integer ∈ [-2^30-2, 2^30+2], "compactions": integer ∈ [-2^30-2, 2^30+2], "top_heap_words": integer ∈ [-2^30-2, 2^30+2], "stack_size": integer ∈ [-2^30-2, 2^30+2] }
+-------------------+---------+--------------------------------------------------------------+ | Name | Size | Contents | +===================+=========+==============================================================+ | minor_words | 8 bytes | double-precision floating-point number | +-------------------+---------+--------------------------------------------------------------+ | promoted_words | 8 bytes | double-precision floating-point number | +-------------------+---------+--------------------------------------------------------------+ | major_words | 8 bytes | double-precision floating-point number | +-------------------+---------+--------------------------------------------------------------+ | minor_collections | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +-------------------+---------+--------------------------------------------------------------+ | major_collections | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +-------------------+---------+--------------------------------------------------------------+ | heap_words | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +-------------------+---------+--------------------------------------------------------------+ | heap_chunks | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +-------------------+---------+--------------------------------------------------------------+ | live_words | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +-------------------+---------+--------------------------------------------------------------+ | live_blocks | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +-------------------+---------+--------------------------------------------------------------+ | free_words | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +-------------------+---------+--------------------------------------------------------------+ | free_blocks | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +-------------------+---------+--------------------------------------------------------------+ | largest_free | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +-------------------+---------+--------------------------------------------------------------+ | fragments | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +-------------------+---------+--------------------------------------------------------------+ | compactions | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +-------------------+---------+--------------------------------------------------------------+ | top_heap_words | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +-------------------+---------+--------------------------------------------------------------+ | stack_size | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +-------------------+---------+--------------------------------------------------------------+
GET /stats/memory
Gets memory usage stats
{ "page_size": integer ∈ [-2^30-2, 2^30+2], "size": $int64, "resident": $int64, "shared": $int64, "text": $int64, "lib": $int64, "data": $int64, "dt": $int64 } || { "page_size": integer ∈ [-2^30-2, 2^30+2], "mem": number, "resident": $int64 } $int64: /* 64 bit integers Decimal representation of 64 bit integers */ string
+-----------------+----------------------+----------+ | Name | Size | Contents | +=================+======================+==========+ | Unnamed field 0 | Determined from data | $X_0 | +-----------------+----------------------+----------+ X_0 (Determined from data, 8-bit tag) ************************************* Linux_proc_statm (tag 0) ======================== +-----------+---------+--------------------------------------------------------------+ | Name | Size | Contents | +===========+=========+==============================================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------+---------+--------------------------------------------------------------+ | page_size | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +-----------+---------+--------------------------------------------------------------+ | size | 8 bytes | signed 64-bit integer | +-----------+---------+--------------------------------------------------------------+ | resident | 8 bytes | signed 64-bit integer | +-----------+---------+--------------------------------------------------------------+ | shared | 8 bytes | signed 64-bit integer | +-----------+---------+--------------------------------------------------------------+ | text | 8 bytes | signed 64-bit integer | +-----------+---------+--------------------------------------------------------------+ | lib | 8 bytes | signed 64-bit integer | +-----------+---------+--------------------------------------------------------------+ | data | 8 bytes | signed 64-bit integer | +-----------+---------+--------------------------------------------------------------+ | dt | 8 bytes | signed 64-bit integer | +-----------+---------+--------------------------------------------------------------+ Darwin_ps (tag 1) ================= +-----------+---------+--------------------------------------------------------------+ | Name | Size | Contents | +===========+=========+==============================================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------+---------+--------------------------------------------------------------+ | page_size | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +-----------+---------+--------------------------------------------------------------+ | mem | 8 bytes | double-precision floating-point number | +-----------+---------+--------------------------------------------------------------+ | resident | 8 bytes | signed 64-bit integer | +-----------+---------+--------------------------------------------------------------+
GET /storage/context/gc?[keep=<int>]
Trigger a context garbage collection, before block
Optional query arguments :
- keep = <int>
any
+-----------------+---------+----------------------------------------------------+ | Name | Size | Contents | +=================+=========+====================================================+ | Unnamed field 0 | 0 bytes | placeholder (not actually present in the encoding) | +-----------------+---------+----------------------------------------------------+
GET /storage/context/revert
Revert IronTez storage back to Irmin
any
+-----------------+---------+----------------------------------------------------+ | Name | Size | Contents | +=================+=========+====================================================+ | Unnamed field 0 | 0 bytes | placeholder (not actually present in the encoding) | +-----------------+---------+----------------------------------------------------+
GET /workers/block_validator
Introspect the state of the block_validator worker.
{ "status": { "phase": "launching", "since": $timestamp.system } || { "phase": "running", "since": $timestamp.system } || { "phase": "closing", "birth": $timestamp.system, "since": $timestamp.system } || { "phase": "closed", "birth": $timestamp.system, "since": $timestamp.system } || { "phase": "crashed", "birth": $timestamp.system, "since": $timestamp.system, "errors": $error }, "pending_requests": [ { "pushed": $timestamp.system, "request": { "block": $block_hash, "chain_id": $Chain_id, "peer"?: $Crypto_box.Public_key_hash } } ... ], "backlog": [ { "level": "info" | "debug" | "error" | "fatal" | "warning" | "notice", "events": [ { "message": $unistring } || { "successful_validation": { "block": $block_hash, "chain_id": $Chain_id, "peer"?: $Crypto_box.Public_key_hash }, "status": { "pushed": $timestamp.system, "treated": $timestamp.system, "completed": $timestamp.system } } || { "failed_validation": { "block": $block_hash, "chain_id": $Chain_id, "peer"?: $Crypto_box.Public_key_hash }, "status": { "pushed": $timestamp.system, "treated": $timestamp.system, "completed": $timestamp.system }, "errors"?: $error } ... ] } ... ], "current_request"?: { "pushed": $timestamp.system, "treated": $timestamp.system, "request": { "block": $block_hash, "chain_id": $Chain_id, "peer"?: $Crypto_box.Public_key_hash } } } $Chain_id: /* Network identifier (Base58Check-encoded) */ $unistring $Crypto_box.Public_key_hash: /* A Cryptobox public key ID (Base58Check-encoded) */ $unistring $block_hash: /* A block identifier (Base58Check-encoded) */ $unistring $error: /* The full list of error is available with the global RPC `GET errors` */ any $int64: /* 64 bit integers Decimal representation of 64 bit integers */ string $timestamp.rfc: /* RFC 3339 formatted timestamp A date in RFC 3339 notation. */ $unistring $timestamp.system: /* A timestamp as seen by the underlying, local computer: subsecond-level precision, epoch or rfc3339 based. */ $timestamp.rfc || $int64 $unistring: /* Universal string representation Either a plain UTF8 string, or a sequence of bytes for strings that contain invalid byte sequences. */ string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
+---------------------------------------+----------------------+-------------------------------------+ | Name | Size | Contents | +=======================================+======================+=====================================+ | status | Determined from data | $X_0 | +---------------------------------------+----------------------+-------------------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +---------------------------------------+----------------------+-------------------------------------+ | pending_requests | Variable | sequence of $X_1 | +---------------------------------------+----------------------+-------------------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +---------------------------------------+----------------------+-------------------------------------+ | backlog | Variable | sequence of $X_3 | +---------------------------------------+----------------------+-------------------------------------+ | ? presence of field "current_request" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------+----------------------+-------------------------------------+ | current_request | Determined from data | $X_12 | +---------------------------------------+----------------------+-------------------------------------+ X_0 (Determined from data, 8-bit tag) ************************************* Launching (tag 0) ================= +-------+---------+------------------------+ | Name | Size | Contents | +=======+=========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +-------+---------+------------------------+ | since | 8 bytes | signed 64-bit integer | +-------+---------+------------------------+ Running (tag 1) =============== +-------+---------+------------------------+ | Name | Size | Contents | +=======+=========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +-------+---------+------------------------+ | since | 8 bytes | signed 64-bit integer | +-------+---------+------------------------+ Closing (tag 2) =============== +-------+---------+------------------------+ | Name | Size | Contents | +=======+=========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +-------+---------+------------------------+ | birth | 8 bytes | signed 64-bit integer | +-------+---------+------------------------+ | since | 8 bytes | signed 64-bit integer | +-------+---------+------------------------+ Closed (tag 3) ============== +-------+---------+------------------------+ | Name | Size | Contents | +=======+=========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +-------+---------+------------------------+ | birth | 8 bytes | signed 64-bit integer | +-------+---------+------------------------+ | since | 8 bytes | signed 64-bit integer | +-------+---------+------------------------+ Crashed (tag 4) =============== +--------------------------+----------+-------------------------+ | Name | Size | Contents | +==========================+==========+=========================+ | Tag | 1 byte | unsigned 8-bit integer | +--------------------------+----------+-------------------------+ | birth | 8 bytes | signed 64-bit integer | +--------------------------+----------+-------------------------+ | since | 8 bytes | signed 64-bit integer | +--------------------------+----------+-------------------------+ | # bytes in field "error" | 4 bytes | unsigned 30-bit integer | +--------------------------+----------+-------------------------+ | errors | Variable | bytes | +--------------------------+----------+-------------------------+ X_1 *** +-----------------------+----------------------+-------------------------+ | Name | Size | Contents | +=======================+======================+=========================+ | pushed | 8 bytes | signed 64-bit integer | +-----------------------+----------------------+-------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------------------+-------------------------+ | request | Determined from data | $X_13 | +-----------------------+----------------------+-------------------------+ X_4 (Enumeration: unsigned 8-bit integer): ****************************************** +-------------+----------------+ | Case number | Encoded string | +=============+================+ | 0 | debug | +-------------+----------------+ | 1 | info | +-------------+----------------+ | 2 | notice | +-------------+----------------+ | 3 | warning | +-------------+----------------+ | 4 | error | +-------------+----------------+ | 5 | fatal | +-------------+----------------+ X_10 **** +-----------+---------+-----------------------+ | Name | Size | Contents | +===========+=========+=======================+ | pushed | 8 bytes | signed 64-bit integer | +-----------+---------+-----------------------+ | treated | 8 bytes | signed 64-bit integer | +-----------+---------+-----------------------+ | completed | 8 bytes | signed 64-bit integer | +-----------+---------+-----------------------+ X_11 (Determined from data, 8-bit tag) ************************************** Debug (tag 0) ============= +-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------------+----------+-------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | message | Variable | bytes | +-----------------------+----------+-------------------------+ Validation_success (tag 1) ========================== +-----------------------+----------------------+------------------------+ | Name | Size | Contents | +=======================+======================+========================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------------+----------------------+------------------------+ | successful_validation | Determined from data | $X_13 | +-----------------------+----------------------+------------------------+ | status | 24 bytes | $X_10 | +-----------------------+----------------------+------------------------+ Validation_failure (tag 2) ========================== +--------------------------+----------------------+-------------------------+ | Name | Size | Contents | +==========================+======================+=========================+ | Tag | 1 byte | unsigned 8-bit integer | +--------------------------+----------------------+-------------------------+ | failed_validation | Determined from data | $X_13 | +--------------------------+----------------------+-------------------------+ | status | 24 bytes | $X_10 | +--------------------------+----------------------+-------------------------+ | # bytes in field "error" | 4 bytes | unsigned 30-bit integer | +--------------------------+----------------------+-------------------------+ | errors | Variable | bytes | +--------------------------+----------------------+-------------------------+ X_6 *** +-----------------------+----------------------+-------------------------+ | Name | Size | Contents | +=======================+======================+=========================+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------------------+-------------------------+ | Unnamed field 0 | Determined from data | $X_11 | +-----------------------+----------------------+-------------------------+ X_5 *** +-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | Unnamed field 0 | Variable | sequence of $X_6 | +-----------------------+----------+-------------------------+ X_3 *** +-----------------------+----------------------+----------------------------------------------------------+ | Name | Size | Contents | +=======================+======================+==========================================================+ | level | 1 byte | unsigned 8-bit integer encoding an enumeration (see X_4) | +-----------------------+----------------------+----------------------------------------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------------------+----------------------------------------------------------+ | events | Determined from data | $X_5 | +-----------------------+----------------------+----------------------------------------------------------+ X_13 **** +----------------------------+----------+-------------------------------------+ | Name | Size | Contents | +============================+==========+=====================================+ | block | 32 bytes | bytes | +----------------------------+----------+-------------------------------------+ | chain_id | 4 bytes | bytes | +----------------------------+----------+-------------------------------------+ | ? presence of field "peer" | 1 byte | boolean (0 for false, 255 for true) | +----------------------------+----------+-------------------------------------+ | peer | 16 bytes | bytes | +----------------------------+----------+-------------------------------------+ X_12 **** +---------+----------------------+-----------------------+ | Name | Size | Contents | +=========+======================+=======================+ | pushed | 8 bytes | signed 64-bit integer | +---------+----------------------+-----------------------+ | treated | 8 bytes | signed 64-bit integer | +---------+----------------------+-----------------------+ | request | Determined from data | $X_13 | +---------+----------------------+-----------------------+
GET /workers/chain_validators
Lists the chain validator workers and their status.
[ { "chain_id": $Chain_id, "status": { "phase": "launching", "since": $timestamp.system } || { "phase": "running", "since": $timestamp.system } || { "phase": "closing", "birth": $timestamp.system, "since": $timestamp.system } || { "phase": "closed", "birth": $timestamp.system, "since": $timestamp.system } || { "phase": "crashed", "birth": $timestamp.system, "since": $timestamp.system, "errors": $error }, "information": { "instances": integer ∈ [-2^30-2, 2^30+2], "status": { "phase": "launching", "since": $timestamp.system } || { "phase": "running", "since": $timestamp.system } || { "phase": "closing", "birth": $timestamp.system, "since": $timestamp.system } || { "phase": "closed", "birth": $timestamp.system, "since": $timestamp.system } || { "phase": "crashed", "birth": $timestamp.system, "since": $timestamp.system, "errors": $error }, "queue_length": integer ∈ [-2^30-2, 2^30+2] }, "pipelines": integer ∈ [-128, 127] } ... ] $Chain_id: /* Network identifier (Base58Check-encoded) */ $unistring $error: /* The full list of error is available with the global RPC `GET errors` */ any $int64: /* 64 bit integers Decimal representation of 64 bit integers */ string $timestamp.rfc: /* RFC 3339 formatted timestamp A date in RFC 3339 notation. */ $unistring $timestamp.system: /* A timestamp as seen by the underlying, local computer: subsecond-level precision, epoch or rfc3339 based. */ $timestamp.rfc || $int64 $unistring: /* Universal string representation Either a plain UTF8 string, or a sequence of bytes for strings that contain invalid byte sequences. */ string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
+-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | Unnamed field 0 | Variable | sequence of $X_0 | +-----------------------+----------+-------------------------+ X_3 (Determined from data, 8-bit tag) ************************************* Launching (tag 0) ================= +-------+---------+------------------------+ | Name | Size | Contents | +=======+=========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +-------+---------+------------------------+ | since | 8 bytes | signed 64-bit integer | +-------+---------+------------------------+ Running (tag 1) =============== +-------+---------+------------------------+ | Name | Size | Contents | +=======+=========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +-------+---------+------------------------+ | since | 8 bytes | signed 64-bit integer | +-------+---------+------------------------+ Closing (tag 2) =============== +-------+---------+------------------------+ | Name | Size | Contents | +=======+=========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +-------+---------+------------------------+ | birth | 8 bytes | signed 64-bit integer | +-------+---------+------------------------+ | since | 8 bytes | signed 64-bit integer | +-------+---------+------------------------+ Closed (tag 3) ============== +-------+---------+------------------------+ | Name | Size | Contents | +=======+=========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +-------+---------+------------------------+ | birth | 8 bytes | signed 64-bit integer | +-------+---------+------------------------+ | since | 8 bytes | signed 64-bit integer | +-------+---------+------------------------+ Crashed (tag 4) =============== +--------------------------+----------+-------------------------+ | Name | Size | Contents | +==========================+==========+=========================+ | Tag | 1 byte | unsigned 8-bit integer | +--------------------------+----------+-------------------------+ | birth | 8 bytes | signed 64-bit integer | +--------------------------+----------+-------------------------+ | since | 8 bytes | signed 64-bit integer | +--------------------------+----------+-------------------------+ | # bytes in field "error" | 4 bytes | unsigned 30-bit integer | +--------------------------+----------+-------------------------+ | errors | Variable | bytes | +--------------------------+----------+-------------------------+ X_2 *** +--------------+----------------------+--------------------------------------------------------------+ | Name | Size | Contents | +==============+======================+==============================================================+ | instances | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +--------------+----------------------+--------------------------------------------------------------+ | status | Determined from data | $X_3 | +--------------+----------------------+--------------------------------------------------------------+ | queue_length | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +--------------+----------------------+--------------------------------------------------------------+ X_0 *** +-------------+----------------------+----------------------+ | Name | Size | Contents | +=============+======================+======================+ | chain_id | 4 bytes | bytes | +-------------+----------------------+----------------------+ | status | Determined from data | $X_3 | +-------------+----------------------+----------------------+ | information | Determined from data | $X_2 | +-------------+----------------------+----------------------+ | pipelines | 1 byte | signed 8-bit integer | +-------------+----------------------+----------------------+
GET /workers/chain_validators/<chain_id>
Introspect the state of a chain validator worker.
{ "status": { "phase": "launching", "since": $timestamp.system } || { "phase": "running", "since": $timestamp.system } || { "phase": "closing", "birth": $timestamp.system, "since": $timestamp.system } || { "phase": "closed", "birth": $timestamp.system, "since": $timestamp.system } || { "phase": "crashed", "birth": $timestamp.system, "since": $timestamp.system, "errors": $error }, "pending_requests": [ { "pushed": $timestamp.system, "request": $block_hash } ... ], "backlog": [ { "level": "info" | "debug" | "error" | "fatal" | "warning" | "notice", "events": [ { "request": $block_hash, "status": { "pushed": $timestamp.system, "treated": $timestamp.system, "completed": $timestamp.system }, "outcome": "branch" | "ignored" | "increment", "fitness": $fitness, "level": integer ∈ [-2^31-2, 2^31+2], "time": $timestamp.protocol } || $error ... ] } ... ], "current_request"?: { "pushed": $timestamp.system, "treated": $timestamp.system, "request": $block_hash } } $block_hash: /* A block identifier (Base58Check-encoded) */ $unistring $error: /* The full list of error is available with the global RPC `GET errors` */ any $fitness: /* Block fitness The fitness, or score, of a block, that allow the Dune to decide which chain is the best. A fitness value is a list of byte sequences. They are compared as follows: shortest lists are smaller; lists of the same length are compared according to the lexicographical order. */ [ /^[a-zA-Z0-9]+$/ ... ] $int64: /* 64 bit integers Decimal representation of 64 bit integers */ string $timestamp.protocol: /* A timestamp as seen by the protocol: second-level precision, epoch based. */ $timestamp.rfc || $int64 $timestamp.rfc: /* RFC 3339 formatted timestamp A date in RFC 3339 notation. */ $unistring $timestamp.system: /* A timestamp as seen by the underlying, local computer: subsecond-level precision, epoch or rfc3339 based. */ $timestamp.rfc || $int64 $unistring: /* Universal string representation Either a plain UTF8 string, or a sequence of bytes for strings that contain invalid byte sequences. */ string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
+---------------------------------------+----------------------+-------------------------------------+ | Name | Size | Contents | +=======================================+======================+=====================================+ | status | Determined from data | $X_0 | +---------------------------------------+----------------------+-------------------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +---------------------------------------+----------------------+-------------------------------------+ | pending_requests | Variable | sequence of $X_1 | +---------------------------------------+----------------------+-------------------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +---------------------------------------+----------------------+-------------------------------------+ | backlog | Variable | sequence of $X_2 | +---------------------------------------+----------------------+-------------------------------------+ | ? presence of field "current_request" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------+----------------------+-------------------------------------+ | current_request | 48 bytes | $X_9 | +---------------------------------------+----------------------+-------------------------------------+ X_0 (Determined from data, 8-bit tag) ************************************* Launching (tag 0) ================= +-------+---------+------------------------+ | Name | Size | Contents | +=======+=========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +-------+---------+------------------------+ | since | 8 bytes | signed 64-bit integer | +-------+---------+------------------------+ Running (tag 1) =============== +-------+---------+------------------------+ | Name | Size | Contents | +=======+=========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +-------+---------+------------------------+ | since | 8 bytes | signed 64-bit integer | +-------+---------+------------------------+ Closing (tag 2) =============== +-------+---------+------------------------+ | Name | Size | Contents | +=======+=========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +-------+---------+------------------------+ | birth | 8 bytes | signed 64-bit integer | +-------+---------+------------------------+ | since | 8 bytes | signed 64-bit integer | +-------+---------+------------------------+ Closed (tag 3) ============== +-------+---------+------------------------+ | Name | Size | Contents | +=======+=========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +-------+---------+------------------------+ | birth | 8 bytes | signed 64-bit integer | +-------+---------+------------------------+ | since | 8 bytes | signed 64-bit integer | +-------+---------+------------------------+ Crashed (tag 4) =============== +--------------------------+----------+-------------------------+ | Name | Size | Contents | +==========================+==========+=========================+ | Tag | 1 byte | unsigned 8-bit integer | +--------------------------+----------+-------------------------+ | birth | 8 bytes | signed 64-bit integer | +--------------------------+----------+-------------------------+ | since | 8 bytes | signed 64-bit integer | +--------------------------+----------+-------------------------+ | # bytes in field "error" | 4 bytes | unsigned 30-bit integer | +--------------------------+----------+-------------------------+ | errors | Variable | bytes | +--------------------------+----------+-------------------------+ X_1 *** +-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | pushed | 8 bytes | signed 64-bit integer | +-----------------------+----------+-------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | request | 32 bytes | bytes | +-----------------------+----------+-------------------------+ X_3 (Enumeration: unsigned 8-bit integer): ****************************************** +-------------+----------------+ | Case number | Encoded string | +=============+================+ | 0 | debug | +-------------+----------------+ | 1 | info | +-------------+----------------+ | 2 | notice | +-------------+----------------+ | 3 | warning | +-------------+----------------+ | 4 | error | +-------------+----------------+ | 5 | fatal | +-------------+----------------+ X_6 *** +-----------+---------+-----------------------+ | Name | Size | Contents | +===========+=========+=======================+ | pushed | 8 bytes | signed 64-bit integer | +-----------+---------+-----------------------+ | treated | 8 bytes | signed 64-bit integer | +-----------+---------+-----------------------+ | completed | 8 bytes | signed 64-bit integer | +-----------+---------+-----------------------+ X_7 (Enumeration: unsigned 8-bit integer): ****************************************** +-------------+----------------+ | Case number | Encoded string | +=============+================+ | 0 | ignored | +-------------+----------------+ | 1 | branch | +-------------+----------------+ | 2 | increment | +-------------+----------------+ fitness.elem ************ +-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | Unnamed field 0 | Variable | bytes | +-----------------------+----------+-------------------------+ X_8 (Determined from data, 8-bit tag) ************************************* Processed_block (tag 0) ======================= +----------------------------+----------+----------------------------------------------------------+ | Name | Size | Contents | +============================+==========+==========================================================+ | Tag | 1 byte | unsigned 8-bit integer | +----------------------------+----------+----------------------------------------------------------+ | request | 32 bytes | bytes | +----------------------------+----------+----------------------------------------------------------+ | status | 24 bytes | $X_6 | +----------------------------+----------+----------------------------------------------------------+ | outcome | 1 byte | unsigned 8-bit integer encoding an enumeration (see X_7) | +----------------------------+----------+----------------------------------------------------------+ | # bytes in field "fitness" | 4 bytes | unsigned 30-bit integer | +----------------------------+----------+----------------------------------------------------------+ | fitness | Variable | sequence of $fitness.elem | +----------------------------+----------+----------------------------------------------------------+ | level | 4 bytes | signed 32-bit integer | +----------------------------+----------+----------------------------------------------------------+ | time | 8 bytes | signed 64-bit integer | +----------------------------+----------+----------------------------------------------------------+ Could_not_switch_testchain (tag 1) ================================== +-----------------------+----------+-------------------------+ | 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 | +-----------------------+----------+-------------------------+ X_5 *** +-----------------------+----------------------+-------------------------+ | Name | Size | Contents | +=======================+======================+=========================+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------------------+-------------------------+ | Unnamed field 0 | Determined from data | $X_8 | +-----------------------+----------------------+-------------------------+ X_4 *** +-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | Unnamed field 0 | Variable | sequence of $X_5 | +-----------------------+----------+-------------------------+ X_2 *** +-----------------------+----------------------+----------------------------------------------------------+ | Name | Size | Contents | +=======================+======================+==========================================================+ | level | 1 byte | unsigned 8-bit integer encoding an enumeration (see X_3) | +-----------------------+----------------------+----------------------------------------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------------------+----------------------------------------------------------+ | events | Determined from data | $X_4 | +-----------------------+----------------------+----------------------------------------------------------+ X_9 *** +---------+----------+-----------------------+ | Name | Size | Contents | +=========+==========+=======================+ | pushed | 8 bytes | signed 64-bit integer | +---------+----------+-----------------------+ | treated | 8 bytes | signed 64-bit integer | +---------+----------+-----------------------+ | request | 32 bytes | bytes | +---------+----------+-----------------------+
GET /workers/chain_validators/<chain_id>/ddb
Introspect the state of the DDB attached to a chain validator worker.
{ "p2p_readers": integer ∈ [-2^30-2, 2^30+2], "active_chains": integer ∈ [-2^30-2, 2^30+2], "operation_db": { "table_length": integer ∈ [-2^30-2, 2^30+2], "scheduler_length": integer ∈ [-2^30-2, 2^30+2] }, "operations_db": { "table_length": integer ∈ [-2^30-2, 2^30+2], "scheduler_length": integer ∈ [-2^30-2, 2^30+2] }, "block_header_db": { "table_length": integer ∈ [-2^30-2, 2^30+2], "scheduler_length": integer ∈ [-2^30-2, 2^30+2] }, "operations_hashed_db": { "table_length": integer ∈ [-2^30-2, 2^30+2], "scheduler_length": integer ∈ [-2^30-2, 2^30+2] }, "active_connections": integer ∈ [-2^30-2, 2^30+2], "active_peers": integer ∈ [-2^30-2, 2^30+2] }
+----------------------+---------+--------------------------------------------------------------+ | Name | Size | Contents | +======================+=========+==============================================================+ | p2p_readers | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +----------------------+---------+--------------------------------------------------------------+ | active_chains | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +----------------------+---------+--------------------------------------------------------------+ | operation_db | 8 bytes | $X_0 | +----------------------+---------+--------------------------------------------------------------+ | operations_db | 8 bytes | $X_1 | +----------------------+---------+--------------------------------------------------------------+ | block_header_db | 8 bytes | $X_2 | +----------------------+---------+--------------------------------------------------------------+ | operations_hashed_db | 8 bytes | $X_3 | +----------------------+---------+--------------------------------------------------------------+ | active_connections | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +----------------------+---------+--------------------------------------------------------------+ | active_peers | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +----------------------+---------+--------------------------------------------------------------+ X_3 *** +------------------+---------+--------------------------------------------------------------+ | Name | Size | Contents | +==================+=========+==============================================================+ | table_length | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +------------------+---------+--------------------------------------------------------------+ | scheduler_length | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +------------------+---------+--------------------------------------------------------------+
GET /workers/chain_validators/<chain_id>/peers_validators
Lists the peer validator workers and their status.
[ { "peer_id": $Crypto_box.Public_key_hash, "status": { "phase": "launching", "since": $timestamp.system } || { "phase": "running", "since": $timestamp.system } || { "phase": "closing", "birth": $timestamp.system, "since": $timestamp.system } || { "phase": "closed", "birth": $timestamp.system, "since": $timestamp.system } || { "phase": "crashed", "birth": $timestamp.system, "since": $timestamp.system, "errors": $error }, "information": { "instances": integer ∈ [-2^30-2, 2^30+2], "status": { "phase": "launching", "since": $timestamp.system } || { "phase": "running", "since": $timestamp.system } || { "phase": "closing", "birth": $timestamp.system, "since": $timestamp.system } || { "phase": "closed", "birth": $timestamp.system, "since": $timestamp.system } || { "phase": "crashed", "birth": $timestamp.system, "since": $timestamp.system, "errors": $error }, "queue_length": integer ∈ [-2^30-2, 2^30+2] }, "pipelines": { "fetched_headers": integer ∈ [-2^30-2, 2^30+2], "fetched_blocks": integer ∈ [-2^30-2, 2^30+2] } } ... ] $Crypto_box.Public_key_hash: /* A Cryptobox public key ID (Base58Check-encoded) */ $unistring $error: /* The full list of error is available with the global RPC `GET errors` */ any $int64: /* 64 bit integers Decimal representation of 64 bit integers */ string $timestamp.rfc: /* RFC 3339 formatted timestamp A date in RFC 3339 notation. */ $unistring $timestamp.system: /* A timestamp as seen by the underlying, local computer: subsecond-level precision, epoch or rfc3339 based. */ $timestamp.rfc || $int64 $unistring: /* Universal string representation Either a plain UTF8 string, or a sequence of bytes for strings that contain invalid byte sequences. */ string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
+-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | Unnamed field 0 | Variable | sequence of $X_0 | +-----------------------+----------+-------------------------+ X_3 (Determined from data, 8-bit tag) ************************************* Launching (tag 0) ================= +-------+---------+------------------------+ | Name | Size | Contents | +=======+=========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +-------+---------+------------------------+ | since | 8 bytes | signed 64-bit integer | +-------+---------+------------------------+ Running (tag 1) =============== +-------+---------+------------------------+ | Name | Size | Contents | +=======+=========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +-------+---------+------------------------+ | since | 8 bytes | signed 64-bit integer | +-------+---------+------------------------+ Closing (tag 2) =============== +-------+---------+------------------------+ | Name | Size | Contents | +=======+=========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +-------+---------+------------------------+ | birth | 8 bytes | signed 64-bit integer | +-------+---------+------------------------+ | since | 8 bytes | signed 64-bit integer | +-------+---------+------------------------+ Closed (tag 3) ============== +-------+---------+------------------------+ | Name | Size | Contents | +=======+=========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +-------+---------+------------------------+ | birth | 8 bytes | signed 64-bit integer | +-------+---------+------------------------+ | since | 8 bytes | signed 64-bit integer | +-------+---------+------------------------+ Crashed (tag 4) =============== +--------------------------+----------+-------------------------+ | Name | Size | Contents | +==========================+==========+=========================+ | Tag | 1 byte | unsigned 8-bit integer | +--------------------------+----------+-------------------------+ | birth | 8 bytes | signed 64-bit integer | +--------------------------+----------+-------------------------+ | since | 8 bytes | signed 64-bit integer | +--------------------------+----------+-------------------------+ | # bytes in field "error" | 4 bytes | unsigned 30-bit integer | +--------------------------+----------+-------------------------+ | errors | Variable | bytes | +--------------------------+----------+-------------------------+ X_2 *** +--------------+----------------------+--------------------------------------------------------------+ | Name | Size | Contents | +==============+======================+==============================================================+ | instances | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +--------------+----------------------+--------------------------------------------------------------+ | status | Determined from data | $X_3 | +--------------+----------------------+--------------------------------------------------------------+ | queue_length | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +--------------+----------------------+--------------------------------------------------------------+ X_4 *** +-----------------+---------+--------------------------------------------------------------+ | Name | Size | Contents | +=================+=========+==============================================================+ | fetched_headers | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +-----------------+---------+--------------------------------------------------------------+ | fetched_blocks | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +-----------------+---------+--------------------------------------------------------------+ X_0 *** +-------------+----------------------+----------+ | Name | Size | Contents | +=============+======================+==========+ | peer_id | 16 bytes | bytes | +-------------+----------------------+----------+ | status | Determined from data | $X_3 | +-------------+----------------------+----------+ | information | Determined from data | $X_2 | +-------------+----------------------+----------+ | pipelines | 8 bytes | $X_4 | +-------------+----------------------+----------+
GET /workers/chain_validators/<chain_id>/peers_validators/<peer_id>
Introspect the state of a peer validator worker.
{ "status": { "phase": "launching", "since": $timestamp.system } || { "phase": "running", "since": $timestamp.system } || { "phase": "closing", "birth": $timestamp.system, "since": $timestamp.system } || { "phase": "closed", "birth": $timestamp.system, "since": $timestamp.system } || { "phase": "crashed", "birth": $timestamp.system, "since": $timestamp.system, "errors": $error }, "pending_requests": [ { "pushed": $timestamp.system, "request": { "request": "new_head", "block": $block_hash } || { "request": "new_branch", "block": $block_hash, "locators": integer ∈ [-2^30-2, 2^30+2] } } ... ], "backlog": [ { "level": "info" | "debug" | "error" | "fatal" | "warning" | "notice", "events": [ { "message": $unistring } || { "request": { "request": "new_head", "block": $block_hash } || { "request": "new_branch", "block": $block_hash, "locators": integer ∈ [-2^30-2, 2^30+2] }, "status": { "pushed": $timestamp.system, "treated": $timestamp.system, "completed": $timestamp.system } } || { "error": $error, "failed_request": { "request": "new_head", "block": $block_hash } || { "request": "new_branch", "block": $block_hash, "locators": integer ∈ [-2^30-2, 2^30+2] }, "status": { "pushed": $timestamp.system, "treated": $timestamp.system, "completed": $timestamp.system } } ... ] } ... ], "current_request"?: { "pushed": $timestamp.system, "treated": $timestamp.system, "request": { "request": "new_head", "block": $block_hash } || { "request": "new_branch", "block": $block_hash, "locators": integer ∈ [-2^30-2, 2^30+2] } } } $block_hash: /* A block identifier (Base58Check-encoded) */ $unistring $error: /* The full list of error is available with the global RPC `GET errors` */ any $int64: /* 64 bit integers Decimal representation of 64 bit integers */ string $timestamp.rfc: /* RFC 3339 formatted timestamp A date in RFC 3339 notation. */ $unistring $timestamp.system: /* A timestamp as seen by the underlying, local computer: subsecond-level precision, epoch or rfc3339 based. */ $timestamp.rfc || $int64 $unistring: /* Universal string representation Either a plain UTF8 string, or a sequence of bytes for strings that contain invalid byte sequences. */ string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
+---------------------------------------+----------------------+-------------------------------------+ | Name | Size | Contents | +=======================================+======================+=====================================+ | status | Determined from data | $X_0 | +---------------------------------------+----------------------+-------------------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +---------------------------------------+----------------------+-------------------------------------+ | pending_requests | Variable | sequence of $X_1 | +---------------------------------------+----------------------+-------------------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +---------------------------------------+----------------------+-------------------------------------+ | backlog | Variable | sequence of $X_3 | +---------------------------------------+----------------------+-------------------------------------+ | ? presence of field "current_request" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------------+----------------------+-------------------------------------+ | current_request | Determined from data | $X_12 | +---------------------------------------+----------------------+-------------------------------------+ X_0 (Determined from data, 8-bit tag) ************************************* Launching (tag 0) ================= +-------+---------+------------------------+ | Name | Size | Contents | +=======+=========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +-------+---------+------------------------+ | since | 8 bytes | signed 64-bit integer | +-------+---------+------------------------+ Running (tag 1) =============== +-------+---------+------------------------+ | Name | Size | Contents | +=======+=========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +-------+---------+------------------------+ | since | 8 bytes | signed 64-bit integer | +-------+---------+------------------------+ Closing (tag 2) =============== +-------+---------+------------------------+ | Name | Size | Contents | +=======+=========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +-------+---------+------------------------+ | birth | 8 bytes | signed 64-bit integer | +-------+---------+------------------------+ | since | 8 bytes | signed 64-bit integer | +-------+---------+------------------------+ Closed (tag 3) ============== +-------+---------+------------------------+ | Name | Size | Contents | +=======+=========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +-------+---------+------------------------+ | birth | 8 bytes | signed 64-bit integer | +-------+---------+------------------------+ | since | 8 bytes | signed 64-bit integer | +-------+---------+------------------------+ Crashed (tag 4) =============== +--------------------------+----------+-------------------------+ | Name | Size | Contents | +==========================+==========+=========================+ | Tag | 1 byte | unsigned 8-bit integer | +--------------------------+----------+-------------------------+ | birth | 8 bytes | signed 64-bit integer | +--------------------------+----------+-------------------------+ | since | 8 bytes | signed 64-bit integer | +--------------------------+----------+-------------------------+ | # bytes in field "error" | 4 bytes | unsigned 30-bit integer | +--------------------------+----------+-------------------------+ | errors | Variable | bytes | +--------------------------+----------+-------------------------+ X_1 *** +-----------------------+----------------------+-------------------------+ | Name | Size | Contents | +=======================+======================+=========================+ | pushed | 8 bytes | signed 64-bit integer | +-----------------------+----------------------+-------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------------------+-------------------------+ | request | Determined from data | $X_13 | +-----------------------+----------------------+-------------------------+ X_4 (Enumeration: unsigned 8-bit integer): ****************************************** +-------------+----------------+ | Case number | Encoded string | +=============+================+ | 0 | debug | +-------------+----------------+ | 1 | info | +-------------+----------------+ | 2 | notice | +-------------+----------------+ | 3 | warning | +-------------+----------------+ | 4 | error | +-------------+----------------+ | 5 | fatal | +-------------+----------------+ X_10 **** +-----------+---------+-----------------------+ | Name | Size | Contents | +===========+=========+=======================+ | pushed | 8 bytes | signed 64-bit integer | +-----------+---------+-----------------------+ | treated | 8 bytes | signed 64-bit integer | +-----------+---------+-----------------------+ | completed | 8 bytes | signed 64-bit integer | +-----------+---------+-----------------------+ X_11 (Determined from data, 8-bit tag) ************************************** Debug (tag 0) ============= +-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------------+----------+-------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | message | Variable | bytes | +-----------------------+----------+-------------------------+ Request (tag 1) =============== +---------+----------------------+------------------------+ | Name | Size | Contents | +=========+======================+========================+ | Tag | 1 byte | unsigned 8-bit integer | +---------+----------------------+------------------------+ | request | Determined from data | $X_13 | +---------+----------------------+------------------------+ | status | 24 bytes | $X_10 | +---------+----------------------+------------------------+ Failed request (tag 2) ====================== +--------------------------+----------------------+-------------------------+ | Name | Size | Contents | +==========================+======================+=========================+ | Tag | 1 byte | unsigned 8-bit integer | +--------------------------+----------------------+-------------------------+ | # bytes in field "error" | 4 bytes | unsigned 30-bit integer | +--------------------------+----------------------+-------------------------+ | error | Variable | bytes | +--------------------------+----------------------+-------------------------+ | failed_request | Determined from data | $X_13 | +--------------------------+----------------------+-------------------------+ | status | 24 bytes | $X_10 | +--------------------------+----------------------+-------------------------+ X_6 *** +-----------------------+----------------------+-------------------------+ | Name | Size | Contents | +=======================+======================+=========================+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------------------+-------------------------+ | Unnamed field 0 | Determined from data | $X_11 | +-----------------------+----------------------+-------------------------+ X_5 *** +-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | Unnamed field 0 | Variable | sequence of $X_6 | +-----------------------+----------+-------------------------+ X_3 *** +-----------------------+----------------------+----------------------------------------------------------+ | Name | Size | Contents | +=======================+======================+==========================================================+ | level | 1 byte | unsigned 8-bit integer encoding an enumeration (see X_4) | +-----------------------+----------------------+----------------------------------------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------------------+----------------------------------------------------------+ | events | Determined from data | $X_5 | +-----------------------+----------------------+----------------------------------------------------------+ X_13 (Determined from data, 8-bit tag) ************************************** New_head (tag 0) ================ +-------+----------+------------------------+ | Name | Size | Contents | +=======+==========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +-------+----------+------------------------+ | block | 32 bytes | bytes | +-------+----------+------------------------+ New_branch (tag 1) ================== +----------+----------+--------------------------------------------------------------+ | Name | Size | Contents | +==========+==========+==============================================================+ | Tag | 1 byte | unsigned 8-bit integer | +----------+----------+--------------------------------------------------------------+ | block | 32 bytes | bytes | +----------+----------+--------------------------------------------------------------+ | locators | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +----------+----------+--------------------------------------------------------------+ X_12 **** +---------+----------------------+-----------------------+ | Name | Size | Contents | +=========+======================+=======================+ | pushed | 8 bytes | signed 64-bit integer | +---------+----------------------+-----------------------+ | treated | 8 bytes | signed 64-bit integer | +---------+----------------------+-----------------------+ | request | Determined from data | $X_13 | +---------+----------------------+-----------------------+
GET /workers/prevalidators
Lists the Prevalidator workers and their status.
[ { "chain_id": $Chain_id, "status": { "phase": "launching", "since": $timestamp.system } || { "phase": "running", "since": $timestamp.system } || { "phase": "closing", "birth": $timestamp.system, "since": $timestamp.system } || { "phase": "closed", "birth": $timestamp.system, "since": $timestamp.system } || { "phase": "crashed", "birth": $timestamp.system, "since": $timestamp.system, "errors": $error }, "information": { "instances": integer ∈ [-2^30-2, 2^30+2], "status": { "phase": "launching", "since": $timestamp.system } || { "phase": "running", "since": $timestamp.system } || { "phase": "closing", "birth": $timestamp.system, "since": $timestamp.system } || { "phase": "closed", "birth": $timestamp.system, "since": $timestamp.system } || { "phase": "crashed", "birth": $timestamp.system, "since": $timestamp.system, "errors": $error }, "queue_length": integer ∈ [-2^30-2, 2^30+2] }, "pipelines": integer ∈ [-128, 127] } ... ] $Chain_id: /* Network identifier (Base58Check-encoded) */ $unistring $error: /* The full list of error is available with the global RPC `GET errors` */ any $int64: /* 64 bit integers Decimal representation of 64 bit integers */ string $timestamp.rfc: /* RFC 3339 formatted timestamp A date in RFC 3339 notation. */ $unistring $timestamp.system: /* A timestamp as seen by the underlying, local computer: subsecond-level precision, epoch or rfc3339 based. */ $timestamp.rfc || $int64 $unistring: /* Universal string representation Either a plain UTF8 string, or a sequence of bytes for strings that contain invalid byte sequences. */ string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
+-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | Unnamed field 0 | Variable | sequence of $X_0 | +-----------------------+----------+-------------------------+ X_3 (Determined from data, 8-bit tag) ************************************* Launching (tag 0) ================= +-------+---------+------------------------+ | Name | Size | Contents | +=======+=========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +-------+---------+------------------------+ | since | 8 bytes | signed 64-bit integer | +-------+---------+------------------------+ Running (tag 1) =============== +-------+---------+------------------------+ | Name | Size | Contents | +=======+=========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +-------+---------+------------------------+ | since | 8 bytes | signed 64-bit integer | +-------+---------+------------------------+ Closing (tag 2) =============== +-------+---------+------------------------+ | Name | Size | Contents | +=======+=========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +-------+---------+------------------------+ | birth | 8 bytes | signed 64-bit integer | +-------+---------+------------------------+ | since | 8 bytes | signed 64-bit integer | +-------+---------+------------------------+ Closed (tag 3) ============== +-------+---------+------------------------+ | Name | Size | Contents | +=======+=========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +-------+---------+------------------------+ | birth | 8 bytes | signed 64-bit integer | +-------+---------+------------------------+ | since | 8 bytes | signed 64-bit integer | +-------+---------+------------------------+ Crashed (tag 4) =============== +--------------------------+----------+-------------------------+ | Name | Size | Contents | +==========================+==========+=========================+ | Tag | 1 byte | unsigned 8-bit integer | +--------------------------+----------+-------------------------+ | birth | 8 bytes | signed 64-bit integer | +--------------------------+----------+-------------------------+ | since | 8 bytes | signed 64-bit integer | +--------------------------+----------+-------------------------+ | # bytes in field "error" | 4 bytes | unsigned 30-bit integer | +--------------------------+----------+-------------------------+ | errors | Variable | bytes | +--------------------------+----------+-------------------------+ X_2 *** +--------------+----------------------+--------------------------------------------------------------+ | Name | Size | Contents | +==============+======================+==============================================================+ | instances | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +--------------+----------------------+--------------------------------------------------------------+ | status | Determined from data | $X_3 | +--------------+----------------------+--------------------------------------------------------------+ | queue_length | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +--------------+----------------------+--------------------------------------------------------------+ X_0 *** +-------------+----------------------+----------------------+ | Name | Size | Contents | +=============+======================+======================+ | chain_id | 4 bytes | bytes | +-------------+----------------------+----------------------+ | status | Determined from data | $X_3 | +-------------+----------------------+----------------------+ | information | Determined from data | $X_2 | +-------------+----------------------+----------------------+ | pipelines | 1 byte | signed 8-bit integer | +-------------+----------------------+----------------------+
GET /workers/prevalidators/<chain_id>
Introspect the state of prevalidator workers.
{ "status": { "phase": "launching", "since": $timestamp.system } || { "phase": "running", "since": $timestamp.system } || { "phase": "closing", "birth": $timestamp.system, "since": $timestamp.system } || { "phase": "closed", "birth": $timestamp.system, "since": $timestamp.system } || { "phase": "crashed", "birth": $timestamp.system, "since": $timestamp.system, "errors": $error }, "pending_requests": [ { "pushed": $timestamp.system, "request": { "request": "flush", "block": $block_hash } || { "request": "notify", "peer": $Crypto_box.Public_key_hash, "mempool": $mempool } || { "request": "inject", "operation": $operation } || { "request": "arrived", "operation_hash": $Operation_hash, "operation": $operation } || { "request": "advertise" } } ... ], "backlog": [ { "level": "info" | "debug" | "error" | "fatal" | "warning" | "notice", "events": [ { "message": $unistring } || { "request": { "request": "flush", "block": $block_hash } || { "request": "notify", "peer": $Crypto_box.Public_key_hash, "mempool": $mempool } || { "request": "inject", "operation": $operation } || { "request": "arrived", "operation_hash": $Operation_hash, "operation": $operation } || { "request": "advertise" }, "status": { "pushed": $timestamp.system, "treated": $timestamp.system, "completed": $timestamp.system } } || { "error": $error, "failed_request": { "request": "flush", "block": $block_hash } || { "request": "notify", "peer": $Crypto_box.Public_key_hash, "mempool": $mempool } || { "request": "inject", "operation": $operation } || { "request": "arrived", "operation_hash": $Operation_hash, "operation": $operation } || { "request": "advertise" }, "status": { "pushed": $timestamp.system, "treated": $timestamp.system, "completed": $timestamp.system } } ... ] } ... ], "current_request"?: { "pushed": $timestamp.system, "treated": $timestamp.system, "request": { "request": "flush", "block": $block_hash } || { "request": "notify", "peer": $Crypto_box.Public_key_hash, "mempool": $mempool } || { "request": "inject", "operation": $operation } || { "request": "arrived", "operation_hash": $Operation_hash, "operation": $operation } || { "request": "advertise" } } } $Crypto_box.Public_key_hash: /* A Cryptobox public key ID (Base58Check-encoded) */ $unistring $Operation_hash: /* A Dune operation ID (Base58Check-encoded) */ $unistring $block_hash: /* A block identifier (Base58Check-encoded) */ $unistring $error: /* The full list of error is available with the global RPC `GET errors` */ any $int64: /* 64 bit integers Decimal representation of 64 bit integers */ string $mempool: /* A batch of operation. This format is used to gossip operations between peers. */ { "known_valid": [ $Operation_hash ... ], "pending": [ $Operation_hash ... ] } $operation: /* An operation. The shell_header part indicates a block an operation is meant to apply on top of. The proto part is protocol-specific and appears as a binary blob. */ { "branch": $block_hash, "data": /^[a-zA-Z0-9]+$/ } $timestamp.rfc: /* RFC 3339 formatted timestamp A date in RFC 3339 notation. */ $unistring $timestamp.system: /* A timestamp as seen by the underlying, local computer: subsecond-level precision, epoch or rfc3339 based. */ $timestamp.rfc || $int64 $unistring: /* Universal string representation Either a plain UTF8 string, or a sequence of bytes for strings that contain invalid byte sequences. */ string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
+-----------------------+----------------------+-------------------------+ | Name | Size | Contents | +=======================+======================+=========================+ | status | Determined from data | $X_0 | +-----------------------+----------------------+-------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------------------+-------------------------+ | pending_requests | Variable | sequence of $X_1 | +-----------------------+----------------------+-------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------------------+-------------------------+ | backlog | Variable | sequence of $X_4 | +-----------------------+----------------------+-------------------------+ | current_request | Variable | $X_15 | +-----------------------+----------------------+-------------------------+ X_15 **** +---------+----------+-----------------------+ | Name | Size | Contents | +=========+==========+=======================+ | pushed | 8 bytes | signed 64-bit integer | +---------+----------+-----------------------+ | treated | 8 bytes | signed 64-bit integer | +---------+----------+-----------------------+ | request | Variable | $X_17 | +---------+----------+-----------------------+ X_17 (Variable, 8-bit tag) ************************** Flush (tag 0) ============= +-------+----------+------------------------+ | Name | Size | Contents | +=======+==========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +-------+----------+------------------------+ | block | 32 bytes | bytes | +-------+----------+------------------------+ Notify (tag 1) ============== +---------+----------------------+------------------------+ | Name | Size | Contents | +=========+======================+========================+ | Tag | 1 byte | unsigned 8-bit integer | +---------+----------------------+------------------------+ | peer | 16 bytes | bytes | +---------+----------------------+------------------------+ | mempool | Determined from data | $mempool | +---------+----------------------+------------------------+ Inject (tag 2) ============== +-----------+----------+------------------------+ | Name | Size | Contents | +===========+==========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------+----------+------------------------+ | operation | Variable | $operation | +-----------+----------+------------------------+ Arrived (tag 3) =============== +----------------+----------+------------------------+ | Name | Size | Contents | +================+==========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +----------------+----------+------------------------+ | operation_hash | 32 bytes | bytes | +----------------+----------+------------------------+ | operation | Variable | $operation | +----------------+----------+------------------------+ Advertise (tag 4) ================= +------+--------+------------------------+ | Name | Size | Contents | +======+========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +------+--------+------------------------+ X_16 **** +-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | Unnamed field 0 | Variable | sequence of bytes | +-----------------------+----------+-------------------------+ operation ********* +--------+----------+----------+ | Name | Size | Contents | +========+==========+==========+ | branch | 32 bytes | bytes | +--------+----------+----------+ | data | Variable | bytes | +--------+----------+----------+ X_4 *** +-----------------------+----------------------+----------------------------------------------------------+ | Name | Size | Contents | +=======================+======================+==========================================================+ | level | 1 byte | unsigned 8-bit integer encoding an enumeration (see X_5) | +-----------------------+----------------------+----------------------------------------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------------------+----------------------------------------------------------+ | events | Determined from data | $X_6 | +-----------------------+----------------------+----------------------------------------------------------+ X_6 *** +-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | Unnamed field 0 | Variable | sequence of $X_7 | +-----------------------+----------+-------------------------+ X_7 *** +-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | Unnamed field 0 | Variable | $X_14 | +-----------------------+----------+-------------------------+ X_14 (Variable, 8-bit tag) ************************** Debug (tag 0) ============= +-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------------+----------+-------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | message | Variable | bytes | +-----------------------+----------+-------------------------+ Request (tag 1) =============== +---------+----------+------------------------+ | Name | Size | Contents | +=========+==========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +---------+----------+------------------------+ | request | Variable | $X_17 | +---------+----------+------------------------+ | status | 24 bytes | $X_13 | +---------+----------+------------------------+ Failed request (tag 2) ====================== +--------------------------+----------+-------------------------+ | Name | Size | Contents | +==========================+==========+=========================+ | Tag | 1 byte | unsigned 8-bit integer | +--------------------------+----------+-------------------------+ | # bytes in field "error" | 4 bytes | unsigned 30-bit integer | +--------------------------+----------+-------------------------+ | error | Variable | bytes | +--------------------------+----------+-------------------------+ | failed_request | Variable | $X_17 | +--------------------------+----------+-------------------------+ | status | 24 bytes | $X_13 | +--------------------------+----------+-------------------------+ X_13 **** +-----------+---------+-----------------------+ | Name | Size | Contents | +===========+=========+=======================+ | pushed | 8 bytes | signed 64-bit integer | +-----------+---------+-----------------------+ | treated | 8 bytes | signed 64-bit integer | +-----------+---------+-----------------------+ | completed | 8 bytes | signed 64-bit integer | +-----------+---------+-----------------------+ X_5 (Enumeration: unsigned 8-bit integer): ****************************************** +-------------+----------------+ | Case number | Encoded string | +=============+================+ | 0 | debug | +-------------+----------------+ | 1 | info | +-------------+----------------+ | 2 | notice | +-------------+----------------+ | 3 | warning | +-------------+----------------+ | 4 | error | +-------------+----------------+ | 5 | fatal | +-------------+----------------+ X_1 *** +-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | pushed | 8 bytes | signed 64-bit integer | +-----------------------+----------+-------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | request | Variable | $X_17 | +-----------------------+----------+-------------------------+ mempool ******* +-----------------------+----------------------+-------------------------+ | Name | Size | Contents | +=======================+======================+=========================+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------------------+-------------------------+ | known_valid | Variable | sequence of bytes | +-----------------------+----------------------+-------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------------------+-------------------------+ | pending | Determined from data | $X_16 | +-----------------------+----------------------+-------------------------+ X_0 (Determined from data, 8-bit tag) ************************************* Launching (tag 0) ================= +-------+---------+------------------------+ | Name | Size | Contents | +=======+=========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +-------+---------+------------------------+ | since | 8 bytes | signed 64-bit integer | +-------+---------+------------------------+ Running (tag 1) =============== +-------+---------+------------------------+ | Name | Size | Contents | +=======+=========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +-------+---------+------------------------+ | since | 8 bytes | signed 64-bit integer | +-------+---------+------------------------+ Closing (tag 2) =============== +-------+---------+------------------------+ | Name | Size | Contents | +=======+=========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +-------+---------+------------------------+ | birth | 8 bytes | signed 64-bit integer | +-------+---------+------------------------+ | since | 8 bytes | signed 64-bit integer | +-------+---------+------------------------+ Closed (tag 3) ============== +-------+---------+------------------------+ | Name | Size | Contents | +=======+=========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +-------+---------+------------------------+ | birth | 8 bytes | signed 64-bit integer | +-------+---------+------------------------+ | since | 8 bytes | signed 64-bit integer | +-------+---------+------------------------+ Crashed (tag 4) =============== +--------------------------+----------+-------------------------+ | Name | Size | Contents | +==========================+==========+=========================+ | Tag | 1 byte | unsigned 8-bit integer | +--------------------------+----------+-------------------------+ | birth | 8 bytes | signed 64-bit integer | +--------------------------+----------+-------------------------+ | since | 8 bytes | signed 64-bit integer | +--------------------------+----------+-------------------------+ | # bytes in field "error" | 4 bytes | unsigned 30-bit integer | +--------------------------+----------+-------------------------+ | errors | Variable | bytes | +--------------------------+----------+-------------------------+
Protocol Alpha¶
GET ../<block_id>
All the information about a block.
{ "protocol": "PsBabyM1eUXZseaJdmXFApDSBqj8YBfwELoxZHHW77EMcAbbwAS", "chain_id": $Chain_id, "hash": $block_hash, "header": $raw_block_header, "metadata": $block_header_metadata, "operations": [ [ $operation ... ] ... ] } $Chain_id: /* Network identifier (Base58Check-encoded) */ $unistring $Context_hash: /* A hash of context (Base58Check-encoded) */ $unistring $Ed25519.Public_key_hash: /* An Ed25519 public key hash (Base58Check-encoded) */ $unistring $Operation_hash: /* A Dune operation ID (Base58Check-encoded) */ $unistring $Operation_list_list_hash: /* A list of list of operations (Base58Check-encoded) */ $unistring $Protocol_hash: /* A Dune protocol ID (Base58Check-encoded) */ $unistring $Signature: /* A Ed25519, Secp256k1 or P256 signature (Base58Check-encoded) */ $unistring $Signature.Public_key: /* A Ed25519, Secp256k1, or P256 public key (Base58Check-encoded) */ $unistring $Signature.Public_key_hash: /* A Ed25519, Secp256k1, or P256 public key hash (Base58Check-encoded) */ $unistring $bignum: /* Big number Decimal representation of a big number */ string $block_hash: /* A block identifier (Base58Check-encoded) */ $unistring $block_header.alpha.full_header: { "level": integer ∈ [-2^31-2, 2^31+2], "proto": integer ∈ [0, 255], "predecessor": $block_hash, "timestamp": $timestamp.protocol, "validation_pass": integer ∈ [0, 255], "operations_hash": $Operation_list_list_hash, "fitness": $fitness, "context": $Context_hash, "priority": integer ∈ [0, 2^16-1], "proof_of_work_nonce": /^[a-zA-Z0-9]+$/, "seed_nonce_hash"?: $cycle_nonce, "signature": $Signature } $block_header_metadata: { "protocol": "PsBabyM1eUXZseaJdmXFApDSBqj8YBfwELoxZHHW77EMcAbbwAS", "next_protocol": "PsBabyM1eUXZseaJdmXFApDSBqj8YBfwELoxZHHW77EMcAbbwAS", "test_chain_status": $test_chain_status, "max_operations_ttl": integer ∈ [-2^30-2, 2^30+2], "max_operation_data_length": integer ∈ [-2^30-2, 2^30+2], "max_block_header_length": integer ∈ [-2^30-2, 2^30+2], "max_operation_list_length": [ { "max_size": integer ∈ [-2^30-2, 2^30+2], "max_op"?: integer ∈ [-2^30-2, 2^30+2] } ... ], "baker": $Signature.Public_key_hash, "level": { "level": integer ∈ [-2^31-2, 2^31+2], "level_position": integer ∈ [-2^31-2, 2^31+2], "cycle": integer ∈ [-2^31-2, 2^31+2], "cycle_position": integer ∈ [-2^31-2, 2^31+2], "voting_period": integer ∈ [-2^31-2, 2^31+2], "voting_period_position": integer ∈ [-2^31-2, 2^31+2], "expected_commitment": boolean }, "voting_period_kind": "proposal" || "testing_vote" || "testing" || "promotion_vote", "nonce_hash": $cycle_nonce || null, "consumed_gas": $positive_bignum, "deactivated": [ $Signature.Public_key_hash ... ], "balance_updates": $operation_metadata.alpha.balance_updates } $contract.big_map_diff: [ { "action": "update", "big_map": $bignum, "key_hash": $script_expr, "key": $micheline.michelson_v1.expression || { "dune_expr": "VOID" || any || any } || { "dune_code": "NOOP" || any || any || any } || { "michelson": $unistring }, "value"?: $micheline.michelson_v1.expression || { "dune_expr": "VOID" || any || any } || { "dune_code": "NOOP" || any || any || any } || { "michelson": $unistring } } || { "action": "remove", "big_map": $bignum } || { "action": "copy", "source_big_map": $bignum, "destination_big_map": $bignum } || { "action": "alloc", "big_map": $bignum, "key_type": $micheline.michelson_v1.expression || { "dune_expr": "VOID" || any || any } || { "dune_code": "NOOP" || any || any || any } || { "michelson": $unistring }, "value_type": $micheline.michelson_v1.expression || { "dune_expr": "VOID" || any || any } || { "dune_code": "NOOP" || any || any || any } || { "michelson": $unistring } } ... ] $contract_id: /* A contract handle A contract notation as given to an RPC or inside scripts. Can be a base58 implicit contract hash or a base58 originated contract hash. */ $unistring $cycle_nonce: /* A nonce hash (Base58Check-encoded) */ $unistring $entrypoint: /* entrypoint Named entrypoint to a Michelson smart contract */ "default" || "root" || "do" || "set_delegate" || "remove_delegate" || string $error: /* The full list of RPC errors would be too long to include. It is available at RPC `/errors` (GET). Errors specific to protocol Alpha have an id that starts with `proto.alpha`. */ any $fitness: /* Block fitness The fitness, or score, of a block, that allow the Dune to decide which chain is the best. A fitness value is a list of byte sequences. They are compared as follows: shortest lists are smaller; lists of the same length are compared according to the lexicographical order. */ [ /^[a-zA-Z0-9]+$/ ... ] $inlined.endorsement: { "branch": $block_hash, "operations": $inlined.endorsement.contents, "signature"?: $Signature } $inlined.endorsement.contents: { "kind": "endorsement", "level": integer ∈ [-2^31-2, 2^31+2] } $int64: /* 64 bit integers Decimal representation of 64 bit integers */ string $micheline.michelson_v1.expression: { "int": $bignum } || { "string": $unistring } || { "bytes": /^[a-zA-Z0-9]+$/ } || [ $micheline.michelson_v1.expression ... ] || { "prim": $michelson.v1.primitives, "args"?: [ $micheline.michelson_v1.expression ... ], "annots"?: [ string ... ] } $michelson.v1.primitives: "ADMIN_ACCOUNTS" | "ADD" | "IF_NONE" | "SWAP" | "nat" | "Elt" | "big_map" | "map" | "SHA256" | "Right" | "LEFT" | "storage" | "SLICE" | "False" | "SHA512" | "BALANCE" | "EMPTY_BIG_MAP" | "OR" | "XOR" | "lambda" | "COMPARE" | "option" | "NEQ" | "BLOCK_LEVEL" | "AMOUNT" | "DIP" | "ABS" | "chain_id" | "MEM" | "ALLOW_PEERS" | "CONCAT" | "LOOP_LEFT" | "UPDATE" | "DUP" | "IS_IMPLICIT" | "CAR" | "CONS" | "NONE" | "GET" | "Left" | "SIZE" | "GET_ACCOUNT_INFO" | "DROP" | "NIL" | "DIG" | "RENAME" | "True" | "parameter" | "EQ" | "Pair" | "ADDRESS" | "AND" | "set" | "CHECK_SIGNATURE" | "IF_LEFT" | "LAMBDA" | "CREATE_CONTRACT" | "NEG" | "or" | "BLAKE2B" | "bytes" | "SET_DELEGATE" | "CONTRACT" | "LSL" | "SUB" | "IMPLICIT_ACCOUNT" | "PACK" | "list" | "PAIR" | "contract" | "GT" | "STEPS_TO_QUOTA" | "TRANSFER_TOKENS" | "CDR" | "PUSH" | "CHAIN_ID" | "signature" | "DUG" | "SELF" | "LSR" | "key" | "Unit" | "Some" | "UNPACK" | "INT" | "pair" | "COLLECT_CALL" | "ISNAT" | "EXEC" | "NOW" | "LOOP" | "string" | "MAP" | "None" | "address" | "EMPTY_SET" | "MUL" | "timestamp" | "LT" | "ADMIN_PROTOCOL" | "SOURCE" | "mutez" | "SENDER" | "IF_CONS" | "RIGHT" | "LE" | "IF" | "SOME" | "CAST" | "int" | "REVOKE_PEERS" | "key_hash" | "unit" | "EMPTY_MAP" | "APPLY" | "MANAGE_ACCOUNT" | "bool" | "operation" | "FAILWITH" | "GET_BALANCE" | "HASH_KEY" | "NOT" | "UNIT" | "EDIV" | "CREATE_ACCOUNT" | "GE" | "ITER" | "code" $mutez: $positive_bignum $operation: { "protocol": "PsBabyM1eUXZseaJdmXFApDSBqj8YBfwELoxZHHW77EMcAbbwAS", "chain_id": $Chain_id, "hash": $Operation_hash, "branch": $block_hash, "contents": [ $operation.alpha.operation_contents_and_result ... ], "signature"?: $Signature } || { "protocol": "PsBabyM1eUXZseaJdmXFApDSBqj8YBfwELoxZHHW77EMcAbbwAS", "chain_id": $Chain_id, "hash": $Operation_hash, "branch": $block_hash, "contents": [ $operation.alpha.contents ... ], "signature"?: $Signature } $operation.alpha.contents: { "kind": "endorsement", "level": integer ∈ [-2^31-2, 2^31+2] } || { "kind": "seed_nonce_revelation", "level": integer ∈ [-2^31-2, 2^31+2], "nonce": /^[a-zA-Z0-9]+$/ } || { "kind": "double_endorsement_evidence", "op1": $inlined.endorsement, "op2": $inlined.endorsement } || { "kind": "double_baking_evidence", "bh1": $block_header.alpha.full_header, "bh2": $block_header.alpha.full_header } || { "kind": "activate_account", "pkh": $Ed25519.Public_key_hash, "secret": /^[a-zA-Z0-9]+$/ } || { "kind": "proposals", "source": $Signature.Public_key_hash, "period": integer ∈ [-2^31-2, 2^31+2], "proposals": [ $Protocol_hash ... ] } || { "kind": "ballot", "source": $Signature.Public_key_hash, "period": integer ∈ [-2^31-2, 2^31+2], "proposal": $Protocol_hash, "ballot": "nay" | "yay" | "pass" } || { "kind": "reveal", "source": $Signature.Public_key_hash, "fee": $mutez, "counter": $positive_bignum, "gas_limit": $positive_bignum, "storage_limit": $positive_bignum, "public_key": $Signature.Public_key } || { "kind": "transaction", "source": $Signature.Public_key_hash, "fee": $mutez, "counter": $positive_bignum, "gas_limit": $positive_bignum, "storage_limit": $positive_bignum, "amount": $mutez, "destination": $contract_id, "parameters"?: { "entrypoint"?: $entrypoint, "value": $micheline.michelson_v1.expression } } || { "kind": "origination", "source": $Signature.Public_key_hash, "fee": $mutez, "counter": $positive_bignum, "gas_limit": $positive_bignum, "storage_limit": $positive_bignum, "balance": $mutez, "delegate"?: $Signature.Public_key_hash, "script": $scripted.opt_or_hash } || { "kind": "delegation", "source": $Signature.Public_key_hash, "fee": $mutez, "counter": $positive_bignum, "gas_limit": $positive_bignum, "storage_limit": $positive_bignum, "delegate"?: $Signature.Public_key_hash } || { "kind": "dune_manager_operation", "source": $Signature.Public_key_hash, "fee": $mutez, "counter": $positive_bignum, "gas_limit": $positive_bignum, "storage_limit": $positive_bignum, "dune_kind": "dune_activate_protocol", "level": integer ∈ [-2^31-2, 2^31+2], "protocol"?: $Protocol_hash, "protocol_parameters"?: { "proof_of_work_nonce_size"?: integer ∈ [0, 255], "nonce_length"?: integer ∈ [0, 255], "max_revelations_per_block"?: integer ∈ [0, 255], "max_operation_data_length"?: integer ∈ [-2^30-2, 2^30+2], "max_proposals_per_delegate"?: integer ∈ [0, 255], "preserved_cycles"?: integer ∈ [0, 255], "blocks_per_cycle"?: integer ∈ [-2^31-2, 2^31+2], "blocks_per_commitment"?: integer ∈ [-2^31-2, 2^31+2], "blocks_per_roll_snapshot"?: integer ∈ [-2^31-2, 2^31+2], "blocks_per_voting_period"?: integer ∈ [-2^31-2, 2^31+2], "time_between_blocks"?: [ $int64 ... ], "endorsers_per_block"?: integer ∈ [0, 2^16-1], "hard_gas_limit_per_operation"?: $bignum, "hard_gas_limit_per_block"?: $bignum, "proof_of_work_threshold"?: $int64, "tokens_per_roll"?: $mutez, "michelson_maximum_type_size"?: integer ∈ [0, 2^16-1], "seed_nonce_revelation_tip"?: $mutez, "origination_size"?: integer ∈ [-2^30-2, 2^30+2], "block_security_deposit"?: $mutez, "endorsement_security_deposit"?: $mutez, "block_reward"?: $mutez, "endorsement_reward"?: $mutez, "cost_per_byte"?: $mutez, "hard_storage_limit_per_operation"?: $bignum, "hard_gas_limit_to_pay_fees"?: $bignum, "protocol_revision"?: integer ∈ [-2^30-2, 2^30+2], "max_operation_ttl"?: integer ∈ [-2^30-2, 2^30+2], "initial_endorsers"?: integer ∈ [-2^30-2, 2^30+2], "delay_per_missing_endorsement"?: $int64, "protocol_actions"?: [ $unistring ... ], "allow_collect_call"?: boolean } } || { "kind": "dune_manager_operation", "source": $Signature.Public_key_hash, "fee": $mutez, "counter": $positive_bignum, "gas_limit": $positive_bignum, "storage_limit": $positive_bignum, "dune_kind": "dune_manage_accounts", "bytes": /^[a-zA-Z0-9]+$/ } || { "kind": "dune_manager_operation", "source": $Signature.Public_key_hash, "fee": $mutez, "counter": $positive_bignum, "gas_limit": $positive_bignum, "storage_limit": $positive_bignum, "dune_kind": "dune_manage_account", "target"?: { "target": $Signature.Public_key_hash, "signature"?: $Signature }, "options": /^[a-zA-Z0-9]+$/ } || { "kind": "dune_manager_operation", "source": $Signature.Public_key_hash, "fee": $mutez, "counter": $positive_bignum, "gas_limit": $positive_bignum, "storage_limit": $positive_bignum, "dune_kind": "dune_clear_delegations" } || { "kind": "transaction", "source": $Signature.Public_key_hash, "fee": $mutez, "counter": $positive_bignum, "gas_limit": $positive_bignum, "storage_limit": $positive_bignum, "amount": $mutez, "destination": $contract_id, "parameters"?: { "entrypoint"?: $entrypoint, "value"?: $micheline.michelson_v1.expression || { "dune_expr": "VOID" || any || any } || { "dune_code": "NOOP" || any || any || any } || { "michelson": $unistring } }, "collect_call"?: { "fee_gas": $positive_bignum, "reveal_public_key"?: $Signature.Public_key } } $operation.alpha.internal_operation_result: { "kind": "reveal", "source": $contract_id, "nonce": integer ∈ [0, 2^16-1], "public_key": $Signature.Public_key, "result": $operation.alpha.operation_result.reveal } || { "kind": "transaction", "source": $contract_id, "nonce": integer ∈ [0, 2^16-1], "amount": $mutez, "destination": $contract_id, "parameters"?: { "entrypoint"?: $entrypoint, "value": $micheline.michelson_v1.expression }, "result": $operation.alpha.operation_result.transaction } || { "kind": "origination", "source": $contract_id, "nonce": integer ∈ [0, 2^16-1], "balance": $mutez, "delegate"?: $Signature.Public_key_hash, "script": $scripted.opt_or_hash, "result": $operation.alpha.operation_result.origination } || { "kind": "delegation", "source": $contract_id, "nonce": integer ∈ [0, 2^16-1], "delegate"?: $Signature.Public_key_hash, "result": $operation.alpha.operation_result.delegation } || { "kind": "dune_manager_operation", "source": $contract_id, "nonce": integer ∈ [0, 2^16-1], "dune_kind": "dune_activate_protocol", "level": integer ∈ [-2^31-2, 2^31+2], "protocol"?: $Protocol_hash, "protocol_parameters"?: { "proof_of_work_nonce_size"?: integer ∈ [0, 255], "nonce_length"?: integer ∈ [0, 255], "max_revelations_per_block"?: integer ∈ [0, 255], "max_operation_data_length"?: integer ∈ [-2^30-2, 2^30+2], "max_proposals_per_delegate"?: integer ∈ [0, 255], "preserved_cycles"?: integer ∈ [0, 255], "blocks_per_cycle"?: integer ∈ [-2^31-2, 2^31+2], "blocks_per_commitment"?: integer ∈ [-2^31-2, 2^31+2], "blocks_per_roll_snapshot"?: integer ∈ [-2^31-2, 2^31+2], "blocks_per_voting_period"?: integer ∈ [-2^31-2, 2^31+2], "time_between_blocks"?: [ $int64 ... ], "endorsers_per_block"?: integer ∈ [0, 2^16-1], "hard_gas_limit_per_operation"?: $bignum, "hard_gas_limit_per_block"?: $bignum, "proof_of_work_threshold"?: $int64, "tokens_per_roll"?: $mutez, "michelson_maximum_type_size"?: integer ∈ [0, 2^16-1], "seed_nonce_revelation_tip"?: $mutez, "origination_size"?: integer ∈ [-2^30-2, 2^30+2], "block_security_deposit"?: $mutez, "endorsement_security_deposit"?: $mutez, "block_reward"?: $mutez, "endorsement_reward"?: $mutez, "cost_per_byte"?: $mutez, "hard_storage_limit_per_operation"?: $bignum, "hard_gas_limit_to_pay_fees"?: $bignum, "protocol_revision"?: integer ∈ [-2^30-2, 2^30+2], "max_operation_ttl"?: integer ∈ [-2^30-2, 2^30+2], "initial_endorsers"?: integer ∈ [-2^30-2, 2^30+2], "delay_per_missing_endorsement"?: $int64, "protocol_actions"?: [ $unistring ... ], "allow_collect_call"?: boolean }, "result": $operation.alpha.operation_result.dune_manager_operation } || { "kind": "dune_manager_operation", "source": $contract_id, "nonce": integer ∈ [0, 2^16-1], "dune_kind": "dune_manage_accounts", "bytes": /^[a-zA-Z0-9]+$/, "result": $operation.alpha.operation_result.dune_manager_operation } || { "kind": "dune_manager_operation", "source": $contract_id, "nonce": integer ∈ [0, 2^16-1], "dune_kind": "dune_manage_account", "target"?: { "target": $Signature.Public_key_hash, "signature"?: $Signature }, "options": /^[a-zA-Z0-9]+$/, "result": $operation.alpha.operation_result.dune_manager_operation } || { "kind": "dune_manager_operation", "source": $contract_id, "nonce": integer ∈ [0, 2^16-1], "dune_kind": "dune_clear_delegations", "result": $operation.alpha.operation_result.dune_manager_operation } || { "kind": "transaction", "source": $contract_id, "nonce": integer ∈ [0, 2^16-1], "amount": $mutez, "destination": $contract_id, "parameters"?: { "entrypoint"?: $entrypoint, "value"?: $micheline.michelson_v1.expression || { "dune_expr": "VOID" || any || any } || { "dune_code": "NOOP" || any || any || any } || { "michelson": $unistring } }, "collect_call"?: { "fee_gas": $positive_bignum, "reveal_public_key"?: $Signature.Public_key }, "result": $operation.alpha.operation_result.transaction } $operation.alpha.operation_contents_and_result: { "kind": "endorsement", "level": integer ∈ [-2^31-2, 2^31+2], "metadata": { "balance_updates": $operation_metadata.alpha.balance_updates, "delegate": $Signature.Public_key_hash, "slots": [ integer ∈ [0, 255] ... ] } } || { "kind": "seed_nonce_revelation", "level": integer ∈ [-2^31-2, 2^31+2], "nonce": /^[a-zA-Z0-9]+$/, "metadata": { "balance_updates": $operation_metadata.alpha.balance_updates } } || { "kind": "double_endorsement_evidence", "op1": $inlined.endorsement, "op2": $inlined.endorsement, "metadata": { "balance_updates": $operation_metadata.alpha.balance_updates } } || { "kind": "double_baking_evidence", "bh1": $block_header.alpha.full_header, "bh2": $block_header.alpha.full_header, "metadata": { "balance_updates": $operation_metadata.alpha.balance_updates } } || { "kind": "activate_account", "pkh": $Ed25519.Public_key_hash, "secret": /^[a-zA-Z0-9]+$/, "metadata": { "balance_updates": $operation_metadata.alpha.balance_updates } } || { "kind": "proposals", "source": $Signature.Public_key_hash, "period": integer ∈ [-2^31-2, 2^31+2], "proposals": [ $Protocol_hash ... ], "metadata": { } } || { "kind": "ballot", "source": $Signature.Public_key_hash, "period": integer ∈ [-2^31-2, 2^31+2], "proposal": $Protocol_hash, "ballot": "nay" | "yay" | "pass", "metadata": { } } || { "kind": "reveal", "source": $Signature.Public_key_hash, "fee": $mutez, "counter": $positive_bignum, "gas_limit": $positive_bignum, "storage_limit": $positive_bignum, "public_key": $Signature.Public_key, "metadata": { "balance_updates": $operation_metadata.alpha.balance_updates, "operation_result": $operation.alpha.operation_result.reveal, "internal_operation_results"?: [ $operation.alpha.internal_operation_result ... ] } } || { "kind": "transaction", "source": $Signature.Public_key_hash, "fee": $mutez, "counter": $positive_bignum, "gas_limit": $positive_bignum, "storage_limit": $positive_bignum, "amount": $mutez, "destination": $contract_id, "parameters"?: { "entrypoint"?: $entrypoint, "value": $micheline.michelson_v1.expression }, "metadata": { "balance_updates": $operation_metadata.alpha.balance_updates, "operation_result": $operation.alpha.operation_result.transaction, "internal_operation_results"?: [ $operation.alpha.internal_operation_result ... ] } } || { "kind": "origination", "source": $Signature.Public_key_hash, "fee": $mutez, "counter": $positive_bignum, "gas_limit": $positive_bignum, "storage_limit": $positive_bignum, "balance": $mutez, "delegate"?: $Signature.Public_key_hash, "script": $scripted.opt_or_hash, "metadata": { "balance_updates": $operation_metadata.alpha.balance_updates, "operation_result": $operation.alpha.operation_result.origination, "internal_operation_results"?: [ $operation.alpha.internal_operation_result ... ] } } || { "kind": "delegation", "source": $Signature.Public_key_hash, "fee": $mutez, "counter": $positive_bignum, "gas_limit": $positive_bignum, "storage_limit": $positive_bignum, "delegate"?: $Signature.Public_key_hash, "metadata": { "balance_updates": $operation_metadata.alpha.balance_updates, "operation_result": $operation.alpha.operation_result.delegation, "internal_operation_results"?: [ $operation.alpha.internal_operation_result ... ] } } || { "kind": "dune_manager_operation", "source": $Signature.Public_key_hash, "fee": $mutez, "counter": $positive_bignum, "gas_limit": $positive_bignum, "storage_limit": $positive_bignum, "dune_kind": "dune_activate_protocol", "level": integer ∈ [-2^31-2, 2^31+2], "protocol"?: $Protocol_hash, "protocol_parameters"?: { "proof_of_work_nonce_size"?: integer ∈ [0, 255], "nonce_length"?: integer ∈ [0, 255], "max_revelations_per_block"?: integer ∈ [0, 255], "max_operation_data_length"?: integer ∈ [-2^30-2, 2^30+2], "max_proposals_per_delegate"?: integer ∈ [0, 255], "preserved_cycles"?: integer ∈ [0, 255], "blocks_per_cycle"?: integer ∈ [-2^31-2, 2^31+2], "blocks_per_commitment"?: integer ∈ [-2^31-2, 2^31+2], "blocks_per_roll_snapshot"?: integer ∈ [-2^31-2, 2^31+2], "blocks_per_voting_period"?: integer ∈ [-2^31-2, 2^31+2], "time_between_blocks"?: [ $int64 ... ], "endorsers_per_block"?: integer ∈ [0, 2^16-1], "hard_gas_limit_per_operation"?: $bignum, "hard_gas_limit_per_block"?: $bignum, "proof_of_work_threshold"?: $int64, "tokens_per_roll"?: $mutez, "michelson_maximum_type_size"?: integer ∈ [0, 2^16-1], "seed_nonce_revelation_tip"?: $mutez, "origination_size"?: integer ∈ [-2^30-2, 2^30+2], "block_security_deposit"?: $mutez, "endorsement_security_deposit"?: $mutez, "block_reward"?: $mutez, "endorsement_reward"?: $mutez, "cost_per_byte"?: $mutez, "hard_storage_limit_per_operation"?: $bignum, "hard_gas_limit_to_pay_fees"?: $bignum, "protocol_revision"?: integer ∈ [-2^30-2, 2^30+2], "max_operation_ttl"?: integer ∈ [-2^30-2, 2^30+2], "initial_endorsers"?: integer ∈ [-2^30-2, 2^30+2], "delay_per_missing_endorsement"?: $int64, "protocol_actions"?: [ $unistring ... ], "allow_collect_call"?: boolean }, "metadata": { "balance_updates": $operation_metadata.alpha.balance_updates, "operation_result": $operation.alpha.operation_result.dune_manager_operation, "internal_operation_results"?: [ $operation.alpha.internal_operation_result ... ] } } || { "kind": "dune_manager_operation", "source": $Signature.Public_key_hash, "fee": $mutez, "counter": $positive_bignum, "gas_limit": $positive_bignum, "storage_limit": $positive_bignum, "dune_kind": "dune_manage_accounts", "bytes": /^[a-zA-Z0-9]+$/, "metadata": { "balance_updates": $operation_metadata.alpha.balance_updates, "operation_result": $operation.alpha.operation_result.dune_manager_operation, "internal_operation_results"?: [ $operation.alpha.internal_operation_result ... ] } } || { "kind": "dune_manager_operation", "source": $Signature.Public_key_hash, "fee": $mutez, "counter": $positive_bignum, "gas_limit": $positive_bignum, "storage_limit": $positive_bignum, "dune_kind": "dune_manage_account", "target"?: { "target": $Signature.Public_key_hash, "signature"?: $Signature }, "options": /^[a-zA-Z0-9]+$/, "metadata": { "balance_updates": $operation_metadata.alpha.balance_updates, "operation_result": $operation.alpha.operation_result.dune_manager_operation, "internal_operation_results"?: [ $operation.alpha.internal_operation_result ... ] } } || { "kind": "dune_manager_operation", "source": $Signature.Public_key_hash, "fee": $mutez, "counter": $positive_bignum, "gas_limit": $positive_bignum, "storage_limit": $positive_bignum, "dune_kind": "dune_clear_delegations", "metadata": { "balance_updates": $operation_metadata.alpha.balance_updates, "operation_result": $operation.alpha.operation_result.dune_manager_operation, "internal_operation_results"?: [ $operation.alpha.internal_operation_result ... ] } } || { "kind": "transaction", "source": $Signature.Public_key_hash, "fee": $mutez, "counter": $positive_bignum, "gas_limit": $positive_bignum, "storage_limit": $positive_bignum, "amount": $mutez, "destination": $contract_id, "parameters"?: { "entrypoint"?: $entrypoint, "value"?: $micheline.michelson_v1.expression || { "dune_expr": "VOID" || any || any } || { "dune_code": "NOOP" || any || any || any } || { "michelson": $unistring } }, "collect_call"?: { "fee_gas": $positive_bignum, "reveal_public_key"?: $Signature.Public_key }, "metadata": { "balance_updates": $operation_metadata.alpha.balance_updates, "operation_result": $operation.alpha.operation_result.transaction, "internal_operation_results"?: [ $operation.alpha.internal_operation_result ... ] } } $operation.alpha.operation_result.delegation: { "status": "applied", "consumed_gas"?: $bignum } || { "status": "failed", "errors": [ $error ... ] } || { "status": "skipped" } || { "status": "backtracked", "errors"?: [ $error ... ], "consumed_gas"?: $bignum } $operation.alpha.operation_result.dune_manager_operation: { "status": "applied", "consumed_gas"?: $bignum, "originated_contracts"?: [ $contract_id ... ], "paid_storage_size_diff"?: $bignum, "balance_updates"?: $operation_metadata.alpha.balance_updates, "result": { "kind": "activate_protocol" } || { "kind": "manage_accounts" } || { "kind": "manage_account" } || { "kind": "clear_delegations", "undelegated": integer ∈ [-2^30-2, 2^30+2] } } || { "status": "failed", "errors": [ $error ... ] } || { "status": "skipped" } || { "status": "backtracked", "errors"?: [ $error ... ], "consumed_gas"?: $bignum, "originated_contracts"?: [ $contract_id ... ], "paid_storage_size_diff"?: $bignum, "balance_updates"?: $operation_metadata.alpha.balance_updates, "result": { "kind": "activate_protocol" } || { "kind": "manage_accounts" } || { "kind": "manage_account" } || { "kind": "clear_delegations", "undelegated": integer ∈ [-2^30-2, 2^30+2] } } $operation.alpha.operation_result.origination: { "status": "applied", "big_map_diff"?: $contract.big_map_diff, "balance_updates"?: $operation_metadata.alpha.balance_updates, "originated_contracts"?: [ $contract_id ... ], "consumed_gas"?: $bignum, "storage_size"?: $bignum, "paid_storage_size_diff"?: $bignum } || { "status": "failed", "errors": [ $error ... ] } || { "status": "skipped" } || { "status": "backtracked", "errors"?: [ $error ... ], "big_map_diff"?: $contract.big_map_diff, "balance_updates"?: $operation_metadata.alpha.balance_updates, "originated_contracts"?: [ $contract_id ... ], "consumed_gas"?: $bignum, "storage_size"?: $bignum, "paid_storage_size_diff"?: $bignum } $operation.alpha.operation_result.reveal: { "status": "applied", "consumed_gas"?: $bignum } || { "status": "failed", "errors": [ $error ... ] } || { "status": "skipped" } || { "status": "backtracked", "errors"?: [ $error ... ], "consumed_gas"?: $bignum } $operation.alpha.operation_result.transaction: { "status": "applied", "storage"?: $micheline.michelson_v1.expression || { "dune_expr": "VOID" || any || any } || { "dune_code": "NOOP" || any || any || any } || { "michelson": $unistring } || [ $micheline.michelson_v1.expression || { "dune_expr": "VOID" || any || any } || { "dune_code": "NOOP" || any || any || any } || { "michelson": $unistring } || null, $micheline.michelson_v1.expression || { "dune_expr": "VOID" || any || any } || { "dune_code": "NOOP" || any || any || any } || { "michelson": $unistring } || null ], "big_map_diff"?: $contract.big_map_diff, "balance_updates"?: $operation_metadata.alpha.balance_updates, "originated_contracts"?: [ $contract_id ... ], "consumed_gas"?: $bignum, "storage_size"?: $bignum, "paid_storage_size_diff"?: $bignum, "allocated_destination_contract"?: boolean, "collect_call_revelation"?: boolean } || { "status": "failed", "errors": [ $error ... ] } || { "status": "skipped" } || { "status": "backtracked", "errors"?: [ $error ... ], "storage"?: $micheline.michelson_v1.expression || { "dune_expr": "VOID" || any || any } || { "dune_code": "NOOP" || any || any || any } || { "michelson": $unistring } || [ $micheline.michelson_v1.expression || { "dune_expr": "VOID" || any || any } || { "dune_code": "NOOP" || any || any || any } || { "michelson": $unistring } || null, $micheline.michelson_v1.expression || { "dune_expr": "VOID" || any || any } || { "dune_code": "NOOP" || any || any || any } || { "michelson": $unistring } || null ], "big_map_diff"?: $contract.big_map_diff, "balance_updates"?: $operation_metadata.alpha.balance_updates, "originated_contracts"?: [ $contract_id ... ], "consumed_gas"?: $bignum, "storage_size"?: $bignum, "paid_storage_size_diff"?: $bignum, "allocated_destination_contract"?: boolean, "collect_call_revelation"?: boolean } $operation_metadata.alpha.balance_updates: [ { "kind": "contract", "contract": $contract_id, "change": $int64 } || { "kind": "freezer", "category": "rewards", "delegate": $Signature.Public_key_hash, "cycle": integer ∈ [-2^31-2, 2^31+2], "change": $int64 } || { "kind": "freezer", "category": "fees", "delegate": $Signature.Public_key_hash, "cycle": integer ∈ [-2^31-2, 2^31+2], "change": $int64 } || { "kind": "freezer", "category": "deposits", "delegate": $Signature.Public_key_hash, "cycle": integer ∈ [-2^31-2, 2^31+2], "change": $int64 } ... ] $positive_bignum: /* Positive big number Decimal representation of a positive big number */ string $raw_block_header: { "level": integer ∈ [-2^31-2, 2^31+2], "proto": integer ∈ [0, 255], "predecessor": $block_hash, "timestamp": $timestamp.protocol, "validation_pass": integer ∈ [0, 255], "operations_hash": $Operation_list_list_hash, "fitness": $fitness, "context": $Context_hash, "priority": integer ∈ [0, 2^16-1], "proof_of_work_nonce": /^[a-zA-Z0-9]+$/, "seed_nonce_hash"?: $cycle_nonce, "signature": $Signature } $script_expr: /* A script expression ID (Base58Check-encoded) */ $unistring $scripted.contracts: { "code": $micheline.michelson_v1.expression || { "dune_expr": "VOID" || any || any } || { "dune_code": "NOOP" || any || any || any } || { "michelson": $unistring }, "storage": $micheline.michelson_v1.expression || { "dune_expr": "VOID" || any || any } || { "dune_code": "NOOP" || any || any || any } || { "michelson": $unistring } } $scripted.opt_or_hash: null || $scripted.contracts || { "code_hash": $script_expr, "storage": $micheline.michelson_v1.expression || { "dune_expr": "VOID" || any || any } || { "dune_code": "NOOP" || any || any || any } || { "michelson": $unistring } } || { "code": $micheline.michelson_v1.expression || { "dune_expr": "VOID" || any || any } || { "dune_code": "NOOP" || any || any || any } || { "michelson": $unistring }, "code_hash": $script_expr, "storage": $micheline.michelson_v1.expression || { "dune_expr": "VOID" || any || any } || { "dune_code": "NOOP" || any || any || any } || { "michelson": $unistring } } $test_chain_status: /* The status of the test chain: not_running (there is no test chain at the moment), forking (the test chain is being setup), running (the test chain is running). */ { "status": "not_running" } || { "status": "forking", "protocol": $Protocol_hash, "expiration": $timestamp.protocol } || { "status": "running", "chain_id": $Chain_id, "genesis": $block_hash, "protocol": $Protocol_hash, "expiration": $timestamp.protocol } $timestamp.protocol: /* A timestamp as seen by the protocol: second-level precision, epoch based. */ $timestamp.rfc || $int64 $timestamp.rfc: /* RFC 3339 formatted timestamp A date in RFC 3339 notation. */ $unistring $unistring: /* Universal string representation Either a plain UTF8 string, or a sequence of bytes for strings that contain invalid byte sequences. */ string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
+-----------------------+----------------------+-------------------------+ | Name | Size | Contents | +=======================+======================+=========================+ | chain_id | 4 bytes | bytes | +-----------------------+----------------------+-------------------------+ | hash | 32 bytes | bytes | +-----------------------+----------------------+-------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------------------+-------------------------+ | header | Determined from data | $raw_block_header | +-----------------------+----------------------+-------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------------------+-------------------------+ | metadata | Determined from data | $block_header_metadata | +-----------------------+----------------------+-------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------------------+-------------------------+ | operations | Variable | sequence of $X_7 | +-----------------------+----------------------+-------------------------+ X_7 *** +--------------------------+----------+-------------------------+ | Name | Size | Contents | +==========================+==========+=========================+ | # bytes in next 2 fields | 4 bytes | unsigned 30-bit integer | +--------------------------+----------+-------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +--------------------------+----------+-------------------------+ | Unnamed field 0 | Variable | sequence of $operation | +--------------------------+----------+-------------------------+ operation ********* +-----------------------+----------------------+-------------------------+ | Name | Size | Contents | +=======================+======================+=========================+ | chain_id | 4 bytes | bytes | +-----------------------+----------------------+-------------------------+ | hash | 32 bytes | bytes | +-----------------------+----------------------+-------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------------------+-------------------------+ | branch | 32 bytes | bytes | +-----------------------+----------------------+-------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------------------+-------------------------+ | Unnamed field 0 | Determined from data | $X_1887 | +-----------------------+----------------------+-------------------------+ X_1887 (Determined from data, 8-bit tag) **************************************** Operation_with_metadata (tag 0) =============================== +---------------------------------+----------+------------------------------------------------------------+ | Name | Size | Contents | +=================================+==========+============================================================+ | Tag | 1 byte | unsigned 8-bit integer | +---------------------------------+----------+------------------------------------------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +---------------------------------+----------+------------------------------------------------------------+ | contents | Variable | sequence of $operation.alpha.operation_contents_and_result | +---------------------------------+----------+------------------------------------------------------------+ | ? presence of field "signature" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------+----------+------------------------------------------------------------+ | signature | 64 bytes | bytes | +---------------------------------+----------+------------------------------------------------------------+ Operation_without_metadata (tag 1) ================================== +---------------------------------+----------+---------------------------------------+ | Name | Size | Contents | +=================================+==========+=======================================+ | Tag | 1 byte | unsigned 8-bit integer | +---------------------------------+----------+---------------------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +---------------------------------+----------+---------------------------------------+ | contents | Variable | sequence of $operation.alpha.contents | +---------------------------------+----------+---------------------------------------+ | ? presence of field "signature" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------+----------+---------------------------------------+ | signature | 64 bytes | bytes | +---------------------------------+----------+---------------------------------------+ operation.alpha.operation_contents_and_result (Determined from data, 8-bit tag) ******************************************************************************* Endorsement (tag 0) =================== +----------+----------------------+------------------------+ | Name | Size | Contents | +==========+======================+========================+ | Tag | 1 byte | unsigned 8-bit integer | +----------+----------------------+------------------------+ | level | 4 bytes | signed 32-bit integer | +----------+----------------------+------------------------+ | metadata | Determined from data | $X_1884 | +----------+----------------------+------------------------+ 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 | +----------+----------------------+-------------------------------------------+ | metadata | Determined from data | $operation_metadata.alpha.balance_updates | +----------+----------------------+-------------------------------------------+ 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 | $inlined.endorsement | +-----------------------+----------------------+-------------------------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------------------+-------------------------------------------+ | op2 | Variable | $inlined.endorsement | +-----------------------+----------------------+-------------------------------------------+ | metadata | Determined from data | $operation_metadata.alpha.balance_updates | +-----------------------+----------------------+-------------------------------------------+ 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 | $block_header.alpha.full_header | +-----------------------+----------------------+-------------------------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------------------+-------------------------------------------+ | bh2 | Determined from data | $block_header.alpha.full_header | +-----------------------+----------------------+-------------------------------------------+ | metadata | Determined from data | $operation_metadata.alpha.balance_updates | +-----------------------+----------------------+-------------------------------------------+ Activate_account (tag 4) ======================== +----------+----------------------+-------------------------------------------+ | Name | Size | Contents | +==========+======================+===========================================+ | Tag | 1 byte | unsigned 8-bit integer | +----------+----------------------+-------------------------------------------+ | pkh | 20 bytes | bytes | +----------+----------------------+-------------------------------------------+ | secret | 20 bytes | bytes | +----------+----------------------+-------------------------------------------+ | metadata | Determined from data | $operation_metadata.alpha.balance_updates | +----------+----------------------+-------------------------------------------+ 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 | +----------+----------+------------------------+ 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 | +---------------+----------------------+------------------------+ | metadata | Determined from data | $X_1609 | +---------------+----------------------+------------------------+ 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 | $contract_id | +----------------------------------+----------------------+-------------------------------------+ | ? presence of field "parameters" | 1 byte | boolean (0 for false, 255 for true) | +----------------------------------+----------------------+-------------------------------------+ | parameters | Determined from data | $X_1779 | +----------------------------------+----------------------+-------------------------------------+ | metadata | Determined from data | $X_1248 | +----------------------------------+----------------------+-------------------------------------+ 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 | $scripted.opt_or_hash | +--------------------------------+----------------------+-------------------------------------+ | metadata | Determined from data | $X_926 | +--------------------------------+----------------------+-------------------------------------+ 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 | +--------------------------------+----------------------+-------------------------------------+ | metadata | Determined from data | $X_1609 | +--------------------------------+----------------------+-------------------------------------+ Dune_manager_operation (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 next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------------------+-------------------------+ | Unnamed field 0 | Determined from data | $X_1715 | +-----------------------+----------------------+-------------------------+ | metadata | Determined from data | $X_386 | +-----------------------+----------------------+-------------------------+ Transaction (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 | +------------------------------------+----------------------+-------------------------------------+ | amount | Determined from data | $N.t | +------------------------------------+----------------------+-------------------------------------+ | destination | 22 bytes | $contract_id | +------------------------------------+----------------------+-------------------------------------+ | parameters | Determined from data | $X_8 | +------------------------------------+----------------------+-------------------------------------+ | ? presence of field "collect_call" | 1 byte | boolean (0 for false, 255 for true) | +------------------------------------+----------------------+-------------------------------------+ | collect_call | Determined from data | $X_1615 | +------------------------------------+----------------------+-------------------------------------+ | metadata | Determined from data | $X_1248 | +------------------------------------+----------------------+-------------------------------------+ X_1884 ****** +-------------------------------------------------------------+----------+------------------------------------+ | Name | Size | Contents | +=============================================================+==========+====================================+ | # bytes in field "operation_metadata.alpha.balance_updates" | 4 bytes | unsigned 30-bit integer | +-------------------------------------------------------------+----------+------------------------------------+ | balance_updates | Variable | sequence of $X_5 | +-------------------------------------------------------------+----------+------------------------------------+ | delegate | 21 bytes | $public_key_hash | +-------------------------------------------------------------+----------+------------------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-------------------------------------------------------------+----------+------------------------------------+ | slots | Variable | sequence of unsigned 8-bit integer | +-------------------------------------------------------------+----------+------------------------------------+ 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 | +----------------------+----------+------------------------+ X_1886 (Determined from data, 8-bit tag) **************************************** Contract (tag 0) ================ +----------+----------+------------------------+ | Name | Size | Contents | +==========+==========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +----------+----------+------------------------+ | contract | 22 bytes | $contract_id | +----------+----------+------------------------+ Rewards (tag 1) =============== +----------+----------+------------------------+ | Name | Size | Contents | +==========+==========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +----------+----------+------------------------+ | delegate | 21 bytes | $public_key_hash | +----------+----------+------------------------+ | cycle | 4 bytes | signed 32-bit integer | +----------+----------+------------------------+ Fees (tag 2) ============ +----------+----------+------------------------+ | Name | Size | Contents | +==========+==========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +----------+----------+------------------------+ | delegate | 21 bytes | $public_key_hash | +----------+----------+------------------------+ | cycle | 4 bytes | signed 32-bit integer | +----------+----------+------------------------+ Deposits (tag 3) ================ +----------+----------+------------------------+ | Name | Size | Contents | +==========+==========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +----------+----------+------------------------+ | delegate | 21 bytes | $public_key_hash | +----------+----------+------------------------+ | cycle | 4 bytes | signed 32-bit integer | +----------+----------+------------------------+ 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 | +---------------+----------+------------------------+ operation_metadata.alpha.balance_updates **************************************** +-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | Unnamed field 0 | Variable | sequence of $X_5 | +-----------------------+----------+-------------------------+ inlined.endorsement ******************* +------------+----------+-------------------------------+ | Name | Size | Contents | +============+==========+===============================+ | branch | 32 bytes | bytes | +------------+----------+-------------------------------+ | operations | 5 bytes | $inlined.endorsement.contents | +------------+----------+-------------------------------+ | signature | Variable | bytes | +------------+----------+-------------------------------+ inlined.endorsement.contents (5 bytes, 8-bit tag) ************************************************* Endorsement (tag 0) =================== +-------+---------+------------------------+ | Name | Size | Contents | +=======+=========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +-------+---------+------------------------+ | level | 4 bytes | signed 32-bit integer | +-------+---------+------------------------+ 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 | +---------------------------------------+----------+-------------------------------------+ | priority | 2 bytes | unsigned 16-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 | +---------------------------------------+----------+-------------------------------------+ | signature | 64 bytes | bytes | +---------------------------------------+----------+-------------------------------------+ fitness.elem ************ +-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | Unnamed field 0 | Variable | bytes | +-----------------------+----------+-------------------------+ X_1609 ****** +-------------------------------------------------------------+----------------------+--------------------------------------------------------+ | Name | Size | Contents | +=============================================================+======================+========================================================+ | # bytes in field "operation_metadata.alpha.balance_updates" | 4 bytes | unsigned 30-bit integer | +-------------------------------------------------------------+----------------------+--------------------------------------------------------+ | balance_updates | Variable | sequence of $X_5 | +-------------------------------------------------------------+----------------------+--------------------------------------------------------+ | operation_result | Determined from data | $operation.alpha.operation_result.delegation | +-------------------------------------------------------------+----------------------+--------------------------------------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-------------------------------------------------------------+----------------------+--------------------------------------------------------+ | internal_operation_results | Variable | sequence of $operation.alpha.internal_operation_result | +-------------------------------------------------------------+----------------------+--------------------------------------------------------+ Z.t *** A variable length sequence of bytes, encoding a Zarith number. Each byte has a running unary size bit: the most significant bit of each byte tells is this is the last byte in the sequence (0) or if there is more to read (1). The second most significant bit of the first byte is reserved for the sign (positive if zero). Size and sign bits ignored, data is then the binary representation of the absolute value of the number in little endian order. +------+----------------------+----------+ | Name | Size | Contents | +======+======================+==========+ | Z.t | Determined from data | bytes | +------+----------------------+----------+ error ***** +--------------------------+----------+-------------------------+ | Name | Size | Contents | +==========================+==========+=========================+ | # bytes in next 2 fields | 4 bytes | unsigned 30-bit integer | +--------------------------+----------+-------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +--------------------------+----------+-------------------------+ | Unnamed field 0 | Variable | bytes | +--------------------------+----------+-------------------------+ X_1875 ****** +-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | Unnamed field 0 | Variable | sequence of $error | +-----------------------+----------+-------------------------+ 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 | +-----------------+----------+------------------------+ contract.big_map_diff ********************* +-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | Unnamed field 0 | Variable | sequence of $X_68 | +-----------------------+----------+-------------------------+ X_1871 (Determined from data, 8-bit tag) **************************************** Michelson_expr (tag 0) ====================== +-----------------+----------------------+------------------------------------+ | Name | Size | Contents | +=================+======================+====================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------+----------------------+------------------------------------+ | Unnamed field 0 | Determined from data | $micheline.michelson_v1.expression | +-----------------+----------------------+------------------------------------+ Dune_expr (tag 1) ================= +-----------+----------------------+------------------------+ | Name | Size | Contents | +===========+======================+========================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------+----------------------+------------------------+ | dune_expr | Determined from data | $X_27 | +-----------+----------------------+------------------------+ Dune_code (tag 2) ================= +-----------+----------------------+------------------------+ | Name | Size | Contents | +===========+======================+========================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------+----------------------+------------------------+ | dune_code | Determined from data | $X_25 | +-----------+----------------------+------------------------+ Michelson source (tag 3) ======================== +-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------------+----------+-------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | michelson | Variable | bytes | +-----------------------+----------+-------------------------+ micheline.michelson_v1.expression (Determined from data, 8-bit tag) ******************************************************************* Int (tag 0) =========== +------+----------------------+------------------------+ | Name | Size | Contents | +======+======================+========================+ | Tag | 1 byte | unsigned 8-bit integer | +------+----------------------+------------------------+ | int | Determined from data | $Z.t | +------+----------------------+------------------------+ String (tag 1) ============== +-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------------+----------+-------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | string | Variable | bytes | +-----------------------+----------+-------------------------+ Sequence (tag 2) ================ +-----------------------+----------+------------------------------------------------+ | 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 $micheline.michelson_v1.expression | +-----------------------+----------+------------------------------------------------+ Prim (no args, annot) (tag 3) ============================= +------+--------+------------------------------------------------------------------------------+ | Name | Size | Contents | +======+========+==============================================================================+ | Tag | 1 byte | unsigned 8-bit integer | +------+--------+------------------------------------------------------------------------------+ | prim | 1 byte | unsigned 8-bit integer encoding an enumeration (see michelson.v1.primitives) | +------+--------+------------------------------------------------------------------------------+ Prim (no args + annot) (tag 4) ============================== +-----------------------+----------+------------------------------------------------------------------------------+ | Name | Size | Contents | +=======================+==========+==============================================================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------------+----------+------------------------------------------------------------------------------+ | prim | 1 byte | unsigned 8-bit integer encoding an enumeration (see michelson.v1.primitives) | +-----------------------+----------+------------------------------------------------------------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+------------------------------------------------------------------------------+ | annots | Variable | bytes | +-----------------------+----------+------------------------------------------------------------------------------+ Prim (1 arg, no annot) (tag 5) ============================== +------+----------------------+------------------------------------------------------------------------------+ | Name | Size | Contents | +======+======================+==============================================================================+ | Tag | 1 byte | unsigned 8-bit integer | +------+----------------------+------------------------------------------------------------------------------+ | prim | 1 byte | unsigned 8-bit integer encoding an enumeration (see michelson.v1.primitives) | +------+----------------------+------------------------------------------------------------------------------+ | arg | Determined from data | $micheline.michelson_v1.expression | +------+----------------------+------------------------------------------------------------------------------+ Prim (1 arg + annot) (tag 6) ============================ +-----------------------+----------------------+------------------------------------------------------------------------------+ | Name | Size | Contents | +=======================+======================+==============================================================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------------+----------------------+------------------------------------------------------------------------------+ | prim | 1 byte | unsigned 8-bit integer encoding an enumeration (see michelson.v1.primitives) | +-----------------------+----------------------+------------------------------------------------------------------------------+ | arg | Determined from data | $micheline.michelson_v1.expression | +-----------------------+----------------------+------------------------------------------------------------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------------------+------------------------------------------------------------------------------+ | annots | Variable | bytes | +-----------------------+----------------------+------------------------------------------------------------------------------+ Prim (2 args, no annot) (tag 7) =============================== +------+----------------------+------------------------------------------------------------------------------+ | Name | Size | Contents | +======+======================+==============================================================================+ | Tag | 1 byte | unsigned 8-bit integer | +------+----------------------+------------------------------------------------------------------------------+ | prim | 1 byte | unsigned 8-bit integer encoding an enumeration (see michelson.v1.primitives) | +------+----------------------+------------------------------------------------------------------------------+ | arg1 | Determined from data | $micheline.michelson_v1.expression | +------+----------------------+------------------------------------------------------------------------------+ | arg2 | Determined from data | $micheline.michelson_v1.expression | +------+----------------------+------------------------------------------------------------------------------+ Prim (2 args + annot) (tag 8) ============================= +-----------------------+----------------------+------------------------------------------------------------------------------+ | Name | Size | Contents | +=======================+======================+==============================================================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------------+----------------------+------------------------------------------------------------------------------+ | prim | 1 byte | unsigned 8-bit integer encoding an enumeration (see michelson.v1.primitives) | +-----------------------+----------------------+------------------------------------------------------------------------------+ | arg1 | Determined from data | $micheline.michelson_v1.expression | +-----------------------+----------------------+------------------------------------------------------------------------------+ | arg2 | Determined from data | $micheline.michelson_v1.expression | +-----------------------+----------------------+------------------------------------------------------------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------------------+------------------------------------------------------------------------------+ | annots | Variable | bytes | +-----------------------+----------------------+------------------------------------------------------------------------------+ Generic prim (any number of args with or without annot) (tag 9) =============================================================== +-----------------------+----------+------------------------------------------------------------------------------+ | Name | Size | Contents | +=======================+==========+==============================================================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------------+----------+------------------------------------------------------------------------------+ | prim | 1 byte | unsigned 8-bit integer encoding an enumeration (see michelson.v1.primitives) | +-----------------------+----------+------------------------------------------------------------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+------------------------------------------------------------------------------+ | args | Variable | sequence of $micheline.michelson_v1.expression | +-----------------------+----------+------------------------------------------------------------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+------------------------------------------------------------------------------+ | annots | Variable | bytes | +-----------------------+----------+------------------------------------------------------------------------------+ Bytes (tag 10) ============== +-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------------+----------+-------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | bytes | Variable | bytes | +-----------------------+----------+-------------------------+ michelson.v1.primitives (Enumeration: unsigned 8-bit integer): ************************************************************** +-------------+------------------+ | Case number | Encoded string | +=============+==================+ | 0 | parameter | +-------------+------------------+ | 1 | storage | +-------------+------------------+ | 2 | code | +-------------+------------------+ | 3 | False | +-------------+------------------+ | 4 | Elt | +-------------+------------------+ | 5 | Left | +-------------+------------------+ | 6 | None | +-------------+------------------+ | 7 | Pair | +-------------+------------------+ | 8 | Right | +-------------+------------------+ | 9 | Some | +-------------+------------------+ | 10 | True | +-------------+------------------+ | 11 | Unit | +-------------+------------------+ | 12 | PACK | +-------------+------------------+ | 13 | UNPACK | +-------------+------------------+ | 14 | BLAKE2B | +-------------+------------------+ | 15 | SHA256 | +-------------+------------------+ | 16 | SHA512 | +-------------+------------------+ | 17 | ABS | +-------------+------------------+ | 18 | ADD | +-------------+------------------+ | 19 | AMOUNT | +-------------+------------------+ | 20 | AND | +-------------+------------------+ | 21 | BALANCE | +-------------+------------------+ | 22 | CAR | +-------------+------------------+ | 23 | CDR | +-------------+------------------+ | 24 | CHECK_SIGNATURE | +-------------+------------------+ | 25 | COMPARE | +-------------+------------------+ | 26 | CONCAT | +-------------+------------------+ | 27 | CONS | +-------------+------------------+ | 28 | CREATE_ACCOUNT | +-------------+------------------+ | 29 | CREATE_CONTRACT | +-------------+------------------+ | 30 | IMPLICIT_ACCOUNT | +-------------+------------------+ | 31 | DIP | +-------------+------------------+ | 32 | DROP | +-------------+------------------+ | 33 | DUP | +-------------+------------------+ | 34 | EDIV | +-------------+------------------+ | 35 | EMPTY_MAP | +-------------+------------------+ | 36 | EMPTY_SET | +-------------+------------------+ | 37 | EQ | +-------------+------------------+ | 38 | EXEC | +-------------+------------------+ | 39 | FAILWITH | +-------------+------------------+ | 40 | GE | +-------------+------------------+ | 41 | GET | +-------------+------------------+ | 42 | GT | +-------------+------------------+ | 43 | HASH_KEY | +-------------+------------------+ | 44 | IF | +-------------+------------------+ | 45 | IF_CONS | +-------------+------------------+ | 46 | IF_LEFT | +-------------+------------------+ | 47 | IF_NONE | +-------------+------------------+ | 48 | INT | +-------------+------------------+ | 49 | LAMBDA | +-------------+------------------+ | 50 | LE | +-------------+------------------+ | 51 | LEFT | +-------------+------------------+ | 52 | LOOP | +-------------+------------------+ | 53 | LSL | +-------------+------------------+ | 54 | LSR | +-------------+------------------+ | 55 | LT | +-------------+------------------+ | 56 | MAP | +-------------+------------------+ | 57 | MEM | +-------------+------------------+ | 58 | MUL | +-------------+------------------+ | 59 | NEG | +-------------+------------------+ | 60 | NEQ | +-------------+------------------+ | 61 | NIL | +-------------+------------------+ | 62 | NONE | +-------------+------------------+ | 63 | NOT | +-------------+------------------+ | 64 | NOW | +-------------+------------------+ | 65 | OR | +-------------+------------------+ | 66 | PAIR | +-------------+------------------+ | 67 | PUSH | +-------------+------------------+ | 68 | RIGHT | +-------------+------------------+ | 69 | SIZE | +-------------+------------------+ | 70 | SOME | +-------------+------------------+ | 71 | SOURCE | +-------------+------------------+ | 72 | SENDER | +-------------+------------------+ | 73 | SELF | +-------------+------------------+ | 74 | STEPS_TO_QUOTA | +-------------+------------------+ | 75 | SUB | +-------------+------------------+ | 76 | SWAP | +-------------+------------------+ | 77 | TRANSFER_TOKENS | +-------------+------------------+ | 78 | SET_DELEGATE | +-------------+------------------+ | 79 | UNIT | +-------------+------------------+ | 80 | UPDATE | +-------------+------------------+ | 81 | XOR | +-------------+------------------+ | 82 | ITER | +-------------+------------------+ | 83 | LOOP_LEFT | +-------------+------------------+ | 84 | ADDRESS | +-------------+------------------+ | 85 | CONTRACT | +-------------+------------------+ | 86 | ISNAT | +-------------+------------------+ | 87 | CAST | +-------------+------------------+ | 88 | RENAME | +-------------+------------------+ | 89 | bool | +-------------+------------------+ | 90 | contract | +-------------+------------------+ | 91 | int | +-------------+------------------+ | 92 | key | +-------------+------------------+ | 93 | key_hash | +-------------+------------------+ | 94 | lambda | +-------------+------------------+ | 95 | list | +-------------+------------------+ | 96 | map | +-------------+------------------+ | 97 | big_map | +-------------+------------------+ | 98 | nat | +-------------+------------------+ | 99 | option | +-------------+------------------+ | 100 | or | +-------------+------------------+ | 101 | pair | +-------------+------------------+ | 102 | set | +-------------+------------------+ | 103 | signature | +-------------+------------------+ | 104 | string | +-------------+------------------+ | 105 | bytes | +-------------+------------------+ | 106 | mutez | +-------------+------------------+ | 107 | timestamp | +-------------+------------------+ | 108 | unit | +-------------+------------------+ | 109 | operation | +-------------+------------------+ | 110 | address | +-------------+------------------+ | 111 | SLICE | +-------------+------------------+ | 112 | GET_BALANCE | +-------------+------------------+ | 113 | BLOCK_LEVEL | +-------------+------------------+ | 114 | IS_IMPLICIT | +-------------+------------------+ | 115 | COLLECT_CALL | +-------------+------------------+ | 116 | DIG | +-------------+------------------+ | 117 | DUG | +-------------+------------------+ | 118 | EMPTY_BIG_MAP | +-------------+------------------+ | 119 | APPLY | +-------------+------------------+ | 120 | chain_id | +-------------+------------------+ | 121 | CHAIN_ID | +-------------+------------------+ | 122 | GET_ACCOUNT_INFO | +-------------+------------------+ | 123 | MANAGE_ACCOUNT | +-------------+------------------+ | 124 | ADMIN_ACCOUNTS | +-------------+------------------+ | 125 | ADMIN_PROTOCOL | +-------------+------------------+ | 126 | ALLOW_PEERS | +-------------+------------------+ | 127 | REVOKE_PEERS | +-------------+------------------+ X_1868 (Determined from data, 8-bit tag) **************************************** Value (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 | bytes | +-----------------------+----------+-------------------------+ Type (tag 1) ============ +-----------------------+----------+-------------------------+ | 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 | +-----------------------+----------+-------------------------+ X_1866 (Determined from data, 8-bit tag) **************************************** Contract (parser output) (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 | bytes | +-----------------------+----------+-------------------------+ Live contract (deployed) (tag 1) ================================ +-----------------------+----------+-------------------------+ | 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 | +-----------------------+----------+-------------------------+ Fee code (tag 2) ================ +-----------------------+----------+-------------------------+ | 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 | +-----------------------+----------+-------------------------+ X_1847 (Determined from data, 8-bit tag) **************************************** Michelson_expr (tag 0) ====================== +-----------------+----------------------+------------------------------------+ | Name | Size | Contents | +=================+======================+====================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------+----------------------+------------------------------------+ | Unnamed field 0 | Determined from data | $micheline.michelson_v1.expression | +-----------------+----------------------+------------------------------------+ Dune_expr (tag 1) ================= +-----------+----------------------+------------------------+ | Name | Size | Contents | +===========+======================+========================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------+----------------------+------------------------+ | dune_expr | Determined from data | $X_27 | +-----------+----------------------+------------------------+ Dune_code (tag 2) ================= +-----------+----------------------+------------------------+ | Name | Size | Contents | +===========+======================+========================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------+----------------------+------------------------+ | dune_code | Determined from data | $X_25 | +-----------+----------------------+------------------------+ Michelson source (tag 3) ======================== +-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------------+----------+-------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | michelson | Variable | bytes | +-----------------------+----------+-------------------------+ Expr_pair (tag 255) =================== +-----------------+----------------------+------------------------+ | Name | Size | Contents | +=================+======================+========================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------+----------------------+------------------------+ | Unnamed field 0 | Determined from data | $X_30 | +-----------------+----------------------+------------------------+ | Unnamed field 1 | Determined from data | $X_30 | +-----------------+----------------------+------------------------+ X_1779 ****** +-----------------------+----------------------+-------------------------+ | Name | Size | Contents | +=======================+======================+=========================+ | entrypoint | Determined from data | $entrypoint | +-----------------------+----------------------+-------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------------------+-------------------------+ | value | Variable | bytes | +-----------------------+----------------------+-------------------------+ entrypoint (Determined from data, 8-bit tag) ******************************************** default (tag 0) =============== +-----------------+---------+----------------------------------------------------+ | Name | Size | Contents | +=================+=========+====================================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------+---------+----------------------------------------------------+ | Unnamed field 0 | 0 bytes | placeholder (not actually present in the encoding) | +-----------------+---------+----------------------------------------------------+ root (tag 1) ============ +-----------------+---------+----------------------------------------------------+ | Name | Size | Contents | +=================+=========+====================================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------+---------+----------------------------------------------------+ | Unnamed field 0 | 0 bytes | placeholder (not actually present in the encoding) | +-----------------+---------+----------------------------------------------------+ do (tag 2) ========== +-----------------+---------+----------------------------------------------------+ | Name | Size | Contents | +=================+=========+====================================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------+---------+----------------------------------------------------+ | Unnamed field 0 | 0 bytes | placeholder (not actually present in the encoding) | +-----------------+---------+----------------------------------------------------+ set_delegate (tag 3) ==================== +-----------------+---------+----------------------------------------------------+ | Name | Size | Contents | +=================+=========+====================================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------+---------+----------------------------------------------------+ | Unnamed field 0 | 0 bytes | placeholder (not actually present in the encoding) | +-----------------+---------+----------------------------------------------------+ remove_delegate (tag 4) ======================= +-----------------+---------+----------------------------------------------------+ | Name | Size | Contents | +=================+=========+====================================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------+---------+----------------------------------------------------+ | Unnamed field 0 | 0 bytes | placeholder (not actually present in the encoding) | +-----------------+---------+----------------------------------------------------+ 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 | +-----------------------+----------+------------------------+ N.t *** A variable length sequence of bytes, encoding a Zarith number. Each byte has a running unary size bit: the most significant bit of each byte tells is this is the last byte in the sequence (0) or if there is more to read (1). Size bits ignored, data is then the binary representation of the absolute value of the number in little endian order. +------+----------------------+----------+ | Name | Size | Contents | +======+======================+==========+ | N.t | Determined from data | bytes | +------+----------------------+----------+ operation.alpha.operation_result.origination (Determined from data, 8-bit tag) ****************************************************************************** Applied (tag 0) =============== +-------------------------------------------------------------+----------------------+-------------------------------------+ | Name | Size | Contents | +=============================================================+======================+=====================================+ | Tag | 1 byte | unsigned 8-bit integer | +-------------------------------------------------------------+----------------------+-------------------------------------+ | ? presence of field "big_map_diff" | 1 byte | boolean (0 for false, 255 for true) | +-------------------------------------------------------------+----------------------+-------------------------------------+ | big_map_diff | Determined from data | $contract.big_map_diff | +-------------------------------------------------------------+----------------------+-------------------------------------+ | # bytes in field "operation_metadata.alpha.balance_updates" | 4 bytes | unsigned 30-bit integer | +-------------------------------------------------------------+----------------------+-------------------------------------+ | balance_updates | Variable | sequence of $X_5 | +-------------------------------------------------------------+----------------------+-------------------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-------------------------------------------------------------+----------------------+-------------------------------------+ | originated_contracts | Variable | sequence of $contract_id | +-------------------------------------------------------------+----------------------+-------------------------------------+ | consumed_gas | Determined from data | $Z.t | +-------------------------------------------------------------+----------------------+-------------------------------------+ | storage_size | Determined from data | $Z.t | +-------------------------------------------------------------+----------------------+-------------------------------------+ | paid_storage_size_diff | Determined from data | $Z.t | +-------------------------------------------------------------+----------------------+-------------------------------------+ Failed (tag 1) ============== +-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------------+----------+-------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | errors | Variable | sequence of $error | +-----------------------+----------+-------------------------+ Skipped (tag 2) =============== +------+--------+------------------------+ | Name | Size | Contents | +======+========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +------+--------+------------------------+ Backtracked (tag 3) =================== +-------------------------------------------------------------+----------------------+-------------------------------------+ | Name | Size | Contents | +=============================================================+======================+=====================================+ | Tag | 1 byte | unsigned 8-bit integer | +-------------------------------------------------------------+----------------------+-------------------------------------+ | ? presence of field "errors" | 1 byte | boolean (0 for false, 255 for true) | +-------------------------------------------------------------+----------------------+-------------------------------------+ | errors | Determined from data | $X_1875 | +-------------------------------------------------------------+----------------------+-------------------------------------+ | ? presence of field "big_map_diff" | 1 byte | boolean (0 for false, 255 for true) | +-------------------------------------------------------------+----------------------+-------------------------------------+ | big_map_diff | Determined from data | $contract.big_map_diff | +-------------------------------------------------------------+----------------------+-------------------------------------+ | # bytes in field "operation_metadata.alpha.balance_updates" | 4 bytes | unsigned 30-bit integer | +-------------------------------------------------------------+----------------------+-------------------------------------+ | balance_updates | Variable | sequence of $X_5 | +-------------------------------------------------------------+----------------------+-------------------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-------------------------------------------------------------+----------------------+-------------------------------------+ | originated_contracts | Variable | sequence of $contract_id | +-------------------------------------------------------------+----------------------+-------------------------------------+ | consumed_gas | Determined from data | $Z.t | +-------------------------------------------------------------+----------------------+-------------------------------------+ | storage_size | Determined from data | $Z.t | +-------------------------------------------------------------+----------------------+-------------------------------------+ | paid_storage_size_diff | Determined from data | $Z.t | +-------------------------------------------------------------+----------------------+-------------------------------------+ scripted.opt_or_hash (Determined from data, 8-bit tag) ****************************************************** No_script (tag 0) ================= +-----------------+---------+----------------------------------------------------+ | Name | Size | Contents | +=================+=========+====================================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------+---------+----------------------------------------------------+ | Unnamed field 0 | 0 bytes | placeholder (not actually present in the encoding) | +-----------------+---------+----------------------------------------------------+ Script_hash (tag 1) =================== +-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------------+----------+-------------------------+ | code_hash | 32 bytes | bytes | +-----------------------+----------+-------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | storage | Variable | bytes | +-----------------------+----------+-------------------------+ Script_code_hash (tag 2) ======================== +-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------------+----------+-------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | code | Variable | bytes | +-----------------------+----------+-------------------------+ | code_hash | 32 bytes | bytes | +-----------------------+----------+-------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | storage | Variable | bytes | +-----------------------+----------+-------------------------+ Full_script (tag 255) ===================== +-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------------+----------+-------------------------+ | # 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 | +-----------------------+----------+-------------------------+ operation.alpha.operation_result.dune_manager_operation (Determined from data, 8-bit tag) ***************************************************************************************** Applied (tag 0) =============== +-------------------------------------------------------------+----------------------+--------------------------+ | Name | Size | Contents | +=============================================================+======================+==========================+ | Tag | 1 byte | unsigned 8-bit integer | +-------------------------------------------------------------+----------------------+--------------------------+ | consumed_gas | Determined from data | $Z.t | +-------------------------------------------------------------+----------------------+--------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-------------------------------------------------------------+----------------------+--------------------------+ | originated_contracts | Variable | sequence of $contract_id | +-------------------------------------------------------------+----------------------+--------------------------+ | paid_storage_size_diff | Determined from data | $Z.t | +-------------------------------------------------------------+----------------------+--------------------------+ | # bytes in field "operation_metadata.alpha.balance_updates" | 4 bytes | unsigned 30-bit integer | +-------------------------------------------------------------+----------------------+--------------------------+ | balance_updates | Variable | sequence of $X_5 | +-------------------------------------------------------------+----------------------+--------------------------+ | result | Determined from data | $X_1722 | +-------------------------------------------------------------+----------------------+--------------------------+ Failed (tag 1) ============== +-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------------+----------+-------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | errors | Variable | sequence of $error | +-----------------------+----------+-------------------------+ Skipped (tag 2) =============== +------+--------+------------------------+ | Name | Size | Contents | +======+========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +------+--------+------------------------+ Backtracked (tag 3) =================== +-------------------------------------------------------------+----------------------+-------------------------------------+ | Name | Size | Contents | +=============================================================+======================+=====================================+ | Tag | 1 byte | unsigned 8-bit integer | +-------------------------------------------------------------+----------------------+-------------------------------------+ | ? presence of field "errors" | 1 byte | boolean (0 for false, 255 for true) | +-------------------------------------------------------------+----------------------+-------------------------------------+ | errors | Determined from data | $X_1875 | +-------------------------------------------------------------+----------------------+-------------------------------------+ | consumed_gas | Determined from data | $Z.t | +-------------------------------------------------------------+----------------------+-------------------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-------------------------------------------------------------+----------------------+-------------------------------------+ | originated_contracts | Variable | sequence of $contract_id | +-------------------------------------------------------------+----------------------+-------------------------------------+ | paid_storage_size_diff | Determined from data | $Z.t | +-------------------------------------------------------------+----------------------+-------------------------------------+ | # bytes in field "operation_metadata.alpha.balance_updates" | 4 bytes | unsigned 30-bit integer | +-------------------------------------------------------------+----------------------+-------------------------------------+ | balance_updates | Variable | sequence of $X_5 | +-------------------------------------------------------------+----------------------+-------------------------------------+ | result | Determined from data | $X_1722 | +-------------------------------------------------------------+----------------------+-------------------------------------+ X_1722 (Determined from data, 8-bit tag) **************************************** Activate_protocol (tag 0) ========================= +-----------------+---------+----------------------------------------------------+ | Name | Size | Contents | +=================+=========+====================================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------+---------+----------------------------------------------------+ | Unnamed field 0 | 0 bytes | placeholder (not actually present in the encoding) | +-----------------+---------+----------------------------------------------------+ Manage_accounts (tag 1) ======================= +-----------------+---------+----------------------------------------------------+ | Name | Size | Contents | +=================+=========+====================================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------+---------+----------------------------------------------------+ | Unnamed field 0 | 0 bytes | placeholder (not actually present in the encoding) | +-----------------+---------+----------------------------------------------------+ Manage_account (tag 2) ====================== +-----------------+---------+----------------------------------------------------+ | Name | Size | Contents | +=================+=========+====================================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------+---------+----------------------------------------------------+ | Unnamed field 0 | 0 bytes | placeholder (not actually present in the encoding) | +-----------------+---------+----------------------------------------------------+ Clear_delegations (tag 3) ========================= +-------------+---------+--------------------------------------------------------------+ | Name | Size | Contents | +=============+=========+==============================================================+ | Tag | 1 byte | unsigned 8-bit integer | +-------------+---------+--------------------------------------------------------------+ | undelegated | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +-------------+---------+--------------------------------------------------------------+ X_1715 (Determined from data, 8-bit tag) **************************************** Dune_activate_protocol (tag 0) ============================== +-------------------------------------------+----------------------+-------------------------------------+ | Name | Size | Contents | +===========================================+======================+=====================================+ | Tag | 1 byte | unsigned 8-bit integer | +-------------------------------------------+----------------------+-------------------------------------+ | level | 4 bytes | signed 32-bit integer | +-------------------------------------------+----------------------+-------------------------------------+ | ? presence of field "protocol" | 1 byte | boolean (0 for false, 255 for true) | +-------------------------------------------+----------------------+-------------------------------------+ | protocol | 32 bytes | bytes | +-------------------------------------------+----------------------+-------------------------------------+ | ? presence of field "protocol_parameters" | 1 byte | boolean (0 for false, 255 for true) | +-------------------------------------------+----------------------+-------------------------------------+ | protocol_parameters | Determined from data | $X_12 | +-------------------------------------------+----------------------+-------------------------------------+ Dune_manage_accounts (tag 1) ============================ +-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------------+----------+-------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | bytes | Variable | bytes | +-----------------------+----------+-------------------------+ Dune_manage_account (tag 2) =========================== +------------------------------+----------------------+-------------------------------------+ | Name | Size | Contents | +==============================+======================+=====================================+ | Tag | 1 byte | unsigned 8-bit integer | +------------------------------+----------------------+-------------------------------------+ | ? presence of field "target" | 1 byte | boolean (0 for false, 255 for true) | +------------------------------+----------------------+-------------------------------------+ | target | Determined from data | $X_1711 | +------------------------------+----------------------+-------------------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +------------------------------+----------------------+-------------------------------------+ | options | Variable | bytes | +------------------------------+----------------------+-------------------------------------+ Dune_clear_delegations (tag 3) ============================== +-----------------+---------+----------------------------------------------------+ | Name | Size | Contents | +=================+=========+====================================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------+---------+----------------------------------------------------+ | Unnamed field 0 | 0 bytes | placeholder (not actually present in the encoding) | +-----------------+---------+----------------------------------------------------+ X_1714 ****** +-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | Unnamed field 0 | Variable | bytes | +-----------------------+----------+-------------------------+ X_1713 ****** +-----------------------+----------+-----------------------------------+ | Name | Size | Contents | +=======================+==========+===================================+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-----------------------------------+ | Unnamed field 0 | Variable | sequence of signed 64-bit integer | +-----------------------+----------+-----------------------------------+ X_1711 ****** +---------------------------------+----------+-------------------------------------+ | Name | Size | Contents | +=================================+==========+=====================================+ | target | 21 bytes | $public_key_hash | +---------------------------------+----------+-------------------------------------+ | ? presence of field "signature" | 1 byte | boolean (0 for false, 255 for true) | +---------------------------------+----------+-------------------------------------+ | signature | 64 bytes | bytes | +---------------------------------+----------+-------------------------------------+ X_1615 ****** +-----------------------------------------+----------------------+-------------------------------------+ | Name | Size | Contents | +=========================================+======================+=====================================+ | fee_gas | Determined from data | $N.t | +-----------------------------------------+----------------------+-------------------------------------+ | ? presence of field "reveal_public_key" | 1 byte | boolean (0 for false, 255 for true) | +-----------------------------------------+----------------------+-------------------------------------+ | reveal_public_key | Determined from data | $public_key | +-----------------------------------------+----------------------+-------------------------------------+ X_1248 ****** +-------------------------------------------------------------+----------------------+--------------------------------------------------------+ | Name | Size | Contents | +=============================================================+======================+========================================================+ | # bytes in field "operation_metadata.alpha.balance_updates" | 4 bytes | unsigned 30-bit integer | +-------------------------------------------------------------+----------------------+--------------------------------------------------------+ | balance_updates | Variable | sequence of $X_5 | +-------------------------------------------------------------+----------------------+--------------------------------------------------------+ | operation_result | Determined from data | $operation.alpha.operation_result.transaction | +-------------------------------------------------------------+----------------------+--------------------------------------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-------------------------------------------------------------+----------------------+--------------------------------------------------------+ | internal_operation_results | Variable | sequence of $operation.alpha.internal_operation_result | +-------------------------------------------------------------+----------------------+--------------------------------------------------------+ X_926 ***** +-------------------------------------------------------------+----------------------+--------------------------------------------------------+ | Name | Size | Contents | +=============================================================+======================+========================================================+ | # bytes in field "operation_metadata.alpha.balance_updates" | 4 bytes | unsigned 30-bit integer | +-------------------------------------------------------------+----------------------+--------------------------------------------------------+ | balance_updates | Variable | sequence of $X_5 | +-------------------------------------------------------------+----------------------+--------------------------------------------------------+ | operation_result | Determined from data | $operation.alpha.operation_result.origination | +-------------------------------------------------------------+----------------------+--------------------------------------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-------------------------------------------------------------+----------------------+--------------------------------------------------------+ | internal_operation_results | Variable | sequence of $operation.alpha.internal_operation_result | +-------------------------------------------------------------+----------------------+--------------------------------------------------------+ X_386 ***** +-------------------------------------------------------------+----------------------+----------------------------------------------------------+ | Name | Size | Contents | +=============================================================+======================+==========================================================+ | # bytes in field "operation_metadata.alpha.balance_updates" | 4 bytes | unsigned 30-bit integer | +-------------------------------------------------------------+----------------------+----------------------------------------------------------+ | balance_updates | Variable | sequence of $X_5 | +-------------------------------------------------------------+----------------------+----------------------------------------------------------+ | operation_result | Determined from data | $operation.alpha.operation_result.dune_manager_operation | +-------------------------------------------------------------+----------------------+----------------------------------------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-------------------------------------------------------------+----------------------+----------------------------------------------------------+ | internal_operation_results | Variable | sequence of $operation.alpha.internal_operation_result | +-------------------------------------------------------------+----------------------+----------------------------------------------------------+ operation.alpha.internal_operation_result (Determined from data, 8-bit tag) *************************************************************************** reveal (tag 0) ============== +------------+----------------------+----------------------------------------------+ | Name | Size | Contents | +============+======================+==============================================+ | Tag | 1 byte | unsigned 8-bit integer | +------------+----------------------+----------------------------------------------+ | source | 22 bytes | $contract_id | +------------+----------------------+----------------------------------------------+ | nonce | 2 bytes | unsigned 16-bit integer | +------------+----------------------+----------------------------------------------+ | public_key | Determined from data | $public_key | +------------+----------------------+----------------------------------------------+ | result | Determined from data | $operation.alpha.operation_result.delegation | +------------+----------------------+----------------------------------------------+ transaction (tag 1) =================== +----------------------------------+----------------------+-----------------------------------------------+ | Name | Size | Contents | +==================================+======================+===============================================+ | Tag | 1 byte | unsigned 8-bit integer | +----------------------------------+----------------------+-----------------------------------------------+ | source | 22 bytes | $contract_id | +----------------------------------+----------------------+-----------------------------------------------+ | nonce | 2 bytes | unsigned 16-bit integer | +----------------------------------+----------------------+-----------------------------------------------+ | amount | Determined from data | $N.t | +----------------------------------+----------------------+-----------------------------------------------+ | destination | 22 bytes | $contract_id | +----------------------------------+----------------------+-----------------------------------------------+ | ? presence of field "parameters" | 1 byte | boolean (0 for false, 255 for true) | +----------------------------------+----------------------+-----------------------------------------------+ | parameters | Determined from data | $X_1779 | +----------------------------------+----------------------+-----------------------------------------------+ | result | Determined from data | $operation.alpha.operation_result.transaction | +----------------------------------+----------------------+-----------------------------------------------+ origination (tag 2) =================== +--------------------------------+----------------------+-----------------------------------------------+ | Name | Size | Contents | +================================+======================+===============================================+ | Tag | 1 byte | unsigned 8-bit integer | +--------------------------------+----------------------+-----------------------------------------------+ | source | 22 bytes | $contract_id | +--------------------------------+----------------------+-----------------------------------------------+ | nonce | 2 bytes | unsigned 16-bit integer | +--------------------------------+----------------------+-----------------------------------------------+ | 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 | $scripted.opt_or_hash | +--------------------------------+----------------------+-----------------------------------------------+ | result | Determined from data | $operation.alpha.operation_result.origination | +--------------------------------+----------------------+-----------------------------------------------+ delegation (tag 3) ================== +--------------------------------+----------------------+----------------------------------------------+ | Name | Size | Contents | +================================+======================+==============================================+ | Tag | 1 byte | unsigned 8-bit integer | +--------------------------------+----------------------+----------------------------------------------+ | source | 22 bytes | $contract_id | +--------------------------------+----------------------+----------------------------------------------+ | nonce | 2 bytes | unsigned 16-bit integer | +--------------------------------+----------------------+----------------------------------------------+ | ? presence of field "delegate" | 1 byte | boolean (0 for false, 255 for true) | +--------------------------------+----------------------+----------------------------------------------+ | delegate | 21 bytes | $public_key_hash | +--------------------------------+----------------------+----------------------------------------------+ | result | Determined from data | $operation.alpha.operation_result.delegation | +--------------------------------+----------------------+----------------------------------------------+ dune_manager_operation (tag 4) ============================== +-----------------------+----------------------+----------------------------------------------------------+ | Name | Size | Contents | +=======================+======================+==========================================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------------+----------------------+----------------------------------------------------------+ | source | 22 bytes | $contract_id | +-----------------------+----------------------+----------------------------------------------------------+ | nonce | 2 bytes | unsigned 16-bit integer | +-----------------------+----------------------+----------------------------------------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------------------+----------------------------------------------------------+ | Unnamed field 0 | Determined from data | $X_1715 | +-----------------------+----------------------+----------------------------------------------------------+ | result | Determined from data | $operation.alpha.operation_result.dune_manager_operation | +-----------------------+----------------------+----------------------------------------------------------+ transaction (tag 5) =================== +------------------------------------+----------------------+-----------------------------------------------+ | Name | Size | Contents | +====================================+======================+===============================================+ | Tag | 1 byte | unsigned 8-bit integer | +------------------------------------+----------------------+-----------------------------------------------+ | source | 22 bytes | $contract_id | +------------------------------------+----------------------+-----------------------------------------------+ | nonce | 2 bytes | unsigned 16-bit integer | +------------------------------------+----------------------+-----------------------------------------------+ | amount | Determined from data | $N.t | +------------------------------------+----------------------+-----------------------------------------------+ | destination | 22 bytes | $contract_id | +------------------------------------+----------------------+-----------------------------------------------+ | parameters | Determined from data | $X_8 | +------------------------------------+----------------------+-----------------------------------------------+ | ? presence of field "collect_call" | 1 byte | boolean (0 for false, 255 for true) | +------------------------------------+----------------------+-----------------------------------------------+ | collect_call | Determined from data | $X_1615 | +------------------------------------+----------------------+-----------------------------------------------+ | result | Determined from data | $operation.alpha.operation_result.transaction | +------------------------------------+----------------------+-----------------------------------------------+ operation.alpha.operation_result.delegation (Determined from data, 8-bit tag) ***************************************************************************** Applied (tag 0) =============== +--------------+----------------------+------------------------+ | Name | Size | Contents | +==============+======================+========================+ | Tag | 1 byte | unsigned 8-bit integer | +--------------+----------------------+------------------------+ | consumed_gas | Determined from data | $Z.t | +--------------+----------------------+------------------------+ Failed (tag 1) ============== +-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------------+----------+-------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | errors | Variable | sequence of $error | +-----------------------+----------+-------------------------+ Skipped (tag 2) =============== +------+--------+------------------------+ | Name | Size | Contents | +======+========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +------+--------+------------------------+ Backtracked (tag 3) =================== +------------------------------+----------------------+-------------------------------------+ | Name | Size | Contents | +==============================+======================+=====================================+ | Tag | 1 byte | unsigned 8-bit integer | +------------------------------+----------------------+-------------------------------------+ | ? presence of field "errors" | 1 byte | boolean (0 for false, 255 for true) | +------------------------------+----------------------+-------------------------------------+ | errors | Determined from data | $X_1875 | +------------------------------+----------------------+-------------------------------------+ | consumed_gas | Determined from data | $Z.t | +------------------------------+----------------------+-------------------------------------+ operation.alpha.operation_result.transaction (Determined from data, 8-bit tag) ****************************************************************************** Applied (tag 0) =============== +-------------------------------------------------------------+----------------------+-------------------------------------+ | Name | Size | Contents | +=============================================================+======================+=====================================+ | Tag | 1 byte | unsigned 8-bit integer | +-------------------------------------------------------------+----------------------+-------------------------------------+ | ? presence of field "storage" | 1 byte | boolean (0 for false, 255 for true) | +-------------------------------------------------------------+----------------------+-------------------------------------+ | storage | Determined from data | $X_1847 | +-------------------------------------------------------------+----------------------+-------------------------------------+ | ? presence of field "big_map_diff" | 1 byte | boolean (0 for false, 255 for true) | +-------------------------------------------------------------+----------------------+-------------------------------------+ | big_map_diff | Determined from data | $contract.big_map_diff | +-------------------------------------------------------------+----------------------+-------------------------------------+ | # bytes in field "operation_metadata.alpha.balance_updates" | 4 bytes | unsigned 30-bit integer | +-------------------------------------------------------------+----------------------+-------------------------------------+ | balance_updates | Variable | sequence of $X_5 | +-------------------------------------------------------------+----------------------+-------------------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-------------------------------------------------------------+----------------------+-------------------------------------+ | originated_contracts | Variable | sequence of $contract_id | +-------------------------------------------------------------+----------------------+-------------------------------------+ | consumed_gas | Determined from data | $Z.t | +-------------------------------------------------------------+----------------------+-------------------------------------+ | storage_size | Determined from data | $Z.t | +-------------------------------------------------------------+----------------------+-------------------------------------+ | paid_storage_size_diff | Determined from data | $Z.t | +-------------------------------------------------------------+----------------------+-------------------------------------+ | allocated_destination_contract | 1 byte | boolean (0 for false, 255 for true) | +-------------------------------------------------------------+----------------------+-------------------------------------+ | collect_call_revelation | 1 byte | boolean (0 for false, 255 for true) | +-------------------------------------------------------------+----------------------+-------------------------------------+ Failed (tag 1) ============== +-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------------+----------+-------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | errors | Variable | sequence of $error | +-----------------------+----------+-------------------------+ Skipped (tag 2) =============== +------+--------+------------------------+ | Name | Size | Contents | +======+========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +------+--------+------------------------+ Backtracked (tag 3) =================== +-------------------------------------------------------------+----------------------+-------------------------------------+ | Name | Size | Contents | +=============================================================+======================+=====================================+ | Tag | 1 byte | unsigned 8-bit integer | +-------------------------------------------------------------+----------------------+-------------------------------------+ | ? presence of field "errors" | 1 byte | boolean (0 for false, 255 for true) | +-------------------------------------------------------------+----------------------+-------------------------------------+ | errors | Determined from data | $X_1875 | +-------------------------------------------------------------+----------------------+-------------------------------------+ | ? presence of field "storage" | 1 byte | boolean (0 for false, 255 for true) | +-------------------------------------------------------------+----------------------+-------------------------------------+ | storage | Determined from data | $X_1847 | +-------------------------------------------------------------+----------------------+-------------------------------------+ | ? presence of field "big_map_diff" | 1 byte | boolean (0 for false, 255 for true) | +-------------------------------------------------------------+----------------------+-------------------------------------+ | big_map_diff | Determined from data | $contract.big_map_diff | +-------------------------------------------------------------+----------------------+-------------------------------------+ | # bytes in field "operation_metadata.alpha.balance_updates" | 4 bytes | unsigned 30-bit integer | +-------------------------------------------------------------+----------------------+-------------------------------------+ | balance_updates | Variable | sequence of $X_5 | +-------------------------------------------------------------+----------------------+-------------------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-------------------------------------------------------------+----------------------+-------------------------------------+ | originated_contracts | Variable | sequence of $contract_id | +-------------------------------------------------------------+----------------------+-------------------------------------+ | consumed_gas | Determined from data | $Z.t | +-------------------------------------------------------------+----------------------+-------------------------------------+ | storage_size | Determined from data | $Z.t | +-------------------------------------------------------------+----------------------+-------------------------------------+ | paid_storage_size_diff | Determined from data | $Z.t | +-------------------------------------------------------------+----------------------+-------------------------------------+ | allocated_destination_contract | 1 byte | boolean (0 for false, 255 for true) | +-------------------------------------------------------------+----------------------+-------------------------------------+ | collect_call_revelation | 1 byte | boolean (0 for false, 255 for true) | +-------------------------------------------------------------+----------------------+-------------------------------------+ X_68 (Determined from data, 8-bit tag) ************************************** update (tag 0) ============== +-----------------------------+----------------------+-------------------------------------+ | Name | Size | Contents | +=============================+======================+=====================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------------------+----------------------+-------------------------------------+ | big_map | Determined from data | $Z.t | +-----------------------------+----------------------+-------------------------------------+ | key_hash | 32 bytes | bytes | +-----------------------------+----------------------+-------------------------------------+ | key | Determined from data | $X_1871 | +-----------------------------+----------------------+-------------------------------------+ | ? presence of field "value" | 1 byte | boolean (0 for false, 255 for true) | +-----------------------------+----------------------+-------------------------------------+ | value | Determined from data | $X_1871 | +-----------------------------+----------------------+-------------------------------------+ remove (tag 1) ============== +---------+----------------------+------------------------+ | Name | Size | Contents | +=========+======================+========================+ | Tag | 1 byte | unsigned 8-bit integer | +---------+----------------------+------------------------+ | big_map | Determined from data | $Z.t | +---------+----------------------+------------------------+ copy (tag 2) ============ +---------------------+----------------------+------------------------+ | Name | Size | Contents | +=====================+======================+========================+ | Tag | 1 byte | unsigned 8-bit integer | +---------------------+----------------------+------------------------+ | source_big_map | Determined from data | $Z.t | +---------------------+----------------------+------------------------+ | destination_big_map | Determined from data | $Z.t | +---------------------+----------------------+------------------------+ alloc (tag 3) ============= +------------+----------------------+------------------------+ | Name | Size | Contents | +============+======================+========================+ | Tag | 1 byte | unsigned 8-bit integer | +------------+----------------------+------------------------+ | big_map | Determined from data | $Z.t | +------------+----------------------+------------------------+ | key_type | Determined from data | $X_1871 | +------------+----------------------+------------------------+ | value_type | Determined from data | $X_1871 | +------------+----------------------+------------------------+ X_30 (Determined from data, 8-bit tag) ************************************** None (tag 0) ============ +-----------------+---------+----------------------------------------------------+ | Name | Size | Contents | +=================+=========+====================================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------+---------+----------------------------------------------------+ | Unnamed field 0 | 0 bytes | placeholder (not actually present in the encoding) | +-----------------+---------+----------------------------------------------------+ Some (tag 1) ============ +-----------------+----------------------+------------------------+ | Name | Size | Contents | +=================+======================+========================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------+----------------------+------------------------+ | Unnamed field 0 | Determined from data | $X_1871 | +-----------------+----------------------+------------------------+ X_27 (Determined from data, 8-bit tag) ************************************** Lang1.0.1.const (tag 0) ======================= +-----------------+---------+----------------------------------------------------+ | Name | Size | Contents | +=================+=========+====================================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------+---------+----------------------------------------------------+ | Unnamed field 0 | 0 bytes | placeholder (not actually present in the encoding) | +-----------------+---------+----------------------------------------------------+ Love.1.0.const (tag 1) ====================== +-----------------+----------------------+------------------------+ | Name | Size | Contents | +=================+======================+========================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------+----------------------+------------------------+ | Unnamed field 0 | Determined from data | $X_1868 | +-----------------+----------------------+------------------------+ X_25 (Determined from data, 8-bit tag) ************************************** Lang1.0.1.code (tag 0) ====================== +-----------------+---------+----------------------------------------------------+ | Name | Size | Contents | +=================+=========+====================================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------+---------+----------------------------------------------------+ | Unnamed field 0 | 0 bytes | placeholder (not actually present in the encoding) | +-----------------+---------+----------------------------------------------------+ Love.1.0.code (tag 1) ===================== +-----------------+----------------------+------------------------+ | Name | Size | Contents | +=================+======================+========================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------+----------------------+------------------------+ | Unnamed field 0 | Determined from data | $X_1866 | +-----------------+----------------------+------------------------+ operation.alpha.contents (Determined from data, 8-bit tag) ********************************************************** Endorsement (tag 0) =================== +-------+---------+------------------------+ | Name | Size | Contents | +=======+=========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +-------+---------+------------------------+ | level | 4 bytes | signed 32-bit integer | +-------+---------+------------------------+ 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 | $inlined.endorsement | +-----------------------+----------+-------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | op2 | Variable | $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 | $block_header.alpha.full_header | +-----------------------+----------------------+---------------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------------------+---------------------------------+ | bh2 | Determined from data | $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 | +----------+----------+------------------------+ 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 | $contract_id | +----------------------------------+----------------------+-------------------------------------+ | ? presence of field "parameters" | 1 byte | boolean (0 for false, 255 for true) | +----------------------------------+----------------------+-------------------------------------+ | parameters | Determined from data | $X_1779 | +----------------------------------+----------------------+-------------------------------------+ 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 | $scripted.opt_or_hash | +--------------------------------+----------------------+-------------------------------------+ 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 | +--------------------------------+----------------------+-------------------------------------+ Dune_manager_operation (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 next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------------------+-------------------------+ | Unnamed field 0 | Determined from data | $X_1715 | +-----------------------+----------------------+-------------------------+ Transaction (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 | +------------------------------------+----------------------+-------------------------------------+ | amount | Determined from data | $N.t | +------------------------------------+----------------------+-------------------------------------+ | destination | 22 bytes | $contract_id | +------------------------------------+----------------------+-------------------------------------+ | parameters | Determined from data | $X_8 | +------------------------------------+----------------------+-------------------------------------+ | ? presence of field "collect_call" | 1 byte | boolean (0 for false, 255 for true) | +------------------------------------+----------------------+-------------------------------------+ | collect_call | Determined from data | $X_1615 | +------------------------------------+----------------------+-------------------------------------+ X_12 **** +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | Name | Size | Contents | +========================================================+======================+==============================================================+ | ? presence of field "proof_of_work_nonce_size" | 1 byte | boolean (0 for false, 255 for true) | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | proof_of_work_nonce_size | 1 byte | unsigned 8-bit integer | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "nonce_length" | 1 byte | boolean (0 for false, 255 for true) | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | nonce_length | 1 byte | unsigned 8-bit integer | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "max_revelations_per_block" | 1 byte | boolean (0 for false, 255 for true) | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | max_revelations_per_block | 1 byte | unsigned 8-bit integer | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "max_operation_data_length" | 1 byte | boolean (0 for false, 255 for true) | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | max_operation_data_length | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "max_proposals_per_delegate" | 1 byte | boolean (0 for false, 255 for true) | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | max_proposals_per_delegate | 1 byte | unsigned 8-bit integer | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "preserved_cycles" | 1 byte | boolean (0 for false, 255 for true) | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | preserved_cycles | 1 byte | unsigned 8-bit integer | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "blocks_per_cycle" | 1 byte | boolean (0 for false, 255 for true) | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | blocks_per_cycle | 4 bytes | signed 32-bit integer | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "blocks_per_commitment" | 1 byte | boolean (0 for false, 255 for true) | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | blocks_per_commitment | 4 bytes | signed 32-bit integer | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "blocks_per_roll_snapshot" | 1 byte | boolean (0 for false, 255 for true) | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | blocks_per_roll_snapshot | 4 bytes | signed 32-bit integer | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "blocks_per_voting_period" | 1 byte | boolean (0 for false, 255 for true) | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | blocks_per_voting_period | 4 bytes | signed 32-bit integer | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "time_between_blocks" | 1 byte | boolean (0 for false, 255 for true) | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | time_between_blocks | Determined from data | $X_1713 | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "endorsers_per_block" | 1 byte | boolean (0 for false, 255 for true) | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | endorsers_per_block | 2 bytes | unsigned 16-bit integer | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "hard_gas_limit_per_operation" | 1 byte | boolean (0 for false, 255 for true) | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | hard_gas_limit_per_operation | Determined from data | $Z.t | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "hard_gas_limit_per_block" | 1 byte | boolean (0 for false, 255 for true) | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | hard_gas_limit_per_block | Determined from data | $Z.t | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "proof_of_work_threshold" | 1 byte | boolean (0 for false, 255 for true) | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | proof_of_work_threshold | 8 bytes | signed 64-bit integer | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "tokens_per_roll" | 1 byte | boolean (0 for false, 255 for true) | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | tokens_per_roll | Determined from data | $N.t | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "michelson_maximum_type_size" | 1 byte | boolean (0 for false, 255 for true) | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | michelson_maximum_type_size | 2 bytes | unsigned 16-bit integer | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "seed_nonce_revelation_tip" | 1 byte | boolean (0 for false, 255 for true) | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | seed_nonce_revelation_tip | Determined from data | $N.t | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "origination_size" | 1 byte | boolean (0 for false, 255 for true) | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | origination_size | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "block_security_deposit" | 1 byte | boolean (0 for false, 255 for true) | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | block_security_deposit | Determined from data | $N.t | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "endorsement_security_deposit" | 1 byte | boolean (0 for false, 255 for true) | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | endorsement_security_deposit | Determined from data | $N.t | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "block_reward" | 1 byte | boolean (0 for false, 255 for true) | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | block_reward | Determined from data | $N.t | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "endorsement_reward" | 1 byte | boolean (0 for false, 255 for true) | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | endorsement_reward | Determined from data | $N.t | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "cost_per_byte" | 1 byte | boolean (0 for false, 255 for true) | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | cost_per_byte | Determined from data | $N.t | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "hard_storage_limit_per_operation" | 1 byte | boolean (0 for false, 255 for true) | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | hard_storage_limit_per_operation | Determined from data | $Z.t | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "hard_gas_limit_to_pay_fees" | 1 byte | boolean (0 for false, 255 for true) | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | hard_gas_limit_to_pay_fees | Determined from data | $Z.t | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "protocol_revision" | 1 byte | boolean (0 for false, 255 for true) | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | protocol_revision | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "max_operation_ttl" | 1 byte | boolean (0 for false, 255 for true) | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | max_operation_ttl | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "initial_endorsers" | 1 byte | boolean (0 for false, 255 for true) | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | initial_endorsers | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "delay_per_missing_endorsement" | 1 byte | boolean (0 for false, 255 for true) | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | delay_per_missing_endorsement | 8 bytes | signed 64-bit integer | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | protocol_actions | Variable | sequence of $X_1714 | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "allow_collect_call" | 1 byte | boolean (0 for false, 255 for true) | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | allow_collect_call | 1 byte | boolean (0 for false, 255 for true) | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ X_8 *** +-----------------------------+----------------------+-------------------------------------+ | Name | Size | Contents | +=============================+======================+=====================================+ | entrypoint | Determined from data | $entrypoint | +-----------------------------+----------------------+-------------------------------------+ | ? presence of field "value" | 1 byte | boolean (0 for false, 255 for true) | +-----------------------------+----------------------+-------------------------------------+ | value | Determined from data | $fitness.elem | +-----------------------------+----------------------+-------------------------------------+ block_header_metadata ********************* +-------------------------------------------------------------+----------------------+--------------------------------------------------------------+ | Name | Size | Contents | +=============================================================+======================+==============================================================+ | test_chain_status | Determined from data | $test_chain_status | +-------------------------------------------------------------+----------------------+--------------------------------------------------------------+ | max_operations_ttl | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +-------------------------------------------------------------+----------------------+--------------------------------------------------------------+ | max_operation_data_length | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +-------------------------------------------------------------+----------------------+--------------------------------------------------------------+ | max_block_header_length | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +-------------------------------------------------------------+----------------------+--------------------------------------------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-------------------------------------------------------------+----------------------+--------------------------------------------------------------+ | max_operation_list_length | Determined from data | $X_0 | +-------------------------------------------------------------+----------------------+--------------------------------------------------------------+ | baker | 21 bytes | $public_key_hash | +-------------------------------------------------------------+----------------------+--------------------------------------------------------------+ | level | 25 bytes | $X_2 | +-------------------------------------------------------------+----------------------+--------------------------------------------------------------+ | voting_period_kind | 1 byte | $X_3 | +-------------------------------------------------------------+----------------------+--------------------------------------------------------------+ | nonce_hash | Determined from data | $X_4 | +-------------------------------------------------------------+----------------------+--------------------------------------------------------------+ | consumed_gas | Determined from data | $N.t | +-------------------------------------------------------------+----------------------+--------------------------------------------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-------------------------------------------------------------+----------------------+--------------------------------------------------------------+ | deactivated | Variable | sequence of $public_key_hash | +-------------------------------------------------------------+----------------------+--------------------------------------------------------------+ | # bytes in field "operation_metadata.alpha.balance_updates" | 4 bytes | unsigned 30-bit integer | +-------------------------------------------------------------+----------------------+--------------------------------------------------------------+ | balance_updates | Variable | sequence of $X_5 | +-------------------------------------------------------------+----------------------+--------------------------------------------------------------+ X_5 *** +-----------------+----------------------+-----------------------+ | Name | Size | Contents | +=================+======================+=======================+ | Unnamed field 0 | Determined from data | $X_1886 | +-----------------+----------------------+-----------------------+ | change | 8 bytes | signed 64-bit integer | +-----------------+----------------------+-----------------------+ X_4 (Determined from data, 8-bit tag) ************************************* None (tag 0) ============ +-----------------+---------+----------------------------------------------------+ | Name | Size | Contents | +=================+=========+====================================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------+---------+----------------------------------------------------+ | Unnamed field 0 | 0 bytes | placeholder (not actually present in the encoding) | +-----------------+---------+----------------------------------------------------+ Some (tag 1) ============ +-------------+----------+------------------------+ | Name | Size | Contents | +=============+==========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +-------------+----------+------------------------+ | cycle_nonce | 32 bytes | bytes | +-------------+----------+------------------------+ X_3 (1 byte, 8-bit tag) *********************** Proposal (tag 0) ================ +-----------------+---------+----------------------------------------------------+ | Name | Size | Contents | +=================+=========+====================================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------+---------+----------------------------------------------------+ | Unnamed field 0 | 0 bytes | placeholder (not actually present in the encoding) | +-----------------+---------+----------------------------------------------------+ Testing_vote (tag 1) ==================== +-----------------+---------+----------------------------------------------------+ | Name | Size | Contents | +=================+=========+====================================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------+---------+----------------------------------------------------+ | Unnamed field 0 | 0 bytes | placeholder (not actually present in the encoding) | +-----------------+---------+----------------------------------------------------+ Testing (tag 2) =============== +-----------------+---------+----------------------------------------------------+ | Name | Size | Contents | +=================+=========+====================================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------+---------+----------------------------------------------------+ | Unnamed field 0 | 0 bytes | placeholder (not actually present in the encoding) | +-----------------+---------+----------------------------------------------------+ Promotion_vote (tag 3) ====================== +-----------------+---------+----------------------------------------------------+ | Name | Size | Contents | +=================+=========+====================================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------+---------+----------------------------------------------------+ | Unnamed field 0 | 0 bytes | placeholder (not actually present in the encoding) | +-----------------+---------+----------------------------------------------------+ X_2 *** +------------------------+---------+-------------------------------------+ | Name | Size | Contents | +========================+=========+=====================================+ | level | 4 bytes | signed 32-bit integer | +------------------------+---------+-------------------------------------+ | level_position | 4 bytes | signed 32-bit integer | +------------------------+---------+-------------------------------------+ | cycle | 4 bytes | signed 32-bit integer | +------------------------+---------+-------------------------------------+ | cycle_position | 4 bytes | signed 32-bit integer | +------------------------+---------+-------------------------------------+ | voting_period | 4 bytes | signed 32-bit integer | +------------------------+---------+-------------------------------------+ | voting_period_position | 4 bytes | signed 32-bit integer | +------------------------+---------+-------------------------------------+ | expected_commitment | 1 byte | boolean (0 for false, 255 for true) | +------------------------+---------+-------------------------------------+ X_0 *** +-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | Unnamed field 0 | Variable | sequence of $X_1 | +-----------------------+----------+-------------------------+ X_1 *** +------------------------------+---------+--------------------------------------------------------------+ | Name | Size | Contents | +==============================+=========+==============================================================+ | max_size | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +------------------------------+---------+--------------------------------------------------------------+ | ? presence of field "max_op" | 1 byte | boolean (0 for false, 255 for true) | +------------------------------+---------+--------------------------------------------------------------+ | max_op | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +------------------------------+---------+--------------------------------------------------------------+ test_chain_status (Determined from data, 8-bit tag) *************************************************** Not_running (tag 0) =================== +------+--------+------------------------+ | Name | Size | Contents | +======+========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +------+--------+------------------------+ Forking (tag 1) =============== +------------+----------+------------------------+ | Name | Size | Contents | +============+==========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +------------+----------+------------------------+ | protocol | 32 bytes | bytes | +------------+----------+------------------------+ | expiration | 8 bytes | signed 64-bit integer | +------------+----------+------------------------+ Running (tag 2) =============== +------------+----------+------------------------+ | Name | Size | Contents | +============+==========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +------------+----------+------------------------+ | chain_id | 4 bytes | bytes | +------------+----------+------------------------+ | genesis | 32 bytes | bytes | +------------+----------+------------------------+ | protocol | 32 bytes | bytes | +------------+----------+------------------------+ | expiration | 8 bytes | signed 64-bit integer | +------------+----------+------------------------+
GET ../<block_id>/allowed_peer_ids
All the allowed peer_ids at this block.
[ $Crypto_box.Public_key_hash ... ] || null $Crypto_box.Public_key_hash: /* A Cryptobox public key ID (Base58Check-encoded) */ $unistring $unistring: /* Universal string representation Either a plain UTF8 string, or a sequence of bytes for strings that contain invalid byte sequences. */ string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
+-----------------+----------------------+----------+ | Name | Size | Contents | +=================+======================+==========+ | Unnamed field 0 | Determined from data | $X_0 | +-----------------+----------------------+----------+ X_0 (Determined from data, 8-bit tag) ************************************* None (tag 0) ============ +-----------------+---------+----------------------------------------------------+ | Name | Size | Contents | +=================+=========+====================================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------+---------+----------------------------------------------------+ | Unnamed field 0 | 0 bytes | placeholder (not actually present in the encoding) | +-----------------+---------+----------------------------------------------------+ Some (tag 1) ============ +-----------------------+----------+-------------------------+ | 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 bytes | +-----------------------+----------+-------------------------+
GET ../<block_id>/context/activate_protocol
Get next activation
[ integer ∈ [-2^31-2, 2^31+2], $Protocol_hash || null, { "proof_of_work_nonce_size"?: integer ∈ [0, 255], "nonce_length"?: integer ∈ [0, 255], "max_revelations_per_block"?: integer ∈ [0, 255], "max_operation_data_length"?: integer ∈ [-2^30-2, 2^30+2], "max_proposals_per_delegate"?: integer ∈ [0, 255], "preserved_cycles"?: integer ∈ [0, 255], "blocks_per_cycle"?: integer ∈ [-2^31-2, 2^31+2], "blocks_per_commitment"?: integer ∈ [-2^31-2, 2^31+2], "blocks_per_roll_snapshot"?: integer ∈ [-2^31-2, 2^31+2], "blocks_per_voting_period"?: integer ∈ [-2^31-2, 2^31+2], "time_between_blocks"?: [ $int64 ... ], "endorsers_per_block"?: integer ∈ [0, 2^16-1], "hard_gas_limit_per_operation"?: $bignum, "hard_gas_limit_per_block"?: $bignum, "proof_of_work_threshold"?: $int64, "tokens_per_roll"?: $mutez, "michelson_maximum_type_size"?: integer ∈ [0, 2^16-1], "seed_nonce_revelation_tip"?: $mutez, "origination_size"?: integer ∈ [-2^30-2, 2^30+2], "block_security_deposit"?: $mutez, "endorsement_security_deposit"?: $mutez, "block_reward"?: $mutez, "endorsement_reward"?: $mutez, "cost_per_byte"?: $mutez, "hard_storage_limit_per_operation"?: $bignum, "hard_gas_limit_to_pay_fees"?: $bignum, "protocol_revision"?: integer ∈ [-2^30-2, 2^30+2], "max_operation_ttl"?: integer ∈ [-2^30-2, 2^30+2], "initial_endorsers"?: integer ∈ [-2^30-2, 2^30+2], "delay_per_missing_endorsement"?: $int64, "protocol_actions"?: [ $unistring ... ], "allow_collect_call"?: boolean } || null ] || null $Protocol_hash: /* A Dune protocol ID (Base58Check-encoded) */ $unistring $bignum: /* Big number Decimal representation of a big number */ string $int64: /* 64 bit integers Decimal representation of 64 bit integers */ string $mutez: $positive_bignum $positive_bignum: /* Positive big number Decimal representation of a positive big number */ string $unistring: /* Universal string representation Either a plain UTF8 string, or a sequence of bytes for strings that contain invalid byte sequences. */ string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
+-----------------+----------------------+----------+ | Name | Size | Contents | +=================+======================+==========+ | Unnamed field 0 | Determined from data | $X_4 | +-----------------+----------------------+----------+ X_0 (Determined from data, 8-bit tag) ************************************* None (tag 0) ============ +-----------------+---------+----------------------------------------------------+ | Name | Size | Contents | +=================+=========+====================================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------+---------+----------------------------------------------------+ | Unnamed field 0 | 0 bytes | placeholder (not actually present in the encoding) | +-----------------+---------+----------------------------------------------------+ Some (tag 1) ============ +---------------+----------+------------------------+ | Name | Size | Contents | +===============+==========+========================+ | Tag | 1 byte | unsigned 8-bit integer | +---------------+----------+------------------------+ | Protocol_hash | 32 bytes | bytes | +---------------+----------+------------------------+ X_1 *** +-----------------------+----------+-----------------------------------+ | Name | Size | Contents | +=======================+==========+===================================+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-----------------------------------+ | Unnamed field 0 | Variable | sequence of signed 64-bit integer | +-----------------------+----------+-----------------------------------+ N.t *** A variable length sequence of bytes, encoding a Zarith number. Each byte has a running unary size bit: the most significant bit of each byte tells is this is the last byte in the sequence (0) or if there is more to read (1). Size bits ignored, data is then the binary representation of the absolute value of the number in little endian order. +------+----------------------+----------+ | Name | Size | Contents | +======+======================+==========+ | N.t | Determined from data | bytes | +------+----------------------+----------+ Z.t *** A variable length sequence of bytes, encoding a Zarith number. Each byte has a running unary size bit: the most significant bit of each byte tells is this is the last byte in the sequence (0) or if there is more to read (1). The second most significant bit of the first byte is reserved for the sign (positive if zero). Size and sign bits ignored, data is then the binary representation of the absolute value of the number in little endian order. +------+----------------------+----------+ | Name | Size | Contents | +======+======================+==========+ | Z.t | Determined from data | bytes | +------+----------------------+----------+ X_2 *** +-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | Unnamed field 0 | Variable | bytes | +-----------------------+----------+-------------------------+ X_3 (Determined from data, 8-bit tag) ************************************* None (tag 0) ============ +-----------------+---------+----------------------------------------------------+ | Name | Size | Contents | +=================+=========+====================================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------+---------+----------------------------------------------------+ | Unnamed field 0 | 0 bytes | placeholder (not actually present in the encoding) | +-----------------+---------+----------------------------------------------------+ Some (tag 1) ============ +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | Name | Size | Contents | +========================================================+======================+==============================================================+ | Tag | 1 byte | unsigned 8-bit integer | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "proof_of_work_nonce_size" | 1 byte | boolean (0 for false, 255 for true) | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | proof_of_work_nonce_size | 1 byte | unsigned 8-bit integer | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "nonce_length" | 1 byte | boolean (0 for false, 255 for true) | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | nonce_length | 1 byte | unsigned 8-bit integer | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "max_revelations_per_block" | 1 byte | boolean (0 for false, 255 for true) | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | max_revelations_per_block | 1 byte | unsigned 8-bit integer | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "max_operation_data_length" | 1 byte | boolean (0 for false, 255 for true) | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | max_operation_data_length | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "max_proposals_per_delegate" | 1 byte | boolean (0 for false, 255 for true) | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | max_proposals_per_delegate | 1 byte | unsigned 8-bit integer | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "preserved_cycles" | 1 byte | boolean (0 for false, 255 for true) | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | preserved_cycles | 1 byte | unsigned 8-bit integer | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "blocks_per_cycle" | 1 byte | boolean (0 for false, 255 for true) | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | blocks_per_cycle | 4 bytes | signed 32-bit integer | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "blocks_per_commitment" | 1 byte | boolean (0 for false, 255 for true) | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | blocks_per_commitment | 4 bytes | signed 32-bit integer | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "blocks_per_roll_snapshot" | 1 byte | boolean (0 for false, 255 for true) | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | blocks_per_roll_snapshot | 4 bytes | signed 32-bit integer | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "blocks_per_voting_period" | 1 byte | boolean (0 for false, 255 for true) | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | blocks_per_voting_period | 4 bytes | signed 32-bit integer | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "time_between_blocks" | 1 byte | boolean (0 for false, 255 for true) | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | time_between_blocks | Determined from data | $X_1 | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "endorsers_per_block" | 1 byte | boolean (0 for false, 255 for true) | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | endorsers_per_block | 2 bytes | unsigned 16-bit integer | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "hard_gas_limit_per_operation" | 1 byte | boolean (0 for false, 255 for true) | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | hard_gas_limit_per_operation | Determined from data | $Z.t | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "hard_gas_limit_per_block" | 1 byte | boolean (0 for false, 255 for true) | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | hard_gas_limit_per_block | Determined from data | $Z.t | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "proof_of_work_threshold" | 1 byte | boolean (0 for false, 255 for true) | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | proof_of_work_threshold | 8 bytes | signed 64-bit integer | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "tokens_per_roll" | 1 byte | boolean (0 for false, 255 for true) | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | tokens_per_roll | Determined from data | $N.t | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "michelson_maximum_type_size" | 1 byte | boolean (0 for false, 255 for true) | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | michelson_maximum_type_size | 2 bytes | unsigned 16-bit integer | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "seed_nonce_revelation_tip" | 1 byte | boolean (0 for false, 255 for true) | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | seed_nonce_revelation_tip | Determined from data | $N.t | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "origination_size" | 1 byte | boolean (0 for false, 255 for true) | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | origination_size | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "block_security_deposit" | 1 byte | boolean (0 for false, 255 for true) | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | block_security_deposit | Determined from data | $N.t | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "endorsement_security_deposit" | 1 byte | boolean (0 for false, 255 for true) | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | endorsement_security_deposit | Determined from data | $N.t | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "block_reward" | 1 byte | boolean (0 for false, 255 for true) | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | block_reward | Determined from data | $N.t | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "endorsement_reward" | 1 byte | boolean (0 for false, 255 for true) | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | endorsement_reward | Determined from data | $N.t | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "cost_per_byte" | 1 byte | boolean (0 for false, 255 for true) | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | cost_per_byte | Determined from data | $N.t | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "hard_storage_limit_per_operation" | 1 byte | boolean (0 for false, 255 for true) | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | hard_storage_limit_per_operation | Determined from data | $Z.t | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "hard_gas_limit_to_pay_fees" | 1 byte | boolean (0 for false, 255 for true) | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | hard_gas_limit_to_pay_fees | Determined from data | $Z.t | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "protocol_revision" | 1 byte | boolean (0 for false, 255 for true) | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | protocol_revision | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "max_operation_ttl" | 1 byte | boolean (0 for false, 255 for true) | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | max_operation_ttl | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "initial_endorsers" | 1 byte | boolean (0 for false, 255 for true) | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | initial_endorsers | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "delay_per_missing_endorsement" | 1 byte | boolean (0 for false, 255 for true) | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | delay_per_missing_endorsement | 8 bytes | signed 64-bit integer | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | protocol_actions | Variable | sequence of $X_2 | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | ? presence of field "allow_collect_call" | 1 byte | boolean (0 for false, 255 for true) | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ | allow_collect_call | 1 byte | boolean (0 for false, 255 for true) | +--------------------------------------------------------+----------------------+--------------------------------------------------------------+ X_4 (Determined from data, 8-bit tag) ************************************* None (tag 0) ============ +-----------------+---------+----------------------------------------------------+ | Name | Size | Contents | +=================+=========+====================================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------+---------+----------------------------------------------------+ | Unnamed field 0 | 0 bytes | placeholder (not actually present in the encoding) | +-----------------+---------+----------------------------------------------------+ Some (tag 1) ============ +-----------------+----------------------+------------------------+ | 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_0 | +-----------------+----------------------+------------------------+ | Unnamed field 2 | Determined from data | $X_3 | +-----------------+----------------------+------------------------+
POST ../<block_id>/context/big_maps/<big_map_id>
Access the value associated with a key in a big map.
$micheline.michelson_v1.expression || { "dune_expr": "VOID" || any || any } || { "dune_code": "NOOP" || any || any || any } || { "michelson": $unistring } $bignum: /* Big number Decimal representation of a big number */ string $micheline.michelson_v1.expression: { "int": $bignum } || { "string": $unistring } || { "bytes": /^[a-zA-Z0-9]+$/ } || [ $micheline.michelson_v1.expression ... ] || { "prim": $michelson.v1.primitives, "args"?: [ $micheline.michelson_v1.expression ... ], "annots"?: [ string ... ] } $michelson.v1.primitives: "ADMIN_ACCOUNTS" | "ADD" | "IF_NONE" | "SWAP" | "nat" | "Elt" | "big_map" | "map" | "SHA256" | "Right" | "LEFT" | "storage" | "SLICE" | "False" | "SHA512" | "BALANCE" | "EMPTY_BIG_MAP" | "OR" | "XOR" | "lambda" | "COMPARE" | "option" | "NEQ" | "BLOCK_LEVEL" | "AMOUNT" | "DIP" | "ABS" | "chain_id" | "MEM" | "ALLOW_PEERS" | "CONCAT" | "LOOP_LEFT" | "UPDATE" | "DUP" | "IS_IMPLICIT" | "CAR" | "CONS" | "NONE" | "GET" | "Left" | "SIZE" | "GET_ACCOUNT_INFO" | "DROP" | "NIL" | "DIG" | "RENAME" | "True" | "parameter" | "EQ" | "Pair" | "ADDRESS" | "AND" | "set" | "CHECK_SIGNATURE" | "IF_LEFT" | "LAMBDA" | "CREATE_CONTRACT" | "NEG" | "or" | "BLAKE2B" | "bytes" | "SET_DELEGATE" | "CONTRACT" | "LSL" | "SUB" | "IMPLICIT_ACCOUNT" | "PACK" | "list" | "PAIR" | "contract" | "GT" | "STEPS_TO_QUOTA" | "TRANSFER_TOKENS" | "CDR" | "PUSH" | "CHAIN_ID" | "signature" | "DUG" | "SELF" | "LSR" | "key" | "Unit" | "Some" | "UNPACK" | "INT" | "pair" | "COLLECT_CALL" | "ISNAT" | "EXEC" | "NOW" | "LOOP" | "string" | "MAP" | "None" | "address" | "EMPTY_SET" | "MUL" | "timestamp" | "LT" | "ADMIN_PROTOCOL" | "SOURCE" | "mutez" | "SENDER" | "IF_CONS" | "RIGHT" | "LE" | "IF" | "SOME" | "CAST" | "int" | "REVOKE_PEERS" | "key_hash" | "unit" | "EMPTY_MAP" | "APPLY" | "MANAGE_ACCOUNT" | "bool" | "operation" | "FAILWITH" | "GET_BALANCE" | "HASH_KEY" | "NOT" | "UNIT" | "EDIV" | "CREATE_ACCOUNT" | "GE" | "ITER" | "code" $unistring: /* Universal string representation Either a plain UTF8 string, or a sequence of bytes for strings that contain invalid byte sequences. */ string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
+-----------------+----------------------+----------+ | Name | Size | Contents | +=================+======================+==========+ | Unnamed field 0 | Determined from data | $X_5 | +-----------------+----------------------+----------+ X_0 (Determined from data, 8-bit tag) ************************************* Contract (parser output) (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 | bytes | +-----------------------+----------+-------------------------+ Live contract (deployed) (tag 1) ================================ +-----------------------+----------+-------------------------+ | 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 | +-----------------------+----------+-------------------------+ Fee code (tag 2) ================ +-----------------------+----------+-------------------------+ | 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 | +-----------------------+----------+-------------------------+ X_1 (Determined from data, 8-bit tag) ************************************* Lang1.0.1.code (tag 0) ====================== +-----------------+---------+----------------------------------------------------+ | Name | Size | Contents | +=================+=========+====================================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------+---------+----------------------------------------------------+ | Unnamed field 0 | 0 bytes | placeholder (not actually present in the encoding) | +-----------------+---------+----------------------------------------------------+ Love.1.0.code (tag 1) ===================== +-----------------+----------------------+------------------------+ | Name | Size | Contents | +=================+======================+========================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------+----------------------+------------------------+ | Unnamed field 0 | Determined from data | $X_0 | +-----------------+----------------------+------------------------+ X_2 (Determined from data, 8-bit tag) ************************************* Value (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 | bytes | +-----------------------+----------+-------------------------+ Type (tag 1) ============ +-----------------------+----------+-------------------------+ | 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 | +-----------------------+----------+-------------------------+ X_3 (Determined from data, 8-bit tag) ************************************* Lang1.0.1.const (tag 0) ======================= +-----------------+---------+----------------------------------------------------+ | Name | Size | Contents | +=================+=========+====================================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------+---------+----------------------------------------------------+ | Unnamed field 0 | 0 bytes | placeholder (not actually present in the encoding) | +-----------------+---------+----------------------------------------------------+ Love.1.0.const (tag 1) ====================== +-----------------+----------------------+------------------------+ | Name | Size | Contents | +=================+======================+========================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------+----------------------+------------------------+ | Unnamed field 0 | Determined from data | $X_2 | +-----------------+----------------------+------------------------+ michelson.v1.primitives (Enumeration: unsigned 8-bit integer): ************************************************************** +-------------+------------------+ | Case number | Encoded string | +=============+==================+ | 0 | parameter | +-------------+------------------+ | 1 | storage | +-------------+------------------+ | 2 | code | +-------------+------------------+ | 3 | False | +-------------+------------------+ | 4 | Elt | +-------------+------------------+ | 5 | Left | +-------------+------------------+ | 6 | None | +-------------+------------------+ | 7 | Pair | +-------------+------------------+ | 8 | Right | +-------------+------------------+ | 9 | Some | +-------------+------------------+ | 10 | True | +-------------+------------------+ | 11 | Unit | +-------------+------------------+ | 12 | PACK | +-------------+------------------+ | 13 | UNPACK | +-------------+------------------+ | 14 | BLAKE2B | +-------------+------------------+ | 15 | SHA256 | +-------------+------------------+ | 16 | SHA512 | +-------------+------------------+ | 17 | ABS | +-------------+------------------+ | 18 | ADD | +-------------+------------------+ | 19 | AMOUNT | +-------------+------------------+ | 20 | AND | +-------------+------------------+ | 21 | BALANCE | +-------------+------------------+ | 22 | CAR | +-------------+------------------+ | 23 | CDR | +-------------+------------------+ | 24 | CHECK_SIGNATURE | +-------------+------------------+ | 25 | COMPARE | +-------------+------------------+ | 26 | CONCAT | +-------------+------------------+ | 27 | CONS | +-------------+------------------+ | 28 | CREATE_ACCOUNT | +-------------+------------------+ | 29 | CREATE_CONTRACT | +-------------+------------------+ | 30 | IMPLICIT_ACCOUNT | +-------------+------------------+ | 31 | DIP | +-------------+------------------+ | 32 | DROP | +-------------+------------------+ | 33 | DUP | +-------------+------------------+ | 34 | EDIV | +-------------+------------------+ | 35 | EMPTY_MAP | +-------------+------------------+ | 36 | EMPTY_SET | +-------------+------------------+ | 37 | EQ | +-------------+------------------+ | 38 | EXEC | +-------------+------------------+ | 39 | FAILWITH | +-------------+------------------+ | 40 | GE | +-------------+------------------+ | 41 | GET | +-------------+------------------+ | 42 | GT | +-------------+------------------+ | 43 | HASH_KEY | +-------------+------------------+ | 44 | IF | +-------------+------------------+ | 45 | IF_CONS | +-------------+------------------+ | 46 | IF_LEFT | +-------------+------------------+ | 47 | IF_NONE | +-------------+------------------+ | 48 | INT | +-------------+------------------+ | 49 | LAMBDA | +-------------+------------------+ | 50 | LE | +-------------+------------------+ | 51 | LEFT | +-------------+------------------+ | 52 | LOOP | +-------------+------------------+ | 53 | LSL | +-------------+------------------+ | 54 | LSR | +-------------+------------------+ | 55 | LT | +-------------+------------------+ | 56 | MAP | +-------------+------------------+ | 57 | MEM | +-------------+------------------+ | 58 | MUL | +-------------+------------------+ | 59 | NEG | +-------------+------------------+ | 60 | NEQ | +-------------+------------------+ | 61 | NIL | +-------------+------------------+ | 62 | NONE | +-------------+------------------+ | 63 | NOT | +-------------+------------------+ | 64 | NOW | +-------------+------------------+ | 65 | OR | +-------------+------------------+ | 66 | PAIR | +-------------+------------------+ | 67 | PUSH | +-------------+------------------+ | 68 | RIGHT | +-------------+------------------+ | 69 | SIZE | +-------------+------------------+ | 70 | SOME | +-------------+------------------+ | 71 | SOURCE | +-------------+------------------+ | 72 | SENDER | +-------------+------------------+ | 73 | SELF | +-------------+------------------+ | 74 | STEPS_TO_QUOTA | +-------------+------------------+ | 75 | SUB | +-------------+------------------+ | 76 | SWAP | +-------------+------------------+ | 77 | TRANSFER_TOKENS | +-------------+------------------+ | 78 | SET_DELEGATE | +-------------+------------------+ | 79 | UNIT | +-------------+------------------+ | 80 | UPDATE | +-------------+------------------+ | 81 | XOR | +-------------+------------------+ | 82 | ITER | +-------------+------------------+ | 83 | LOOP_LEFT | +-------------+------------------+ | 84 | ADDRESS | +-------------+------------------+ | 85 | CONTRACT | +-------------+------------------+ | 86 | ISNAT | +-------------+------------------+ | 87 | CAST | +-------------+------------------+ | 88 | RENAME | +-------------+------------------+ | 89 | bool | +-------------+------------------+ | 90 | contract | +-------------+------------------+ | 91 | int | +-------------+------------------+ | 92 | key | +-------------+------------------+ | 93 | key_hash | +-------------+------------------+ | 94 | lambda | +-------------+------------------+ | 95 | list | +-------------+------------------+ | 96 | map | +-------------+------------------+ | 97 | big_map | +-------------+------------------+ | 98 | nat | +-------------+------------------+ | 99 | option | +-------------+------------------+ | 100 | or | +-------------+------------------+ | 101 | pair | +-------------+------------------+ | 102 | set | +-------------+------------------+ | 103 | signature | +-------------+------------------+ | 104 | string | +-------------+------------------+ | 105 | bytes | +-------------+------------------+ | 106 | mutez | +-------------+------------------+ | 107 | timestamp | +-------------+------------------+ | 108 | unit | +-------------+------------------+ | 109 | operation | +-------------+------------------+ | 110 | address | +-------------+------------------+ | 111 | SLICE | +-------------+------------------+ | 112 | GET_BALANCE | +-------------+------------------+ | 113 | BLOCK_LEVEL | +-------------+------------------+ | 114 | IS_IMPLICIT | +-------------+------------------+ | 115 | COLLECT_CALL | +-------------+------------------+ | 116 | DIG | +-------------+------------------+ | 117 | DUG | +-------------+------------------+ | 118 | EMPTY_BIG_MAP | +-------------+------------------+ | 119 | APPLY | +-------------+------------------+ | 120 | chain_id | +-------------+------------------+ | 121 | CHAIN_ID | +-------------+------------------+ | 122 | GET_ACCOUNT_INFO | +-------------+------------------+ | 123 | MANAGE_ACCOUNT | +-------------+------------------+ | 124 | ADMIN_ACCOUNTS | +-------------+------------------+ | 125 | ADMIN_PROTOCOL | +-------------+------------------+ | 126 | ALLOW_PEERS | +-------------+------------------+ | 127 | REVOKE_PEERS | +-------------+------------------+ Z.t *** A variable length sequence of bytes, encoding a Zarith number. Each byte has a running unary size bit: the most significant bit of each byte tells is this is the last byte in the sequence (0) or if there is more to read (1). The second most significant bit of the first byte is reserved for the sign (positive if zero). Size and sign bits ignored, data is then the binary representation of the absolute value of the number in little endian order. +------+----------------------+----------+ | Name | Size | Contents | +======+======================+==========+ | Z.t | Determined from data | bytes | +------+----------------------+----------+ micheline.michelson_v1.expression (Determined from data, 8-bit tag) ******************************************************************* Int (tag 0) =========== +------+----------------------+------------------------+ | Name | Size | Contents | +======+======================+========================+ | Tag | 1 byte | unsigned 8-bit integer | +------+----------------------+------------------------+ | int | Determined from data | $Z.t | +------+----------------------+------------------------+ String (tag 1) ============== +-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------------+----------+-------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | string | Variable | bytes | +-----------------------+----------+-------------------------+ Sequence (tag 2) ================ +-----------------------+----------+------------------------------------------------+ | 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 $micheline.michelson_v1.expression | +-----------------------+----------+------------------------------------------------+ Prim (no args, annot) (tag 3) ============================= +------+--------+------------------------------------------------------------------------------+ | Name | Size | Contents | +======+========+==============================================================================+ | Tag | 1 byte | unsigned 8-bit integer | +------+--------+------------------------------------------------------------------------------+ | prim | 1 byte | unsigned 8-bit integer encoding an enumeration (see michelson.v1.primitives) | +------+--------+------------------------------------------------------------------------------+ Prim (no args + annot) (tag 4) ============================== +-----------------------+----------+------------------------------------------------------------------------------+ | Name | Size | Contents | +=======================+==========+==============================================================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------------+----------+------------------------------------------------------------------------------+ | prim | 1 byte | unsigned 8-bit integer encoding an enumeration (see michelson.v1.primitives) | +-----------------------+----------+------------------------------------------------------------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+------------------------------------------------------------------------------+ | annots | Variable | bytes | +-----------------------+----------+------------------------------------------------------------------------------+ Prim (1 arg, no annot) (tag 5) ============================== +------+----------------------+------------------------------------------------------------------------------+ | Name | Size | Contents | +======+======================+==============================================================================+ | Tag | 1 byte | unsigned 8-bit integer | +------+----------------------+------------------------------------------------------------------------------+ | prim | 1 byte | unsigned 8-bit integer encoding an enumeration (see michelson.v1.primitives) | +------+----------------------+------------------------------------------------------------------------------+ | arg | Determined from data | $micheline.michelson_v1.expression | +------+----------------------+------------------------------------------------------------------------------+ Prim (1 arg + annot) (tag 6) ============================ +-----------------------+----------------------+------------------------------------------------------------------------------+ | Name | Size | Contents | +=======================+======================+==============================================================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------------+----------------------+------------------------------------------------------------------------------+ | prim | 1 byte | unsigned 8-bit integer encoding an enumeration (see michelson.v1.primitives) | +-----------------------+----------------------+------------------------------------------------------------------------------+ | arg | Determined from data | $micheline.michelson_v1.expression | +-----------------------+----------------------+------------------------------------------------------------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------------------+------------------------------------------------------------------------------+ | annots | Variable | bytes | +-----------------------+----------------------+------------------------------------------------------------------------------+ Prim (2 args, no annot) (tag 7) =============================== +------+----------------------+------------------------------------------------------------------------------+ | Name | Size | Contents | +======+======================+==============================================================================+ | Tag | 1 byte | unsigned 8-bit integer | +------+----------------------+------------------------------------------------------------------------------+ | prim | 1 byte | unsigned 8-bit integer encoding an enumeration (see michelson.v1.primitives) | +------+----------------------+------------------------------------------------------------------------------+ | arg1 | Determined from data | $micheline.michelson_v1.expression | +------+----------------------+------------------------------------------------------------------------------+ | arg2 | Determined from data | $micheline.michelson_v1.expression | +------+----------------------+------------------------------------------------------------------------------+ Prim (2 args + annot) (tag 8) ============================= +-----------------------+----------------------+------------------------------------------------------------------------------+ | Name | Size | Contents | +=======================+======================+==============================================================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------------+----------------------+------------------------------------------------------------------------------+ | prim | 1 byte | unsigned 8-bit integer encoding an enumeration (see michelson.v1.primitives) | +-----------------------+----------------------+------------------------------------------------------------------------------+ | arg1 | Determined from data | $micheline.michelson_v1.expression | +-----------------------+----------------------+------------------------------------------------------------------------------+ | arg2 | Determined from data | $micheline.michelson_v1.expression | +-----------------------+----------------------+------------------------------------------------------------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------------------+------------------------------------------------------------------------------+ | annots | Variable | bytes | +-----------------------+----------------------+------------------------------------------------------------------------------+ Generic prim (any number of args with or without annot) (tag 9) =============================================================== +-----------------------+----------+------------------------------------------------------------------------------+ | Name | Size | Contents | +=======================+==========+==============================================================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------------+----------+------------------------------------------------------------------------------+ | prim | 1 byte | unsigned 8-bit integer encoding an enumeration (see michelson.v1.primitives) | +-----------------------+----------+------------------------------------------------------------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+------------------------------------------------------------------------------+ | args | Variable | sequence of $micheline.michelson_v1.expression | +-----------------------+----------+------------------------------------------------------------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+------------------------------------------------------------------------------+ | annots | Variable | bytes | +-----------------------+----------+------------------------------------------------------------------------------+ Bytes (tag 10) ============== +-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------------+----------+-------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | bytes | Variable | bytes | +-----------------------+----------+-------------------------+ X_5 (Determined from data, 8-bit tag) ************************************* Michelson_expr (tag 0) ====================== +-----------------+----------------------+------------------------------------+ | Name | Size | Contents | +=================+======================+====================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------+----------------------+------------------------------------+ | Unnamed field 0 | Determined from data | $micheline.michelson_v1.expression | +-----------------+----------------------+------------------------------------+ Dune_expr (tag 1) ================= +-----------+----------------------+------------------------+ | Name | Size | Contents | +===========+======================+========================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------+----------------------+------------------------+ | dune_expr | Determined from data | $X_3 | +-----------+----------------------+------------------------+ Dune_code (tag 2) ================= +-----------+----------------------+------------------------+ | Name | Size | Contents | +===========+======================+========================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------+----------------------+------------------------+ | dune_code | Determined from data | $X_1 | +-----------+----------------------+------------------------+ Michelson source (tag 3) ======================== +-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------------+----------+-------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | michelson | Variable | bytes | +-----------------------+----------+-------------------------+
$micheline.michelson_v1.expression || { "dune_expr": "VOID" || any || any } || { "dune_code": "NOOP" || any || any || any } || { "michelson": $unistring } || null $bignum: /* Big number Decimal representation of a big number */ string $micheline.michelson_v1.expression: { "int": $bignum } || { "string": $unistring } || { "bytes": /^[a-zA-Z0-9]+$/ } || [ $micheline.michelson_v1.expression ... ] || { "prim": $michelson.v1.primitives, "args"?: [ $micheline.michelson_v1.expression ... ], "annots"?: [ string ... ] } $michelson.v1.primitives: "ADMIN_ACCOUNTS" | "ADD" | "IF_NONE" | "SWAP" | "nat" | "Elt" | "big_map" | "map" | "SHA256" | "Right" | "LEFT" | "storage" | "SLICE" | "False" | "SHA512" | "BALANCE" | "EMPTY_BIG_MAP" | "OR" | "XOR" | "lambda" | "COMPARE" | "option" | "NEQ" | "BLOCK_LEVEL" | "AMOUNT" | "DIP" | "ABS" | "chain_id" | "MEM" | "ALLOW_PEERS" | "CONCAT" | "LOOP_LEFT" | "UPDATE" | "DUP" | "IS_IMPLICIT" | "CAR" | "CONS" | "NONE" | "GET" | "Left" | "SIZE" | "GET_ACCOUNT_INFO" | "DROP" | "NIL" | "DIG" | "RENAME" | "True" | "parameter" | "EQ" | "Pair" | "ADDRESS" | "AND" | "set" | "CHECK_SIGNATURE" | "IF_LEFT" | "LAMBDA" | "CREATE_CONTRACT" | "NEG" | "or" | "BLAKE2B" | "bytes" | "SET_DELEGATE" | "CONTRACT" | "LSL" | "SUB" | "IMPLICIT_ACCOUNT" | "PACK" | "list" | "PAIR" | "contract" | "GT" | "STEPS_TO_QUOTA" | "TRANSFER_TOKENS" | "CDR" | "PUSH" | "CHAIN_ID" | "signature" | "DUG" | "SELF" | "LSR" | "key" | "Unit" | "Some" | "UNPACK" | "INT" | "pair" | "COLLECT_CALL" | "ISNAT" | "EXEC" | "NOW" | "LOOP" | "string" | "MAP" | "None" | "address" | "EMPTY_SET" | "MUL" | "timestamp" | "LT" | "ADMIN_PROTOCOL" | "SOURCE" | "mutez" | "SENDER" | "IF_CONS" | "RIGHT" | "LE" | "IF" | "SOME" | "CAST" | "int" | "REVOKE_PEERS" | "key_hash" | "unit" | "EMPTY_MAP" | "APPLY" | "MANAGE_ACCOUNT" | "bool" | "operation" | "FAILWITH" | "GET_BALANCE" | "HASH_KEY" | "NOT" | "UNIT" | "EDIV" | "CREATE_ACCOUNT" | "GE" | "ITER" | "code" $unistring: /* Universal string representation Either a plain UTF8 string, or a sequence of bytes for strings that contain invalid byte sequences. */ string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
+-----------------+----------------------+----------+ | Name | Size | Contents | +=================+======================+==========+ | Unnamed field 0 | Determined from data | $X_6 | +-----------------+----------------------+----------+ X_0 (Determined from data, 8-bit tag) ************************************* Contract (parser output) (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 | bytes | +-----------------------+----------+-------------------------+ Live contract (deployed) (tag 1) ================================ +-----------------------+----------+-------------------------+ | 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 | +-----------------------+----------+-------------------------+ Fee code (tag 2) ================ +-----------------------+----------+-------------------------+ | 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 | +-----------------------+----------+-------------------------+ X_1 (Determined from data, 8-bit tag) ************************************* Lang1.0.1.code (tag 0) ====================== +-----------------+---------+----------------------------------------------------+ | Name | Size | Contents | +=================+=========+====================================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------+---------+----------------------------------------------------+ | Unnamed field 0 | 0 bytes | placeholder (not actually present in the encoding) | +-----------------+---------+----------------------------------------------------+ Love.1.0.code (tag 1) ===================== +-----------------+----------------------+------------------------+ | Name | Size | Contents | +=================+======================+========================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------+----------------------+------------------------+ | Unnamed field 0 | Determined from data | $X_0 | +-----------------+----------------------+------------------------+ X_2 (Determined from data, 8-bit tag) ************************************* Value (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 | bytes | +-----------------------+----------+-------------------------+ Type (tag 1) ============ +-----------------------+----------+-------------------------+ | 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 | +-----------------------+----------+-------------------------+ X_3 (Determined from data, 8-bit tag) ************************************* Lang1.0.1.const (tag 0) ======================= +-----------------+---------+----------------------------------------------------+ | Name | Size | Contents | +=================+=========+====================================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------+---------+----------------------------------------------------+ | Unnamed field 0 | 0 bytes | placeholder (not actually present in the encoding) | +-----------------+---------+----------------------------------------------------+ Love.1.0.const (tag 1) ====================== +-----------------+----------------------+------------------------+ | Name | Size | Contents | +=================+======================+========================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------+----------------------+------------------------+ | Unnamed field 0 | Determined from data | $X_2 | +-----------------+----------------------+------------------------+ michelson.v1.primitives (Enumeration: unsigned 8-bit integer): ************************************************************** +-------------+------------------+ | Case number | Encoded string | +=============+==================+ | 0 | parameter | +-------------+------------------+ | 1 | storage | +-------------+------------------+ | 2 | code | +-------------+------------------+ | 3 | False | +-------------+------------------+ | 4 | Elt | +-------------+------------------+ | 5 | Left | +-------------+------------------+ | 6 | None | +-------------+------------------+ | 7 | Pair | +-------------+------------------+ | 8 | Right | +-------------+------------------+ | 9 | Some | +-------------+------------------+ | 10 | True | +-------------+------------------+ | 11 | Unit | +-------------+------------------+ | 12 | PACK | +-------------+------------------+ | 13 | UNPACK | +-------------+------------------+ | 14 | BLAKE2B | +-------------+------------------+ | 15 | SHA256 | +-------------+------------------+ | 16 | SHA512 | +-------------+------------------+ | 17 | ABS | +-------------+------------------+ | 18 | ADD | +-------------+------------------+ | 19 | AMOUNT | +-------------+------------------+ | 20 | AND | +-------------+------------------+ | 21 | BALANCE | +-------------+------------------+ | 22 | CAR | +-------------+------------------+ | 23 | CDR | +-------------+------------------+ | 24 | CHECK_SIGNATURE | +-------------+------------------+ | 25 | COMPARE | +-------------+------------------+ | 26 | CONCAT | +-------------+------------------+ | 27 | CONS | +-------------+------------------+ | 28 | CREATE_ACCOUNT | +-------------+------------------+ | 29 | CREATE_CONTRACT | +-------------+------------------+ | 30 | IMPLICIT_ACCOUNT | +-------------+------------------+ | 31 | DIP | +-------------+------------------+ | 32 | DROP | +-------------+------------------+ | 33 | DUP | +-------------+------------------+ | 34 | EDIV | +-------------+------------------+ | 35 | EMPTY_MAP | +-------------+------------------+ | 36 | EMPTY_SET | +-------------+------------------+ | 37 | EQ | +-------------+------------------+ | 38 | EXEC | +-------------+------------------+ | 39 | FAILWITH | +-------------+------------------+ | 40 | GE | +-------------+------------------+ | 41 | GET | +-------------+------------------+ | 42 | GT | +-------------+------------------+ | 43 | HASH_KEY | +-------------+------------------+ | 44 | IF | +-------------+------------------+ | 45 | IF_CONS | +-------------+------------------+ | 46 | IF_LEFT | +-------------+------------------+ | 47 | IF_NONE | +-------------+------------------+ | 48 | INT | +-------------+------------------+ | 49 | LAMBDA | +-------------+------------------+ | 50 | LE | +-------------+------------------+ | 51 | LEFT | +-------------+------------------+ | 52 | LOOP | +-------------+------------------+ | 53 | LSL | +-------------+------------------+ | 54 | LSR | +-------------+------------------+ | 55 | LT | +-------------+------------------+ | 56 | MAP | +-------------+------------------+ | 57 | MEM | +-------------+------------------+ | 58 | MUL | +-------------+------------------+ | 59 | NEG | +-------------+------------------+ | 60 | NEQ | +-------------+------------------+ | 61 | NIL | +-------------+------------------+ | 62 | NONE | +-------------+------------------+ | 63 | NOT | +-------------+------------------+ | 64 | NOW | +-------------+------------------+ | 65 | OR | +-------------+------------------+ | 66 | PAIR | +-------------+------------------+ | 67 | PUSH | +-------------+------------------+ | 68 | RIGHT | +-------------+------------------+ | 69 | SIZE | +-------------+------------------+ | 70 | SOME | +-------------+------------------+ | 71 | SOURCE | +-------------+------------------+ | 72 | SENDER | +-------------+------------------+ | 73 | SELF | +-------------+------------------+ | 74 | STEPS_TO_QUOTA | +-------------+------------------+ | 75 | SUB | +-------------+------------------+ | 76 | SWAP | +-------------+------------------+ | 77 | TRANSFER_TOKENS | +-------------+------------------+ | 78 | SET_DELEGATE | +-------------+------------------+ | 79 | UNIT | +-------------+------------------+ | 80 | UPDATE | +-------------+------------------+ | 81 | XOR | +-------------+------------------+ | 82 | ITER | +-------------+------------------+ | 83 | LOOP_LEFT | +-------------+------------------+ | 84 | ADDRESS | +-------------+------------------+ | 85 | CONTRACT | +-------------+------------------+ | 86 | ISNAT | +-------------+------------------+ | 87 | CAST | +-------------+------------------+ | 88 | RENAME | +-------------+------------------+ | 89 | bool | +-------------+------------------+ | 90 | contract | +-------------+------------------+ | 91 | int | +-------------+------------------+ | 92 | key | +-------------+------------------+ | 93 | key_hash | +-------------+------------------+ | 94 | lambda | +-------------+------------------+ | 95 | list | +-------------+------------------+ | 96 | map | +-------------+------------------+ | 97 | big_map | +-------------+------------------+ | 98 | nat | +-------------+------------------+ | 99 | option | +-------------+------------------+ | 100 | or | +-------------+------------------+ | 101 | pair | +-------------+------------------+ | 102 | set | +-------------+------------------+ | 103 | signature | +-------------+------------------+ | 104 | string | +-------------+------------------+ | 105 | bytes | +-------------+------------------+ | 106 | mutez | +-------------+------------------+ | 107 | timestamp | +-------------+------------------+ | 108 | unit | +-------------+------------------+ | 109 | operation | +-------------+------------------+ | 110 | address | +-------------+------------------+ | 111 | SLICE | +-------------+------------------+ | 112 | GET_BALANCE | +-------------+------------------+ | 113 | BLOCK_LEVEL | +-------------+------------------+ | 114 | IS_IMPLICIT | +-------------+------------------+ | 115 | COLLECT_CALL | +-------------+------------------+ | 116 | DIG | +-------------+------------------+ | 117 | DUG | +-------------+------------------+ | 118 | EMPTY_BIG_MAP | +-------------+------------------+ | 119 | APPLY | +-------------+------------------+ | 120 | chain_id | +-------------+------------------+ | 121 | CHAIN_ID | +-------------+------------------+ | 122 | GET_ACCOUNT_INFO | +-------------+------------------+ | 123 | MANAGE_ACCOUNT | +-------------+------------------+ | 124 | ADMIN_ACCOUNTS | +-------------+------------------+ | 125 | ADMIN_PROTOCOL | +-------------+------------------+ | 126 | ALLOW_PEERS | +-------------+------------------+ | 127 | REVOKE_PEERS | +-------------+------------------+ Z.t *** A variable length sequence of bytes, encoding a Zarith number. Each byte has a running unary size bit: the most significant bit of each byte tells is this is the last byte in the sequence (0) or if there is more to read (1). The second most significant bit of the first byte is reserved for the sign (positive if zero). Size and sign bits ignored, data is then the binary representation of the absolute value of the number in little endian order. +------+----------------------+----------+ | Name | Size | Contents | +======+======================+==========+ | Z.t | Determined from data | bytes | +------+----------------------+----------+ micheline.michelson_v1.expression (Determined from data, 8-bit tag) ******************************************************************* Int (tag 0) =========== +------+----------------------+------------------------+ | Name | Size | Contents | +======+======================+========================+ | Tag | 1 byte | unsigned 8-bit integer | +------+----------------------+------------------------+ | int | Determined from data | $Z.t | +------+----------------------+------------------------+ String (tag 1) ============== +-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------------+----------+-------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | string | Variable | bytes | +-----------------------+----------+-------------------------+ Sequence (tag 2) ================ +-----------------------+----------+------------------------------------------------+ | 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 $micheline.michelson_v1.expression | +-----------------------+----------+------------------------------------------------+ Prim (no args, annot) (tag 3) ============================= +------+--------+------------------------------------------------------------------------------+ | Name | Size | Contents | +======+========+==============================================================================+ | Tag | 1 byte | unsigned 8-bit integer | +------+--------+------------------------------------------------------------------------------+ | prim | 1 byte | unsigned 8-bit integer encoding an enumeration (see michelson.v1.primitives) | +------+--------+------------------------------------------------------------------------------+ Prim (no args + annot) (tag 4) ============================== +-----------------------+----------+------------------------------------------------------------------------------+ | Name | Size | Contents | +=======================+==========+==============================================================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------------+----------+------------------------------------------------------------------------------+ | prim | 1 byte | unsigned 8-bit integer encoding an enumeration (see michelson.v1.primitives) | +-----------------------+----------+------------------------------------------------------------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+------------------------------------------------------------------------------+ | annots | Variable | bytes | +-----------------------+----------+------------------------------------------------------------------------------+ Prim (1 arg, no annot) (tag 5) ============================== +------+----------------------+------------------------------------------------------------------------------+ | Name | Size | Contents | +======+======================+==============================================================================+ | Tag | 1 byte | unsigned 8-bit integer | +------+----------------------+------------------------------------------------------------------------------+ | prim | 1 byte | unsigned 8-bit integer encoding an enumeration (see michelson.v1.primitives) | +------+----------------------+------------------------------------------------------------------------------+ | arg | Determined from data | $micheline.michelson_v1.expression | +------+----------------------+------------------------------------------------------------------------------+ Prim (1 arg + annot) (tag 6) ============================ +-----------------------+----------------------+------------------------------------------------------------------------------+ | Name | Size | Contents | +=======================+======================+==============================================================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------------+----------------------+------------------------------------------------------------------------------+ | prim | 1 byte | unsigned 8-bit integer encoding an enumeration (see michelson.v1.primitives) | +-----------------------+----------------------+------------------------------------------------------------------------------+ | arg | Determined from data | $micheline.michelson_v1.expression | +-----------------------+----------------------+------------------------------------------------------------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------------------+------------------------------------------------------------------------------+ | annots | Variable | bytes | +-----------------------+----------------------+------------------------------------------------------------------------------+ Prim (2 args, no annot) (tag 7) =============================== +------+----------------------+------------------------------------------------------------------------------+ | Name | Size | Contents | +======+======================+==============================================================================+ | Tag | 1 byte | unsigned 8-bit integer | +------+----------------------+------------------------------------------------------------------------------+ | prim | 1 byte | unsigned 8-bit integer encoding an enumeration (see michelson.v1.primitives) | +------+----------------------+------------------------------------------------------------------------------+ | arg1 | Determined from data | $micheline.michelson_v1.expression | +------+----------------------+------------------------------------------------------------------------------+ | arg2 | Determined from data | $micheline.michelson_v1.expression | +------+----------------------+------------------------------------------------------------------------------+ Prim (2 args + annot) (tag 8) ============================= +-----------------------+----------------------+------------------------------------------------------------------------------+ | Name | Size | Contents | +=======================+======================+==============================================================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------------+----------------------+------------------------------------------------------------------------------+ | prim | 1 byte | unsigned 8-bit integer encoding an enumeration (see michelson.v1.primitives) | +-----------------------+----------------------+------------------------------------------------------------------------------+ | arg1 | Determined from data | $micheline.michelson_v1.expression | +-----------------------+----------------------+------------------------------------------------------------------------------+ | arg2 | Determined from data | $micheline.michelson_v1.expression | +-----------------------+----------------------+------------------------------------------------------------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------------------+------------------------------------------------------------------------------+ | annots | Variable | bytes | +-----------------------+----------------------+------------------------------------------------------------------------------+ Generic prim (any number of args with or without annot) (tag 9) =============================================================== +-----------------------+----------+------------------------------------------------------------------------------+ | Name | Size | Contents | +=======================+==========+==============================================================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------------+----------+------------------------------------------------------------------------------+ | prim | 1 byte | unsigned 8-bit integer encoding an enumeration (see michelson.v1.primitives) | +-----------------------+----------+------------------------------------------------------------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+------------------------------------------------------------------------------+ | args | Variable | sequence of $micheline.michelson_v1.expression | +-----------------------+----------+------------------------------------------------------------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+------------------------------------------------------------------------------+ | annots | Variable | bytes | +-----------------------+----------+------------------------------------------------------------------------------+ Bytes (tag 10) ============== +-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------------+----------+-------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | bytes | Variable | bytes | +-----------------------+----------+-------------------------+ X_5 (Determined from data, 8-bit tag) ************************************* Michelson_expr (tag 0) ====================== +-----------------+----------------------+------------------------------------+ | Name | Size | Contents | +=================+======================+====================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------+----------------------+------------------------------------+ | Unnamed field 0 | Determined from data | $micheline.michelson_v1.expression | +-----------------+----------------------+------------------------------------+ Dune_expr (tag 1) ================= +-----------+----------------------+------------------------+ | Name | Size | Contents | +===========+======================+========================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------+----------------------+------------------------+ | dune_expr | Determined from data | $X_3 | +-----------+----------------------+------------------------+ Dune_code (tag 2) ================= +-----------+----------------------+------------------------+ | Name | Size | Contents | +===========+======================+========================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------+----------------------+------------------------+ | dune_code | Determined from data | $X_1 | +-----------+----------------------+------------------------+ Michelson source (tag 3) ======================== +-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------------+----------+-------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | michelson | Variable | bytes | +-----------------------+----------+-------------------------+ X_6 (Determined from data, 8-bit tag) ************************************* None (tag 0) ============ +-----------------+---------+----------------------------------------------------+ | Name | Size | Contents | +=================+=========+====================================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------+---------+----------------------------------------------------+ | Unnamed field 0 | 0 bytes | placeholder (not actually present in the encoding) | +-----------------+---------+----------------------------------------------------+ Some (tag 1) ============ +-----------------+----------------------+------------------------+ | Name | Size | Contents | +=================+======================+========================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------+----------------------+------------------------+ | Unnamed field 0 | Determined from data | $X_5 | +-----------------+----------------------+------------------------+
GET ../<block_id>/context/big_maps/<big_map_id>/<script_expr>
Access the value associated with a key in a big map.
$micheline.michelson_v1.expression || { "dune_expr": "VOID" || any || any } || { "dune_code": "NOOP" || any || any || any } || { "michelson": $unistring } $bignum: /* Big number Decimal representation of a big number */ string $micheline.michelson_v1.expression: { "int": $bignum } || { "string": $unistring } || { "bytes": /^[a-zA-Z0-9]+$/ } || [ $micheline.michelson_v1.expression ... ] || { "prim": $michelson.v1.primitives, "args"?: [ $micheline.michelson_v1.expression ... ], "annots"?: [ string ... ] } $michelson.v1.primitives: "ADMIN_ACCOUNTS" | "ADD" | "IF_NONE" | "SWAP" | "nat" | "Elt" | "big_map" | "map" | "SHA256" | "Right" | "LEFT" | "storage" | "SLICE" | "False" | "SHA512" | "BALANCE" | "EMPTY_BIG_MAP" | "OR" | "XOR" | "lambda" | "COMPARE" | "option" | "NEQ" | "BLOCK_LEVEL" | "AMOUNT" | "DIP" | "ABS" | "chain_id" | "MEM" | "ALLOW_PEERS" | "CONCAT" | "LOOP_LEFT" | "UPDATE" | "DUP" | "IS_IMPLICIT" | "CAR" | "CONS" | "NONE" | "GET" | "Left" | "SIZE" | "GET_ACCOUNT_INFO" | "DROP" | "NIL" | "DIG" | "RENAME" | "True" | "parameter" | "EQ" | "Pair" | "ADDRESS" | "AND" | "set" | "CHECK_SIGNATURE" | "IF_LEFT" | "LAMBDA" | "CREATE_CONTRACT" | "NEG" | "or" | "BLAKE2B" | "bytes" | "SET_DELEGATE" | "CONTRACT" | "LSL" | "SUB" | "IMPLICIT_ACCOUNT" | "PACK" | "list" | "PAIR" | "contract" | "GT" | "STEPS_TO_QUOTA" | "TRANSFER_TOKENS" | "CDR" | "PUSH" | "CHAIN_ID" | "signature" | "DUG" | "SELF" | "LSR" | "key" | "Unit" | "Some" | "UNPACK" | "INT" | "pair" | "COLLECT_CALL" | "ISNAT" | "EXEC" | "NOW" | "LOOP" | "string" | "MAP" | "None" | "address" | "EMPTY_SET" | "MUL" | "timestamp" | "LT" | "ADMIN_PROTOCOL" | "SOURCE" | "mutez" | "SENDER" | "IF_CONS" | "RIGHT" | "LE" | "IF" | "SOME" | "CAST" | "int" | "REVOKE_PEERS" | "key_hash" | "unit" | "EMPTY_MAP" | "APPLY" | "MANAGE_ACCOUNT" | "bool" | "operation" | "FAILWITH" | "GET_BALANCE" | "HASH_KEY" | "NOT" | "UNIT" | "EDIV" | "CREATE_ACCOUNT" | "GE" | "ITER" | "code" $unistring: /* Universal string representation Either a plain UTF8 string, or a sequence of bytes for strings that contain invalid byte sequences. */ string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
+-----------------+----------------------+----------+ | Name | Size | Contents | +=================+======================+==========+ | Unnamed field 0 | Determined from data | $X_5 | +-----------------+----------------------+----------+ X_0 (Determined from data, 8-bit tag) ************************************* Contract (parser output) (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 | bytes | +-----------------------+----------+-------------------------+ Live contract (deployed) (tag 1) ================================ +-----------------------+----------+-------------------------+ | 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 | +-----------------------+----------+-------------------------+ Fee code (tag 2) ================ +-----------------------+----------+-------------------------+ | 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 | +-----------------------+----------+-------------------------+ X_1 (Determined from data, 8-bit tag) ************************************* Lang1.0.1.code (tag 0) ====================== +-----------------+---------+----------------------------------------------------+ | Name | Size | Contents | +=================+=========+====================================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------+---------+----------------------------------------------------+ | Unnamed field 0 | 0 bytes | placeholder (not actually present in the encoding) | +-----------------+---------+----------------------------------------------------+ Love.1.0.code (tag 1) ===================== +-----------------+----------------------+------------------------+ | Name | Size | Contents | +=================+======================+========================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------+----------------------+------------------------+ | Unnamed field 0 | Determined from data | $X_0 | +-----------------+----------------------+------------------------+ X_2 (Determined from data, 8-bit tag) ************************************* Value (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 | bytes | +-----------------------+----------+-------------------------+ Type (tag 1) ============ +-----------------------+----------+-------------------------+ | 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 | +-----------------------+----------+-------------------------+ X_3 (Determined from data, 8-bit tag) ************************************* Lang1.0.1.const (tag 0) ======================= +-----------------+---------+----------------------------------------------------+ | Name | Size | Contents | +=================+=========+====================================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------+---------+----------------------------------------------------+ | Unnamed field 0 | 0 bytes | placeholder (not actually present in the encoding) | +-----------------+---------+----------------------------------------------------+ Love.1.0.const (tag 1) ====================== +-----------------+----------------------+------------------------+ | Name | Size | Contents | +=================+======================+========================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------+----------------------+------------------------+ | Unnamed field 0 | Determined from data | $X_2 | +-----------------+----------------------+------------------------+ michelson.v1.primitives (Enumeration: unsigned 8-bit integer): ************************************************************** +-------------+------------------+ | Case number | Encoded string | +=============+==================+ | 0 | parameter | +-------------+------------------+ | 1 | storage | +-------------+------------------+ | 2 | code | +-------------+------------------+ | 3 | False | +-------------+------------------+ | 4 | Elt | +-------------+------------------+ | 5 | Left | +-------------+------------------+ | 6 | None | +-------------+------------------+ | 7 | Pair | +-------------+------------------+ | 8 | Right | +-------------+------------------+ | 9 | Some | +-------------+------------------+ | 10 | True | +-------------+------------------+ | 11 | Unit | +-------------+------------------+ | 12 | PACK | +-------------+------------------+ | 13 | UNPACK | +-------------+------------------+ | 14 | BLAKE2B | +-------------+------------------+ | 15 | SHA256 | +-------------+------------------+ | 16 | SHA512 | +-------------+------------------+ | 17 | ABS | +-------------+------------------+ | 18 | ADD | +-------------+------------------+ | 19 | AMOUNT | +-------------+------------------+ | 20 | AND | +-------------+------------------+ | 21 | BALANCE | +-------------+------------------+ | 22 | CAR | +-------------+------------------+ | 23 | CDR | +-------------+------------------+ | 24 | CHECK_SIGNATURE | +-------------+------------------+ | 25 | COMPARE | +-------------+------------------+ | 26 | CONCAT | +-------------+------------------+ | 27 | CONS | +-------------+------------------+ | 28 | CREATE_ACCOUNT | +-------------+------------------+ | 29 | CREATE_CONTRACT | +-------------+------------------+ | 30 | IMPLICIT_ACCOUNT | +-------------+------------------+ | 31 | DIP | +-------------+------------------+ | 32 | DROP | +-------------+------------------+ | 33 | DUP | +-------------+------------------+ | 34 | EDIV | +-------------+------------------+ | 35 | EMPTY_MAP | +-------------+------------------+ | 36 | EMPTY_SET | +-------------+------------------+ | 37 | EQ | +-------------+------------------+ | 38 | EXEC | +-------------+------------------+ | 39 | FAILWITH | +-------------+------------------+ | 40 | GE | +-------------+------------------+ | 41 | GET | +-------------+------------------+ | 42 | GT | +-------------+------------------+ | 43 | HASH_KEY | +-------------+------------------+ | 44 | IF | +-------------+------------------+ | 45 | IF_CONS | +-------------+------------------+ | 46 | IF_LEFT | +-------------+------------------+ | 47 | IF_NONE | +-------------+------------------+ | 48 | INT | +-------------+------------------+ | 49 | LAMBDA | +-------------+------------------+ | 50 | LE | +-------------+------------------+ | 51 | LEFT | +-------------+------------------+ | 52 | LOOP | +-------------+------------------+ | 53 | LSL | +-------------+------------------+ | 54 | LSR | +-------------+------------------+ | 55 | LT | +-------------+------------------+ | 56 | MAP | +-------------+------------------+ | 57 | MEM | +-------------+------------------+ | 58 | MUL | +-------------+------------------+ | 59 | NEG | +-------------+------------------+ | 60 | NEQ | +-------------+------------------+ | 61 | NIL | +-------------+------------------+ | 62 | NONE | +-------------+------------------+ | 63 | NOT | +-------------+------------------+ | 64 | NOW | +-------------+------------------+ | 65 | OR | +-------------+------------------+ | 66 | PAIR | +-------------+------------------+ | 67 | PUSH | +-------------+------------------+ | 68 | RIGHT | +-------------+------------------+ | 69 | SIZE | +-------------+------------------+ | 70 | SOME | +-------------+------------------+ | 71 | SOURCE | +-------------+------------------+ | 72 | SENDER | +-------------+------------------+ | 73 | SELF | +-------------+------------------+ | 74 | STEPS_TO_QUOTA | +-------------+------------------+ | 75 | SUB | +-------------+------------------+ | 76 | SWAP | +-------------+------------------+ | 77 | TRANSFER_TOKENS | +-------------+------------------+ | 78 | SET_DELEGATE | +-------------+------------------+ | 79 | UNIT | +-------------+------------------+ | 80 | UPDATE | +-------------+------------------+ | 81 | XOR | +-------------+------------------+ | 82 | ITER | +-------------+------------------+ | 83 | LOOP_LEFT | +-------------+------------------+ | 84 | ADDRESS | +-------------+------------------+ | 85 | CONTRACT | +-------------+------------------+ | 86 | ISNAT | +-------------+------------------+ | 87 | CAST | +-------------+------------------+ | 88 | RENAME | +-------------+------------------+ | 89 | bool | +-------------+------------------+ | 90 | contract | +-------------+------------------+ | 91 | int | +-------------+------------------+ | 92 | key | +-------------+------------------+ | 93 | key_hash | +-------------+------------------+ | 94 | lambda | +-------------+------------------+ | 95 | list | +-------------+------------------+ | 96 | map | +-------------+------------------+ | 97 | big_map | +-------------+------------------+ | 98 | nat | +-------------+------------------+ | 99 | option | +-------------+------------------+ | 100 | or | +-------------+------------------+ | 101 | pair | +-------------+------------------+ | 102 | set | +-------------+------------------+ | 103 | signature | +-------------+------------------+ | 104 | string | +-------------+------------------+ | 105 | bytes | +-------------+------------------+ | 106 | mutez | +-------------+------------------+ | 107 | timestamp | +-------------+------------------+ | 108 | unit | +-------------+------------------+ | 109 | operation | +-------------+------------------+ | 110 | address | +-------------+------------------+ | 111 | SLICE | +-------------+------------------+ | 112 | GET_BALANCE | +-------------+------------------+ | 113 | BLOCK_LEVEL | +-------------+------------------+ | 114 | IS_IMPLICIT | +-------------+------------------+ | 115 | COLLECT_CALL | +-------------+------------------+ | 116 | DIG | +-------------+------------------+ | 117 | DUG | +-------------+------------------+ | 118 | EMPTY_BIG_MAP | +-------------+------------------+ | 119 | APPLY | +-------------+------------------+ | 120 | chain_id | +-------------+------------------+ | 121 | CHAIN_ID | +-------------+------------------+ | 122 | GET_ACCOUNT_INFO | +-------------+------------------+ | 123 | MANAGE_ACCOUNT | +-------------+------------------+ | 124 | ADMIN_ACCOUNTS | +-------------+------------------+ | 125 | ADMIN_PROTOCOL | +-------------+------------------+ | 126 | ALLOW_PEERS | +-------------+------------------+ | 127 | REVOKE_PEERS | +-------------+------------------+ Z.t *** A variable length sequence of bytes, encoding a Zarith number. Each byte has a running unary size bit: the most significant bit of each byte tells is this is the last byte in the sequence (0) or if there is more to read (1). The second most significant bit of the first byte is reserved for the sign (positive if zero). Size and sign bits ignored, data is then the binary representation of the absolute value of the number in little endian order. +------+----------------------+----------+ | Name | Size | Contents | +======+======================+==========+ | Z.t | Determined from data | bytes | +------+----------------------+----------+ micheline.michelson_v1.expression (Determined from data, 8-bit tag) ******************************************************************* Int (tag 0) =========== +------+----------------------+------------------------+ | Name | Size | Contents | +======+======================+========================+ | Tag | 1 byte | unsigned 8-bit integer | +------+----------------------+------------------------+ | int | Determined from data | $Z.t | +------+----------------------+------------------------+ String (tag 1) ============== +-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------------+----------+-------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | string | Variable | bytes | +-----------------------+----------+-------------------------+ Sequence (tag 2) ================ +-----------------------+----------+------------------------------------------------+ | 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 $micheline.michelson_v1.expression | +-----------------------+----------+------------------------------------------------+ Prim (no args, annot) (tag 3) ============================= +------+--------+------------------------------------------------------------------------------+ | Name | Size | Contents | +======+========+==============================================================================+ | Tag | 1 byte | unsigned 8-bit integer | +------+--------+------------------------------------------------------------------------------+ | prim | 1 byte | unsigned 8-bit integer encoding an enumeration (see michelson.v1.primitives) | +------+--------+------------------------------------------------------------------------------+ Prim (no args + annot) (tag 4) ============================== +-----------------------+----------+------------------------------------------------------------------------------+ | Name | Size | Contents | +=======================+==========+==============================================================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------------+----------+------------------------------------------------------------------------------+ | prim | 1 byte | unsigned 8-bit integer encoding an enumeration (see michelson.v1.primitives) | +-----------------------+----------+------------------------------------------------------------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+------------------------------------------------------------------------------+ | annots | Variable | bytes | +-----------------------+----------+------------------------------------------------------------------------------+ Prim (1 arg, no annot) (tag 5) ============================== +------+----------------------+------------------------------------------------------------------------------+ | Name | Size | Contents | +======+======================+==============================================================================+ | Tag | 1 byte | unsigned 8-bit integer | +------+----------------------+------------------------------------------------------------------------------+ | prim | 1 byte | unsigned 8-bit integer encoding an enumeration (see michelson.v1.primitives) | +------+----------------------+------------------------------------------------------------------------------+ | arg | Determined from data | $micheline.michelson_v1.expression | +------+----------------------+------------------------------------------------------------------------------+ Prim (1 arg + annot) (tag 6) ============================ +-----------------------+----------------------+------------------------------------------------------------------------------+ | Name | Size | Contents | +=======================+======================+==============================================================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------------+----------------------+------------------------------------------------------------------------------+ | prim | 1 byte | unsigned 8-bit integer encoding an enumeration (see michelson.v1.primitives) | +-----------------------+----------------------+------------------------------------------------------------------------------+ | arg | Determined from data | $micheline.michelson_v1.expression | +-----------------------+----------------------+------------------------------------------------------------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------------------+------------------------------------------------------------------------------+ | annots | Variable | bytes | +-----------------------+----------------------+------------------------------------------------------------------------------+ Prim (2 args, no annot) (tag 7) =============================== +------+----------------------+------------------------------------------------------------------------------+ | Name | Size | Contents | +======+======================+==============================================================================+ | Tag | 1 byte | unsigned 8-bit integer | +------+----------------------+------------------------------------------------------------------------------+ | prim | 1 byte | unsigned 8-bit integer encoding an enumeration (see michelson.v1.primitives) | +------+----------------------+------------------------------------------------------------------------------+ | arg1 | Determined from data | $micheline.michelson_v1.expression | +------+----------------------+------------------------------------------------------------------------------+ | arg2 | Determined from data | $micheline.michelson_v1.expression | +------+----------------------+------------------------------------------------------------------------------+ Prim (2 args + annot) (tag 8) ============================= +-----------------------+----------------------+------------------------------------------------------------------------------+ | Name | Size | Contents | +=======================+======================+==============================================================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------------+----------------------+------------------------------------------------------------------------------+ | prim | 1 byte | unsigned 8-bit integer encoding an enumeration (see michelson.v1.primitives) | +-----------------------+----------------------+------------------------------------------------------------------------------+ | arg1 | Determined from data | $micheline.michelson_v1.expression | +-----------------------+----------------------+------------------------------------------------------------------------------+ | arg2 | Determined from data | $micheline.michelson_v1.expression | +-----------------------+----------------------+------------------------------------------------------------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------------------+------------------------------------------------------------------------------+ | annots | Variable | bytes | +-----------------------+----------------------+------------------------------------------------------------------------------+ Generic prim (any number of args with or without annot) (tag 9) =============================================================== +-----------------------+----------+------------------------------------------------------------------------------+ | Name | Size | Contents | +=======================+==========+==============================================================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------------+----------+------------------------------------------------------------------------------+ | prim | 1 byte | unsigned 8-bit integer encoding an enumeration (see michelson.v1.primitives) | +-----------------------+----------+------------------------------------------------------------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+------------------------------------------------------------------------------+ | args | Variable | sequence of $micheline.michelson_v1.expression | +-----------------------+----------+------------------------------------------------------------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+------------------------------------------------------------------------------+ | annots | Variable | bytes | +-----------------------+----------+------------------------------------------------------------------------------+ Bytes (tag 10) ============== +-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------------+----------+-------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | bytes | Variable | bytes | +-----------------------+----------+-------------------------+ X_5 (Determined from data, 8-bit tag) ************************************* Michelson_expr (tag 0) ====================== +-----------------+----------------------+------------------------------------+ | Name | Size | Contents | +=================+======================+====================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------+----------------------+------------------------------------+ | Unnamed field 0 | Determined from data | $micheline.michelson_v1.expression | +-----------------+----------------------+------------------------------------+ Dune_expr (tag 1) ================= +-----------+----------------------+------------------------+ | Name | Size | Contents | +===========+======================+========================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------+----------------------+------------------------+ | dune_expr | Determined from data | $X_3 | +-----------+----------------------+------------------------+ Dune_code (tag 2) ================= +-----------+----------------------+------------------------+ | Name | Size | Contents | +===========+======================+========================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------+----------------------+------------------------+ | dune_code | Determined from data | $X_1 | +-----------+----------------------+------------------------+ Michelson source (tag 3) ======================== +-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------------+----------+-------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | michelson | Variable | bytes | +-----------------------+----------+-------------------------+
GET ../<block_id>/context/codes/code/<script_expr>
Returns the code, given a hash, if it is already known.
$micheline.michelson_v1.expression || { "dune_expr": "VOID" || any || any } || { "dune_code": "NOOP" || any || any || any } || { "michelson": $unistring } $bignum: /* Big number Decimal representation of a big number */ string $micheline.michelson_v1.expression: { "int": $bignum } || { "string": $unistring } || { "bytes": /^[a-zA-Z0-9]+$/ } || [ $micheline.michelson_v1.expression ... ] || { "prim": $michelson.v1.primitives, "args"?: [ $micheline.michelson_v1.expression ... ], "annots"?: [ string ... ] } $michelson.v1.primitives: "ADMIN_ACCOUNTS" | "ADD" | "IF_NONE" | "SWAP" | "nat" | "Elt" | "big_map" | "map" | "SHA256" | "Right" | "LEFT" | "storage" | "SLICE" | "False" | "SHA512" | "BALANCE" | "EMPTY_BIG_MAP" | "OR" | "XOR" | "lambda" | "COMPARE" | "option" | "NEQ" | "BLOCK_LEVEL" | "AMOUNT" | "DIP" | "ABS" | "chain_id" | "MEM" | "ALLOW_PEERS" | "CONCAT" | "LOOP_LEFT" | "UPDATE" | "DUP" | "IS_IMPLICIT" | "CAR" | "CONS" | "NONE" | "GET" | "Left" | "SIZE" | "GET_ACCOUNT_INFO" | "DROP" | "NIL" | "DIG" | "RENAME" | "True" | "parameter" | "EQ" | "Pair" | "ADDRESS" | "AND" | "set" | "CHECK_SIGNATURE" | "IF_LEFT" | "LAMBDA" | "CREATE_CONTRACT" | "NEG" | "or" | "BLAKE2B" | "bytes" | "SET_DELEGATE" | "CONTRACT" | "LSL" | "SUB" | "IMPLICIT_ACCOUNT" | "PACK" | "list" | "PAIR" | "contract" | "GT" | "STEPS_TO_QUOTA" | "TRANSFER_TOKENS" | "CDR" | "PUSH" | "CHAIN_ID" | "signature" | "DUG" | "SELF" | "LSR" | "key" | "Unit" | "Some" | "UNPACK" | "INT" | "pair" | "COLLECT_CALL" | "ISNAT" | "EXEC" | "NOW" | "LOOP" | "string" | "MAP" | "None" | "address" | "EMPTY_SET" | "MUL" | "timestamp" | "LT" | "ADMIN_PROTOCOL" | "SOURCE" | "mutez" | "SENDER" | "IF_CONS" | "RIGHT" | "LE" | "IF" | "SOME" | "CAST" | "int" | "REVOKE_PEERS" | "key_hash" | "unit" | "EMPTY_MAP" | "APPLY" | "MANAGE_ACCOUNT" | "bool" | "operation" | "FAILWITH" | "GET_BALANCE" | "HASH_KEY" | "NOT" | "UNIT" | "EDIV" | "CREATE_ACCOUNT" | "GE" | "ITER" | "code" $unistring: /* Universal string representation Either a plain UTF8 string, or a sequence of bytes for strings that contain invalid byte sequences. */ string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
+-----------------+----------------------+----------+ | Name | Size | Contents | +=================+======================+==========+ | Unnamed field 0 | Determined from data | $X_5 | +-----------------+----------------------+----------+ X_0 (Determined from data, 8-bit tag) ************************************* Contract (parser output) (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 | bytes | +-----------------------+----------+-------------------------+ Live contract (deployed) (tag 1) ================================ +-----------------------+----------+-------------------------+ | 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 | +-----------------------+----------+-------------------------+ Fee code (tag 2) ================ +-----------------------+----------+-------------------------+ | 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 | +-----------------------+----------+-------------------------+ X_1 (Determined from data, 8-bit tag) ************************************* Lang1.0.1.code (tag 0) ====================== +-----------------+---------+----------------------------------------------------+ | Name | Size | Contents | +=================+=========+====================================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------+---------+----------------------------------------------------+ | Unnamed field 0 | 0 bytes | placeholder (not actually present in the encoding) | +-----------------+---------+----------------------------------------------------+ Love.1.0.code (tag 1) ===================== +-----------------+----------------------+------------------------+ | Name | Size | Contents | +=================+======================+========================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------+----------------------+------------------------+ | Unnamed field 0 | Determined from data | $X_0 | +-----------------+----------------------+------------------------+ X_2 (Determined from data, 8-bit tag) ************************************* Value (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 | bytes | +-----------------------+----------+-------------------------+ Type (tag 1) ============ +-----------------------+----------+-------------------------+ | 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 | +-----------------------+----------+-------------------------+ X_3 (Determined from data, 8-bit tag) ************************************* Lang1.0.1.const (tag 0) ======================= +-----------------+---------+----------------------------------------------------+ | Name | Size | Contents | +=================+=========+====================================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------+---------+----------------------------------------------------+ | Unnamed field 0 | 0 bytes | placeholder (not actually present in the encoding) | +-----------------+---------+----------------------------------------------------+ Love.1.0.const (tag 1) ====================== +-----------------+----------------------+------------------------+ | Name | Size | Contents | +=================+======================+========================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------+----------------------+------------------------+ | Unnamed field 0 | Determined from data | $X_2 | +-----------------+----------------------+------------------------+ michelson.v1.primitives (Enumeration: unsigned 8-bit integer): ************************************************************** +-------------+------------------+ | Case number | Encoded string | +=============+==================+ | 0 | parameter | +-------------+------------------+ | 1 | storage | +-------------+------------------+ | 2 | code | +-------------+------------------+ | 3 | False | +-------------+------------------+ | 4 | Elt | +-------------+------------------+ | 5 | Left | +-------------+------------------+ | 6 | None | +-------------+------------------+ | 7 | Pair | +-------------+------------------+ | 8 | Right | +-------------+------------------+ | 9 | Some | +-------------+------------------+ | 10 | True | +-------------+------------------+ | 11 | Unit | +-------------+------------------+ | 12 | PACK | +-------------+------------------+ | 13 | UNPACK | +-------------+------------------+ | 14 | BLAKE2B | +-------------+------------------+ | 15 | SHA256 | +-------------+------------------+ | 16 | SHA512 | +-------------+------------------+ | 17 | ABS | +-------------+------------------+ | 18 | ADD | +-------------+------------------+ | 19 | AMOUNT | +-------------+------------------+ | 20 | AND | +-------------+------------------+ | 21 | BALANCE | +-------------+------------------+ | 22 | CAR | +-------------+------------------+ | 23 | CDR | +-------------+------------------+ | 24 | CHECK_SIGNATURE | +-------------+------------------+ | 25 | COMPARE | +-------------+------------------+ | 26 | CONCAT | +-------------+------------------+ | 27 | CONS | +-------------+------------------+ | 28 | CREATE_ACCOUNT | +-------------+------------------+ | 29 | CREATE_CONTRACT | +-------------+------------------+ | 30 | IMPLICIT_ACCOUNT | +-------------+------------------+ | 31 | DIP | +-------------+------------------+ | 32 | DROP | +-------------+------------------+ | 33 | DUP | +-------------+------------------+ | 34 | EDIV | +-------------+------------------+ | 35 | EMPTY_MAP | +-------------+------------------+ | 36 | EMPTY_SET | +-------------+------------------+ | 37 | EQ | +-------------+------------------+ | 38 | EXEC | +-------------+------------------+ | 39 | FAILWITH | +-------------+------------------+ | 40 | GE | +-------------+------------------+ | 41 | GET | +-------------+------------------+ | 42 | GT | +-------------+------------------+ | 43 | HASH_KEY | +-------------+------------------+ | 44 | IF | +-------------+------------------+ | 45 | IF_CONS | +-------------+------------------+ | 46 | IF_LEFT | +-------------+------------------+ | 47 | IF_NONE | +-------------+------------------+ | 48 | INT | +-------------+------------------+ | 49 | LAMBDA | +-------------+------------------+ | 50 | LE | +-------------+------------------+ | 51 | LEFT | +-------------+------------------+ | 52 | LOOP | +-------------+------------------+ | 53 | LSL | +-------------+------------------+ | 54 | LSR | +-------------+------------------+ | 55 | LT | +-------------+------------------+ | 56 | MAP | +-------------+------------------+ | 57 | MEM | +-------------+------------------+ | 58 | MUL | +-------------+------------------+ | 59 | NEG | +-------------+------------------+ | 60 | NEQ | +-------------+------------------+ | 61 | NIL | +-------------+------------------+ | 62 | NONE | +-------------+------------------+ | 63 | NOT | +-------------+------------------+ | 64 | NOW | +-------------+------------------+ | 65 | OR | +-------------+------------------+ | 66 | PAIR | +-------------+------------------+ | 67 | PUSH | +-------------+------------------+ | 68 | RIGHT | +-------------+------------------+ | 69 | SIZE | +-------------+------------------+ | 70 | SOME | +-------------+------------------+ | 71 | SOURCE | +-------------+------------------+ | 72 | SENDER | +-------------+------------------+ | 73 | SELF | +-------------+------------------+ | 74 | STEPS_TO_QUOTA | +-------------+------------------+ | 75 | SUB | +-------------+------------------+ | 76 | SWAP | +-------------+------------------+ | 77 | TRANSFER_TOKENS | +-------------+------------------+ | 78 | SET_DELEGATE | +-------------+------------------+ | 79 | UNIT | +-------------+------------------+ | 80 | UPDATE | +-------------+------------------+ | 81 | XOR | +-------------+------------------+ | 82 | ITER | +-------------+------------------+ | 83 | LOOP_LEFT | +-------------+------------------+ | 84 | ADDRESS | +-------------+------------------+ | 85 | CONTRACT | +-------------+------------------+ | 86 | ISNAT | +-------------+------------------+ | 87 | CAST | +-------------+------------------+ | 88 | RENAME | +-------------+------------------+ | 89 | bool | +-------------+------------------+ | 90 | contract | +-------------+------------------+ | 91 | int | +-------------+------------------+ | 92 | key | +-------------+------------------+ | 93 | key_hash | +-------------+------------------+ | 94 | lambda | +-------------+------------------+ | 95 | list | +-------------+------------------+ | 96 | map | +-------------+------------------+ | 97 | big_map | +-------------+------------------+ | 98 | nat | +-------------+------------------+ | 99 | option | +-------------+------------------+ | 100 | or | +-------------+------------------+ | 101 | pair | +-------------+------------------+ | 102 | set | +-------------+------------------+ | 103 | signature | +-------------+------------------+ | 104 | string | +-------------+------------------+ | 105 | bytes | +-------------+------------------+ | 106 | mutez | +-------------+------------------+ | 107 | timestamp | +-------------+------------------+ | 108 | unit | +-------------+------------------+ | 109 | operation | +-------------+------------------+ | 110 | address | +-------------+------------------+ | 111 | SLICE | +-------------+------------------+ | 112 | GET_BALANCE | +-------------+------------------+ | 113 | BLOCK_LEVEL | +-------------+------------------+ | 114 | IS_IMPLICIT | +-------------+------------------+ | 115 | COLLECT_CALL | +-------------+------------------+ | 116 | DIG | +-------------+------------------+ | 117 | DUG | +-------------+------------------+ | 118 | EMPTY_BIG_MAP | +-------------+------------------+ | 119 | APPLY | +-------------+------------------+ | 120 | chain_id | +-------------+------------------+ | 121 | CHAIN_ID | +-------------+------------------+ | 122 | GET_ACCOUNT_INFO | +-------------+------------------+ | 123 | MANAGE_ACCOUNT | +-------------+------------------+ | 124 | ADMIN_ACCOUNTS | +-------------+------------------+ | 125 | ADMIN_PROTOCOL | +-------------+------------------+ | 126 | ALLOW_PEERS | +-------------+------------------+ | 127 | REVOKE_PEERS | +-------------+------------------+ Z.t *** A variable length sequence of bytes, encoding a Zarith number. Each byte has a running unary size bit: the most significant bit of each byte tells is this is the last byte in the sequence (0) or if there is more to read (1). The second most significant bit of the first byte is reserved for the sign (positive if zero). Size and sign bits ignored, data is then the binary representation of the absolute value of the number in little endian order. +------+----------------------+----------+ | Name | Size | Contents | +======+======================+==========+ | Z.t | Determined from data | bytes | +------+----------------------+----------+ micheline.michelson_v1.expression (Determined from data, 8-bit tag) ******************************************************************* Int (tag 0) =========== +------+----------------------+------------------------+ | Name | Size | Contents | +======+======================+========================+ | Tag | 1 byte | unsigned 8-bit integer | +------+----------------------+------------------------+ | int | Determined from data | $Z.t | +------+----------------------+------------------------+ String (tag 1) ============== +-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------------+----------+-------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | string | Variable | bytes | +-----------------------+----------+-------------------------+ Sequence (tag 2) ================ +-----------------------+----------+------------------------------------------------+ | 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 $micheline.michelson_v1.expression | +-----------------------+----------+------------------------------------------------+ Prim (no args, annot) (tag 3) ============================= +------+--------+------------------------------------------------------------------------------+ | Name | Size | Contents | +======+========+==============================================================================+ | Tag | 1 byte | unsigned 8-bit integer | +------+--------+------------------------------------------------------------------------------+ | prim | 1 byte | unsigned 8-bit integer encoding an enumeration (see michelson.v1.primitives) | +------+--------+------------------------------------------------------------------------------+ Prim (no args + annot) (tag 4) ============================== +-----------------------+----------+------------------------------------------------------------------------------+ | Name | Size | Contents | +=======================+==========+==============================================================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------------+----------+------------------------------------------------------------------------------+ | prim | 1 byte | unsigned 8-bit integer encoding an enumeration (see michelson.v1.primitives) | +-----------------------+----------+------------------------------------------------------------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+------------------------------------------------------------------------------+ | annots | Variable | bytes | +-----------------------+----------+------------------------------------------------------------------------------+ Prim (1 arg, no annot) (tag 5) ============================== +------+----------------------+------------------------------------------------------------------------------+ | Name | Size | Contents | +======+======================+==============================================================================+ | Tag | 1 byte | unsigned 8-bit integer | +------+----------------------+------------------------------------------------------------------------------+ | prim | 1 byte | unsigned 8-bit integer encoding an enumeration (see michelson.v1.primitives) | +------+----------------------+------------------------------------------------------------------------------+ | arg | Determined from data | $micheline.michelson_v1.expression | +------+----------------------+------------------------------------------------------------------------------+ Prim (1 arg + annot) (tag 6) ============================ +-----------------------+----------------------+------------------------------------------------------------------------------+ | Name | Size | Contents | +=======================+======================+==============================================================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------------+----------------------+------------------------------------------------------------------------------+ | prim | 1 byte | unsigned 8-bit integer encoding an enumeration (see michelson.v1.primitives) | +-----------------------+----------------------+------------------------------------------------------------------------------+ | arg | Determined from data | $micheline.michelson_v1.expression | +-----------------------+----------------------+------------------------------------------------------------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------------------+------------------------------------------------------------------------------+ | annots | Variable | bytes | +-----------------------+----------------------+------------------------------------------------------------------------------+ Prim (2 args, no annot) (tag 7) =============================== +------+----------------------+------------------------------------------------------------------------------+ | Name | Size | Contents | +======+======================+==============================================================================+ | Tag | 1 byte | unsigned 8-bit integer | +------+----------------------+------------------------------------------------------------------------------+ | prim | 1 byte | unsigned 8-bit integer encoding an enumeration (see michelson.v1.primitives) | +------+----------------------+------------------------------------------------------------------------------+ | arg1 | Determined from data | $micheline.michelson_v1.expression | +------+----------------------+------------------------------------------------------------------------------+ | arg2 | Determined from data | $micheline.michelson_v1.expression | +------+----------------------+------------------------------------------------------------------------------+ Prim (2 args + annot) (tag 8) ============================= +-----------------------+----------------------+------------------------------------------------------------------------------+ | Name | Size | Contents | +=======================+======================+==============================================================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------------+----------------------+------------------------------------------------------------------------------+ | prim | 1 byte | unsigned 8-bit integer encoding an enumeration (see michelson.v1.primitives) | +-----------------------+----------------------+------------------------------------------------------------------------------+ | arg1 | Determined from data | $micheline.michelson_v1.expression | +-----------------------+----------------------+------------------------------------------------------------------------------+ | arg2 | Determined from data | $micheline.michelson_v1.expression | +-----------------------+----------------------+------------------------------------------------------------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------------------+------------------------------------------------------------------------------+ | annots | Variable | bytes | +-----------------------+----------------------+------------------------------------------------------------------------------+ Generic prim (any number of args with or without annot) (tag 9) =============================================================== +-----------------------+----------+------------------------------------------------------------------------------+ | Name | Size | Contents | +=======================+==========+==============================================================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------------+----------+------------------------------------------------------------------------------+ | prim | 1 byte | unsigned 8-bit integer encoding an enumeration (see michelson.v1.primitives) | +-----------------------+----------+------------------------------------------------------------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+------------------------------------------------------------------------------+ | args | Variable | sequence of $micheline.michelson_v1.expression | +-----------------------+----------+------------------------------------------------------------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+------------------------------------------------------------------------------+ | annots | Variable | bytes | +-----------------------+----------+------------------------------------------------------------------------------+ Bytes (tag 10) ============== +-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------------+----------+-------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | bytes | Variable | bytes | +-----------------------+----------+-------------------------+ X_5 (Determined from data, 8-bit tag) ************************************* Michelson_expr (tag 0) ====================== +-----------------+----------------------+------------------------------------+ | Name | Size | Contents | +=================+======================+====================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------+----------------------+------------------------------------+ | Unnamed field 0 | Determined from data | $micheline.michelson_v1.expression | +-----------------+----------------------+------------------------------------+ Dune_expr (tag 1) ================= +-----------+----------------------+------------------------+ | Name | Size | Contents | +===========+======================+========================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------+----------------------+------------------------+ | dune_expr | Determined from data | $X_3 | +-----------+----------------------+------------------------+ Dune_code (tag 2) ================= +-----------+----------------------+------------------------+ | Name | Size | Contents | +===========+======================+========================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------+----------------------+------------------------+ | dune_code | Determined from data | $X_1 | +-----------+----------------------+------------------------+ Michelson source (tag 3) ======================== +-----------------------+----------+-------------------------+ | Name | Size | Contents | +=======================+==========+=========================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------------+----------+-------------------------+ | # bytes in next field | 4 bytes | unsigned 30-bit integer | +-----------------------+----------+-------------------------+ | michelson | Variable | bytes | +-----------------------+----------+-------------------------+
POST ../<block_id>/context/codes/known
Returns the hash of a code if it is already known.
$micheline.michelson_v1.expression || { "dune_expr": "VOID" || any || any } || { "dune_code": "NOOP" || any || any || any } || { "michelson": $unistring } $bignum: /* Big number Decimal representation of a big number */ string $micheline.michelson_v1.expression: { "int": $bignum } || { "string": $unistring } || { "bytes": /^[a-zA-Z0-9]+$/ } || [ $micheline.michelson_v1.expression ... ] || { "prim": $michelson.v1.primitives, "args"?: [ $micheline.michelson_v1.expression ... ], "annots"?: [ string ... ] } $michelson.v1.primitives: "ADMIN_ACCOUNTS" | "ADD" | "IF_NONE" | "SWAP" | "nat" | "Elt" | "big_map" | "map" | "SHA256" | "Right" | "LEFT" | "storage" | "SLICE" | "False" | "SHA512" | "BALANCE" | "EMPTY_BIG_MAP" | "OR" | "XOR" | "lambda" | "COMPARE" | "option" | "NEQ" | "BLOCK_LEVEL" | "AMOUNT" | "DIP" | "ABS" | "chain_id" | "MEM" | "ALLOW_PEERS" | "CONCAT" | "LOOP_LEFT" | "UPDATE" | "DUP" | "IS_IMPLICIT" | "CAR" | "CONS" | "NONE" | "GET" | "Left" | "SIZE" | "GET_ACCOUNT_INFO" | "DROP" | "NIL" | "DIG" | "RENAME" | "True" | "parameter" | "EQ" | "Pair" | "ADDRESS" | "AND" | "set" | "CHECK_SIGNATURE" | "IF_LEFT" | "LAMBDA" | "CREATE_CONTRACT" | "NEG" | "or" | "BLAKE2B" | "bytes" | "SET_DELEGATE" | "CONTRACT" | "LSL" | "SUB" | "IMPLICIT_ACCOUNT" | "PACK" | "list" | "PAIR" | "contract" | "GT" | "STEPS_TO_QUOTA" | "TRANSFER_TOKENS" | "CDR" | "PUSH" | "CHAIN_ID" | "signature" | "DUG" | "SELF" | "LSR" | "key" | "Unit" | "Some" | "UNPACK" | "INT" | "pair" | "COLLECT_CALL" | "ISNAT" | "EXEC" | "NOW" | "LOOP" | "string" | "MAP" | "None" | "address" | "EMPTY_SET" | "MUL" | "timestamp" | "LT" | "ADMIN_PROTOCOL" | "SOURCE" | "mutez" | "SENDER" | "IF_CONS" | "RIGHT" | "LE" | "IF" | "SOME" | "CAST" | "int" | "REVOKE_PEERS" | "key_hash" | "unit" | "EMPTY_MAP" | "APPLY" | "MANAGE_ACCOUNT" | "bool" | "operation" | "FAILWITH" | "GET_BALANCE" | "HASH_KEY" | "NOT" | "UNIT" | "EDIV" | "CREATE_ACCOUNT" | "GE" | "ITER" | "code" $unistring: /* Universal string representation Either a plain UTF8 string, or a sequence of bytes for strings that contain invalid byte sequences. */ string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
+-----------------+----------------------+----------+ | Name | Size | Contents | +=================+======================+==========+ | Unnamed field 0 | Determined from data | $X_5 | +-----------------+----------------------+----------+ X_0 (Determined from data, 8-bit tag) ************************************* Contract (parser output) (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 | bytes | +-----------------------+----------+-------------------------+ Live contract (deployed) (tag 1) ================================ +-----------------------+----------+-------------------------+ | 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 | +-----------------------+----------+-------------------------+ Fee code (tag 2) ================ +-----------------------+----------+-------------------------+ | 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 | +-----------------------+----------+-------------------------+ X_1 (Determined from data, 8-bit tag) ************************************* Lang1.0.1.code (tag 0) ====================== +-----------------+---------+----------------------------------------------------+ | Name | Size | Contents | +=================+=========+====================================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------+---------+----------------------------------------------------+ | Unnamed field 0 | 0 bytes | placeholder (not actually present in the encoding) | +-----------------+---------+----------------------------------------------------+ Love.1.0.code (tag 1) ===================== +-----------------+----------------------+------------------------+ | Name | Size | Contents | +=================+======================+========================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------+----------------------+------------------------+ | Unnamed field 0 | Determined from data | $X_0 | +-----------------+----------------------+------------------------+ X_2 (Determined from data, 8-bit tag) ************************************* Value (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 | bytes | +-----------------------+----------+-------------------------+ Type (tag 1) ============ +-----------------------+----------+-------------------------+ | 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 | +-----------------------+----------+-------------------------+ X_3 (Determined from data, 8-bit tag) ************************************* Lang1.0.1.const (tag 0) ======================= +-----------------+---------+----------------------------------------------------+ | Name | Size | Contents | +=================+=========+====================================================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------+---------+----------------------------------------------------+ | Unnamed field 0 | 0 bytes | placeholder (not actually present in the encoding) | +-----------------+---------+----------------------------------------------------+ Love.1.0.const (tag 1) ====================== +-----------------+----------------------+------------------------+ | Name | Size | Contents | +=================+======================+========================+ | Tag | 1 byte | unsigned 8-bit integer | +-----------------+----------------------+------------------------+ | Unnamed field 0 | Determined from data | $X_2 | +-----------------+----------------------+------------------------+ michelson.v1.primitives (Enumeration: unsigned 8-bit integer): ************************************************************** +-------------+------------------+ | Case number | Encoded string | +=============+==================+ | 0 | parameter | +-------------+------------------+ | 1 | storage | +-------------+------------------+ | 2 | code | +-------------+------------------+ | 3 | False | +-------------+------------------+ | 4 | Elt | +-------------+------------------+ | 5 | Left | +-------------+------------------+ | 6 | None | +-------------+------------------+ | 7 | Pair | +-------------+------------------+ | 8 | Right | +-------------+------------------+ | 9 | Some | +-------------+------------------+ | 10 | True | +-------------+------------------+ | 11 | Unit | +-------------+------------------+ | 12 | PACK | +-------------+------------------+ | 13 | UNPACK | +-------------+------------------+ | 14 | BLAKE2B | +-------------+------------------+ | 15 | SHA256 | +-------------+------------------+ | 16 | SHA512 | +-------------+------------------+ | 17 | ABS | +-------------+------------------+ | 18 | ADD | +-------------+------------------+ | 19 | AMOUNT | +-------------+------------------+ | 20 | AND | +-------------+------------------+ | 21 | BALANCE | +-------------+------------------+ | 22 | CAR | +-------------+------