RPCs - Reference

RPCs - Index

Shell

The protocol-independent RPCs are described here.

Protocol Alpha

  • ../<block_id> (GET)

    • ../<block_id>/context

      • ../<block_id>/context/big_maps

        • ../<block_id>/context/big_maps/<big_map_id> (GET)

          • ../<block_id>/context/big_maps/<big_map_id>/<script_expr> (GET)

      • ../<block_id>/context/cache

        • ../<block_id>/context/cache/contracts

          • ../<block_id>/context/cache/contracts/all (GET)

          • ../<block_id>/context/cache/contracts/rank (POST)

          • ../<block_id>/context/cache/contracts/size (GET)

          • ../<block_id>/context/cache/contracts/size_limit (GET)

      • ../<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/<entrypoint> (GET)

          • ../<block_id>/context/contracts/<contract_id>/manager_key (GET)

          • ../<block_id>/context/contracts/<contract_id>/script (GET)

          • ../<block_id>/context/contracts/<contract_id>/single_sapling_get_diff (GET)

          • ../<block_id>/context/contracts/<contract_id>/storage (GET)

      • ../<block_id>/context/delegates (GET)

        • ../<block_id>/context/delegates/<pkh> (GET)

          • ../<block_id>/context/delegates/<pkh>/current_frozen_deposits (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_deposits (GET)

          • ../<block_id>/context/delegates/<pkh>/frozen_deposits_limit (GET)

          • ../<block_id>/context/delegates/<pkh>/full_balance (GET)

          • ../<block_id>/context/delegates/<pkh>/grace_period (GET)

          • ../<block_id>/context/delegates/<pkh>/participation (GET)

          • ../<block_id>/context/delegates/<pkh>/staking_balance (GET)

          • ../<block_id>/context/delegates/<pkh>/voting_power (GET)

      • ../<block_id>/context/liquidity_baking

        • ../<block_id>/context/liquidity_baking/cpmm_address (GET)

      • ../<block_id>/context/merkle_tree (GET)

      • ../<block_id>/context/nonces

        • ../<block_id>/context/nonces/<block_level> (GET)

      • ../<block_id>/context/raw

        • ../<block_id>/context/raw/bytes (GET)

        • ../<block_id>/context/raw/json (<dyn>)

      • ../<block_id>/context/sapling

        • ../<block_id>/context/sapling/<sapling_state_id>

          • ../<block_id>/context/sapling/<sapling_state_id>/get_diff (GET)

      • ../<block_id>/context/seed (POST)

      • ../<block_id>/context/tx_rollup

        • ../<block_id>/context/tx_rollup/<tx_rollup_id>

          • ../<block_id>/context/tx_rollup/<tx_rollup_id>/state (GET)

    • ../<block_id>/hash (GET)

    • ../<block_id>/header (GET)

      • ../<block_id>/header/protocol_data (GET)

        • ../<block_id>/header/protocol_data/raw (GET)

      • ../<block_id>/header/raw (GET)

      • ../<block_id>/header/shell (GET)

    • ../<block_id>/helpers

      • ../<block_id>/helpers/complete

        • ../<block_id>/helpers/complete/<prefix> (GET)

      • ../<block_id>/helpers/forge_block_header (POST)

      • ../<block_id>/helpers/preapply

        • ../<block_id>/helpers/preapply/block (POST)

        • ../<block_id>/helpers/preapply/operations (POST)

    • ../<block_id>/live_blocks (GET)

    • ../<block_id>/metadata (GET)

    • ../<block_id>/metadata_hash (GET)

    • ../<block_id>/operation_hashes (GET)

      • ../<block_id>/operation_hashes/<list_offset> (GET)

        • ../<block_id>/operation_hashes/<list_offset>/<operation_offset> (GET)

    • ../<block_id>/operation_metadata_hashes (GET)

      • ../<block_id>/operation_metadata_hashes/<list_offset> (GET)

        • ../<block_id>/operation_metadata_hashes/<list_offset>/<operation_offset> (GET)

    • ../<block_id>/operations (GET)

      • ../<block_id>/operations/<list_offset> (GET)

        • ../<block_id>/operations/<list_offset>/<operation_offset> (GET)

    • ../<block_id>/operations_metadata_hash (GET)

    • ../<block_id>/protocols (GET)

    • ../<block_id>/votes

      • ../<block_id>/votes/ballot_list (GET)

      • ../<block_id>/votes/ballots (GET)

      • ../<block_id>/votes/current_period (GET)

      • ../<block_id>/votes/current_proposal (GET)

      • ../<block_id>/votes/current_quorum (GET)

      • ../<block_id>/votes/listings (GET)

      • ../<block_id>/votes/proposals (GET)

      • ../<block_id>/votes/successor_period (GET)

      • ../<block_id>/votes/total_voting_power (GET)

RPCs - Full description

Protocol Alpha

GET ../<block_id>

All the information about a block. The associated metadata may not be present depending on the history mode and block's distance from the head.

  { "protocol": "ProtoALphaALphaALphaALphaALphaALphaALphaALphaDdp3zK",
    "chain_id": $Chain_id,
    "hash": $block_hash,
    "header": $raw_block_header,
    "metadata"?: $block_header_metadata,
    "operations": [ [ $operation ... ] ... ] }
  $Blinded public key hash:
    /* A blinded public key hash (Base58Check-encoded) */
    $unistring
  $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 Tezos operation ID (Base58Check-encoded) */
    $unistring
  $Operation_list_list_hash:
    /* A list of list of operations (Base58Check-encoded) */
    $unistring
  $Protocol_hash:
    /* A Tezos protocol ID (Base58Check-encoded) */
    $unistring
  $Sc_rollup_hash:
    /* A smart contract rollup address (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
  $alpha.big_map_id:
    /* Big map identifier
       A big map identifier */
    $bignum
  $alpha.block_header.alpha.full_header:
    /* Shell header
       Block header's shell-related content. It contains information such as
       the block level, its predecessor and timestamp. */
    { "level": integer ∈ [-2^31-1, 2^31],
      "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,
      "payload_hash": $value_hash,
      "payload_round": integer ∈ [-2^31-1, 2^31],
      "proof_of_work_nonce": /^([a-zA-Z0-9][a-zA-Z0-9])*$/,
      "seed_nonce_hash"?: $cycle_nonce,
      "liquidity_baking_escape_vote": boolean,
      "signature": $Signature }
  $alpha.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
  $alpha.entrypoint:
    /* entrypoint
       Named entrypoint to a Michelson smart contract */
    "default"
    || "root"
    || "do"
    || "set_delegate"
    || "remove_delegate"
    || string
    /* named */
  $alpha.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
  $alpha.inlined.endorsement:
    /* An operation's shell header. */
    { "branch": $block_hash,
      "operations": $alpha.inlined.endorsement_mempool.contents,
      "signature"?: $Signature }
  $alpha.inlined.endorsement_mempool.contents:
    { /* Endorsement */
      "kind": "endorsement",
      "slot": integer ∈ [0, 2^16-1],
      "level": integer ∈ [-2^31-1, 2^31],
      "round": integer ∈ [-2^31-1, 2^31],
      "block_payload_hash": $value_hash }
  $alpha.inlined.preendorsement:
    /* An operation's shell header. */
    { "branch": $block_hash,
      "operations": $alpha.inlined.preendorsement.contents,
      "signature"?: $Signature }
  $alpha.inlined.preendorsement.contents:
    { /* Preendorsement */
      "kind": "preendorsement",
      "slot": integer ∈ [0, 2^16-1],
      "level": integer ∈ [-2^31-1, 2^31],
      "round": integer ∈ [-2^31-1, 2^31],
      "block_payload_hash": $value_hash }
  $alpha.lazy_storage_diff:
    [ { /* big_map */
        "kind": "big_map",
        "id": $alpha.big_map_id,
        "diff":
          { /* update */
            "action": "update",
            "updates":
              [ { "key_hash": $script_expr,
                  "key":
                    { /* Int */
                      "int": $bignum }
                    || { /* String */
                         "string": $unistring }
                    || { /* Bytes */
                         "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                    || [ $micheline.alpha.michelson_v1.expression ... ]
                    /* Sequence */
                    || { /* Prim__generic
                            Generic primitive (any number of args with or
                            without annotations) */
                         "prim": $alpha.michelson.v1.primitives,
                         "args"?:
                           [ $micheline.alpha.michelson_v1.expression ... ],
                         "annots"?: [ string ... ] },
                  "value"?:
                    { /* Int */
                      "int": $bignum }
                    || { /* String */
                         "string": $unistring }
                    || { /* Bytes */
                         "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                    || [ $micheline.alpha.michelson_v1.expression ... ]
                    /* Sequence */
                    || { /* Prim__generic
                            Generic primitive (any number of args with or
                            without annotations) */
                         "prim": $alpha.michelson.v1.primitives,
                         "args"?:
                           [ $micheline.alpha.michelson_v1.expression ... ],
                         "annots"?: [ string ... ] } } ... ] }
          || { /* remove */
               "action": "remove" }
          || { /* copy */
               "action": "copy",
               "source": $alpha.big_map_id,
               "updates":
                 [ { "key_hash": $script_expr,
                     "key":
                       { /* Int */
                         "int": $bignum }
                       || { /* String */
                            "string": $unistring }
                       || { /* Bytes */
                            "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                       || [ $micheline.alpha.michelson_v1.expression ... ]
                       /* Sequence */
                       || { /* Prim__generic
                               Generic primitive (any number of args with or
                               without annotations) */
                            "prim": $alpha.michelson.v1.primitives,
                            "args"?:
                              [ $micheline.alpha.michelson_v1.expression ... ],
                            "annots"?: [ string ... ] },
                     "value"?:
                       { /* Int */
                         "int": $bignum }
                       || { /* String */
                            "string": $unistring }
                       || { /* Bytes */
                            "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                       || [ $micheline.alpha.michelson_v1.expression ... ]
                       /* Sequence */
                       || { /* Prim__generic
                               Generic primitive (any number of args with or
                               without annotations) */
                            "prim": $alpha.michelson.v1.primitives,
                            "args"?:
                              [ $micheline.alpha.michelson_v1.expression ... ],
                            "annots"?: [ string ... ] } } ... ] }
          || { /* alloc */
               "action": "alloc",
               "updates":
                 [ { "key_hash": $script_expr,
                     "key":
                       { /* Int */
                         "int": $bignum }
                       || { /* String */
                            "string": $unistring }
                       || { /* Bytes */
                            "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                       || [ $micheline.alpha.michelson_v1.expression ... ]
                       /* Sequence */
                       || { /* Prim__generic
                               Generic primitive (any number of args with or
                               without annotations) */
                            "prim": $alpha.michelson.v1.primitives,
                            "args"?:
                              [ $micheline.alpha.michelson_v1.expression ... ],
                            "annots"?: [ string ... ] },
                     "value"?:
                       { /* Int */
                         "int": $bignum }
                       || { /* String */
                            "string": $unistring }
                       || { /* Bytes */
                            "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                       || [ $micheline.alpha.michelson_v1.expression ... ]
                       /* Sequence */
                       || { /* Prim__generic
                               Generic primitive (any number of args with or
                               without annotations) */
                            "prim": $alpha.michelson.v1.primitives,
                            "args"?:
                              [ $micheline.alpha.michelson_v1.expression ... ],
                            "annots"?: [ string ... ] } } ... ],
               "key_type":
                 { /* Int */
                   "int": $bignum }
                 || { /* String */
                      "string": $unistring }
                 || { /* Bytes */
                      "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                 || [ $micheline.alpha.michelson_v1.expression ... ]
                 /* Sequence */
                 || { /* Prim__generic
                         Generic primitive (any number of args with or
                         without annotations) */
                      "prim": $alpha.michelson.v1.primitives,
                      "args"?:
                        [ $micheline.alpha.michelson_v1.expression ... ],
                      "annots"?: [ string ... ] },
               "value_type":
                 { /* Int */
                   "int": $bignum }
                 || { /* String */
                      "string": $unistring }
                 || { /* Bytes */
                      "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                 || [ $micheline.alpha.michelson_v1.expression ... ]
                 /* Sequence */
                 || { /* Prim__generic
                         Generic primitive (any number of args with or
                         without annotations) */
                      "prim": $alpha.michelson.v1.primitives,
                      "args"?:
                        [ $micheline.alpha.michelson_v1.expression ... ],
                      "annots"?: [ string ... ] } } }
      || { /* sapling_state */
           "kind": "sapling_state",
           "id": $alpha.sapling_state_id,
           "diff":
             { /* update */
               "action": "update",
               "updates":
                 { "commitments_and_ciphertexts":
                     [ [ $sapling.transaction.commitment,
                         $sapling.transaction.ciphertext ] ... ],
                   "nullifiers": [ $sapling.transaction.nullifier ... ] } }
             || { /* remove */
                  "action": "remove" }
             || { /* copy */
                  "action": "copy",
                  "source": $alpha.sapling_state_id,
                  "updates":
                    { "commitments_and_ciphertexts":
                        [ [ $sapling.transaction.commitment,
                            $sapling.transaction.ciphertext ] ... ],
                      "nullifiers": [ $sapling.transaction.nullifier ... ] } }
             || { /* alloc */
                  "action": "alloc",
                  "updates":
                    { "commitments_and_ciphertexts":
                        [ [ $sapling.transaction.commitment,
                            $sapling.transaction.ciphertext ] ... ],
                      "nullifiers": [ $sapling.transaction.nullifier ... ] },
                  "memo_size": integer ∈ [0, 2^16-1] } } ... ]
  $alpha.michelson.v1.primitives:
    "ABS"
    | "IF"
    | "SENDER"
    | "NEVER"
    | "False"
    | "DUG"
    | "DIG"
    | "chest_key"
    | "BLAKE2B"
    | "list"
    | "bls12_381_g1"
    | "Pair"
    | "INT"
    | "nat"
    | "never"
    | "storage"
    | "SIZE"
    | "view"
    | "SHA256"
    | "AND"
    | "VIEW"
    | "bytes"
    | "NIL"
    | "map"
    | "SUB"
    | "SAPLING_EMPTY_STATE"
    | "CHECK_SIGNATURE"
    | "VOTING_POWER"
    | "operation"
    | "MAP"
    | "option"
    | "bls12_381_fr"
    | "ADD"
    | "IMPLICIT_ACCOUNT"
    | "SHA512"
    | "int"
    | "LSL"
    | "bls12_381_g2"
    | "ticket"
    | "sapling_transaction"
    | "COMPARE"
    | "SWAP"
    | "STEPS_TO_QUOTA"
    | "DROP"
    | "pair"
    | "BALANCE"
    | "CONCAT"
    | "MUL"
    | "FAILWITH"
    | "Elt"
    | "lambda"
    | "OR"
    | "DIP"
    | "MEM"
    | "ITER"
    | "key_hash"
    | "XOR"
    | "Some"
    | "parameter"
    | "address"
    | "EMPTY_MAP"
    | "None"
    | "TRANSFER_TOKENS"
    | "or"
    | "AMOUNT"
    | "signature"
    | "SHA3"
    | "string"
    | "CHAIN_ID"
    | "HASH_KEY"
    | "IF_LEFT"
    | "CREATE_ACCOUNT"
    | "LT"
    | "TOTAL_VOTING_POWER"
    | "UNPACK"
    | "READ_TICKET"
    | "SELF_ADDRESS"
    | "timestamp"
    | "SET_DELEGATE"
    | "LE"
    | "SOURCE"
    | "CREATE_CONTRACT"
    | "Unit"
    | "SAPLING_VERIFY_UPDATE"
    | "NONE"
    | "CONTRACT"
    | "GE"
    | "SOME"
    | "key"
    | "SELF"
    | "set"
    | "CAR"
    | "NOT"
    | "unit"
    | "CDR"
    | "LOOP_LEFT"
    | "PAIRING_CHECK"
    | "RIGHT"
    | "LEFT"
    | "CAST"
    | "True"
    | "Right"
    | "PACK"
    | "IF_CONS"
    | "KECCAK"
    | "chest"
    | "UNIT"
    | "EMPTY_SET"
    | "NEQ"
    | "LAMBDA"
    | "mutez"
    | "TICKET"
    | "LOOP"
    | "Left"
    | "contract"
    | "LSR"
    | "EMPTY_BIG_MAP"
    | "sapling_state"
    | "JOIN_TICKETS"
    | "LEVEL"
    | "UNPAIR"
    | "SPLIT_TICKET"
    | "PUSH"
    | "big_map"
    | "GT"
    | "chain_id"
    | "constant"
    | "NOW"
    | "IF_NONE"
    | "PAIR"
    | "GET_AND_UPDATE"
    | "UPDATE"
    | "ISNAT"
    | "RENAME"
    | "OPEN_CHEST"
    | "EDIV"
    | "EQ"
    | "ADDRESS"
    | "bool"
    | "EXEC"
    | "GET"
    | "NEG"
    | "SLICE"
    | "DUP"
    | "CONS"
    | "APPLY"
    | "SUB_MUTEZ"
    | "code"
  $alpha.mutez: $positive_bignum
  $alpha.operation.alpha.contents:
    { /* Endorsement */
      "kind": "endorsement",
      "slot": integer ∈ [0, 2^16-1],
      "level": integer ∈ [-2^31-1, 2^31],
      "round": integer ∈ [-2^31-1, 2^31],
      "block_payload_hash": $value_hash }
    || { /* Preendorsement */
         "kind": "preendorsement",
         "slot": integer ∈ [0, 2^16-1],
         "level": integer ∈ [-2^31-1, 2^31],
         "round": integer ∈ [-2^31-1, 2^31],
         "block_payload_hash": $value_hash }
    || { /* Seed_nonce_revelation */
         "kind": "seed_nonce_revelation",
         "level": integer ∈ [-2^31-1, 2^31],
         "nonce": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
    || { /* Double_endorsement_evidence */
         "kind": "double_endorsement_evidence",
         "op1": $alpha.inlined.endorsement,
         "op2": $alpha.inlined.endorsement }
    || { /* Double_preendorsement_evidence */
         "kind": "double_preendorsement_evidence",
         "op1": $alpha.inlined.preendorsement,
         "op2": $alpha.inlined.preendorsement }
    || { /* Double_baking_evidence */
         "kind": "double_baking_evidence",
         "bh1": $alpha.block_header.alpha.full_header,
         "bh2": $alpha.block_header.alpha.full_header }
    || { /* Activate_account */
         "kind": "activate_account",
         "pkh": $Ed25519.Public_key_hash,
         "secret": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
    || { /* Proposals */
         "kind": "proposals",
         "source": $Signature.Public_key_hash,
         "period": integer ∈ [-2^31-1, 2^31],
         "proposals": [ $Protocol_hash ... ] }
    || { /* Ballot */
         "kind": "ballot",
         "source": $Signature.Public_key_hash,
         "period": integer ∈ [-2^31-1, 2^31],
         "proposal": $Protocol_hash,
         "ballot": "nay" | "yay" | "pass" }
    || { /* Reveal */
         "kind": "reveal",
         "source": $Signature.Public_key_hash,
         "fee": $alpha.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "public_key": $Signature.Public_key }
    || { /* Transaction */
         "kind": "transaction",
         "source": $Signature.Public_key_hash,
         "fee": $alpha.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "amount": $alpha.mutez,
         "destination": $alpha.contract_id,
         "parameters"?:
           { "entrypoint": $alpha.entrypoint,
             "value":
               { /* Int */
                 "int": $bignum }
               || { /* String */
                    "string": $unistring }
               || { /* Bytes */
                    "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
               || [ $micheline.alpha.michelson_v1.expression ... ]
               /* Sequence */
               || { /* Prim__generic
                       Generic primitive (any number of args with or without
                       annotations) */
                    "prim": $alpha.michelson.v1.primitives,
                    "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
                    "annots"?: [ string ... ] } } }
    || { /* Origination */
         "kind": "origination",
         "source": $Signature.Public_key_hash,
         "fee": $alpha.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "balance": $alpha.mutez,
         "delegate"?: $Signature.Public_key_hash,
         "script": $alpha.scripted.contracts }
    || { /* Delegation */
         "kind": "delegation",
         "source": $Signature.Public_key_hash,
         "fee": $alpha.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "delegate"?: $Signature.Public_key_hash }
    || { /* Set_deposits_limit */
         "kind": "set_deposits_limit",
         "source": $Signature.Public_key_hash,
         "fee": $alpha.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "limit"?: $alpha.mutez }
    || { /* Failing_noop */
         "kind": "failing_noop",
         "arbitrary": $unistring }
    || { /* Register_global_constant */
         "kind": "register_global_constant",
         "source": $Signature.Public_key_hash,
         "fee": $alpha.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "value":
           { /* Int */
             "int": $bignum }
           || { /* String */
                "string": $unistring }
           || { /* Bytes */
                "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
           || [ $micheline.alpha.michelson_v1.expression ... ]
           /* Sequence */
           || { /* Prim__generic
                   Generic primitive (any number of args with or without
                   annotations) */
                "prim": $alpha.michelson.v1.primitives,
                "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
                "annots"?: [ string ... ] } }
    || { /* Tx_rollup_origination */
         "kind": "tx_rollup_origination",
         "source": $Signature.Public_key_hash,
         "fee": $alpha.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "tx_rollup_origination": any }
    || { /* Sc_rollup_originate */
         "kind": "sc_rollup_originate",
         "source": $Signature.Public_key_hash,
         "fee": $alpha.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "kind": any /* Example_arith smart contract rollup kind */,
         "boot_sector": $unistring }
    || { /* Sc_rollup_add_messages */
         "kind": "sc_rollup_add_messages",
         "source": $Signature.Public_key_hash,
         "fee": $alpha.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "rollup": $alpha.rollup_address,
         "message": [ $unistring ... ] }
  $alpha.operation.alpha.contents_and_signature:
    { "contents": [ $alpha.operation.alpha.contents ... ],
      "signature": $Signature }
  $alpha.operation.alpha.internal_operation_result:
    { /* reveal */
      "kind": "reveal",
      "source": $alpha.contract_id,
      "nonce": integer ∈ [0, 2^16-1],
      "public_key": $Signature.Public_key,
      "result": $alpha.operation.alpha.operation_result.reveal }
    || { /* transaction */
         "kind": "transaction",
         "source": $alpha.contract_id,
         "nonce": integer ∈ [0, 2^16-1],
         "amount": $alpha.mutez,
         "destination": $alpha.contract_id,
         "parameters"?:
           { "entrypoint": $alpha.entrypoint,
             "value":
               { /* Int */
                 "int": $bignum }
               || { /* String */
                    "string": $unistring }
               || { /* Bytes */
                    "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
               || [ $micheline.alpha.michelson_v1.expression ... ]
               /* Sequence */
               || { /* Prim__generic
                       Generic primitive (any number of args with or without
                       annotations) */
                    "prim": $alpha.michelson.v1.primitives,
                    "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
                    "annots"?: [ string ... ] } },
         "result": $alpha.operation.alpha.operation_result.transaction }
    || { /* origination */
         "kind": "origination",
         "source": $alpha.contract_id,
         "nonce": integer ∈ [0, 2^16-1],
         "balance": $alpha.mutez,
         "delegate"?: $Signature.Public_key_hash,
         "script": $alpha.scripted.contracts,
         "result": $alpha.operation.alpha.operation_result.origination }
    || { /* delegation */
         "kind": "delegation",
         "source": $alpha.contract_id,
         "nonce": integer ∈ [0, 2^16-1],
         "delegate"?: $Signature.Public_key_hash,
         "result": $alpha.operation.alpha.operation_result.delegation }
    || { /* register_global_constant */
         "kind": "register_global_constant",
         "source": $alpha.contract_id,
         "nonce": integer ∈ [0, 2^16-1],
         "value":
           { /* Int */
             "int": $bignum }
           || { /* String */
                "string": $unistring }
           || { /* Bytes */
                "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
           || [ $micheline.alpha.michelson_v1.expression ... ]
           /* Sequence */
           || { /* Prim__generic
                   Generic primitive (any number of args with or without
                   annotations) */
                "prim": $alpha.michelson.v1.primitives,
                "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
                "annots"?: [ string ... ] },
         "result":
           $alpha.operation.alpha.operation_result.register_global_constant }
    || { /* set_deposits_limit */
         "kind": "set_deposits_limit",
         "source": $alpha.contract_id,
         "nonce": integer ∈ [0, 2^16-1],
         "limit"?: $alpha.mutez,
         "result": $alpha.operation.alpha.operation_result.set_deposits_limit }
    || { /* tx_rollup_origination */
         "kind": "tx_rollup_origination",
         "source": $alpha.contract_id,
         "nonce": integer ∈ [0, 2^16-1],
         "tx_rollup_origination": any,
         "result":
           $alpha.operation.alpha.operation_result.tx_rollup_origination }
    || { /* sc_rollup_originate */
         "kind": "sc_rollup_originate",
         "source": $alpha.contract_id,
         "nonce": integer ∈ [0, 2^16-1],
         "kind": any /* Example_arith smart contract rollup kind */,
         "boot_sector": $unistring,
         "result":
           $alpha.operation.alpha.operation_result.sc_rollup_originate }
    || { /* sc_rollup_add_messages */
         "kind": "sc_rollup_add_messages",
         "source": $alpha.contract_id,
         "nonce": integer ∈ [0, 2^16-1],
         "rollup": $alpha.rollup_address,
         "message": [ $unistring ... ],
         "result":
           $alpha.operation.alpha.operation_result.sc_rollup_add_messages }
  $alpha.operation.alpha.operation_contents_and_result:
    { /* Seed_nonce_revelation */
      "kind": "seed_nonce_revelation",
      "level": integer ∈ [-2^31-1, 2^31],
      "nonce": /^([a-zA-Z0-9][a-zA-Z0-9])*$/,
      "metadata":
        { "balance_updates"?: $alpha.operation_metadata.alpha.balance_updates } }
    || { /* Endorsement */
         "kind": "endorsement",
         "slot": integer ∈ [0, 2^16-1],
         "level": integer ∈ [-2^31-1, 2^31],
         "round": integer ∈ [-2^31-1, 2^31],
         "block_payload_hash": $value_hash,
         "metadata":
           { "balance_updates"?:
               $alpha.operation_metadata.alpha.balance_updates,
             "delegate": $Signature.Public_key_hash,
             "endorsement_power": integer ∈ [-2^30, 2^30] } }
    || { /* Preendorsement */
         "kind": "preendorsement",
         "slot": integer ∈ [0, 2^16-1],
         "level": integer ∈ [-2^31-1, 2^31],
         "round": integer ∈ [-2^31-1, 2^31],
         "block_payload_hash": $value_hash,
         "metadata":
           { "balance_updates"?:
               $alpha.operation_metadata.alpha.balance_updates,
             "delegate": $Signature.Public_key_hash,
             "preendorsement_power": integer ∈ [-2^30, 2^30] } }
    || { /* Double_preendorsement_evidence */
         "kind": "double_preendorsement_evidence",
         "op1": $alpha.inlined.preendorsement,
         "op2": $alpha.inlined.preendorsement,
         "metadata":
           { "balance_updates"?:
               $alpha.operation_metadata.alpha.balance_updates } }
    || { /* Double_endorsement_evidence */
         "kind": "double_endorsement_evidence",
         "op1": $alpha.inlined.endorsement,
         "op2": $alpha.inlined.endorsement,
         "metadata":
           { "balance_updates"?:
               $alpha.operation_metadata.alpha.balance_updates } }
    || { /* Double_baking_evidence */
         "kind": "double_baking_evidence",
         "bh1": $alpha.block_header.alpha.full_header,
         "bh2": $alpha.block_header.alpha.full_header,
         "metadata":
           { "balance_updates"?:
               $alpha.operation_metadata.alpha.balance_updates } }
    || { /* Activate_account */
         "kind": "activate_account",
         "pkh": $Ed25519.Public_key_hash,
         "secret": /^([a-zA-Z0-9][a-zA-Z0-9])*$/,
         "metadata":
           { "balance_updates"?:
               $alpha.operation_metadata.alpha.balance_updates } }
    || { /* Proposals */
         "kind": "proposals",
         "source": $Signature.Public_key_hash,
         "period": integer ∈ [-2^31-1, 2^31],
         "proposals": [ $Protocol_hash ... ],
         "metadata": {  } }
    || { /* Ballot */
         "kind": "ballot",
         "source": $Signature.Public_key_hash,
         "period": integer ∈ [-2^31-1, 2^31],
         "proposal": $Protocol_hash,
         "ballot": "nay" | "yay" | "pass",
         "metadata": {  } }
    || { /* Reveal */
         "kind": "reveal",
         "source": $Signature.Public_key_hash,
         "fee": $alpha.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "public_key": $Signature.Public_key,
         "metadata":
           { "balance_updates"?:
               $alpha.operation_metadata.alpha.balance_updates,
             "operation_result":
               $alpha.operation.alpha.operation_result.reveal,
             "internal_operation_results"?:
               [ $alpha.operation.alpha.internal_operation_result ... ] } }
    || { /* Transaction */
         "kind": "transaction",
         "source": $Signature.Public_key_hash,
         "fee": $alpha.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "amount": $alpha.mutez,
         "destination": $alpha.contract_id,
         "parameters"?:
           { "entrypoint": $alpha.entrypoint,
             "value":
               { /* Int */
                 "int": $bignum }
               || { /* String */
                    "string": $unistring }
               || { /* Bytes */
                    "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
               || [ $micheline.alpha.michelson_v1.expression ... ]
               /* Sequence */
               || { /* Prim__generic
                       Generic primitive (any number of args with or without
                       annotations) */
                    "prim": $alpha.michelson.v1.primitives,
                    "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
                    "annots"?: [ string ... ] } },
         "metadata":
           { "balance_updates"?:
               $alpha.operation_metadata.alpha.balance_updates,
             "operation_result":
               $alpha.operation.alpha.operation_result.transaction,
             "internal_operation_results"?:
               [ $alpha.operation.alpha.internal_operation_result ... ] } }
    || { /* Origination */
         "kind": "origination",
         "source": $Signature.Public_key_hash,
         "fee": $alpha.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "balance": $alpha.mutez,
         "delegate"?: $Signature.Public_key_hash,
         "script": $alpha.scripted.contracts,
         "metadata":
           { "balance_updates"?:
               $alpha.operation_metadata.alpha.balance_updates,
             "operation_result":
               $alpha.operation.alpha.operation_result.origination,
             "internal_operation_results"?:
               [ $alpha.operation.alpha.internal_operation_result ... ] } }
    || { /* Delegation */
         "kind": "delegation",
         "source": $Signature.Public_key_hash,
         "fee": $alpha.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "delegate"?: $Signature.Public_key_hash,
         "metadata":
           { "balance_updates"?:
               $alpha.operation_metadata.alpha.balance_updates,
             "operation_result":
               $alpha.operation.alpha.operation_result.delegation,
             "internal_operation_results"?:
               [ $alpha.operation.alpha.internal_operation_result ... ] } }
    || { /* Register_global_constant */
         "kind": "register_global_constant",
         "source": $Signature.Public_key_hash,
         "fee": $alpha.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "value":
           { /* Int */
             "int": $bignum }
           || { /* String */
                "string": $unistring }
           || { /* Bytes */
                "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
           || [ $micheline.alpha.michelson_v1.expression ... ]
           /* Sequence */
           || { /* Prim__generic
                   Generic primitive (any number of args with or without
                   annotations) */
                "prim": $alpha.michelson.v1.primitives,
                "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
                "annots"?: [ string ... ] },
         "metadata":
           { "balance_updates"?:
               $alpha.operation_metadata.alpha.balance_updates,
             "operation_result":
               $alpha.operation.alpha.operation_result.register_global_constant,
             "internal_operation_results"?:
               [ $alpha.operation.alpha.internal_operation_result ... ] } }
    || { /* Set_deposits_limit */
         "kind": "set_deposits_limit",
         "source": $Signature.Public_key_hash,
         "fee": $alpha.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "limit"?: $alpha.mutez,
         "metadata":
           { "balance_updates"?:
               $alpha.operation_metadata.alpha.balance_updates,
             "operation_result":
               $alpha.operation.alpha.operation_result.set_deposits_limit,
             "internal_operation_results"?:
               [ $alpha.operation.alpha.internal_operation_result ... ] } }
    || { /* Tx_rollup_origination */
         "kind": "tx_rollup_origination",
         "source": $Signature.Public_key_hash,
         "fee": $alpha.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "tx_rollup_origination": any,
         "metadata":
           { "balance_updates"?:
               $alpha.operation_metadata.alpha.balance_updates,
             "operation_result":
               $alpha.operation.alpha.operation_result.tx_rollup_origination,
             "internal_operation_results"?:
               [ $alpha.operation.alpha.internal_operation_result ... ] } }
    || { /* Sc_rollup_originate */
         "kind": "sc_rollup_originate",
         "source": $Signature.Public_key_hash,
         "fee": $alpha.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "kind": any /* Example_arith smart contract rollup kind */,
         "boot_sector": $unistring,
         "metadata":
           { "balance_updates"?:
               $alpha.operation_metadata.alpha.balance_updates,
             "operation_result":
               $alpha.operation.alpha.operation_result.sc_rollup_originate,
             "internal_operation_results"?:
               [ $alpha.operation.alpha.internal_operation_result ... ] } }
    || { /* Sc_rollup_add_messages */
         "kind": "sc_rollup_add_messages",
         "source": $Signature.Public_key_hash,
         "fee": $alpha.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "rollup": $alpha.rollup_address,
         "message": [ $unistring ... ],
         "metadata":
           { "balance_updates"?:
               $alpha.operation_metadata.alpha.balance_updates,
             "operation_result":
               $alpha.operation.alpha.operation_result.sc_rollup_add_messages,
             "internal_operation_results"?:
               [ $alpha.operation.alpha.internal_operation_result ... ] } }
  $alpha.operation.alpha.operation_result.delegation:
    { /* Applied */
      "status": "applied",
      "consumed_gas"?: $positive_bignum,
      "consumed_milligas"?: $positive_bignum }
    || { /* Failed */
         "status": "failed",
         "errors": [ $alpha.error ... ] }
    || { /* Skipped */
         "status": "skipped" }
    || { /* Backtracked */
         "status": "backtracked",
         "errors"?: [ $alpha.error ... ],
         "consumed_gas"?: $positive_bignum,
         "consumed_milligas"?: $positive_bignum }
  $alpha.operation.alpha.operation_result.origination:
    { /* Applied */
      "status": "applied",
      "big_map_diff"?:
        [ { /* update */
            "action": "update",
            "big_map": $bignum,
            "key_hash": $script_expr,
            "key":
              { /* Int */
                "int": $bignum }
              || { /* String */
                   "string": $unistring }
              || { /* Bytes */
                   "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
              || [ $micheline.alpha.michelson_v1.expression ... ]
              /* Sequence */
              || { /* Prim__generic
                      Generic primitive (any number of args with or without
                      annotations) */
                   "prim": $alpha.michelson.v1.primitives,
                   "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
                   "annots"?: [ string ... ] },
            "value"?:
              { /* Int */
                "int": $bignum }
              || { /* String */
                   "string": $unistring }
              || { /* Bytes */
                   "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
              || [ $micheline.alpha.michelson_v1.expression ... ]
              /* Sequence */
              || { /* Prim__generic
                      Generic primitive (any number of args with or without
                      annotations) */
                   "prim": $alpha.michelson.v1.primitives,
                   "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
                   "annots"?: [ string ... ] } }
          || { /* remove */
               "action": "remove",
               "big_map": $bignum }
          || { /* copy */
               "action": "copy",
               "source_big_map": $bignum,
               "destination_big_map": $bignum }
          || { /* alloc */
               "action": "alloc",
               "big_map": $bignum,
               "key_type":
                 { /* Int */
                   "int": $bignum }
                 || { /* String */
                      "string": $unistring }
                 || { /* Bytes */
                      "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                 || [ $micheline.alpha.michelson_v1.expression ... ]
                 /* Sequence */
                 || { /* Prim__generic
                         Generic primitive (any number of args with or
                         without annotations) */
                      "prim": $alpha.michelson.v1.primitives,
                      "args"?:
                        [ $micheline.alpha.michelson_v1.expression ... ],
                      "annots"?: [ string ... ] },
               "value_type":
                 { /* Int */
                   "int": $bignum }
                 || { /* String */
                      "string": $unistring }
                 || { /* Bytes */
                      "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                 || [ $micheline.alpha.michelson_v1.expression ... ]
                 /* Sequence */
                 || { /* Prim__generic
                         Generic primitive (any number of args with or
                         without annotations) */
                      "prim": $alpha.michelson.v1.primitives,
                      "args"?:
                        [ $micheline.alpha.michelson_v1.expression ... ],
                      "annots"?: [ string ... ] } } ... ],
      "balance_updates"?: $alpha.operation_metadata.alpha.balance_updates,
      "originated_contracts"?: [ $alpha.contract_id ... ],
      "consumed_gas"?: $positive_bignum,
      "consumed_milligas"?: $positive_bignum,
      "storage_size"?: $bignum,
      "paid_storage_size_diff"?: $bignum,
      "lazy_storage_diff"?: $alpha.lazy_storage_diff }
    || { /* Failed */
         "status": "failed",
         "errors": [ $alpha.error ... ] }
    || { /* Skipped */
         "status": "skipped" }
    || { /* Backtracked */
         "status": "backtracked",
         "errors"?: [ $alpha.error ... ],
         "big_map_diff"?:
           [ { /* update */
               "action": "update",
               "big_map": $bignum,
               "key_hash": $script_expr,
               "key":
                 { /* Int */
                   "int": $bignum }
                 || { /* String */
                      "string": $unistring }
                 || { /* Bytes */
                      "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                 || [ $micheline.alpha.michelson_v1.expression ... ]
                 /* Sequence */
                 || { /* Prim__generic
                         Generic primitive (any number of args with or
                         without annotations) */
                      "prim": $alpha.michelson.v1.primitives,
                      "args"?:
                        [ $micheline.alpha.michelson_v1.expression ... ],
                      "annots"?: [ string ... ] },
               "value"?:
                 { /* Int */
                   "int": $bignum }
                 || { /* String */
                      "string": $unistring }
                 || { /* Bytes */
                      "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                 || [ $micheline.alpha.michelson_v1.expression ... ]
                 /* Sequence */
                 || { /* Prim__generic
                         Generic primitive (any number of args with or
                         without annotations) */
                      "prim": $alpha.michelson.v1.primitives,
                      "args"?:
                        [ $micheline.alpha.michelson_v1.expression ... ],
                      "annots"?: [ string ... ] } }
             || { /* remove */
                  "action": "remove",
                  "big_map": $bignum }
             || { /* copy */
                  "action": "copy",
                  "source_big_map": $bignum,
                  "destination_big_map": $bignum }
             || { /* alloc */
                  "action": "alloc",
                  "big_map": $bignum,
                  "key_type":
                    { /* Int */
                      "int": $bignum }
                    || { /* String */
                         "string": $unistring }
                    || { /* Bytes */
                         "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                    || [ $micheline.alpha.michelson_v1.expression ... ]
                    /* Sequence */
                    || { /* Prim__generic
                            Generic primitive (any number of args with or
                            without annotations) */
                         "prim": $alpha.michelson.v1.primitives,
                         "args"?:
                           [ $micheline.alpha.michelson_v1.expression ... ],
                         "annots"?: [ string ... ] },
                  "value_type":
                    { /* Int */
                      "int": $bignum }
                    || { /* String */
                         "string": $unistring }
                    || { /* Bytes */
                         "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                    || [ $micheline.alpha.michelson_v1.expression ... ]
                    /* Sequence */
                    || { /* Prim__generic
                            Generic primitive (any number of args with or
                            without annotations) */
                         "prim": $alpha.michelson.v1.primitives,
                         "args"?:
                           [ $micheline.alpha.michelson_v1.expression ... ],
                         "annots"?: [ string ... ] } } ... ],
         "balance_updates"?: $alpha.operation_metadata.alpha.balance_updates,
         "originated_contracts"?: [ $alpha.contract_id ... ],
         "consumed_gas"?: $positive_bignum,
         "consumed_milligas"?: $positive_bignum,
         "storage_size"?: $bignum,
         "paid_storage_size_diff"?: $bignum,
         "lazy_storage_diff"?: $alpha.lazy_storage_diff }
  $alpha.operation.alpha.operation_result.register_global_constant:
    { /* Applied */
      "status": "applied",
      "balance_updates"?: $alpha.operation_metadata.alpha.balance_updates,
      "consumed_gas"?: $positive_bignum,
      "consumed_milligas"?: $positive_bignum,
      "storage_size"?: $bignum,
      "global_address": $script_expr }
    || { /* Failed */
         "status": "failed",
         "errors": [ $alpha.error ... ] }
    || { /* Skipped */
         "status": "skipped" }
    || { /* Backtracked */
         "status": "backtracked",
         "errors"?: [ $alpha.error ... ],
         "balance_updates"?: $alpha.operation_metadata.alpha.balance_updates,
         "consumed_gas"?: $positive_bignum,
         "consumed_milligas"?: $positive_bignum,
         "storage_size"?: $bignum,
         "global_address": $script_expr }
  $alpha.operation.alpha.operation_result.reveal:
    { /* Applied */
      "status": "applied",
      "consumed_gas"?: $positive_bignum,
      "consumed_milligas"?: $positive_bignum }
    || { /* Failed */
         "status": "failed",
         "errors": [ $alpha.error ... ] }
    || { /* Skipped */
         "status": "skipped" }
    || { /* Backtracked */
         "status": "backtracked",
         "errors"?: [ $alpha.error ... ],
         "consumed_gas"?: $positive_bignum,
         "consumed_milligas"?: $positive_bignum }
  $alpha.operation.alpha.operation_result.sc_rollup_add_messages:
    { /* Applied */
      "status": "applied",
      "consumed_gas": $positive_bignum,
      "consumed_milligas"?: $positive_bignum,
      "inbox_after": { "hash": $inbox_hash,
                       "inbox_size": $int64 } }
    || { /* Failed */
         "status": "failed",
         "errors": [ $alpha.error ... ] }
    || { /* Skipped */
         "status": "skipped" }
    || { /* Backtracked */
         "status": "backtracked",
         "errors"?: [ $alpha.error ... ],
         "consumed_gas": $positive_bignum,
         "consumed_milligas"?: $positive_bignum,
         "inbox_after": { "hash": $inbox_hash,
                          "inbox_size": $int64 } }
  $alpha.operation.alpha.operation_result.sc_rollup_originate:
    { /* Applied */
      "status": "applied",
      "balance_updates": $alpha.operation_metadata.alpha.balance_updates,
      "address": $Sc_rollup_hash,
      "consumed_gas"?: $positive_bignum,
      "consumed_milligas"?: $positive_bignum,
      "size": $bignum }
    || { /* Failed */
         "status": "failed",
         "errors": [ $alpha.error ... ] }
    || { /* Skipped */
         "status": "skipped" }
    || { /* Backtracked */
         "status": "backtracked",
         "errors"?: [ $alpha.error ... ],
         "balance_updates": $alpha.operation_metadata.alpha.balance_updates,
         "address": $Sc_rollup_hash,
         "consumed_gas"?: $positive_bignum,
         "consumed_milligas"?: $positive_bignum,
         "size": $bignum }
  $alpha.operation.alpha.operation_result.set_deposits_limit:
    { /* Applied */
      "status": "applied",
      "consumed_gas"?: $positive_bignum,
      "consumed_milligas"?: $positive_bignum }
    || { /* Failed */
         "status": "failed",
         "errors": [ $alpha.error ... ] }
    || { /* Skipped */
         "status": "skipped" }
    || { /* Backtracked */
         "status": "backtracked",
         "errors"?: [ $alpha.error ... ],
         "consumed_gas"?: $positive_bignum,
         "consumed_milligas"?: $positive_bignum }
  $alpha.operation.alpha.operation_result.transaction:
    { /* Applied */
      "status": "applied",
      "storage"?:
        { /* Int */
          "int": $bignum }
        || { /* String */
             "string": $unistring }
        || { /* Bytes */
             "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
        || [ $micheline.alpha.michelson_v1.expression ... ]
        /* Sequence */
        || { /* Prim__generic
                Generic primitive (any number of args with or without
                annotations) */
             "prim": $alpha.michelson.v1.primitives,
             "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
             "annots"?: [ string ... ] },
      "big_map_diff"?:
        [ { /* update */
            "action": "update",
            "big_map": $bignum,
            "key_hash": $script_expr,
            "key":
              { /* Int */
                "int": $bignum }
              || { /* String */
                   "string": $unistring }
              || { /* Bytes */
                   "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
              || [ $micheline.alpha.michelson_v1.expression ... ]
              /* Sequence */
              || { /* Prim__generic
                      Generic primitive (any number of args with or without
                      annotations) */
                   "prim": $alpha.michelson.v1.primitives,
                   "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
                   "annots"?: [ string ... ] },
            "value"?:
              { /* Int */
                "int": $bignum }
              || { /* String */
                   "string": $unistring }
              || { /* Bytes */
                   "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
              || [ $micheline.alpha.michelson_v1.expression ... ]
              /* Sequence */
              || { /* Prim__generic
                      Generic primitive (any number of args with or without
                      annotations) */
                   "prim": $alpha.michelson.v1.primitives,
                   "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
                   "annots"?: [ string ... ] } }
          || { /* remove */
               "action": "remove",
               "big_map": $bignum }
          || { /* copy */
               "action": "copy",
               "source_big_map": $bignum,
               "destination_big_map": $bignum }
          || { /* alloc */
               "action": "alloc",
               "big_map": $bignum,
               "key_type":
                 { /* Int */
                   "int": $bignum }
                 || { /* String */
                      "string": $unistring }
                 || { /* Bytes */
                      "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                 || [ $micheline.alpha.michelson_v1.expression ... ]
                 /* Sequence */
                 || { /* Prim__generic
                         Generic primitive (any number of args with or
                         without annotations) */
                      "prim": $alpha.michelson.v1.primitives,
                      "args"?:
                        [ $micheline.alpha.michelson_v1.expression ... ],
                      "annots"?: [ string ... ] },
               "value_type":
                 { /* Int */
                   "int": $bignum }
                 || { /* String */
                      "string": $unistring }
                 || { /* Bytes */
                      "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                 || [ $micheline.alpha.michelson_v1.expression ... ]
                 /* Sequence */
                 || { /* Prim__generic
                         Generic primitive (any number of args with or
                         without annotations) */
                      "prim": $alpha.michelson.v1.primitives,
                      "args"?:
                        [ $micheline.alpha.michelson_v1.expression ... ],
                      "annots"?: [ string ... ] } } ... ],
      "balance_updates"?: $alpha.operation_metadata.alpha.balance_updates,
      "originated_contracts"?: [ $alpha.contract_id ... ],
      "consumed_gas"?: $positive_bignum,
      "consumed_milligas"?: $positive_bignum,
      "storage_size"?: $bignum,
      "paid_storage_size_diff"?: $bignum,
      "allocated_destination_contract"?: boolean,
      "lazy_storage_diff"?: $alpha.lazy_storage_diff }
    || { /* Failed */
         "status": "failed",
         "errors": [ $alpha.error ... ] }
    || { /* Skipped */
         "status": "skipped" }
    || { /* Backtracked */
         "status": "backtracked",
         "errors"?: [ $alpha.error ... ],
         "storage"?:
           { /* Int */
             "int": $bignum }
           || { /* String */
                "string": $unistring }
           || { /* Bytes */
                "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
           || [ $micheline.alpha.michelson_v1.expression ... ]
           /* Sequence */
           || { /* Prim__generic
                   Generic primitive (any number of args with or without
                   annotations) */
                "prim": $alpha.michelson.v1.primitives,
                "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
                "annots"?: [ string ... ] },
         "big_map_diff"?:
           [ { /* update */
               "action": "update",
               "big_map": $bignum,
               "key_hash": $script_expr,
               "key":
                 { /* Int */
                   "int": $bignum }
                 || { /* String */
                      "string": $unistring }
                 || { /* Bytes */
                      "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                 || [ $micheline.alpha.michelson_v1.expression ... ]
                 /* Sequence */
                 || { /* Prim__generic
                         Generic primitive (any number of args with or
                         without annotations) */
                      "prim": $alpha.michelson.v1.primitives,
                      "args"?:
                        [ $micheline.alpha.michelson_v1.expression ... ],
                      "annots"?: [ string ... ] },
               "value"?:
                 { /* Int */
                   "int": $bignum }
                 || { /* String */
                      "string": $unistring }
                 || { /* Bytes */
                      "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                 || [ $micheline.alpha.michelson_v1.expression ... ]
                 /* Sequence */
                 || { /* Prim__generic
                         Generic primitive (any number of args with or
                         without annotations) */
                      "prim": $alpha.michelson.v1.primitives,
                      "args"?:
                        [ $micheline.alpha.michelson_v1.expression ... ],
                      "annots"?: [ string ... ] } }
             || { /* remove */
                  "action": "remove",
                  "big_map": $bignum }
             || { /* copy */
                  "action": "copy",
                  "source_big_map": $bignum,
                  "destination_big_map": $bignum }
             || { /* alloc */
                  "action": "alloc",
                  "big_map": $bignum,
                  "key_type":
                    { /* Int */
                      "int": $bignum }
                    || { /* String */
                         "string": $unistring }
                    || { /* Bytes */
                         "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                    || [ $micheline.alpha.michelson_v1.expression ... ]
                    /* Sequence */
                    || { /* Prim__generic
                            Generic primitive (any number of args with or
                            without annotations) */
                         "prim": $alpha.michelson.v1.primitives,
                         "args"?:
                           [ $micheline.alpha.michelson_v1.expression ... ],
                         "annots"?: [ string ... ] },
                  "value_type":
                    { /* Int */
                      "int": $bignum }
                    || { /* String */
                         "string": $unistring }
                    || { /* Bytes */
                         "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                    || [ $micheline.alpha.michelson_v1.expression ... ]
                    /* Sequence */
                    || { /* Prim__generic
                            Generic primitive (any number of args with or
                            without annotations) */
                         "prim": $alpha.michelson.v1.primitives,
                         "args"?:
                           [ $micheline.alpha.michelson_v1.expression ... ],
                         "annots"?: [ string ... ] } } ... ],
         "balance_updates"?: $alpha.operation_metadata.alpha.balance_updates,
         "originated_contracts"?: [ $alpha.contract_id ... ],
         "consumed_gas"?: $positive_bignum,
         "consumed_milligas"?: $positive_bignum,
         "storage_size"?: $bignum,
         "paid_storage_size_diff"?: $bignum,
         "allocated_destination_contract"?: boolean,
         "lazy_storage_diff"?: $alpha.lazy_storage_diff }
  $alpha.operation.alpha.operation_result.tx_rollup_origination:
    { /* Applied */
      "status": "applied",
      "balance_updates": $alpha.operation_metadata.alpha.balance_updates,
      "consumed_gas"?: $positive_bignum,
      "consumed_milligas"?: $positive_bignum,
      "originated_rollup": $alpha.tx_rollup_id }
    || { /* Failed */
         "status": "failed",
         "errors": [ $alpha.error ... ] }
    || { /* Skipped */
         "status": "skipped" }
    || { /* Backtracked */
         "status": "backtracked",
         "errors"?: [ $alpha.error ... ],
         "balance_updates": $alpha.operation_metadata.alpha.balance_updates,
         "consumed_gas"?: $positive_bignum,
         "consumed_milligas"?: $positive_bignum,
         "originated_rollup": $alpha.tx_rollup_id }
  $alpha.operation.alpha.operation_with_metadata:
    { /* Operation_with_metadata */
      "contents":
        [ $alpha.operation.alpha.operation_contents_and_result ... ],
      "signature"?: $Signature }
    || { /* Operation_without_metadata */
         "contents": [ $alpha.operation.alpha.contents ... ],
         "signature"?: $Signature }
  $alpha.operation.alpha.successful_manager_operation_result:
    { /* reveal */
      "kind": "reveal",
      "consumed_gas"?: $positive_bignum,
      "consumed_milligas"?: $positive_bignum }
    || { /* transaction */
         "kind": "transaction",
         "storage"?:
           { /* Int */
             "int": $bignum }
           || { /* String */
                "string": $unistring }
           || { /* Bytes */
                "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
           || [ $micheline.alpha.michelson_v1.expression ... ]
           /* Sequence */
           || { /* Prim__generic
                   Generic primitive (any number of args with or without
                   annotations) */
                "prim": $alpha.michelson.v1.primitives,
                "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
                "annots"?: [ string ... ] },
         "big_map_diff"?:
           [ { /* update */
               "action": "update",
               "big_map": $bignum,
               "key_hash": $script_expr,
               "key":
                 { /* Int */
                   "int": $bignum }
                 || { /* String */
                      "string": $unistring }
                 || { /* Bytes */
                      "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                 || [ $micheline.alpha.michelson_v1.expression ... ]
                 /* Sequence */
                 || { /* Prim__generic
                         Generic primitive (any number of args with or
                         without annotations) */
                      "prim": $alpha.michelson.v1.primitives,
                      "args"?:
                        [ $micheline.alpha.michelson_v1.expression ... ],
                      "annots"?: [ string ... ] },
               "value"?:
                 { /* Int */
                   "int": $bignum }
                 || { /* String */
                      "string": $unistring }
                 || { /* Bytes */
                      "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                 || [ $micheline.alpha.michelson_v1.expression ... ]
                 /* Sequence */
                 || { /* Prim__generic
                         Generic primitive (any number of args with or
                         without annotations) */
                      "prim": $alpha.michelson.v1.primitives,
                      "args"?:
                        [ $micheline.alpha.michelson_v1.expression ... ],
                      "annots"?: [ string ... ] } }
             || { /* remove */
                  "action": "remove",
                  "big_map": $bignum }
             || { /* copy */
                  "action": "copy",
                  "source_big_map": $bignum,
                  "destination_big_map": $bignum }
             || { /* alloc */
                  "action": "alloc",
                  "big_map": $bignum,
                  "key_type":
                    { /* Int */
                      "int": $bignum }
                    || { /* String */
                         "string": $unistring }
                    || { /* Bytes */
                         "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                    || [ $micheline.alpha.michelson_v1.expression ... ]
                    /* Sequence */
                    || { /* Prim__generic
                            Generic primitive (any number of args with or
                            without annotations) */
                         "prim": $alpha.michelson.v1.primitives,
                         "args"?:
                           [ $micheline.alpha.michelson_v1.expression ... ],
                         "annots"?: [ string ... ] },
                  "value_type":
                    { /* Int */
                      "int": $bignum }
                    || { /* String */
                         "string": $unistring }
                    || { /* Bytes */
                         "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                    || [ $micheline.alpha.michelson_v1.expression ... ]
                    /* Sequence */
                    || { /* Prim__generic
                            Generic primitive (any number of args with or
                            without annotations) */
                         "prim": $alpha.michelson.v1.primitives,
                         "args"?:
                           [ $micheline.alpha.michelson_v1.expression ... ],
                         "annots"?: [ string ... ] } } ... ],
         "balance_updates"?: $alpha.operation_metadata.alpha.balance_updates,
         "originated_contracts"?: [ $alpha.contract_id ... ],
         "consumed_gas"?: $positive_bignum,
         "consumed_milligas"?: $positive_bignum,
         "storage_size"?: $bignum,
         "paid_storage_size_diff"?: $bignum,
         "allocated_destination_contract"?: boolean,
         "lazy_storage_diff"?: $alpha.lazy_storage_diff }
    || { /* origination */
         "kind": "origination",
         "big_map_diff"?:
           [ { /* update */
               "action": "update",
               "big_map": $bignum,
               "key_hash": $script_expr,
               "key":
                 { /* Int */
                   "int": $bignum }
                 || { /* String */
                      "string": $unistring }
                 || { /* Bytes */
                      "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                 || [ $micheline.alpha.michelson_v1.expression ... ]
                 /* Sequence */
                 || { /* Prim__generic
                         Generic primitive (any number of args with or
                         without annotations) */
                      "prim": $alpha.michelson.v1.primitives,
                      "args"?:
                        [ $micheline.alpha.michelson_v1.expression ... ],
                      "annots"?: [ string ... ] },
               "value"?:
                 { /* Int */
                   "int": $bignum }
                 || { /* String */
                      "string": $unistring }
                 || { /* Bytes */
                      "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                 || [ $micheline.alpha.michelson_v1.expression ... ]
                 /* Sequence */
                 || { /* Prim__generic
                         Generic primitive (any number of args with or
                         without annotations) */
                      "prim": $alpha.michelson.v1.primitives,
                      "args"?:
                        [ $micheline.alpha.michelson_v1.expression ... ],
                      "annots"?: [ string ... ] } }
             || { /* remove */
                  "action": "remove",
                  "big_map": $bignum }
             || { /* copy */
                  "action": "copy",
                  "source_big_map": $bignum,
                  "destination_big_map": $bignum }
             || { /* alloc */
                  "action": "alloc",
                  "big_map": $bignum,
                  "key_type":
                    { /* Int */
                      "int": $bignum }
                    || { /* String */
                         "string": $unistring }
                    || { /* Bytes */
                         "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                    || [ $micheline.alpha.michelson_v1.expression ... ]
                    /* Sequence */
                    || { /* Prim__generic
                            Generic primitive (any number of args with or
                            without annotations) */
                         "prim": $alpha.michelson.v1.primitives,
                         "args"?:
                           [ $micheline.alpha.michelson_v1.expression ... ],
                         "annots"?: [ string ... ] },
                  "value_type":
                    { /* Int */
                      "int": $bignum }
                    || { /* String */
                         "string": $unistring }
                    || { /* Bytes */
                         "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                    || [ $micheline.alpha.michelson_v1.expression ... ]
                    /* Sequence */
                    || { /* Prim__generic
                            Generic primitive (any number of args with or
                            without annotations) */
                         "prim": $alpha.michelson.v1.primitives,
                         "args"?:
                           [ $micheline.alpha.michelson_v1.expression ... ],
                         "annots"?: [ string ... ] } } ... ],
         "balance_updates"?: $alpha.operation_metadata.alpha.balance_updates,
         "originated_contracts"?: [ $alpha.contract_id ... ],
         "consumed_gas"?: $positive_bignum,
         "consumed_milligas"?: $positive_bignum,
         "storage_size"?: $bignum,
         "paid_storage_size_diff"?: $bignum,
         "lazy_storage_diff"?: $alpha.lazy_storage_diff }
    || { /* delegation */
         "kind": "delegation",
         "consumed_gas"?: $positive_bignum,
         "consumed_milligas"?: $positive_bignum }
    || { /* set_deposits_limit */
         "kind": "set_deposits_limit",
         "consumed_gas"?: $positive_bignum,
         "consumed_milligas"?: $positive_bignum }
    || { /* sc_rollup_originate */
         "kind": "sc_rollup_originate",
         "balance_updates": $alpha.operation_metadata.alpha.balance_updates,
         "address": $Sc_rollup_hash,
         "consumed_gas"?: $positive_bignum,
         "consumed_milligas"?: $positive_bignum,
         "size": $bignum }
  $alpha.operation_metadata.alpha.balance_updates:
    [ { /* Contract */
        "kind": "contract",
        "contract": $alpha.contract_id,
        "change": $int64,
        "origin": "block" || "migration" || "subsidy" || "simulation" }
      || { /* Legacy_rewards */
           "kind": "freezer",
           "category": "legacy_rewards",
           "delegate": $Signature.Public_key_hash,
           "cycle": integer ∈ [-2^31-1, 2^31],
           "change": $int64,
           "origin": "block" || "migration" || "subsidy" || "simulation" }
      || { /* Block_fees */
           "kind": "accumulator",
           "category": "block fees",
           "change": $int64,
           "origin": "block" || "migration" || "subsidy" || "simulation" }
      || { /* Legacy_deposits */
           "kind": "freezer",
           "category": "legacy_deposits",
           "delegate": $Signature.Public_key_hash,
           "cycle": integer ∈ [-2^31-1, 2^31],
           "change": $int64,
           "origin": "block" || "migration" || "subsidy" || "simulation" }
      || { /* Deposits */
           "kind": "freezer",
           "category": "deposits",
           "delegate": $Signature.Public_key_hash,
           "change": $int64,
           "origin": "block" || "migration" || "subsidy" || "simulation" }
      || { /* Nonce_revelation_rewards */
           "kind": "minted",
           "category": "nonce revelation rewards",
           "change": $int64,
           "origin": "block" || "migration" || "subsidy" || "simulation" }
      || { /* Double_signing_evidence_rewards */
           "kind": "minted",
           "category": "double signing evidence rewards",
           "change": $int64,
           "origin": "block" || "migration" || "subsidy" || "simulation" }
      || { /* Endorsing_rewards */
           "kind": "minted",
           "category": "endorsing rewards",
           "change": $int64,
           "origin": "block" || "migration" || "subsidy" || "simulation" }
      || { /* Baking_rewards */
           "kind": "minted",
           "category": "baking rewards",
           "change": $int64,
           "origin": "block" || "migration" || "subsidy" || "simulation" }
      || { /* Baking_bonuses */
           "kind": "minted",
           "category": "baking bonuses",
           "change": $int64,
           "origin": "block" || "migration" || "subsidy" || "simulation" }
      || { /* Legacy_fees */
           "kind": "freezer",
           "category": "legacy_fees",
           "delegate": $Signature.Public_key_hash,
           "cycle": integer ∈ [-2^31-1, 2^31],
           "change": $int64,
           "origin": "block" || "migration" || "subsidy" || "simulation" }
      || { /* Storage_fees */
           "kind": "burned",
           "category": "storage fees",
           "change": $int64,
           "origin": "block" || "migration" || "subsidy" || "simulation" }
      || { /* Double_signing_punishments */
           "kind": "burned",
           "category": "punishments",
           "change": $int64,
           "origin": "block" || "migration" || "subsidy" || "simulation" }
      || { /* Lost_endorsing_rewards */
           "kind": "burned",
           "category": "lost endorsing rewards",
           "delegate": $Signature.Public_key_hash,
           "participation": boolean,
           "revelation": boolean,
           "change": $int64,
           "origin": "block" || "migration" || "subsidy" || "simulation" }
      || { /* Liquidity_baking_subsidies */
           "kind": "minted",
           "category": "subsidy",
           "change": $int64,
           "origin": "block" || "migration" || "subsidy" || "simulation" }
      || { /* Burned */
           "kind": "burned",
           "category": "burned",
           "change": $int64,
           "origin": "block" || "migration" || "subsidy" || "simulation" }
      || { /* Commitments */
           "kind": "commitment",
           "category": "commitment",
           "committer": $Blinded public key hash,
           "change": $int64,
           "origin": "block" || "migration" || "subsidy" || "simulation" }
      || { /* Bootstrap */
           "kind": "minted",
           "category": "bootstrap",
           "change": $int64,
           "origin": "block" || "migration" || "subsidy" || "simulation" }
      || { /* Invoice */
           "kind": "minted",
           "category": "invoice",
           "change": $int64,
           "origin": "block" || "migration" || "subsidy" || "simulation" }
      || { /* Initial_commitments */
           "kind": "minted",
           "category": "commitment",
           "change": $int64,
           "origin": "block" || "migration" || "subsidy" || "simulation" }
      || { /* Minted */
           "kind": "minted",
           "category": "minted",
           "change": $int64,
           "origin": "block" || "migration" || "subsidy" || "simulation" } ... ]
  $alpha.rollup_address:
    /* A smart contract rollup address
       A smart contract rollup is identified by a base58 address starting
       with scr1 */
    $unistring
  $alpha.sapling_state_id:
    /* Sapling state identifier
       A sapling state identifier */
    $bignum
  $alpha.scripted.contracts:
    { "code":
        { /* Int */
          "int": $bignum }
        || { /* String */
             "string": $unistring }
        || { /* Bytes */
             "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
        || [ $micheline.alpha.michelson_v1.expression ... ]
        /* Sequence */
        || { /* Prim__generic
                Generic primitive (any number of args with or without
                annotations) */
             "prim": $alpha.michelson.v1.primitives,
             "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
             "annots"?: [ string ... ] },
      "storage":
        { /* Int */
          "int": $bignum }
        || { /* String */
             "string": $unistring }
        || { /* Bytes */
             "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
        || [ $micheline.alpha.michelson_v1.expression ... ]
        /* Sequence */
        || { /* Prim__generic
                Generic primitive (any number of args with or without
                annotations) */
             "prim": $alpha.michelson.v1.primitives,
             "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
             "annots"?: [ string ... ] } }
  $alpha.tx_rollup_id:
    /* A tx rollup handle
       A tx rollup notation as given to an RPC or inside scripts, is a base58
       tx rollup hash */
    $unistring
  $bignum:
    /* Big number
       Decimal representation of a big number */
    string
  $block_hash:
    /* A block identifier (Base58Check-encoded) */
    $unistring
  $block_header_metadata:
    { "protocol": "ProtoALphaALphaALphaALphaALphaALphaALphaALphaDdp3zK",
      "next_protocol": "ProtoALphaALphaALphaALphaALphaALphaALphaALphaDdp3zK",
      "test_chain_status": $test_chain_status,
      "max_operations_ttl": integer ∈ [-2^30, 2^30],
      "max_operation_data_length": integer ∈ [-2^30, 2^30],
      "max_block_header_length": integer ∈ [-2^30, 2^30],
      "max_operation_list_length":
        [ { "max_size": integer ∈ [-2^30, 2^30],
            "max_op"?: integer ∈ [-2^30, 2^30] } ... ],
      "proposer": $Signature.Public_key_hash,
      "baker": $Signature.Public_key_hash,
      "level_info":
        { "level":
            integer ∈ [-2^31-1, 2^31]
            /* The level of the block relative to genesis. This is also the
               Shell's notion of level. */,
          "level_position":
            integer ∈ [-2^31-1, 2^31]
            /* The level of the block relative to the successor of the
               genesis block. More precisely, it is the position of the block
               relative to the block that starts the "Alpha family" of
               protocols, which includes all protocols except Genesis (that
               is, from 001 onwards). */,
          "cycle":
            integer ∈ [-2^31-1, 2^31]
            /* The current cycle's number. Note that cycles are a
               protocol-specific notion. As a result, the cycle number starts
               at 0 with the first block of the Alpha family of protocols. */,
          "cycle_position":
            integer ∈ [-2^31-1, 2^31]
            /* The current level of the block relative to the first block of
               the current cycle. */,
          "expected_commitment":
            boolean
            /* Tells whether the baker of this block has to commit a seed
               nonce hash. */ },
      "voting_period_info":
        { "voting_period":
            { /* The voting period to which the block belongs. */
              "index":
                integer ∈ [-2^31-1, 2^31]
                /* The voting period's index. Starts at 0 with the first
                   block of the Alpha family of protocols. */,
              "kind":
                /* One of the several kinds of periods in the voting
                   procedure. */
                "proposal"
                || "exploration"
                || "cooldown"
                || "promotion"
                || "adoption",
              "start_position":
                integer ∈ [-2^31-1, 2^31]
                /* The relative position of the first level of the period
                   with respect to the first level of the Alpha family of
                   protocols. */ },
          "position":
            integer ∈ [-2^31-1, 2^31]
            /* The position of the block within the voting period. */,
          "remaining":
            integer ∈ [-2^31-1, 2^31]
            /* The number of blocks remaining till the end of the voting
               period. */ },
      "nonce_hash": $cycle_nonce /* Some */ || null /* None */,
      "consumed_gas": $positive_bignum,
      "deactivated": [ $Signature.Public_key_hash ... ],
      "balance_updates"?: $alpha.operation_metadata.alpha.balance_updates,
      "liquidity_baking_escape_ema": integer ∈ [-2^31-1, 2^31],
      "implicit_operations_results":
        [ $alpha.operation.alpha.successful_manager_operation_result ... ] }
  $cycle_nonce:
    /* A nonce hash (Base58Check-encoded) */
    $unistring
  $fitness:
    /* Block fitness
       The fitness, or score, of a block, that allow the Tezos 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][a-zA-Z0-9])*$/ ... ]
  $inbox_hash:
    /* The hash of a the inbox of a smart contract rollup
       (Base58Check-encoded) */
    $unistring
  $int64:
    /* 64 bit integers
       Decimal representation of 64 bit integers */
    string
  $micheline.alpha.michelson_v1.expression:
    { /* Int */
      "int": $bignum }
    || { /* String */
         "string": $unistring }
    || { /* Bytes */
         "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
    || [ $micheline.alpha.michelson_v1.expression ... ]
    /* Sequence */
    || { /* Prim__generic
            Generic primitive (any number of args with or without
            annotations) */
         "prim": $alpha.michelson.v1.primitives,
         "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
         "annots"?: [ string ... ] }
  $operation:
    { /* An operation's shell header. */
      "protocol": "ProtoALphaALphaALphaALphaALphaALphaALphaALphaDdp3zK",
      "chain_id": $Chain_id,
      "hash": $Operation_hash,
      "branch": $block_hash,
      "contents":
        [ $alpha.operation.alpha.operation_contents_and_result ... ],
      "signature"?: $Signature }
    || { /* An operation's shell header. */
         "protocol": "ProtoALphaALphaALphaALphaALphaALphaALphaALphaDdp3zK",
         "chain_id": $Chain_id,
         "hash": $Operation_hash,
         "branch": $block_hash,
         "contents": [ $alpha.operation.alpha.contents ... ],
         "signature"?: $Signature }
    || { /* An operation's shell header. */
         "protocol": "ProtoALphaALphaALphaALphaALphaALphaALphaALphaDdp3zK",
         "chain_id": $Chain_id,
         "hash": $Operation_hash,
         "branch": $block_hash,
         "contents": [ $alpha.operation.alpha.contents ... ],
         "signature": $Signature }
  $positive_bignum:
    /* Positive big number
       Decimal representation of a positive big number */
    string
  $raw_block_header:
    /* Shell header
       Block header's shell-related content. It contains information such as
       the block level, its predecessor and timestamp. */
    { "level": integer ∈ [-2^31-1, 2^31],
      "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,
      "payload_hash": $value_hash,
      "payload_round": integer ∈ [-2^31-1, 2^31],
      "proof_of_work_nonce": /^([a-zA-Z0-9][a-zA-Z0-9])*$/,
      "seed_nonce_hash"?: $cycle_nonce,
      "liquidity_baking_escape_vote": boolean,
      "signature": $Signature }
  $sapling.DH.epk: /^([a-zA-Z0-9][a-zA-Z0-9])*$/
  $sapling.transaction.ciphertext:
    { "cv": $sapling.transaction.commitment_value,
      "epk": $sapling.DH.epk,
      "payload_enc": /^([a-zA-Z0-9][a-zA-Z0-9])*$/,
      "nonce_enc": /^([a-zA-Z0-9][a-zA-Z0-9])*$/,
      "payload_out": /^([a-zA-Z0-9][a-zA-Z0-9])*$/,
      "nonce_out": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
  $sapling.transaction.commitment: /^([a-zA-Z0-9][a-zA-Z0-9])*$/
  $sapling.transaction.commitment_value: /^([a-zA-Z0-9][a-zA-Z0-9])*$/
  $sapling.transaction.nullifier: /^([a-zA-Z0-9][a-zA-Z0-9])*$/
  $script_expr:
    /* A script expression ID (Base58Check-encoded) */
    $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). */
    { /* Not_running */
      "status": "not_running" }
    || { /* Forking */
         "status": "forking",
         "protocol": $Protocol_hash,
         "expiration": $timestamp.protocol }
    || { /* Running */
         "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. */
    $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] ... ] }
  $value_hash:
    /* Hash of a consensus value (Base58Check-encoded) */
    $unistring
  +--------------------------------+----------------------+-------------------------------------+
  | 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                   |
  +--------------------------------+----------------------+-------------------------------------+
  | ? presence of field "metadata" | 1 byte               | boolean (0 for false, 255 for true) |
  +--------------------------------+----------------------+-------------------------------------+
  | metadata                       | Determined from data | $X_0                                |
  +--------------------------------+----------------------+-------------------------------------+
  | # bytes in next field          | 4 bytes              | unsigned 30-bit integer             |
  +--------------------------------+----------------------+-------------------------------------+
  | operations                     | Variable             | sequence of $X_273                  |
  +--------------------------------+----------------------+-------------------------------------+


  X_273
  *****

  +--------------------------+----------+-------------------------+
  | 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       | Variable | $X_5840                 |
  +-----------------------+----------+-------------------------+


  X_5840 (Variable, 8-bit tag)
  ****************************

  Operation with metadata (tag 0)
  ===============================

  +-----------------+----------------------+------------------------+
  | Name            | Size                 | Contents               |
  +=================+======================+========================+
  | Tag             | 1 byte               | unsigned 8-bit integer |
  +-----------------+----------------------+------------------------+
  | Unnamed field 0 | Determined from data | $X_5839                |
  +-----------------+----------------------+------------------------+


  Operation without metadata (tag 1)
  ==================================

  +-----------+----------+---------------------------------------------+
  | Name      | Size     | Contents                                    |
  +===========+==========+=============================================+
  | Tag       | 1 byte   | unsigned 8-bit integer                      |
  +-----------+----------+---------------------------------------------+
  | contents  | Variable | sequence of $alpha.operation.alpha.contents |
  +-----------+----------+---------------------------------------------+
  | signature | 64 bytes | bytes                                       |
  +-----------+----------+---------------------------------------------+


  X_5839 (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 $alpha.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 $alpha.operation.alpha.contents |
  +---------------------------------+----------+---------------------------------------------+
  | ? presence of field "signature" | 1 byte   | boolean (0 for false, 255 for true)         |
  +---------------------------------+----------+---------------------------------------------+
  | signature                       | 64 bytes | bytes                                       |
  +---------------------------------+----------+---------------------------------------------+


  alpha.operation.alpha.operation_contents_and_result (Determined from data, 8-bit tag)
  *************************************************************************************

  Seed_nonce_revelation (tag 1)
  =============================

  +----------+----------------------+-------------------------------------------------+
  | Name     | Size                 | Contents                                        |
  +==========+======================+=================================================+
  | Tag      | 1 byte               | unsigned 8-bit integer                          |
  +----------+----------------------+-------------------------------------------------+
  | level    | 4 bytes              | signed 32-bit integer                           |
  +----------+----------------------+-------------------------------------------------+
  | nonce    | 32 bytes             | bytes                                           |
  +----------+----------------------+-------------------------------------------------+
  | metadata | Determined from data | $alpha.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             | $alpha.inlined.endorsement                      |
  +-----------------------+----------------------+-------------------------------------------------+
  | # bytes in next field | 4 bytes              | unsigned 30-bit integer                         |
  +-----------------------+----------------------+-------------------------------------------------+
  | op2                   | Variable             | $alpha.inlined.endorsement                      |
  +-----------------------+----------------------+-------------------------------------------------+
  | metadata              | Determined from data | $alpha.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 | $alpha.block_header.alpha.full_header           |
  +-----------------------+----------------------+-------------------------------------------------+
  | # bytes in next field | 4 bytes              | unsigned 30-bit integer                         |
  +-----------------------+----------------------+-------------------------------------------------+
  | bh2                   | Determined from data | $alpha.block_header.alpha.full_header           |
  +-----------------------+----------------------+-------------------------------------------------+
  | metadata              | Determined from data | $alpha.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 | $alpha.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   |
  +----------+----------+------------------------+


  Double_preendorsement_evidence (tag 7)
  ======================================

  +-----------------------+----------------------+-------------------------------------------------+
  | Name                  | Size                 | Contents                                        |
  +=======================+======================+=================================================+
  | Tag                   | 1 byte               | unsigned 8-bit integer                          |
  +-----------------------+----------------------+-------------------------------------------------+
  | # bytes in next field | 4 bytes              | unsigned 30-bit integer                         |
  +-----------------------+----------------------+-------------------------------------------------+
  | op1                   | Variable             | $alpha.inlined.preendorsement                   |
  +-----------------------+----------------------+-------------------------------------------------+
  | # bytes in next field | 4 bytes              | unsigned 30-bit integer                         |
  +-----------------------+----------------------+-------------------------------------------------+
  | op2                   | Variable             | $alpha.inlined.preendorsement                   |
  +-----------------------+----------------------+-------------------------------------------------+
  | metadata              | Determined from data | $alpha.operation_metadata.alpha.balance_updates |
  +-----------------------+----------------------+-------------------------------------------------+


  Preendorsement (tag 20)
  =======================

  +--------------------+----------------------+-------------------------+
  | Name               | Size                 | Contents                |
  +====================+======================+=========================+
  | Tag                | 1 byte               | unsigned 8-bit integer  |
  +--------------------+----------------------+-------------------------+
  | slot               | 2 bytes              | unsigned 16-bit integer |
  +--------------------+----------------------+-------------------------+
  | level              | 4 bytes              | signed 32-bit integer   |
  +--------------------+----------------------+-------------------------+
  | round              | 4 bytes              | signed 32-bit integer   |
  +--------------------+----------------------+-------------------------+
  | block_payload_hash | 32 bytes             | bytes                   |
  +--------------------+----------------------+-------------------------+
  | metadata           | Determined from data | $X_5820                 |
  +--------------------+----------------------+-------------------------+


  Endorsement (tag 21)
  ====================

  +--------------------+----------------------+-------------------------+
  | Name               | Size                 | Contents                |
  +====================+======================+=========================+
  | Tag                | 1 byte               | unsigned 8-bit integer  |
  +--------------------+----------------------+-------------------------+
  | slot               | 2 bytes              | unsigned 16-bit integer |
  +--------------------+----------------------+-------------------------+
  | level              | 4 bytes              | signed 32-bit integer   |
  +--------------------+----------------------+-------------------------+
  | round              | 4 bytes              | signed 32-bit integer   |
  +--------------------+----------------------+-------------------------+
  | block_payload_hash | 32 bytes             | bytes                   |
  +--------------------+----------------------+-------------------------+
  | metadata           | Determined from data | $X_5816                 |
  +--------------------+----------------------+-------------------------+


  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_5261                |
  +---------------+----------------------+------------------------+


  Transaction (tag 108)
  =====================

  +----------------------------------+----------------------+-------------------------------------+
  | Name                             | Size                 | Contents                            |
  +==================================+======================+=====================================+
  | Tag                              | 1 byte               | unsigned 8-bit integer              |
  +----------------------------------+----------------------+-------------------------------------+
  | source                           | 21 bytes             | $public_key_hash                    |
  +----------------------------------+----------------------+-------------------------------------+
  | fee                              | Determined from data | $N.t                                |
  +----------------------------------+----------------------+-------------------------------------+
  | counter                          | Determined from data | $N.t                                |
  +----------------------------------+----------------------+-------------------------------------+
  | gas_limit                        | Determined from data | $N.t                                |
  +----------------------------------+----------------------+-------------------------------------+
  | storage_limit                    | Determined from data | $N.t                                |
  +----------------------------------+----------------------+-------------------------------------+
  | amount                           | Determined from data | $N.t                                |
  +----------------------------------+----------------------+-------------------------------------+
  | destination                      | 22 bytes             | $alpha.contract_id                  |
  +----------------------------------+----------------------+-------------------------------------+
  | ? presence of field "parameters" | 1 byte               | boolean (0 for false, 255 for true) |
  +----------------------------------+----------------------+-------------------------------------+
  | parameters                       | Determined from data | $X_5545                             |
  +----------------------------------+----------------------+-------------------------------------+
  | metadata                         | Determined from data | $X_4438                             |
  +----------------------------------+----------------------+-------------------------------------+


  Origination (tag 109)
  =====================

  +--------------------------------+----------------------+-------------------------------------+
  | Name                           | Size                 | Contents                            |
  +================================+======================+=====================================+
  | Tag                            | 1 byte               | unsigned 8-bit integer              |
  +--------------------------------+----------------------+-------------------------------------+
  | source                         | 21 bytes             | $public_key_hash                    |
  +--------------------------------+----------------------+-------------------------------------+
  | fee                            | Determined from data | $N.t                                |
  +--------------------------------+----------------------+-------------------------------------+
  | counter                        | Determined from data | $N.t                                |
  +--------------------------------+----------------------+-------------------------------------+
  | gas_limit                      | Determined from data | $N.t                                |
  +--------------------------------+----------------------+-------------------------------------+
  | storage_limit                  | Determined from data | $N.t                                |
  +--------------------------------+----------------------+-------------------------------------+
  | balance                        | Determined from data | $N.t                                |
  +--------------------------------+----------------------+-------------------------------------+
  | ? presence of field "delegate" | 1 byte               | boolean (0 for false, 255 for true) |
  +--------------------------------+----------------------+-------------------------------------+
  | delegate                       | 21 bytes             | $public_key_hash                    |
  +--------------------------------+----------------------+-------------------------------------+
  | script                         | Determined from data | $alpha.scripted.contracts           |
  +--------------------------------+----------------------+-------------------------------------+
  | metadata                       | Determined from data | $X_3632                             |
  +--------------------------------+----------------------+-------------------------------------+


  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_5261                             |
  +--------------------------------+----------------------+-------------------------------------+


  Register_global_constant (tag 111)
  ==================================

  +-----------------------+----------------------+-------------------------+
  | Name                  | Size                 | Contents                |
  +=======================+======================+=========================+
  | Tag                   | 1 byte               | unsigned 8-bit integer  |
  +-----------------------+----------------------+-------------------------+
  | source                | 21 bytes             | $public_key_hash        |
  +-----------------------+----------------------+-------------------------+
  | fee                   | Determined from data | $N.t                    |
  +-----------------------+----------------------+-------------------------+
  | counter               | Determined from data | $N.t                    |
  +-----------------------+----------------------+-------------------------+
  | gas_limit             | Determined from data | $N.t                    |
  +-----------------------+----------------------+-------------------------+
  | storage_limit         | Determined from data | $N.t                    |
  +-----------------------+----------------------+-------------------------+
  | # bytes in next field | 4 bytes              | unsigned 30-bit integer |
  +-----------------------+----------------------+-------------------------+
  | value                 | Variable             | bytes                   |
  +-----------------------+----------------------+-------------------------+
  | metadata              | Determined from data | $X_2516                 |
  +-----------------------+----------------------+-------------------------+


  Set_deposits_limit (tag 112)
  ============================

  +-----------------------------+----------------------+-------------------------------------+
  | Name                        | Size                 | Contents                            |
  +=============================+======================+=====================================+
  | Tag                         | 1 byte               | unsigned 8-bit integer              |
  +-----------------------------+----------------------+-------------------------------------+
  | source                      | 21 bytes             | $public_key_hash                    |
  +-----------------------------+----------------------+-------------------------------------+
  | fee                         | Determined from data | $N.t                                |
  +-----------------------------+----------------------+-------------------------------------+
  | counter                     | Determined from data | $N.t                                |
  +-----------------------------+----------------------+-------------------------------------+
  | gas_limit                   | Determined from data | $N.t                                |
  +-----------------------------+----------------------+-------------------------------------+
  | storage_limit               | Determined from data | $N.t                                |
  +-----------------------------+----------------------+-------------------------------------+
  | ? presence of field "limit" | 1 byte               | boolean (0 for false, 255 for true) |
  +-----------------------------+----------------------+-------------------------------------+
  | limit                       | Determined from data | $N.t                                |
  +-----------------------------+----------------------+-------------------------------------+
  | metadata                    | Determined from data | $X_5261                             |
  +-----------------------------+----------------------+-------------------------------------+


  Tx_rollup_origination (tag 150)
  ===============================

  +---------------+----------------------+------------------------+
  | Name          | Size                 | Contents               |
  +===============+======================+========================+
  | Tag           | 1 byte               | unsigned 8-bit integer |
  +---------------+----------------------+------------------------+
  | source        | 21 bytes             | $public_key_hash       |
  +---------------+----------------------+------------------------+
  | fee           | Determined from data | $N.t                   |
  +---------------+----------------------+------------------------+
  | counter       | Determined from data | $N.t                   |
  +---------------+----------------------+------------------------+
  | gas_limit     | Determined from data | $N.t                   |
  +---------------+----------------------+------------------------+
  | storage_limit | Determined from data | $N.t                   |
  +---------------+----------------------+------------------------+
  | metadata      | Determined from data | $X_1400                |
  +---------------+----------------------+------------------------+


  Sc_rollup_originate (tag 200)
  =============================

  +-----------------------+----------------------+-------------------------+
  | Name                  | Size                 | Contents                |
  +=======================+======================+=========================+
  | Tag                   | 1 byte               | unsigned 8-bit integer  |
  +-----------------------+----------------------+-------------------------+
  | source                | 21 bytes             | $public_key_hash        |
  +-----------------------+----------------------+-------------------------+
  | fee                   | Determined from data | $N.t                    |
  +-----------------------+----------------------+-------------------------+
  | counter               | Determined from data | $N.t                    |
  +-----------------------+----------------------+-------------------------+
  | gas_limit             | Determined from data | $N.t                    |
  +-----------------------+----------------------+-------------------------+
  | storage_limit         | Determined from data | $N.t                    |
  +-----------------------+----------------------+-------------------------+
  | kind                  | 2 bytes              | $X_5270                 |
  +-----------------------+----------------------+-------------------------+
  | # bytes in next field | 4 bytes              | unsigned 30-bit integer |
  +-----------------------+----------------------+-------------------------+
  | boot_sector           | Variable             | bytes                   |
  +-----------------------+----------------------+-------------------------+
  | metadata              | Determined from data | $X_839                  |
  +-----------------------+----------------------+-------------------------+


  Sc_rollup_add_messages (tag 201)
  ================================

  +-----------------------------------------+----------------------+--------------------------+
  | Name                                    | Size                 | Contents                 |
  +=========================================+======================+==========================+
  | Tag                                     | 1 byte               | unsigned 8-bit integer   |
  +-----------------------------------------+----------------------+--------------------------+
  | source                                  | 21 bytes             | $public_key_hash         |
  +-----------------------------------------+----------------------+--------------------------+
  | fee                                     | Determined from data | $N.t                     |
  +-----------------------------------------+----------------------+--------------------------+
  | counter                                 | Determined from data | $N.t                     |
  +-----------------------------------------+----------------------+--------------------------+
  | gas_limit                               | Determined from data | $N.t                     |
  +-----------------------------------------+----------------------+--------------------------+
  | storage_limit                           | Determined from data | $N.t                     |
  +-----------------------------------------+----------------------+--------------------------+
  | # bytes in field "alpha.rollup_address" | 4 bytes              | unsigned 30-bit integer  |
  +-----------------------------------------+----------------------+--------------------------+
  | rollup                                  | Variable             | bytes                    |
  +-----------------------------------------+----------------------+--------------------------+
  | # bytes in next field                   | 4 bytes              | unsigned 30-bit integer  |
  +-----------------------------------------+----------------------+--------------------------+
  | message                                 | Variable             | sequence of $alpha.error |
  +-----------------------------------------+----------------------+--------------------------+
  | metadata                                | Determined from data | $X_281                   |
  +-----------------------------------------+----------------------+--------------------------+


  alpha.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_8        |
  +-----------------------+----------+-------------------------+


  X_5838 (1 byte, 8-bit tag)
  **************************

  Block_application (tag 0)
  =========================

  +------+--------+------------------------+
  | Name | Size   | Contents               |
  +======+========+========================+
  | Tag  | 1 byte | unsigned 8-bit integer |
  +------+--------+------------------------+


  Protocol_migration (tag 1)
  ==========================

  +------+--------+------------------------+
  | Name | Size   | Contents               |
  +======+========+========================+
  | Tag  | 1 byte | unsigned 8-bit integer |
  +------+--------+------------------------+


  Subsidy (tag 2)
  ===============

  +------+--------+------------------------+
  | Name | Size   | Contents               |
  +======+========+========================+
  | Tag  | 1 byte | unsigned 8-bit integer |
  +------+--------+------------------------+


  Simulation (tag 3)
  ==================

  +------+--------+------------------------+
  | Name | Size   | Contents               |
  +======+========+========================+
  | Tag  | 1 byte | unsigned 8-bit integer |
  +------+--------+------------------------+


  X_5837 (Determined from data, 8-bit tag)
  ****************************************

  Contract (tag 0)
  ================

  +----------+----------+------------------------+
  | Name     | Size     | Contents               |
  +==========+==========+========================+
  | Tag      | 1 byte   | unsigned 8-bit integer |
  +----------+----------+------------------------+
  | contract | 22 bytes | $alpha.contract_id     |
  +----------+----------+------------------------+


  Legacy_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  |
  +----------+----------+------------------------+


  Block_fees (tag 2)
  ==================

  +------+--------+------------------------+
  | Name | Size   | Contents               |
  +======+========+========================+
  | Tag  | 1 byte | unsigned 8-bit integer |
  +------+--------+------------------------+


  Legacy_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  |
  +----------+----------+------------------------+


  Deposits (tag 4)
  ================

  +----------+----------+------------------------+
  | Name     | Size     | Contents               |
  +==========+==========+========================+
  | Tag      | 1 byte   | unsigned 8-bit integer |
  +----------+----------+------------------------+
  | delegate | 21 bytes | $public_key_hash       |
  +----------+----------+------------------------+


  Nonce_revelation_rewards (tag 5)
  ================================

  +------+--------+------------------------+
  | Name | Size   | Contents               |
  +======+========+========================+
  | Tag  | 1 byte | unsigned 8-bit integer |
  +------+--------+------------------------+


  Double_signing_evidence_rewards (tag 6)
  =======================================

  +------+--------+------------------------+
  | Name | Size   | Contents               |
  +======+========+========================+
  | Tag  | 1 byte | unsigned 8-bit integer |
  +------+--------+------------------------+


  Endorsing_rewards (tag 7)
  =========================

  +------+--------+------------------------+
  | Name | Size   | Contents               |
  +======+========+========================+
  | Tag  | 1 byte | unsigned 8-bit integer |
  +------+--------+------------------------+


  Baking_rewards (tag 8)
  ======================

  +------+--------+------------------------+
  | Name | Size   | Contents               |
  +======+========+========================+
  | Tag  | 1 byte | unsigned 8-bit integer |
  +------+--------+------------------------+


  Baking_bonuses (tag 9)
  ======================

  +------+--------+------------------------+
  | Name | Size   | Contents               |
  +======+========+========================+
  | Tag  | 1 byte | unsigned 8-bit integer |
  +------+--------+------------------------+


  Legacy_fees (tag 10)
  ====================

  +----------+----------+------------------------+
  | Name     | Size     | Contents               |
  +==========+==========+========================+
  | Tag      | 1 byte   | unsigned 8-bit integer |
  +----------+----------+------------------------+
  | delegate | 21 bytes | $public_key_hash       |
  +----------+----------+------------------------+
  | cycle    | 4 bytes  | signed 32-bit integer  |
  +----------+----------+------------------------+


  Storage_fees (tag 11)
  =====================

  +------+--------+------------------------+
  | Name | Size   | Contents               |
  +======+========+========================+
  | Tag  | 1 byte | unsigned 8-bit integer |
  +------+--------+------------------------+


  Double_signing_punishments (tag 12)
  ===================================

  +------+--------+------------------------+
  | Name | Size   | Contents               |
  +======+========+========================+
  | Tag  | 1 byte | unsigned 8-bit integer |
  +------+--------+------------------------+


  Lost_endorsing_rewards (tag 13)
  ===============================

  +---------------+----------+-------------------------------------+
  | Name          | Size     | Contents                            |
  +===============+==========+=====================================+
  | Tag           | 1 byte   | unsigned 8-bit integer              |
  +---------------+----------+-------------------------------------+
  | delegate      | 21 bytes | $public_key_hash                    |
  +---------------+----------+-------------------------------------+
  | participation | 1 byte   | boolean (0 for false, 255 for true) |
  +---------------+----------+-------------------------------------+
  | revelation    | 1 byte   | boolean (0 for false, 255 for true) |
  +---------------+----------+-------------------------------------+


  Liquidity_baking_subsidies (tag 14)
  ===================================

  +------+--------+------------------------+
  | Name | Size   | Contents               |
  +======+========+========================+
  | Tag  | 1 byte | unsigned 8-bit integer |
  +------+--------+------------------------+


  Burned (tag 15)
  ===============

  +------+--------+------------------------+
  | Name | Size   | Contents               |
  +======+========+========================+
  | Tag  | 1 byte | unsigned 8-bit integer |
  +------+--------+------------------------+


  Commitments (tag 16)
  ====================

  +-----------+----------+------------------------+
  | Name      | Size     | Contents               |
  +===========+==========+========================+
  | Tag       | 1 byte   | unsigned 8-bit integer |
  +-----------+----------+------------------------+
  | committer | 20 bytes | bytes                  |
  +-----------+----------+------------------------+


  Bootstrap (tag 17)
  ==================

  +------+--------+------------------------+
  | Name | Size   | Contents               |
  +======+========+========================+
  | Tag  | 1 byte | unsigned 8-bit integer |
  +------+--------+------------------------+


  Invoice (tag 18)
  ================

  +------+--------+------------------------+
  | Name | Size   | Contents               |
  +======+========+========================+
  | Tag  | 1 byte | unsigned 8-bit integer |
  +------+--------+------------------------+


  Initial_commitments (tag 19)
  ============================

  +------+--------+------------------------+
  | Name | Size   | Contents               |
  +======+========+========================+
  | Tag  | 1 byte | unsigned 8-bit integer |
  +------+--------+------------------------+


  Minted (tag 20)
  ===============

  +------+--------+------------------------+
  | Name | Size   | Contents               |
  +======+========+========================+
  | Tag  | 1 byte | unsigned 8-bit integer |
  +------+--------+------------------------+


  alpha.contract_id (22 bytes, 8-bit tag)
  ***************************************

  Implicit (tag 0)
  ================

  +---------------------------+----------+------------------------+
  | Name                      | Size     | Contents               |
  +===========================+==========+========================+
  | Tag                       | 1 byte   | unsigned 8-bit integer |
  +---------------------------+----------+------------------------+
  | Signature.Public_key_hash | 21 bytes | $public_key_hash       |
  +---------------------------+----------+------------------------+


  Originated (tag 1)
  ==================

  +---------------+----------+------------------------+
  | Name          | Size     | Contents               |
  +===============+==========+========================+
  | Tag           | 1 byte   | unsigned 8-bit integer |
  +---------------+----------+------------------------+
  | Contract_hash | 20 bytes | bytes                  |
  +---------------+----------+------------------------+
  | padding       | 1 byte   | padding                |
  +---------------+----------+------------------------+


  public_key_hash (21 bytes, 8-bit tag)
  *************************************

  Ed25519 (tag 0)
  ===============

  +-------------------------+----------+------------------------+
  | Name                    | Size     | Contents               |
  +=========================+==========+========================+
  | Tag                     | 1 byte   | unsigned 8-bit integer |
  +-------------------------+----------+------------------------+
  | Ed25519.Public_key_hash | 20 bytes | bytes                  |
  +-------------------------+----------+------------------------+


  Secp256k1 (tag 1)
  =================

  +---------------------------+----------+------------------------+
  | Name                      | Size     | Contents               |
  +===========================+==========+========================+
  | Tag                       | 1 byte   | unsigned 8-bit integer |
  +---------------------------+----------+------------------------+
  | Secp256k1.Public_key_hash | 20 bytes | bytes                  |
  +---------------------------+----------+------------------------+


  P256 (tag 2)
  ============

  +----------------------+----------+------------------------+
  | Name                 | Size     | Contents               |
  +======================+==========+========================+
  | Tag                  | 1 byte   | unsigned 8-bit integer |
  +----------------------+----------+------------------------+
  | P256.Public_key_hash | 20 bytes | bytes                  |
  +----------------------+----------+------------------------+


  alpha.inlined.endorsement
  *************************

  +------------+----------+---------------------------------------------+
  | Name       | Size     | Contents                                    |
  +============+==========+=============================================+
  | branch     | 32 bytes | bytes                                       |
  +------------+----------+---------------------------------------------+
  | operations | 43 bytes | $alpha.inlined.endorsement_mempool.contents |
  +------------+----------+---------------------------------------------+
  | signature  | Variable | bytes                                       |
  +------------+----------+---------------------------------------------+


  alpha.inlined.endorsement_mempool.contents (43 bytes, 8-bit tag)
  ****************************************************************

  Endorsement (tag 21)
  ====================

  +--------------------+----------+-------------------------+
  | Name               | Size     | Contents                |
  +====================+==========+=========================+
  | Tag                | 1 byte   | unsigned 8-bit integer  |
  +--------------------+----------+-------------------------+
  | slot               | 2 bytes  | unsigned 16-bit integer |
  +--------------------+----------+-------------------------+
  | level              | 4 bytes  | signed 32-bit integer   |
  +--------------------+----------+-------------------------+
  | round              | 4 bytes  | signed 32-bit integer   |
  +--------------------+----------+-------------------------+
  | block_payload_hash | 32 bytes | bytes                   |
  +--------------------+----------+-------------------------+


  alpha.block_header.alpha.full_header
  ************************************

  +---------------------------------------+----------+-------------------------------------+
  | Name                                  | Size     | Contents                            |
  +=======================================+==========+=====================================+
  | level                                 | 4 bytes  | signed 32-bit integer               |
  +---------------------------------------+----------+-------------------------------------+
  | proto                                 | 1 byte   | unsigned 8-bit integer              |
  +---------------------------------------+----------+-------------------------------------+
  | predecessor                           | 32 bytes | bytes                               |
  +---------------------------------------+----------+-------------------------------------+
  | timestamp                             | 8 bytes  | signed 64-bit integer               |
  +---------------------------------------+----------+-------------------------------------+
  | validation_pass                       | 1 byte   | unsigned 8-bit integer              |
  +---------------------------------------+----------+-------------------------------------+
  | operations_hash                       | 32 bytes | bytes                               |
  +---------------------------------------+----------+-------------------------------------+
  | # bytes in field "fitness"            | 4 bytes  | unsigned 30-bit integer             |
  +---------------------------------------+----------+-------------------------------------+
  | fitness                               | Variable | sequence of $fitness.elem           |
  +---------------------------------------+----------+-------------------------------------+
  | context                               | 32 bytes | bytes                               |
  +---------------------------------------+----------+-------------------------------------+
  | payload_hash                          | 32 bytes | bytes                               |
  +---------------------------------------+----------+-------------------------------------+
  | payload_round                         | 4 bytes  | signed 32-bit integer               |
  +---------------------------------------+----------+-------------------------------------+
  | proof_of_work_nonce                   | 8 bytes  | bytes                               |
  +---------------------------------------+----------+-------------------------------------+
  | ? presence of field "seed_nonce_hash" | 1 byte   | boolean (0 for false, 255 for true) |
  +---------------------------------------+----------+-------------------------------------+
  | seed_nonce_hash                       | 32 bytes | bytes                               |
  +---------------------------------------+----------+-------------------------------------+
  | liquidity_baking_escape_vote          | 1 byte   | boolean (0 for false, 255 for true) |
  +---------------------------------------+----------+-------------------------------------+
  | signature                             | 64 bytes | bytes                               |
  +---------------------------------------+----------+-------------------------------------+


  fitness.elem
  ************

  +-----------------------+----------+-------------------------+
  | Name                  | Size     | Contents                |
  +=======================+==========+=========================+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer |
  +-----------------------+----------+-------------------------+
  | Unnamed field 0       | Variable | bytes                   |
  +-----------------------+----------+-------------------------+


  alpha.inlined.preendorsement
  ****************************

  +------------+----------+----------------------------------------+
  | Name       | Size     | Contents                               |
  +============+==========+========================================+
  | branch     | 32 bytes | bytes                                  |
  +------------+----------+----------------------------------------+
  | operations | 43 bytes | $alpha.inlined.preendorsement.contents |
  +------------+----------+----------------------------------------+
  | signature  | Variable | bytes                                  |
  +------------+----------+----------------------------------------+


  alpha.inlined.preendorsement.contents (43 bytes, 8-bit tag)
  ***********************************************************

  Preendorsement (tag 20)
  =======================

  +--------------------+----------+-------------------------+
  | Name               | Size     | Contents                |
  +====================+==========+=========================+
  | Tag                | 1 byte   | unsigned 8-bit integer  |
  +--------------------+----------+-------------------------+
  | slot               | 2 bytes  | unsigned 16-bit integer |
  +--------------------+----------+-------------------------+
  | level              | 4 bytes  | signed 32-bit integer   |
  +--------------------+----------+-------------------------+
  | round              | 4 bytes  | signed 32-bit integer   |
  +--------------------+----------+-------------------------+
  | block_payload_hash | 32 bytes | bytes                   |
  +--------------------+----------+-------------------------+


  X_5820
  ******

  +-------------------------------------------------------------------+----------+--------------------------------------------------------------+
  | Name                                                              | Size     | Contents                                                     |
  +===================================================================+==========+==============================================================+
  | # bytes in field "alpha.operation_metadata.alpha.balance_updates" | 4 bytes  | unsigned 30-bit integer                                      |
  +-------------------------------------------------------------------+----------+--------------------------------------------------------------+
  | balance_updates                                                   | Variable | sequence of $X_8                                             |
  +-------------------------------------------------------------------+----------+--------------------------------------------------------------+
  | delegate                                                          | 21 bytes | $public_key_hash                                             |
  +-------------------------------------------------------------------+----------+--------------------------------------------------------------+
  | preendorsement_power                                              | 4 bytes  | signed 31-bit integer in the range -1073741824 to 1073741823 |
  +-------------------------------------------------------------------+----------+--------------------------------------------------------------+


  X_5816
  ******

  +-------------------------------------------------------------------+----------+--------------------------------------------------------------+
  | Name                                                              | Size     | Contents                                                     |
  +===================================================================+==========+==============================================================+
  | # bytes in field "alpha.operation_metadata.alpha.balance_updates" | 4 bytes  | unsigned 30-bit integer                                      |
  +-------------------------------------------------------------------+----------+--------------------------------------------------------------+
  | balance_updates                                                   | Variable | sequence of $X_8                                             |
  +-------------------------------------------------------------------+----------+--------------------------------------------------------------+
  | delegate                                                          | 21 bytes | $public_key_hash                                             |
  +-------------------------------------------------------------------+----------+--------------------------------------------------------------+
  | endorsement_power                                                 | 4 bytes  | signed 31-bit integer in the range -1073741824 to 1073741823 |
  +-------------------------------------------------------------------+----------+--------------------------------------------------------------+


  X_5261
  ******

  +-------------------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | Name                                                              | Size                 | Contents                                                     |
  +===================================================================+======================+==============================================================+
  | # bytes in field "alpha.operation_metadata.alpha.balance_updates" | 4 bytes              | unsigned 30-bit integer                                      |
  +-------------------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | balance_updates                                                   | Variable             | sequence of $X_8                                             |
  +-------------------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | operation_result                                                  | Determined from data | $alpha.operation.alpha.operation_result.set_deposits_limit   |
  +-------------------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | # bytes in next field                                             | 4 bytes              | unsigned 30-bit integer                                      |
  +-------------------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | internal_operation_results                                        | Variable             | sequence of $alpha.operation.alpha.internal_operation_result |
  +-------------------------------------------------------------------+----------------------+--------------------------------------------------------------+


  N.t
  ***

  A variable-length sequence of bytes encoding a Zarith natural number. Each byte has a running unary size bit: the most significant bit of each byte indicates whether this is the last byte in the sequence (0) or whether the sequence continues (1). Size bits ignored, the data is the binary representation of the number in little-endian order.

  +------+----------------------+----------+
  | Name | Size                 | Contents |
  +======+======================+==========+
  | N.t  | Determined from data | bytes    |
  +------+----------------------+----------+


  alpha.error
  ***********

  +-----------------------+----------+-------------------------+
  | Name                  | Size     | Contents                |
  +=======================+==========+=========================+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer |
  +-----------------------+----------+-------------------------+
  | Unnamed field 0       | Variable | bytes                   |
  +-----------------------+----------+-------------------------+


  X_5815
  ******

  +-----------------------+----------+--------------------------+
  | Name                  | Size     | Contents                 |
  +=======================+==========+==========================+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer  |
  +-----------------------+----------+--------------------------+
  | Unnamed field 0       | Variable | sequence of $alpha.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                  |
  +-----------------+----------+------------------------+


  alpha.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_23                               |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | ? presence of field "big_map_diff"                                | 1 byte               | boolean (0 for false, 255 for true) |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | big_map_diff                                                      | Determined from data | $X_14                               |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | # bytes in field "alpha.operation_metadata.alpha.balance_updates" | 4 bytes              | unsigned 30-bit integer             |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | balance_updates                                                   | Variable             | sequence of $X_8                    |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | # bytes in next field                                             | 4 bytes              | unsigned 30-bit integer             |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | originated_contracts                                              | Variable             | sequence of $alpha.contract_id      |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | consumed_gas                                                      | Determined from data | $N.t                                |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | consumed_milligas                                                 | Determined from data | $N.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) |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | ? presence of field "lazy_storage_diff"                           | 1 byte               | boolean (0 for false, 255 for true) |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | lazy_storage_diff                                                 | Determined from data | $alpha.lazy_storage_diff            |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+


  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 $alpha.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_5815                             |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | ? presence of field "storage"                                     | 1 byte               | boolean (0 for false, 255 for true) |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | storage                                                           | Determined from data | $X_23                               |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | ? presence of field "big_map_diff"                                | 1 byte               | boolean (0 for false, 255 for true) |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | big_map_diff                                                      | Determined from data | $X_14                               |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | # bytes in field "alpha.operation_metadata.alpha.balance_updates" | 4 bytes              | unsigned 30-bit integer             |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | balance_updates                                                   | Variable             | sequence of $X_8                    |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | # bytes in next field                                             | 4 bytes              | unsigned 30-bit integer             |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | originated_contracts                                              | Variable             | sequence of $alpha.contract_id      |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | consumed_gas                                                      | Determined from data | $N.t                                |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | consumed_milligas                                                 | Determined from data | $N.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) |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | ? presence of field "lazy_storage_diff"                           | 1 byte               | boolean (0 for false, 255 for true) |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | lazy_storage_diff                                                 | Determined from data | $alpha.lazy_storage_diff            |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+


  X_5814 (Determined from data, 8-bit tag)
  ****************************************

  big_map (tag 0)
  ===============

  +------+----------------------+------------------------+
  | Name | Size                 | Contents               |
  +======+======================+========================+
  | Tag  | 1 byte               | unsigned 8-bit integer |
  +------+----------------------+------------------------+
  | id   | Determined from data | $Z.t                   |
  +------+----------------------+------------------------+
  | diff | Determined from data | $X_137                 |
  +------+----------------------+------------------------+


  sapling_state (tag 1)
  =====================

  +------+----------------------+------------------------+
  | Name | Size                 | Contents               |
  +======+======================+========================+
  | Tag  | 1 byte               | unsigned 8-bit integer |
  +------+----------------------+------------------------+
  | id   | Determined from data | $Z.t                   |
  +------+----------------------+------------------------+
  | diff | Determined from data | $X_5737                |
  +------+----------------------+------------------------+


  X_5794
  ******

  +-----------------------------+----------------------+-------------------------------------+
  | Name                        | Size                 | Contents                            |
  +=============================+======================+=====================================+
  | key_hash                    | 32 bytes             | bytes                               |
  +-----------------------------+----------------------+-------------------------------------+
  | key                         | Determined from data | $X_23                               |
  +-----------------------------+----------------------+-------------------------------------+
  | ? presence of field "value" | 1 byte               | boolean (0 for false, 255 for true) |
  +-----------------------------+----------------------+-------------------------------------+
  | value                       | Determined from data | $X_23                               |
  +-----------------------------+----------------------+-------------------------------------+


  Z.t
  ***

  A variable-length sequence of bytes encoding a Zarith integer. Each byte has a running unary size bit: the most significant bit of each byte indicates whether this is the last byte in the sequence (0) or whether the sequence continues (1). The second most significant bit of the first byte is reserved for the sign (0 for positive, 1 for negative). Size and sign bits ignored, the data is the binary representation of the absolute value of the number in little-endian order.

  +------+----------------------+----------+
  | Name | Size                 | Contents |
  +======+======================+==========+
  | Z.t  | Determined from data | bytes    |
  +------+----------------------+----------+


  alpha.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         | DIG                   |
  +-------------+-----------------------+
  | 113         | DUG                   |
  +-------------+-----------------------+
  | 114         | EMPTY_BIG_MAP         |
  +-------------+-----------------------+
  | 115         | APPLY                 |
  +-------------+-----------------------+
  | 116         | chain_id              |
  +-------------+-----------------------+
  | 117         | CHAIN_ID              |
  +-------------+-----------------------+
  | 118         | LEVEL                 |
  +-------------+-----------------------+
  | 119         | SELF_ADDRESS          |
  +-------------+-----------------------+
  | 120         | never                 |
  +-------------+-----------------------+
  | 121         | NEVER                 |
  +-------------+-----------------------+
  | 122         | UNPAIR                |
  +-------------+-----------------------+
  | 123         | VOTING_POWER          |
  +-------------+-----------------------+
  | 124         | TOTAL_VOTING_POWER    |
  +-------------+-----------------------+
  | 125         | KECCAK                |
  +-------------+-----------------------+
  | 126         | SHA3                  |
  +-------------+-----------------------+
  | 127         | PAIRING_CHECK         |
  +-------------+-----------------------+
  | 128         | bls12_381_g1          |
  +-------------+-----------------------+
  | 129         | bls12_381_g2          |
  +-------------+-----------------------+
  | 130         | bls12_381_fr          |
  +-------------+-----------------------+
  | 131         | sapling_state         |
  +-------------+-----------------------+
  | 132         | sapling_transaction   |
  +-------------+-----------------------+
  | 133         | SAPLING_EMPTY_STATE   |
  +-------------+-----------------------+
  | 134         | SAPLING_VERIFY_UPDATE |
  +-------------+-----------------------+
  | 135         | ticket                |
  +-------------+-----------------------+
  | 136         | TICKET                |
  +-------------+-----------------------+
  | 137         | READ_TICKET           |
  +-------------+-----------------------+
  | 138         | SPLIT_TICKET          |
  +-------------+-----------------------+
  | 139         | JOIN_TICKETS          |
  +-------------+-----------------------+
  | 140         | GET_AND_UPDATE        |
  +-------------+-----------------------+
  | 141         | chest                 |
  +-------------+-----------------------+
  | 142         | chest_key             |
  +-------------+-----------------------+
  | 143         | OPEN_CHEST            |
  +-------------+-----------------------+
  | 144         | VIEW                  |
  +-------------+-----------------------+
  | 145         | view                  |
  +-------------+-----------------------+
  | 146         | constant              |
  +-------------+-----------------------+
  | 147         | SUB_MUTEZ             |
  +-------------+-----------------------+


  X_5737 (Determined from data, 8-bit tag)
  ****************************************

  update (tag 0)
  ==============

  +---------+----------------------+------------------------+
  | Name    | Size                 | Contents               |
  +=========+======================+========================+
  | Tag     | 1 byte               | unsigned 8-bit integer |
  +---------+----------------------+------------------------+
  | updates | Determined from data | $X_55                  |
  +---------+----------------------+------------------------+


  remove (tag 1)
  ==============

  +------+--------+------------------------+
  | Name | Size   | Contents               |
  +======+========+========================+
  | Tag  | 1 byte | unsigned 8-bit integer |
  +------+--------+------------------------+


  copy (tag 2)
  ============

  +---------+----------------------+------------------------+
  | Name    | Size                 | Contents               |
  +=========+======================+========================+
  | Tag     | 1 byte               | unsigned 8-bit integer |
  +---------+----------------------+------------------------+
  | source  | Determined from data | $Z.t                   |
  +---------+----------------------+------------------------+
  | updates | Determined from data | $X_55                  |
  +---------+----------------------+------------------------+


  alloc (tag 3)
  =============

  +-----------+----------------------+-------------------------+
  | Name      | Size                 | Contents                |
  +===========+======================+=========================+
  | Tag       | 1 byte               | unsigned 8-bit integer  |
  +-----------+----------------------+-------------------------+
  | updates   | Determined from data | $X_55                   |
  +-----------+----------------------+-------------------------+
  | memo_size | 2 bytes              | unsigned 16-bit integer |
  +-----------+----------------------+-------------------------+


  X_5736
  ******

  +-----------------+----------------------+---------------------------------+
  | Name            | Size                 | Contents                        |
  +=================+======================+=================================+
  | Unnamed field 0 | 32 bytes             | bytes                           |
  +-----------------+----------------------+---------------------------------+
  | Unnamed field 1 | Determined from data | $sapling.transaction.ciphertext |
  +-----------------+----------------------+---------------------------------+


  sapling.transaction.ciphertext
  ******************************

  +-----------------------+----------+-------------------------+
  | Name                  | Size     | Contents                |
  +=======================+==========+=========================+
  | cv                    | 32 bytes | bytes                   |
  +-----------------------+----------+-------------------------+
  | epk                   | 32 bytes | bytes                   |
  +-----------------------+----------+-------------------------+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer |
  +-----------------------+----------+-------------------------+
  | payload_enc           | Variable | bytes                   |
  +-----------------------+----------+-------------------------+
  | nonce_enc             | 24 bytes | bytes                   |
  +-----------------------+----------+-------------------------+
  | payload_out           | 80 bytes | bytes                   |
  +-----------------------+----------+-------------------------+
  | nonce_out             | 24 bytes | bytes                   |
  +-----------------------+----------+-------------------------+


  X_5727 (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_23                               |
  +-----------------------------+----------------------+-------------------------------------+
  | ? presence of field "value" | 1 byte               | boolean (0 for false, 255 for true) |
  +-----------------------------+----------------------+-------------------------------------+
  | value                       | Determined from data | $X_23                               |
  +-----------------------------+----------------------+-------------------------------------+


  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_23                  |
  +------------+----------------------+------------------------+
  | value_type | Determined from data | $X_23                  |
  +------------+----------------------+------------------------+


  X_5545
  ******

  +-----------------------+----------------------+-------------------------+
  | Name                  | Size                 | Contents                |
  +=======================+======================+=========================+
  | entrypoint            | Determined from data | $alpha.entrypoint       |
  +-----------------------+----------------------+-------------------------+
  | # bytes in next field | 4 bytes              | unsigned 30-bit integer |
  +-----------------------+----------------------+-------------------------+
  | value                 | Variable             | bytes                   |
  +-----------------------+----------------------+-------------------------+


  alpha.entrypoint (Determined from data, 8-bit tag)
  **************************************************

  default (tag 0)
  ===============

  +------+--------+------------------------+
  | Name | Size   | Contents               |
  +======+========+========================+
  | Tag  | 1 byte | unsigned 8-bit integer |
  +------+--------+------------------------+


  root (tag 1)
  ============

  +------+--------+------------------------+
  | Name | Size   | Contents               |
  +======+========+========================+
  | Tag  | 1 byte | unsigned 8-bit integer |
  +------+--------+------------------------+


  do (tag 2)
  ==========

  +------+--------+------------------------+
  | Name | Size   | Contents               |
  +======+========+========================+
  | Tag  | 1 byte | unsigned 8-bit integer |
  +------+--------+------------------------+


  set_delegate (tag 3)
  ====================

  +------+--------+------------------------+
  | Name | Size   | Contents               |
  +======+========+========================+
  | Tag  | 1 byte | unsigned 8-bit integer |
  +------+--------+------------------------+


  remove_delegate (tag 4)
  =======================

  +------+--------+------------------------+
  | Name | Size   | Contents               |
  +======+========+========================+
  | Tag  | 1 byte | unsigned 8-bit integer |
  +------+--------+------------------------+


  named (tag 255)
  ===============

  +-----------------------+----------+------------------------+
  | Name                  | Size     | Contents               |
  +=======================+==========+========================+
  | Tag                   | 1 byte   | unsigned 8-bit integer |
  +-----------------------+----------+------------------------+
  | # bytes in next field | 1 byte   | unsigned 8-bit integer |
  +-----------------------+----------+------------------------+
  | Unnamed field 0       | Variable | bytes                  |
  +-----------------------+----------+------------------------+


  alpha.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 | $X_14                               |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | # bytes in field "alpha.operation_metadata.alpha.balance_updates" | 4 bytes              | unsigned 30-bit integer             |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | balance_updates                                                   | Variable             | sequence of $X_8                    |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | # bytes in next field                                             | 4 bytes              | unsigned 30-bit integer             |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | originated_contracts                                              | Variable             | sequence of $alpha.contract_id      |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | consumed_gas                                                      | Determined from data | $N.t                                |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | consumed_milligas                                                 | Determined from data | $N.t                                |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | storage_size                                                      | Determined from data | $Z.t                                |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | paid_storage_size_diff                                            | Determined from data | $Z.t                                |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | ? presence of field "lazy_storage_diff"                           | 1 byte               | boolean (0 for false, 255 for true) |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | lazy_storage_diff                                                 | Determined from data | $alpha.lazy_storage_diff            |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+


  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 $alpha.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_5815                             |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | ? presence of field "big_map_diff"                                | 1 byte               | boolean (0 for false, 255 for true) |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | big_map_diff                                                      | Determined from data | $X_14                               |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | # bytes in field "alpha.operation_metadata.alpha.balance_updates" | 4 bytes              | unsigned 30-bit integer             |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | balance_updates                                                   | Variable             | sequence of $X_8                    |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | # bytes in next field                                             | 4 bytes              | unsigned 30-bit integer             |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | originated_contracts                                              | Variable             | sequence of $alpha.contract_id      |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | consumed_gas                                                      | Determined from data | $N.t                                |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | consumed_milligas                                                 | Determined from data | $N.t                                |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | storage_size                                                      | Determined from data | $Z.t                                |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | paid_storage_size_diff                                            | Determined from data | $Z.t                                |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | ? presence of field "lazy_storage_diff"                           | 1 byte               | boolean (0 for false, 255 for true) |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | lazy_storage_diff                                                 | Determined from data | $alpha.lazy_storage_diff            |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+


  alpha.scripted.contracts
  ************************

  +-----------------------+----------+-------------------------+
  | Name                  | Size     | Contents                |
  +=======================+==========+=========================+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer |
  +-----------------------+----------+-------------------------+
  | code                  | Variable | bytes                   |
  +-----------------------+----------+-------------------------+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer |
  +-----------------------+----------+-------------------------+
  | storage               | Variable | bytes                   |
  +-----------------------+----------+-------------------------+


  alpha.operation.alpha.operation_result.register_global_constant (Determined from data, 8-bit tag)
  *************************************************************************************************

  Applied (tag 0)
  ===============

  +-------------------------------------------------------------------+----------------------+-------------------------+
  | Name                                                              | Size                 | Contents                |
  +===================================================================+======================+=========================+
  | Tag                                                               | 1 byte               | unsigned 8-bit integer  |
  +-------------------------------------------------------------------+----------------------+-------------------------+
  | # bytes in field "alpha.operation_metadata.alpha.balance_updates" | 4 bytes              | unsigned 30-bit integer |
  +-------------------------------------------------------------------+----------------------+-------------------------+
  | balance_updates                                                   | Variable             | sequence of $X_8        |
  +-------------------------------------------------------------------+----------------------+-------------------------+
  | consumed_gas                                                      | Determined from data | $N.t                    |
  +-------------------------------------------------------------------+----------------------+-------------------------+
  | consumed_milligas                                                 | Determined from data | $N.t                    |
  +-------------------------------------------------------------------+----------------------+-------------------------+
  | storage_size                                                      | Determined from data | $Z.t                    |
  +-------------------------------------------------------------------+----------------------+-------------------------+
  | global_address                                                    | 32 bytes             | bytes                   |
  +-------------------------------------------------------------------+----------------------+-------------------------+


  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 $alpha.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_5815                             |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | # bytes in field "alpha.operation_metadata.alpha.balance_updates" | 4 bytes              | unsigned 30-bit integer             |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | balance_updates                                                   | Variable             | sequence of $X_8                    |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | consumed_gas                                                      | Determined from data | $N.t                                |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | consumed_milligas                                                 | Determined from data | $N.t                                |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | storage_size                                                      | Determined from data | $Z.t                                |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | global_address                                                    | 32 bytes             | bytes                               |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+


  alpha.operation.alpha.operation_result.tx_rollup_origination (Determined from data, 8-bit tag)
  **********************************************************************************************

  Applied (tag 0)
  ===============

  +-------------------------------------------------------------------+----------------------+-------------------------+
  | Name                                                              | Size                 | Contents                |
  +===================================================================+======================+=========================+
  | Tag                                                               | 1 byte               | unsigned 8-bit integer  |
  +-------------------------------------------------------------------+----------------------+-------------------------+
  | # bytes in field "alpha.operation_metadata.alpha.balance_updates" | 4 bytes              | unsigned 30-bit integer |
  +-------------------------------------------------------------------+----------------------+-------------------------+
  | balance_updates                                                   | Variable             | sequence of $X_8        |
  +-------------------------------------------------------------------+----------------------+-------------------------+
  | consumed_gas                                                      | Determined from data | $N.t                    |
  +-------------------------------------------------------------------+----------------------+-------------------------+
  | consumed_milligas                                                 | Determined from data | $N.t                    |
  +-------------------------------------------------------------------+----------------------+-------------------------+
  | originated_rollup                                                 | 20 bytes             | bytes                   |
  +-------------------------------------------------------------------+----------------------+-------------------------+


  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 $alpha.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_5815                             |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | # bytes in field "alpha.operation_metadata.alpha.balance_updates" | 4 bytes              | unsigned 30-bit integer             |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | balance_updates                                                   | Variable             | sequence of $X_8                    |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | consumed_gas                                                      | Determined from data | $N.t                                |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | consumed_milligas                                                 | Determined from data | $N.t                                |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | originated_rollup                                                 | 20 bytes             | bytes                               |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+


  alpha.operation.alpha.operation_result.sc_rollup_originate (Determined from data, 8-bit tag)
  ********************************************************************************************

  Applied (tag 0)
  ===============

  +-------------------------------------------------------------------+----------------------+-------------------------+
  | Name                                                              | Size                 | Contents                |
  +===================================================================+======================+=========================+
  | Tag                                                               | 1 byte               | unsigned 8-bit integer  |
  +-------------------------------------------------------------------+----------------------+-------------------------+
  | # bytes in field "alpha.operation_metadata.alpha.balance_updates" | 4 bytes              | unsigned 30-bit integer |
  +-------------------------------------------------------------------+----------------------+-------------------------+
  | balance_updates                                                   | Variable             | sequence of $X_8        |
  +-------------------------------------------------------------------+----------------------+-------------------------+
  | address                                                           | 20 bytes             | bytes                   |
  +-------------------------------------------------------------------+----------------------+-------------------------+
  | consumed_gas                                                      | Determined from data | $N.t                    |
  +-------------------------------------------------------------------+----------------------+-------------------------+
  | consumed_milligas                                                 | Determined from data | $N.t                    |
  +-------------------------------------------------------------------+----------------------+-------------------------+
  | size                                                              | 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 $alpha.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_5815                             |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | # bytes in field "alpha.operation_metadata.alpha.balance_updates" | 4 bytes              | unsigned 30-bit integer             |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | balance_updates                                                   | Variable             | sequence of $X_8                    |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | address                                                           | 20 bytes             | bytes                               |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | consumed_gas                                                      | Determined from data | $N.t                                |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | consumed_milligas                                                 | Determined from data | $N.t                                |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | size                                                              | Determined from data | $Z.t                                |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+


  X_5270 (2 bytes, 16-bit tag)
  ****************************

  Example_arith smart contract rollup kind (tag 0)
  ================================================

  +------+---------+-------------------------+
  | Name | Size    | Contents                |
  +======+=========+=========================+
  | Tag  | 2 bytes | unsigned 16-bit integer |
  +------+---------+-------------------------+


  X_5269
  ******

  +------------+----------+-----------------------+
  | Name       | Size     | Contents              |
  +============+==========+=======================+
  | hash       | 32 bytes | bytes                 |
  +------------+----------+-----------------------+
  | inbox_size | 8 bytes  | signed 64-bit integer |
  +------------+----------+-----------------------+


  X_4438
  ******

  +-------------------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | Name                                                              | Size                 | Contents                                                     |
  +===================================================================+======================+==============================================================+
  | # bytes in field "alpha.operation_metadata.alpha.balance_updates" | 4 bytes              | unsigned 30-bit integer                                      |
  +-------------------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | balance_updates                                                   | Variable             | sequence of $X_8                                             |
  +-------------------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | operation_result                                                  | Determined from data | $alpha.operation.alpha.operation_result.transaction          |
  +-------------------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | # bytes in next field                                             | 4 bytes              | unsigned 30-bit integer                                      |
  +-------------------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | internal_operation_results                                        | Variable             | sequence of $alpha.operation.alpha.internal_operation_result |
  +-------------------------------------------------------------------+----------------------+--------------------------------------------------------------+


  X_3632
  ******

  +-------------------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | Name                                                              | Size                 | Contents                                                     |
  +===================================================================+======================+==============================================================+
  | # bytes in field "alpha.operation_metadata.alpha.balance_updates" | 4 bytes              | unsigned 30-bit integer                                      |
  +-------------------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | balance_updates                                                   | Variable             | sequence of $X_8                                             |
  +-------------------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | operation_result                                                  | Determined from data | $alpha.operation.alpha.operation_result.origination          |
  +-------------------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | # bytes in next field                                             | 4 bytes              | unsigned 30-bit integer                                      |
  +-------------------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | internal_operation_results                                        | Variable             | sequence of $alpha.operation.alpha.internal_operation_result |
  +-------------------------------------------------------------------+----------------------+--------------------------------------------------------------+


  X_2516
  ******

  +-------------------------------------------------------------------+----------------------+------------------------------------------------------------------+
  | Name                                                              | Size                 | Contents                                                         |
  +===================================================================+======================+==================================================================+
  | # bytes in field "alpha.operation_metadata.alpha.balance_updates" | 4 bytes              | unsigned 30-bit integer                                          |
  +-------------------------------------------------------------------+----------------------+------------------------------------------------------------------+
  | balance_updates                                                   | Variable             | sequence of $X_8                                                 |
  +-------------------------------------------------------------------+----------------------+------------------------------------------------------------------+
  | operation_result                                                  | Determined from data | $alpha.operation.alpha.operation_result.register_global_constant |
  +-------------------------------------------------------------------+----------------------+------------------------------------------------------------------+
  | # bytes in next field                                             | 4 bytes              | unsigned 30-bit integer                                          |
  +-------------------------------------------------------------------+----------------------+------------------------------------------------------------------+
  | internal_operation_results                                        | Variable             | sequence of $alpha.operation.alpha.internal_operation_result     |
  +-------------------------------------------------------------------+----------------------+------------------------------------------------------------------+


  X_1400
  ******

  +-------------------------------------------------------------------+----------------------+---------------------------------------------------------------+
  | Name                                                              | Size                 | Contents                                                      |
  +===================================================================+======================+===============================================================+
  | # bytes in field "alpha.operation_metadata.alpha.balance_updates" | 4 bytes              | unsigned 30-bit integer                                       |
  +-------------------------------------------------------------------+----------------------+---------------------------------------------------------------+
  | balance_updates                                                   | Variable             | sequence of $X_8                                              |
  +-------------------------------------------------------------------+----------------------+---------------------------------------------------------------+
  | operation_result                                                  | Determined from data | $alpha.operation.alpha.operation_result.tx_rollup_origination |
  +-------------------------------------------------------------------+----------------------+---------------------------------------------------------------+
  | # bytes in next field                                             | 4 bytes              | unsigned 30-bit integer                                       |
  +-------------------------------------------------------------------+----------------------+---------------------------------------------------------------+
  | internal_operation_results                                        | Variable             | sequence of $alpha.operation.alpha.internal_operation_result  |
  +-------------------------------------------------------------------+----------------------+---------------------------------------------------------------+


  X_839
  *****

  +-------------------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | Name                                                              | Size                 | Contents                                                     |
  +===================================================================+======================+==============================================================+
  | # bytes in field "alpha.operation_metadata.alpha.balance_updates" | 4 bytes              | unsigned 30-bit integer                                      |
  +-------------------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | balance_updates                                                   | Variable             | sequence of $X_8                                             |
  +-------------------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | operation_result                                                  | Determined from data | $alpha.operation.alpha.operation_result.sc_rollup_originate  |
  +-------------------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | # bytes in next field                                             | 4 bytes              | unsigned 30-bit integer                                      |
  +-------------------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | internal_operation_results                                        | Variable             | sequence of $alpha.operation.alpha.internal_operation_result |
  +-------------------------------------------------------------------+----------------------+--------------------------------------------------------------+


  X_281
  *****

  +-------------------------------------------------------------------+----------------------+----------------------------------------------------------------+
  | Name                                                              | Size                 | Contents                                                       |
  +===================================================================+======================+================================================================+
  | # bytes in field "alpha.operation_metadata.alpha.balance_updates" | 4 bytes              | unsigned 30-bit integer                                        |
  +-------------------------------------------------------------------+----------------------+----------------------------------------------------------------+
  | balance_updates                                                   | Variable             | sequence of $X_8                                               |
  +-------------------------------------------------------------------+----------------------+----------------------------------------------------------------+
  | operation_result                                                  | Determined from data | $alpha.operation.alpha.operation_result.sc_rollup_add_messages |
  +-------------------------------------------------------------------+----------------------+----------------------------------------------------------------+
  | # bytes in next field                                             | 4 bytes              | unsigned 30-bit integer                                        |
  +-------------------------------------------------------------------+----------------------+----------------------------------------------------------------+
  | internal_operation_results                                        | Variable             | sequence of $alpha.operation.alpha.internal_operation_result   |
  +-------------------------------------------------------------------+----------------------+----------------------------------------------------------------+


  alpha.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             | $alpha.contract_id                                         |
  +------------+----------------------+------------------------------------------------------------+
  | nonce      | 2 bytes              | unsigned 16-bit integer                                    |
  +------------+----------------------+------------------------------------------------------------+
  | public_key | Determined from data | $public_key                                                |
  +------------+----------------------+------------------------------------------------------------+
  | result     | Determined from data | $alpha.operation.alpha.operation_result.set_deposits_limit |
  +------------+----------------------+------------------------------------------------------------+


  transaction (tag 1)
  ===================

  +----------------------------------+----------------------+-----------------------------------------------------+
  | Name                             | Size                 | Contents                                            |
  +==================================+======================+=====================================================+
  | Tag                              | 1 byte               | unsigned 8-bit integer                              |
  +----------------------------------+----------------------+-----------------------------------------------------+
  | source                           | 22 bytes             | $alpha.contract_id                                  |
  +----------------------------------+----------------------+-----------------------------------------------------+
  | nonce                            | 2 bytes              | unsigned 16-bit integer                             |
  +----------------------------------+----------------------+-----------------------------------------------------+
  | amount                           | Determined from data | $N.t                                                |
  +----------------------------------+----------------------+-----------------------------------------------------+
  | destination                      | 22 bytes             | $alpha.contract_id                                  |
  +----------------------------------+----------------------+-----------------------------------------------------+
  | ? presence of field "parameters" | 1 byte               | boolean (0 for false, 255 for true)                 |
  +----------------------------------+----------------------+-----------------------------------------------------+
  | parameters                       | Determined from data | $X_5545                                             |
  +----------------------------------+----------------------+-----------------------------------------------------+
  | result                           | Determined from data | $alpha.operation.alpha.operation_result.transaction |
  +----------------------------------+----------------------+-----------------------------------------------------+


  origination (tag 2)
  ===================

  +--------------------------------+----------------------+-----------------------------------------------------+
  | Name                           | Size                 | Contents                                            |
  +================================+======================+=====================================================+
  | Tag                            | 1 byte               | unsigned 8-bit integer                              |
  +--------------------------------+----------------------+-----------------------------------------------------+
  | source                         | 22 bytes             | $alpha.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 | $alpha.scripted.contracts                           |
  +--------------------------------+----------------------+-----------------------------------------------------+
  | result                         | Determined from data | $alpha.operation.alpha.operation_result.origination |
  +--------------------------------+----------------------+-----------------------------------------------------+


  delegation (tag 3)
  ==================

  +--------------------------------+----------------------+------------------------------------------------------------+
  | Name                           | Size                 | Contents                                                   |
  +================================+======================+============================================================+
  | Tag                            | 1 byte               | unsigned 8-bit integer                                     |
  +--------------------------------+----------------------+------------------------------------------------------------+
  | source                         | 22 bytes             | $alpha.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 | $alpha.operation.alpha.operation_result.set_deposits_limit |
  +--------------------------------+----------------------+------------------------------------------------------------+


  register_global_constant (tag 4)
  ================================

  +-----------------------+----------------------+------------------------------------------------------------------+
  | Name                  | Size                 | Contents                                                         |
  +=======================+======================+==================================================================+
  | Tag                   | 1 byte               | unsigned 8-bit integer                                           |
  +-----------------------+----------------------+------------------------------------------------------------------+
  | source                | 22 bytes             | $alpha.contract_id                                               |
  +-----------------------+----------------------+------------------------------------------------------------------+
  | nonce                 | 2 bytes              | unsigned 16-bit integer                                          |
  +-----------------------+----------------------+------------------------------------------------------------------+
  | # bytes in next field | 4 bytes              | unsigned 30-bit integer                                          |
  +-----------------------+----------------------+------------------------------------------------------------------+
  | value                 | Variable             | bytes                                                            |
  +-----------------------+----------------------+------------------------------------------------------------------+
  | result                | Determined from data | $alpha.operation.alpha.operation_result.register_global_constant |
  +-----------------------+----------------------+------------------------------------------------------------------+


  set_deposits_limit (tag 5)
  ==========================

  +-----------------------------+----------------------+------------------------------------------------------------+
  | Name                        | Size                 | Contents                                                   |
  +=============================+======================+============================================================+
  | Tag                         | 1 byte               | unsigned 8-bit integer                                     |
  +-----------------------------+----------------------+------------------------------------------------------------+
  | source                      | 22 bytes             | $alpha.contract_id                                         |
  +-----------------------------+----------------------+------------------------------------------------------------+
  | nonce                       | 2 bytes              | unsigned 16-bit integer                                    |
  +-----------------------------+----------------------+------------------------------------------------------------+
  | ? presence of field "limit" | 1 byte               | boolean (0 for false, 255 for true)                        |
  +-----------------------------+----------------------+------------------------------------------------------------+
  | limit                       | Determined from data | $N.t                                                       |
  +-----------------------------+----------------------+------------------------------------------------------------+
  | result                      | Determined from data | $alpha.operation.alpha.operation_result.set_deposits_limit |
  +-----------------------------+----------------------+------------------------------------------------------------+


  tx_rollup_origination (tag 150)
  ===============================

  +--------+----------------------+---------------------------------------------------------------+
  | Name   | Size                 | Contents                                                      |
  +========+======================+===============================================================+
  | Tag    | 1 byte               | unsigned 8-bit integer                                        |
  +--------+----------------------+---------------------------------------------------------------+
  | source | 22 bytes             | $alpha.contract_id                                            |
  +--------+----------------------+---------------------------------------------------------------+
  | nonce  | 2 bytes              | unsigned 16-bit integer                                       |
  +--------+----------------------+---------------------------------------------------------------+
  | result | Determined from data | $alpha.operation.alpha.operation_result.tx_rollup_origination |
  +--------+----------------------+---------------------------------------------------------------+


  sc_rollup_originate (tag 200)
  =============================

  +-----------------------+----------------------+-------------------------------------------------------------+
  | Name                  | Size                 | Contents                                                    |
  +=======================+======================+=============================================================+
  | Tag                   | 1 byte               | unsigned 8-bit integer                                      |
  +-----------------------+----------------------+-------------------------------------------------------------+
  | source                | 22 bytes             | $alpha.contract_id                                          |
  +-----------------------+----------------------+-------------------------------------------------------------+
  | nonce                 | 2 bytes              | unsigned 16-bit integer                                     |
  +-----------------------+----------------------+-------------------------------------------------------------+
  | kind                  | 2 bytes              | $X_5270                                                     |
  +-----------------------+----------------------+-------------------------------------------------------------+
  | # bytes in next field | 4 bytes              | unsigned 30-bit integer                                     |
  +-----------------------+----------------------+-------------------------------------------------------------+
  | boot_sector           | Variable             | bytes                                                       |
  +-----------------------+----------------------+-------------------------------------------------------------+
  | result                | Determined from data | $alpha.operation.alpha.operation_result.sc_rollup_originate |
  +-----------------------+----------------------+-------------------------------------------------------------+


  sc_rollup_add_messages (tag 201)
  ================================

  +-----------------------------------------+----------------------+----------------------------------------------------------------+
  | Name                                    | Size                 | Contents                                                       |
  +=========================================+======================+================================================================+
  | Tag                                     | 1 byte               | unsigned 8-bit integer                                         |
  +-----------------------------------------+----------------------+----------------------------------------------------------------+
  | source                                  | 22 bytes             | $alpha.contract_id                                             |
  +-----------------------------------------+----------------------+----------------------------------------------------------------+
  | nonce                                   | 2 bytes              | unsigned 16-bit integer                                        |
  +-----------------------------------------+----------------------+----------------------------------------------------------------+
  | # bytes in field "alpha.rollup_address" | 4 bytes              | unsigned 30-bit integer                                        |
  +-----------------------------------------+----------------------+----------------------------------------------------------------+
  | rollup                                  | Variable             | bytes                                                          |
  +-----------------------------------------+----------------------+----------------------------------------------------------------+
  | # bytes in next field                   | 4 bytes              | unsigned 30-bit integer                                        |
  +-----------------------------------------+----------------------+----------------------------------------------------------------+
  | message                                 | Variable             | sequence of $alpha.error                                       |
  +-----------------------------------------+----------------------+----------------------------------------------------------------+
  | result                                  | Determined from data | $alpha.operation.alpha.operation_result.sc_rollup_add_messages |
  +-----------------------------------------+----------------------+----------------------------------------------------------------+


  alpha.operation.alpha.operation_result.set_deposits_limit (Determined from data, 8-bit tag)
  *******************************************************************************************

  Applied (tag 0)
  ===============

  +-------------------+----------------------+------------------------+
  | Name              | Size                 | Contents               |
  +===================+======================+========================+
  | Tag               | 1 byte               | unsigned 8-bit integer |
  +-------------------+----------------------+------------------------+
  | consumed_gas      | Determined from data | $N.t                   |
  +-------------------+----------------------+------------------------+
  | consumed_milligas | Determined from data | $N.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 $alpha.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_5815                             |
  +------------------------------+----------------------+-------------------------------------+
  | consumed_gas                 | Determined from data | $N.t                                |
  +------------------------------+----------------------+-------------------------------------+
  | consumed_milligas            | Determined from data | $N.t                                |
  +------------------------------+----------------------+-------------------------------------+


  alpha.operation.alpha.operation_result.sc_rollup_add_messages (Determined from data, 8-bit tag)
  ***********************************************************************************************

  Applied (tag 0)
  ===============

  +-------------------+----------------------+------------------------+
  | Name              | Size                 | Contents               |
  +===================+======================+========================+
  | Tag               | 1 byte               | unsigned 8-bit integer |
  +-------------------+----------------------+------------------------+
  | consumed_gas      | Determined from data | $N.t                   |
  +-------------------+----------------------+------------------------+
  | consumed_milligas | Determined from data | $N.t                   |
  +-------------------+----------------------+------------------------+
  | inbox_after       | 40 bytes             | $X_5269                |
  +-------------------+----------------------+------------------------+


  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 $alpha.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_5815                             |
  +------------------------------+----------------------+-------------------------------------+
  | consumed_gas                 | Determined from data | $N.t                                |
  +------------------------------+----------------------+-------------------------------------+
  | consumed_milligas            | Determined from data | $N.t                                |
  +------------------------------+----------------------+-------------------------------------+
  | inbox_after                  | 40 bytes             | $X_5269                             |
  +------------------------------+----------------------+-------------------------------------+


  alpha.operation.alpha.contents (Determined from data, 8-bit tag)
  ****************************************************************

  Seed_nonce_revelation (tag 1)
  =============================

  +-------+----------+------------------------+
  | Name  | Size     | Contents               |
  +=======+==========+========================+
  | Tag   | 1 byte   | unsigned 8-bit integer |
  +-------+----------+------------------------+
  | level | 4 bytes  | signed 32-bit integer  |
  +-------+----------+------------------------+
  | nonce | 32 bytes | bytes                  |
  +-------+----------+------------------------+


  Double_endorsement_evidence (tag 2)
  ===================================

  +-----------------------+----------+----------------------------+
  | Name                  | Size     | Contents                   |
  +=======================+==========+============================+
  | Tag                   | 1 byte   | unsigned 8-bit integer     |
  +-----------------------+----------+----------------------------+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer    |
  +-----------------------+----------+----------------------------+
  | op1                   | Variable | $alpha.inlined.endorsement |
  +-----------------------+----------+----------------------------+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer    |
  +-----------------------+----------+----------------------------+
  | op2                   | Variable | $alpha.inlined.endorsement |
  +-----------------------+----------+----------------------------+


  Double_baking_evidence (tag 3)
  ==============================

  +-----------------------+----------------------+---------------------------------------+
  | Name                  | Size                 | Contents                              |
  +=======================+======================+=======================================+
  | Tag                   | 1 byte               | unsigned 8-bit integer                |
  +-----------------------+----------------------+---------------------------------------+
  | # bytes in next field | 4 bytes              | unsigned 30-bit integer               |
  +-----------------------+----------------------+---------------------------------------+
  | bh1                   | Determined from data | $alpha.block_header.alpha.full_header |
  +-----------------------+----------------------+---------------------------------------+
  | # bytes in next field | 4 bytes              | unsigned 30-bit integer               |
  +-----------------------+----------------------+---------------------------------------+
  | bh2                   | Determined from data | $alpha.block_header.alpha.full_header |
  +-----------------------+----------------------+---------------------------------------+


  Activate_account (tag 4)
  ========================

  +--------+----------+------------------------+
  | Name   | Size     | Contents               |
  +========+==========+========================+
  | Tag    | 1 byte   | unsigned 8-bit integer |
  +--------+----------+------------------------+
  | pkh    | 20 bytes | bytes                  |
  +--------+----------+------------------------+
  | secret | 20 bytes | bytes                  |
  +--------+----------+------------------------+


  Proposals (tag 5)
  =================

  +-----------------------+----------+-------------------------+
  | Name                  | Size     | Contents                |
  +=======================+==========+=========================+
  | Tag                   | 1 byte   | unsigned 8-bit integer  |
  +-----------------------+----------+-------------------------+
  | source                | 21 bytes | $public_key_hash        |
  +-----------------------+----------+-------------------------+
  | period                | 4 bytes  | signed 32-bit integer   |
  +-----------------------+----------+-------------------------+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer |
  +-----------------------+----------+-------------------------+
  | proposals             | Variable | sequence of bytes       |
  +-----------------------+----------+-------------------------+


  Ballot (tag 6)
  ==============

  +----------+----------+------------------------+
  | Name     | Size     | Contents               |
  +==========+==========+========================+
  | Tag      | 1 byte   | unsigned 8-bit integer |
  +----------+----------+------------------------+
  | source   | 21 bytes | $public_key_hash       |
  +----------+----------+------------------------+
  | period   | 4 bytes  | signed 32-bit integer  |
  +----------+----------+------------------------+
  | proposal | 32 bytes | bytes                  |
  +----------+----------+------------------------+
  | ballot   | 1 byte   | signed 8-bit integer   |
  +----------+----------+------------------------+


  Double_preendorsement_evidence (tag 7)
  ======================================

  +-----------------------+----------+-------------------------------+
  | Name                  | Size     | Contents                      |
  +=======================+==========+===============================+
  | Tag                   | 1 byte   | unsigned 8-bit integer        |
  +-----------------------+----------+-------------------------------+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer       |
  +-----------------------+----------+-------------------------------+
  | op1                   | Variable | $alpha.inlined.preendorsement |
  +-----------------------+----------+-------------------------------+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer       |
  +-----------------------+----------+-------------------------------+
  | op2                   | Variable | $alpha.inlined.preendorsement |
  +-----------------------+----------+-------------------------------+


  Failing_noop (tag 17)
  =====================

  +-----------------------+----------+-------------------------+
  | Name                  | Size     | Contents                |
  +=======================+==========+=========================+
  | Tag                   | 1 byte   | unsigned 8-bit integer  |
  +-----------------------+----------+-------------------------+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer |
  +-----------------------+----------+-------------------------+
  | arbitrary             | Variable | bytes                   |
  +-----------------------+----------+-------------------------+


  Preendorsement (tag 20)
  =======================

  +--------------------+----------+-------------------------+
  | Name               | Size     | Contents                |
  +====================+==========+=========================+
  | Tag                | 1 byte   | unsigned 8-bit integer  |
  +--------------------+----------+-------------------------+
  | slot               | 2 bytes  | unsigned 16-bit integer |
  +--------------------+----------+-------------------------+
  | level              | 4 bytes  | signed 32-bit integer   |
  +--------------------+----------+-------------------------+
  | round              | 4 bytes  | signed 32-bit integer   |
  +--------------------+----------+-------------------------+
  | block_payload_hash | 32 bytes | bytes                   |
  +--------------------+----------+-------------------------+


  Endorsement (tag 21)
  ====================

  +--------------------+----------+-------------------------+
  | Name               | Size     | Contents                |
  +====================+==========+=========================+
  | Tag                | 1 byte   | unsigned 8-bit integer  |
  +--------------------+----------+-------------------------+
  | slot               | 2 bytes  | unsigned 16-bit integer |
  +--------------------+----------+-------------------------+
  | level              | 4 bytes  | signed 32-bit integer   |
  +--------------------+----------+-------------------------+
  | round              | 4 bytes  | signed 32-bit integer   |
  +--------------------+----------+-------------------------+
  | block_payload_hash | 32 bytes | bytes                   |
  +--------------------+----------+-------------------------+


  Reveal (tag 107)
  ================

  +---------------+----------------------+------------------------+
  | Name          | Size                 | Contents               |
  +===============+======================+========================+
  | Tag           | 1 byte               | unsigned 8-bit integer |
  +---------------+----------------------+------------------------+
  | source        | 21 bytes             | $public_key_hash       |
  +---------------+----------------------+------------------------+
  | fee           | Determined from data | $N.t                   |
  +---------------+----------------------+------------------------+
  | counter       | Determined from data | $N.t                   |
  +---------------+----------------------+------------------------+
  | gas_limit     | Determined from data | $N.t                   |
  +---------------+----------------------+------------------------+
  | storage_limit | Determined from data | $N.t                   |
  +---------------+----------------------+------------------------+
  | public_key    | Determined from data | $public_key            |
  +---------------+----------------------+------------------------+


  Transaction (tag 108)
  =====================

  +----------------------------------+----------------------+-------------------------------------+
  | Name                             | Size                 | Contents                            |
  +==================================+======================+=====================================+
  | Tag                              | 1 byte               | unsigned 8-bit integer              |
  +----------------------------------+----------------------+-------------------------------------+
  | source                           | 21 bytes             | $public_key_hash                    |
  +----------------------------------+----------------------+-------------------------------------+
  | fee                              | Determined from data | $N.t                                |
  +----------------------------------+----------------------+-------------------------------------+
  | counter                          | Determined from data | $N.t                                |
  +----------------------------------+----------------------+-------------------------------------+
  | gas_limit                        | Determined from data | $N.t                                |
  +----------------------------------+----------------------+-------------------------------------+
  | storage_limit                    | Determined from data | $N.t                                |
  +----------------------------------+----------------------+-------------------------------------+
  | amount                           | Determined from data | $N.t                                |
  +----------------------------------+----------------------+-------------------------------------+
  | destination                      | 22 bytes             | $alpha.contract_id                  |
  +----------------------------------+----------------------+-------------------------------------+
  | ? presence of field "parameters" | 1 byte               | boolean (0 for false, 255 for true) |
  +----------------------------------+----------------------+-------------------------------------+
  | parameters                       | Determined from data | $X_5545                             |
  +----------------------------------+----------------------+-------------------------------------+


  Origination (tag 109)
  =====================

  +--------------------------------+----------------------+-------------------------------------+
  | Name                           | Size                 | Contents                            |
  +================================+======================+=====================================+
  | Tag                            | 1 byte               | unsigned 8-bit integer              |
  +--------------------------------+----------------------+-------------------------------------+
  | source                         | 21 bytes             | $public_key_hash                    |
  +--------------------------------+----------------------+-------------------------------------+
  | fee                            | Determined from data | $N.t                                |
  +--------------------------------+----------------------+-------------------------------------+
  | counter                        | Determined from data | $N.t                                |
  +--------------------------------+----------------------+-------------------------------------+
  | gas_limit                      | Determined from data | $N.t                                |
  +--------------------------------+----------------------+-------------------------------------+
  | storage_limit                  | Determined from data | $N.t                                |
  +--------------------------------+----------------------+-------------------------------------+
  | balance                        | Determined from data | $N.t                                |
  +--------------------------------+----------------------+-------------------------------------+
  | ? presence of field "delegate" | 1 byte               | boolean (0 for false, 255 for true) |
  +--------------------------------+----------------------+-------------------------------------+
  | delegate                       | 21 bytes             | $public_key_hash                    |
  +--------------------------------+----------------------+-------------------------------------+
  | script                         | Determined from data | $alpha.scripted.contracts           |
  +--------------------------------+----------------------+-------------------------------------+


  Delegation (tag 110)
  ====================

  +--------------------------------+----------------------+-------------------------------------+
  | Name                           | Size                 | Contents                            |
  +================================+======================+=====================================+
  | Tag                            | 1 byte               | unsigned 8-bit integer              |
  +--------------------------------+----------------------+-------------------------------------+
  | source                         | 21 bytes             | $public_key_hash                    |
  +--------------------------------+----------------------+-------------------------------------+
  | fee                            | Determined from data | $N.t                                |
  +--------------------------------+----------------------+-------------------------------------+
  | counter                        | Determined from data | $N.t                                |
  +--------------------------------+----------------------+-------------------------------------+
  | gas_limit                      | Determined from data | $N.t                                |
  +--------------------------------+----------------------+-------------------------------------+
  | storage_limit                  | Determined from data | $N.t                                |
  +--------------------------------+----------------------+-------------------------------------+
  | ? presence of field "delegate" | 1 byte               | boolean (0 for false, 255 for true) |
  +--------------------------------+----------------------+-------------------------------------+
  | delegate                       | 21 bytes             | $public_key_hash                    |
  +--------------------------------+----------------------+-------------------------------------+


  Register_global_constant (tag 111)
  ==================================

  +-----------------------+----------------------+-------------------------+
  | Name                  | Size                 | Contents                |
  +=======================+======================+=========================+
  | Tag                   | 1 byte               | unsigned 8-bit integer  |
  +-----------------------+----------------------+-------------------------+
  | source                | 21 bytes             | $public_key_hash        |
  +-----------------------+----------------------+-------------------------+
  | fee                   | Determined from data | $N.t                    |
  +-----------------------+----------------------+-------------------------+
  | counter               | Determined from data | $N.t                    |
  +-----------------------+----------------------+-------------------------+
  | gas_limit             | Determined from data | $N.t                    |
  +-----------------------+----------------------+-------------------------+
  | storage_limit         | Determined from data | $N.t                    |
  +-----------------------+----------------------+-------------------------+
  | # bytes in next field | 4 bytes              | unsigned 30-bit integer |
  +-----------------------+----------------------+-------------------------+
  | value                 | Variable             | bytes                   |
  +-----------------------+----------------------+-------------------------+


  Set_deposits_limit (tag 112)
  ============================

  +-----------------------------+----------------------+-------------------------------------+
  | Name                        | Size                 | Contents                            |
  +=============================+======================+=====================================+
  | Tag                         | 1 byte               | unsigned 8-bit integer              |
  +-----------------------------+----------------------+-------------------------------------+
  | source                      | 21 bytes             | $public_key_hash                    |
  +-----------------------------+----------------------+-------------------------------------+
  | fee                         | Determined from data | $N.t                                |
  +-----------------------------+----------------------+-------------------------------------+
  | counter                     | Determined from data | $N.t                                |
  +-----------------------------+----------------------+-------------------------------------+
  | gas_limit                   | Determined from data | $N.t                                |
  +-----------------------------+----------------------+-------------------------------------+
  | storage_limit               | Determined from data | $N.t                                |
  +-----------------------------+----------------------+-------------------------------------+
  | ? presence of field "limit" | 1 byte               | boolean (0 for false, 255 for true) |
  +-----------------------------+----------------------+-------------------------------------+
  | limit                       | Determined from data | $N.t                                |
  +-----------------------------+----------------------+-------------------------------------+


  Tx_rollup_origination (tag 150)
  ===============================

  +---------------+----------------------+------------------------+
  | Name          | Size                 | Contents               |
  +===============+======================+========================+
  | Tag           | 1 byte               | unsigned 8-bit integer |
  +---------------+----------------------+------------------------+
  | source        | 21 bytes             | $public_key_hash       |
  +---------------+----------------------+------------------------+
  | fee           | Determined from data | $N.t                   |
  +---------------+----------------------+------------------------+
  | counter       | Determined from data | $N.t                   |
  +---------------+----------------------+------------------------+
  | gas_limit     | Determined from data | $N.t                   |
  +---------------+----------------------+------------------------+
  | storage_limit | Determined from data | $N.t                   |
  +---------------+----------------------+------------------------+


  Sc_rollup_originate (tag 200)
  =============================

  +-----------------------+----------------------+-------------------------+
  | Name                  | Size                 | Contents                |
  +=======================+======================+=========================+
  | Tag                   | 1 byte               | unsigned 8-bit integer  |
  +-----------------------+----------------------+-------------------------+
  | source                | 21 bytes             | $public_key_hash        |
  +-----------------------+----------------------+-------------------------+
  | fee                   | Determined from data | $N.t                    |
  +-----------------------+----------------------+-------------------------+
  | counter               | Determined from data | $N.t                    |
  +-----------------------+----------------------+-------------------------+
  | gas_limit             | Determined from data | $N.t                    |
  +-----------------------+----------------------+-------------------------+
  | storage_limit         | Determined from data | $N.t                    |
  +-----------------------+----------------------+-------------------------+
  | kind                  | 2 bytes              | $X_5270                 |
  +-----------------------+----------------------+-------------------------+
  | # bytes in next field | 4 bytes              | unsigned 30-bit integer |
  +-----------------------+----------------------+-------------------------+
  | boot_sector           | Variable             | bytes                   |
  +-----------------------+----------------------+-------------------------+


  Sc_rollup_add_messages (tag 201)
  ================================

  +-----------------------------------------+----------------------+--------------------------+
  | Name                                    | Size                 | Contents                 |
  +=========================================+======================+==========================+
  | Tag                                     | 1 byte               | unsigned 8-bit integer   |
  +-----------------------------------------+----------------------+--------------------------+
  | source                                  | 21 bytes             | $public_key_hash         |
  +-----------------------------------------+----------------------+--------------------------+
  | fee                                     | Determined from data | $N.t                     |
  +-----------------------------------------+----------------------+--------------------------+
  | counter                                 | Determined from data | $N.t                     |
  +-----------------------------------------+----------------------+--------------------------+
  | gas_limit                               | Determined from data | $N.t                     |
  +-----------------------------------------+----------------------+--------------------------+
  | storage_limit                           | Determined from data | $N.t                     |
  +-----------------------------------------+----------------------+--------------------------+
  | # bytes in field "alpha.rollup_address" | 4 bytes              | unsigned 30-bit integer  |
  +-----------------------------------------+----------------------+--------------------------+
  | rollup                                  | Variable             | bytes                    |
  +-----------------------------------------+----------------------+--------------------------+
  | # bytes in next field                   | 4 bytes              | unsigned 30-bit integer  |
  +-----------------------------------------+----------------------+--------------------------+
  | message                                 | Variable             | sequence of $alpha.error |
  +-----------------------------------------+----------------------+--------------------------+


  X_0
  ***

  +-------------------------------------------------------------------+----------------------+------------------------------------------------------------------------+
  | Name                                                              | Size                 | Contents                                                               |
  +===================================================================+======================+========================================================================+
  | # bytes in next 19 fields                                         | 4 bytes              | unsigned 30-bit integer                                                |
  +-------------------------------------------------------------------+----------------------+------------------------------------------------------------------------+
  | 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_1                                                                   |
  +-------------------------------------------------------------------+----------------------+------------------------------------------------------------------------+
  | proposer                                                          | 21 bytes             | $public_key_hash                                                       |
  +-------------------------------------------------------------------+----------------------+------------------------------------------------------------------------+
  | baker                                                             | 21 bytes             | $public_key_hash                                                       |
  +-------------------------------------------------------------------+----------------------+------------------------------------------------------------------------+
  | level_info                                                        | 17 bytes             | $X_3                                                                   |
  +-------------------------------------------------------------------+----------------------+------------------------------------------------------------------------+
  | voting_period_info                                                | 17 bytes             | $X_4                                                                   |
  +-------------------------------------------------------------------+----------------------+------------------------------------------------------------------------+
  | nonce_hash                                                        | Determined from data | $X_7                                                                   |
  +-------------------------------------------------------------------+----------------------+------------------------------------------------------------------------+
  | 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 "alpha.operation_metadata.alpha.balance_updates" | 4 bytes              | unsigned 30-bit integer                                                |
  +-------------------------------------------------------------------+----------------------+------------------------------------------------------------------------+
  | balance_updates                                                   | Variable             | sequence of $X_8                                                       |
  +-------------------------------------------------------------------+----------------------+------------------------------------------------------------------------+
  | liquidity_baking_escape_ema                                       | 4 bytes              | signed 32-bit integer                                                  |
  +-------------------------------------------------------------------+----------------------+------------------------------------------------------------------------+
  | # bytes in next field                                             | 4 bytes              | unsigned 30-bit integer                                                |
  +-------------------------------------------------------------------+----------------------+------------------------------------------------------------------------+
  | implicit_operations_results                                       | Variable             | sequence of $alpha.operation.alpha.successful_manager_operation_result |
  +-------------------------------------------------------------------+----------------------+------------------------------------------------------------------------+


  alpha.operation.alpha.successful_manager_operation_result (Determined from data, 8-bit tag)
  *******************************************************************************************

  reveal (tag 0)
  ==============

  +-------------------+----------------------+------------------------+
  | Name              | Size                 | Contents               |
  +===================+======================+========================+
  | Tag               | 1 byte               | unsigned 8-bit integer |
  +-------------------+----------------------+------------------------+
  | consumed_gas      | Determined from data | $N.t                   |
  +-------------------+----------------------+------------------------+
  | consumed_milligas | Determined from data | $N.t                   |
  +-------------------+----------------------+------------------------+


  transaction (tag 1)
  ===================

  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | 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_23                               |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | ? presence of field "big_map_diff"                                | 1 byte               | boolean (0 for false, 255 for true) |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | big_map_diff                                                      | Determined from data | $X_14                               |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | # bytes in field "alpha.operation_metadata.alpha.balance_updates" | 4 bytes              | unsigned 30-bit integer             |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | balance_updates                                                   | Variable             | sequence of $X_8                    |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | # bytes in next field                                             | 4 bytes              | unsigned 30-bit integer             |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | originated_contracts                                              | Variable             | sequence of $alpha.contract_id      |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | consumed_gas                                                      | Determined from data | $N.t                                |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | consumed_milligas                                                 | Determined from data | $N.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) |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | ? presence of field "lazy_storage_diff"                           | 1 byte               | boolean (0 for false, 255 for true) |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | lazy_storage_diff                                                 | Determined from data | $alpha.lazy_storage_diff            |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+


  origination (tag 2)
  ===================

  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | 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 | $X_14                               |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | # bytes in field "alpha.operation_metadata.alpha.balance_updates" | 4 bytes              | unsigned 30-bit integer             |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | balance_updates                                                   | Variable             | sequence of $X_8                    |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | # bytes in next field                                             | 4 bytes              | unsigned 30-bit integer             |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | originated_contracts                                              | Variable             | sequence of $alpha.contract_id      |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | consumed_gas                                                      | Determined from data | $N.t                                |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | consumed_milligas                                                 | Determined from data | $N.t                                |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | storage_size                                                      | Determined from data | $Z.t                                |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | paid_storage_size_diff                                            | Determined from data | $Z.t                                |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | ? presence of field "lazy_storage_diff"                           | 1 byte               | boolean (0 for false, 255 for true) |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | lazy_storage_diff                                                 | Determined from data | $alpha.lazy_storage_diff            |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+


  delegation (tag 3)
  ==================

  +-------------------+----------------------+------------------------+
  | Name              | Size                 | Contents               |
  +===================+======================+========================+
  | Tag               | 1 byte               | unsigned 8-bit integer |
  +-------------------+----------------------+------------------------+
  | consumed_gas      | Determined from data | $N.t                   |
  +-------------------+----------------------+------------------------+
  | consumed_milligas | Determined from data | $N.t                   |
  +-------------------+----------------------+------------------------+


  set_deposits_limit (tag 5)
  ==========================

  +-------------------+----------------------+------------------------+
  | Name              | Size                 | Contents               |
  +===================+======================+========================+
  | Tag               | 1 byte               | unsigned 8-bit integer |
  +-------------------+----------------------+------------------------+
  | consumed_gas      | Determined from data | $N.t                   |
  +-------------------+----------------------+------------------------+
  | consumed_milligas | Determined from data | $N.t                   |
  +-------------------+----------------------+------------------------+


  sc_rollup_originate (tag 200)
  =============================

  +-------------------------------------------------------------------+----------------------+-------------------------+
  | Name                                                              | Size                 | Contents                |
  +===================================================================+======================+=========================+
  | Tag                                                               | 1 byte               | unsigned 8-bit integer  |
  +-------------------------------------------------------------------+----------------------+-------------------------+
  | # bytes in field "alpha.operation_metadata.alpha.balance_updates" | 4 bytes              | unsigned 30-bit integer |
  +-------------------------------------------------------------------+----------------------+-------------------------+
  | balance_updates                                                   | Variable             | sequence of $X_8        |
  +-------------------------------------------------------------------+----------------------+-------------------------+
  | address                                                           | 20 bytes             | bytes                   |
  +-------------------------------------------------------------------+----------------------+-------------------------+
  | consumed_gas                                                      | Determined from data | $N.t                    |
  +-------------------------------------------------------------------+----------------------+-------------------------+
  | consumed_milligas                                                 | Determined from data | $N.t                    |
  +-------------------------------------------------------------------+----------------------+-------------------------+
  | size                                                              | Determined from data | $Z.t                    |
  +-------------------------------------------------------------------+----------------------+-------------------------+


  alpha.lazy_storage_diff
  ***********************

  +-----------------------+----------+-------------------------+
  | Name                  | Size     | Contents                |
  +=======================+==========+=========================+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer |
  +-----------------------+----------+-------------------------+
  | Unnamed field 0       | Variable | sequence of $X_5814     |
  +-----------------------+----------+-------------------------+


  X_137 (Determined from data, 8-bit tag)
  ***************************************

  update (tag 0)
  ==============

  +-----------------------+----------+-------------------------+
  | Name                  | Size     | Contents                |
  +=======================+==========+=========================+
  | Tag                   | 1 byte   | unsigned 8-bit integer  |
  +-----------------------+----------+-------------------------+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer |
  +-----------------------+----------+-------------------------+
  | updates               | Variable | sequence of $X_5794     |
  +-----------------------+----------+-------------------------+


  remove (tag 1)
  ==============

  +------+--------+------------------------+
  | Name | Size   | Contents               |
  +======+========+========================+
  | Tag  | 1 byte | unsigned 8-bit integer |
  +------+--------+------------------------+


  copy (tag 2)
  ============

  +-----------------------+----------------------+-------------------------+
  | Name                  | Size                 | Contents                |
  +=======================+======================+=========================+
  | Tag                   | 1 byte               | unsigned 8-bit integer  |
  +-----------------------+----------------------+-------------------------+
  | source                | Determined from data | $Z.t                    |
  +-----------------------+----------------------+-------------------------+
  | # bytes in next field | 4 bytes              | unsigned 30-bit integer |
  +-----------------------+----------------------+-------------------------+
  | updates               | Variable             | sequence of $X_5794     |
  +-----------------------+----------------------+-------------------------+


  alloc (tag 3)
  =============

  +-----------------------+----------------------+-------------------------+
  | Name                  | Size                 | Contents                |
  +=======================+======================+=========================+
  | Tag                   | 1 byte               | unsigned 8-bit integer  |
  +-----------------------+----------------------+-------------------------+
  | # bytes in next field | 4 bytes              | unsigned 30-bit integer |
  +-----------------------+----------------------+-------------------------+
  | updates               | Variable             | sequence of $X_5794     |
  +-----------------------+----------------------+-------------------------+
  | key_type              | Determined from data | $X_23                   |
  +-----------------------+----------------------+-------------------------+
  | value_type            | Determined from data | $X_23                   |
  +-----------------------+----------------------+-------------------------+


  X_55
  ****

  +-----------------------------+----------+-------------------------+
  | Name                        | Size     | Contents                |
  +=============================+==========+=========================+
  | # bytes in next field       | 4 bytes  | unsigned 30-bit integer |
  +-----------------------------+----------+-------------------------+
  | commitments_and_ciphertexts | Variable | sequence of $X_5736     |
  +-----------------------------+----------+-------------------------+
  | # bytes in next field       | 4 bytes  | unsigned 30-bit integer |
  +-----------------------------+----------+-------------------------+
  | nullifiers                  | Variable | sequence of bytes       |
  +-----------------------------+----------+-------------------------+


  X_14
  ****

  +-----------------------+----------+-------------------------+
  | Name                  | Size     | Contents                |
  +=======================+==========+=========================+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer |
  +-----------------------+----------+-------------------------+
  | Unnamed field 0       | Variable | sequence of $X_5727     |
  +-----------------------+----------+-------------------------+


  X_23 (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 $X_23       |
  +-----------------------+----------+-------------------------+


  Prim__no_args__no_annots (tag 3)
  ================================

  +------+--------+------------------------------------------------------------------------------------+
  | Name | Size   | Contents                                                                           |
  +======+========+====================================================================================+
  | Tag  | 1 byte | unsigned 8-bit integer                                                             |
  +------+--------+------------------------------------------------------------------------------------+
  | prim | 1 byte | unsigned 8-bit integer encoding an enumeration (see alpha.michelson.v1.primitives) |
  +------+--------+------------------------------------------------------------------------------------+


  Prim__no_args__some_annots (tag 4)
  ==================================

  +-----------------------+----------+------------------------------------------------------------------------------------+
  | Name                  | Size     | Contents                                                                           |
  +=======================+==========+====================================================================================+
  | Tag                   | 1 byte   | unsigned 8-bit integer                                                             |
  +-----------------------+----------+------------------------------------------------------------------------------------+
  | prim                  | 1 byte   | unsigned 8-bit integer encoding an enumeration (see alpha.michelson.v1.primitives) |
  +-----------------------+----------+------------------------------------------------------------------------------------+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer                                                            |
  +-----------------------+----------+------------------------------------------------------------------------------------+
  | annots                | Variable | bytes                                                                              |
  +-----------------------+----------+------------------------------------------------------------------------------------+


  Prim__1_arg__no_annots (tag 5)
  ==============================

  +------+----------------------+------------------------------------------------------------------------------------+
  | Name | Size                 | Contents                                                                           |
  +======+======================+====================================================================================+
  | Tag  | 1 byte               | unsigned 8-bit integer                                                             |
  +------+----------------------+------------------------------------------------------------------------------------+
  | prim | 1 byte               | unsigned 8-bit integer encoding an enumeration (see alpha.michelson.v1.primitives) |
  +------+----------------------+------------------------------------------------------------------------------------+
  | arg  | Determined from data | $X_23                                                                              |
  +------+----------------------+------------------------------------------------------------------------------------+


  Prim__1_arg__some_annots (tag 6)
  ================================

  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | Name                  | Size                 | Contents                                                                           |
  +=======================+======================+====================================================================================+
  | Tag                   | 1 byte               | unsigned 8-bit integer                                                             |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | prim                  | 1 byte               | unsigned 8-bit integer encoding an enumeration (see alpha.michelson.v1.primitives) |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | arg                   | Determined from data | $X_23                                                                              |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | # bytes in next field | 4 bytes              | unsigned 30-bit integer                                                            |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | annots                | Variable             | bytes                                                                              |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+


  Prim__2_args__no_annots (tag 7)
  ===============================

  +------+----------------------+------------------------------------------------------------------------------------+
  | Name | Size                 | Contents                                                                           |
  +======+======================+====================================================================================+
  | Tag  | 1 byte               | unsigned 8-bit integer                                                             |
  +------+----------------------+------------------------------------------------------------------------------------+
  | prim | 1 byte               | unsigned 8-bit integer encoding an enumeration (see alpha.michelson.v1.primitives) |
  +------+----------------------+------------------------------------------------------------------------------------+
  | arg1 | Determined from data | $X_23                                                                              |
  +------+----------------------+------------------------------------------------------------------------------------+
  | arg2 | Determined from data | $X_23                                                                              |
  +------+----------------------+------------------------------------------------------------------------------------+


  Prim__2_args__some_annots (tag 8)
  =================================

  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | Name                  | Size                 | Contents                                                                           |
  +=======================+======================+====================================================================================+
  | Tag                   | 1 byte               | unsigned 8-bit integer                                                             |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | prim                  | 1 byte               | unsigned 8-bit integer encoding an enumeration (see alpha.michelson.v1.primitives) |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | arg1                  | Determined from data | $X_23                                                                              |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | arg2                  | Determined from data | $X_23                                                                              |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | # bytes in next field | 4 bytes              | unsigned 30-bit integer                                                            |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | annots                | Variable             | bytes                                                                              |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+


  Prim__generic (tag 9)
  =====================

  +-----------------------+----------+------------------------------------------------------------------------------------+
  | Name                  | Size     | Contents                                                                           |
  +=======================+==========+====================================================================================+
  | Tag                   | 1 byte   | unsigned 8-bit integer                                                             |
  +-----------------------+----------+------------------------------------------------------------------------------------+
  | prim                  | 1 byte   | unsigned 8-bit integer encoding an enumeration (see alpha.michelson.v1.primitives) |
  +-----------------------+----------+------------------------------------------------------------------------------------+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer                                                            |
  +-----------------------+----------+------------------------------------------------------------------------------------+
  | args                  | Variable | sequence of $X_23                                                                  |
  +-----------------------+----------+------------------------------------------------------------------------------------+
  | # 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_8
  ***

  +-----------------+----------------------+-----------------------+
  | Name            | Size                 | Contents              |
  +=================+======================+=======================+
  | Unnamed field 0 | Determined from data | $X_5837               |
  +-----------------+----------------------+-----------------------+
  | change          | 8 bytes              | signed 64-bit integer |
  +-----------------+----------------------+-----------------------+
  | origin          | 1 byte               | $X_5838               |
  +-----------------+----------------------+-----------------------+


  X_7 (Determined from data, 8-bit tag)
  *************************************

  None (tag 0)
  ============

  +------+--------+------------------------+
  | Name | Size   | Contents               |
  +======+========+========================+
  | Tag  | 1 byte | unsigned 8-bit integer |
  +------+--------+------------------------+


  Some (tag 1)
  ============

  +-------------+----------+------------------------+
  | Name        | Size     | Contents               |
  +=============+==========+========================+
  | Tag         | 1 byte   | unsigned 8-bit integer |
  +-------------+----------+------------------------+
  | cycle_nonce | 32 bytes | bytes                  |
  +-------------+----------+------------------------+


  X_4
  ***

  +---------------+---------+-----------------------+
  | Name          | Size    | Contents              |
  +===============+=========+=======================+
  | voting_period | 9 bytes | $X_5                  |
  +---------------+---------+-----------------------+
  | position      | 4 bytes | signed 32-bit integer |
  +---------------+---------+-----------------------+
  | remaining     | 4 bytes | signed 32-bit integer |
  +---------------+---------+-----------------------+


  X_5
  ***

  +----------------+---------+-----------------------+
  | Name           | Size    | Contents              |
  +================+=========+=======================+
  | index          | 4 bytes | signed 32-bit integer |
  +----------------+---------+-----------------------+
  | kind           | 1 byte  | $X_6                  |
  +----------------+---------+-----------------------+
  | start_position | 4 bytes | signed 32-bit integer |
  +----------------+---------+-----------------------+


  X_6 (1 byte, 8-bit tag)
  ***********************

  Proposal (tag 0)
  ================

  +------+--------+------------------------+
  | Name | Size   | Contents               |
  +======+========+========================+
  | Tag  | 1 byte | unsigned 8-bit integer |
  +------+--------+------------------------+


  exploration (tag 1)
  ===================

  +------+--------+------------------------+
  | Name | Size   | Contents               |
  +======+========+========================+
  | Tag  | 1 byte | unsigned 8-bit integer |
  +------+--------+------------------------+


  Cooldown (tag 2)
  ================

  +------+--------+------------------------+
  | Name | Size   | Contents               |
  +======+========+========================+
  | Tag  | 1 byte | unsigned 8-bit integer |
  +------+--------+------------------------+


  Promotion (tag 3)
  =================

  +------+--------+------------------------+
  | Name | Size   | Contents               |
  +======+========+========================+
  | Tag  | 1 byte | unsigned 8-bit integer |
  +------+--------+------------------------+


  Adoption (tag 4)
  ================

  +------+--------+------------------------+
  | Name | Size   | Contents               |
  +======+========+========================+
  | Tag  | 1 byte | unsigned 8-bit integer |
  +------+--------+------------------------+


  X_3
  ***

  +---------------------+---------+-------------------------------------+
  | 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               |
  +---------------------+---------+-------------------------------------+
  | expected_commitment | 1 byte  | boolean (0 for false, 255 for true) |
  +---------------------+---------+-------------------------------------+


  X_1
  ***

  +-----------------------+----------+-------------------------+
  | Name                  | Size     | Contents                |
  +=======================+==========+=========================+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer |
  +-----------------------+----------+-------------------------+
  | Unnamed field 0       | Variable | sequence of $X_2        |
  +-----------------------+----------+-------------------------+


  X_2
  ***

  +------------------------------+---------+--------------------------------------------------------------+
  | 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>/context/big_maps/<big_map_id>?[offset=<uint>]&[length=<uint>]

Get the (optionally paginated) list of values in a big map. Order of values is unspecified, but is guaranteed to be consistent.

Optional query arguments :

  • offset = <uint> : Skip the first [offset] values. Useful in combination with [length] for pagination.
  • length = <uint> : Only retrieve [length] values. Useful in combination with [offset] for pagination.

  [ { /* Int */
      "int": $bignum }
    || { /* String */
         "string": $unistring }
    || { /* Bytes */
         "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
    || [ $micheline.alpha.michelson_v1.expression ... ]
    /* Sequence */
    || { /* Prim__generic
            Generic primitive (any number of args with or without
            annotations) */
         "prim": $alpha.michelson.v1.primitives,
         "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
         "annots"?: [ string ... ] } ... ]
  $alpha.michelson.v1.primitives:
    "ABS"
    | "IF"
    | "SENDER"
    | "NEVER"
    | "False"
    | "DUG"
    | "DIG"
    | "chest_key"
    | "BLAKE2B"
    | "list"
    | "bls12_381_g1"
    | "Pair"
    | "INT"
    | "nat"
    | "never"
    | "storage"
    | "SIZE"
    | "view"
    | "SHA256"
    | "AND"
    | "VIEW"
    | "bytes"
    | "NIL"
    | "map"
    | "SUB"
    | "SAPLING_EMPTY_STATE"
    | "CHECK_SIGNATURE"
    | "VOTING_POWER"
    | "operation"
    | "MAP"
    | "option"
    | "bls12_381_fr"
    | "ADD"
    | "IMPLICIT_ACCOUNT"
    | "SHA512"
    | "int"
    | "LSL"
    | "bls12_381_g2"
    | "ticket"
    | "sapling_transaction"
    | "COMPARE"
    | "SWAP"
    | "STEPS_TO_QUOTA"
    | "DROP"
    | "pair"
    | "BALANCE"
    | "CONCAT"
    | "MUL"
    | "FAILWITH"
    | "Elt"
    | "lambda"
    | "OR"
    | "DIP"
    | "MEM"
    | "ITER"
    | "key_hash"
    | "XOR"
    | "Some"
    | "parameter"
    | "address"
    | "EMPTY_MAP"
    | "None"
    | "TRANSFER_TOKENS"
    | "or"
    | "AMOUNT"
    | "signature"
    | "SHA3"
    | "string"
    | "CHAIN_ID"
    | "HASH_KEY"
    | "IF_LEFT"
    | "CREATE_ACCOUNT"
    | "LT"
    | "TOTAL_VOTING_POWER"
    | "UNPACK"
    | "READ_TICKET"
    | "SELF_ADDRESS"
    | "timestamp"
    | "SET_DELEGATE"
    | "LE"
    | "SOURCE"
    | "CREATE_CONTRACT"
    | "Unit"
    | "SAPLING_VERIFY_UPDATE"
    | "NONE"
    | "CONTRACT"
    | "GE"
    | "SOME"
    | "key"
    | "SELF"
    | "set"
    | "CAR"
    | "NOT"
    | "unit"
    | "CDR"
    | "LOOP_LEFT"
    | "PAIRING_CHECK"
    | "RIGHT"
    | "LEFT"
    | "CAST"
    | "True"
    | "Right"
    | "PACK"
    | "IF_CONS"
    | "KECCAK"
    | "chest"
    | "UNIT"
    | "EMPTY_SET"
    | "NEQ"
    | "LAMBDA"
    | "mutez"
    | "TICKET"
    | "LOOP"
    | "Left"
    | "contract"
    | "LSR"
    | "EMPTY_BIG_MAP"
    | "sapling_state"
    | "JOIN_TICKETS"
    | "LEVEL"
    | "UNPAIR"
    | "SPLIT_TICKET"
    | "PUSH"
    | "big_map"
    | "GT"
    | "chain_id"
    | "constant"
    | "NOW"
    | "IF_NONE"
    | "PAIR"
    | "GET_AND_UPDATE"
    | "UPDATE"
    | "ISNAT"
    | "RENAME"
    | "OPEN_CHEST"
    | "EDIV"
    | "EQ"
    | "ADDRESS"
    | "bool"
    | "EXEC"
    | "GET"
    | "NEG"
    | "SLICE"
    | "DUP"
    | "CONS"
    | "APPLY"
    | "SUB_MUTEZ"
    | "code"
  $bignum:
    /* Big number
       Decimal representation of a big number */
    string
  $micheline.alpha.michelson_v1.expression:
    { /* Int */
      "int": $bignum }
    || { /* String */
         "string": $unistring }
    || { /* Bytes */
         "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
    || [ $micheline.alpha.michelson_v1.expression ... ]
    /* Sequence */
    || { /* Prim__generic
            Generic primitive (any number of args with or without
            annotations) */
         "prim": $alpha.michelson.v1.primitives,
         "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
         "annots"?: [ 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_8        |
  +-----------------------+----------+-------------------------+


  Z.t
  ***

  A variable-length sequence of bytes encoding a Zarith integer. Each byte has a running unary size bit: the most significant bit of each byte indicates whether this is the last byte in the sequence (0) or whether the sequence continues (1). The second most significant bit of the first byte is reserved for the sign (0 for positive, 1 for negative). Size and sign bits ignored, the data is the binary representation of the absolute value of the number in little-endian order.

  +------+----------------------+----------+
  | Name | Size                 | Contents |
  +======+======================+==========+
  | Z.t  | Determined from data | bytes    |
  +------+----------------------+----------+


  micheline.alpha.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.alpha.michelson_v1.expression |
  +-----------------------+----------+------------------------------------------------------+


  Prim__no_args__no_annots (tag 3)
  ================================

  +------+--------+------------------------------------------------------------------------------------+
  | Name | Size   | Contents                                                                           |
  +======+========+====================================================================================+
  | Tag  | 1 byte | unsigned 8-bit integer                                                             |
  +------+--------+------------------------------------------------------------------------------------+
  | prim | 1 byte | unsigned 8-bit integer encoding an enumeration (see alpha.michelson.v1.primitives) |
  +------+--------+------------------------------------------------------------------------------------+


  Prim__no_args__some_annots (tag 4)
  ==================================

  +-----------------------+----------+------------------------------------------------------------------------------------+
  | Name                  | Size     | Contents                                                                           |
  +=======================+==========+====================================================================================+
  | Tag                   | 1 byte   | unsigned 8-bit integer                                                             |
  +-----------------------+----------+------------------------------------------------------------------------------------+
  | prim                  | 1 byte   | unsigned 8-bit integer encoding an enumeration (see alpha.michelson.v1.primitives) |
  +-----------------------+----------+------------------------------------------------------------------------------------+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer                                                            |
  +-----------------------+----------+------------------------------------------------------------------------------------+
  | annots                | Variable | bytes                                                                              |
  +-----------------------+----------+------------------------------------------------------------------------------------+


  Prim__1_arg__no_annots (tag 5)
  ==============================

  +------+----------------------+------------------------------------------------------------------------------------+
  | Name | Size                 | Contents                                                                           |
  +======+======================+====================================================================================+
  | Tag  | 1 byte               | unsigned 8-bit integer                                                             |
  +------+----------------------+------------------------------------------------------------------------------------+
  | prim | 1 byte               | unsigned 8-bit integer encoding an enumeration (see alpha.michelson.v1.primitives) |
  +------+----------------------+------------------------------------------------------------------------------------+
  | arg  | Determined from data | $micheline.alpha.michelson_v1.expression                                           |
  +------+----------------------+------------------------------------------------------------------------------------+


  Prim__1_arg__some_annots (tag 6)
  ================================

  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | Name                  | Size                 | Contents                                                                           |
  +=======================+======================+====================================================================================+
  | Tag                   | 1 byte               | unsigned 8-bit integer                                                             |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | prim                  | 1 byte               | unsigned 8-bit integer encoding an enumeration (see alpha.michelson.v1.primitives) |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | arg                   | Determined from data | $micheline.alpha.michelson_v1.expression                                           |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | # bytes in next field | 4 bytes              | unsigned 30-bit integer                                                            |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | annots                | Variable             | bytes                                                                              |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+


  Prim__2_args__no_annots (tag 7)
  ===============================

  +------+----------------------+------------------------------------------------------------------------------------+
  | Name | Size                 | Contents                                                                           |
  +======+======================+====================================================================================+
  | Tag  | 1 byte               | unsigned 8-bit integer                                                             |
  +------+----------------------+------------------------------------------------------------------------------------+
  | prim | 1 byte               | unsigned 8-bit integer encoding an enumeration (see alpha.michelson.v1.primitives) |
  +------+----------------------+------------------------------------------------------------------------------------+
  | arg1 | Determined from data | $micheline.alpha.michelson_v1.expression                                           |
  +------+----------------------+------------------------------------------------------------------------------------+
  | arg2 | Determined from data | $micheline.alpha.michelson_v1.expression                                           |
  +------+----------------------+------------------------------------------------------------------------------------+


  Prim__2_args__some_annots (tag 8)
  =================================

  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | Name                  | Size                 | Contents                                                                           |
  +=======================+======================+====================================================================================+
  | Tag                   | 1 byte               | unsigned 8-bit integer                                                             |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | prim                  | 1 byte               | unsigned 8-bit integer encoding an enumeration (see alpha.michelson.v1.primitives) |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | arg1                  | Determined from data | $micheline.alpha.michelson_v1.expression                                           |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | arg2                  | Determined from data | $micheline.alpha.michelson_v1.expression                                           |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | # bytes in next field | 4 bytes              | unsigned 30-bit integer                                                            |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | annots                | Variable             | bytes                                                                              |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+


  Prim__generic (tag 9)
  =====================

  +-----------------------+----------+------------------------------------------------------------------------------------+
  | Name                  | Size     | Contents                                                                           |
  +=======================+==========+====================================================================================+
  | Tag                   | 1 byte   | unsigned 8-bit integer                                                             |
  +-----------------------+----------+------------------------------------------------------------------------------------+
  | prim                  | 1 byte   | unsigned 8-bit integer encoding an enumeration (see alpha.michelson.v1.primitives) |
  +-----------------------+----------+------------------------------------------------------------------------------------+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer                                                            |
  +-----------------------+----------+------------------------------------------------------------------------------------+
  | args                  | Variable | sequence of $micheline.alpha.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                   |
  +-----------------------+----------+-------------------------+


  alpha.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         | DIG                   |
  +-------------+-----------------------+
  | 113         | DUG                   |
  +-------------+-----------------------+
  | 114         | EMPTY_BIG_MAP         |
  +-------------+-----------------------+
  | 115         | APPLY                 |
  +-------------+-----------------------+
  | 116         | chain_id              |
  +-------------+-----------------------+
  | 117         | CHAIN_ID              |
  +-------------+-----------------------+
  | 118         | LEVEL                 |
  +-------------+-----------------------+
  | 119         | SELF_ADDRESS          |
  +-------------+-----------------------+
  | 120         | never                 |
  +-------------+-----------------------+
  | 121         | NEVER                 |
  +-------------+-----------------------+
  | 122         | UNPAIR                |
  +-------------+-----------------------+
  | 123         | VOTING_POWER          |
  +-------------+-----------------------+
  | 124         | TOTAL_VOTING_POWER    |
  +-------------+-----------------------+
  | 125         | KECCAK                |
  +-------------+-----------------------+
  | 126         | SHA3                  |
  +-------------+-----------------------+
  | 127         | PAIRING_CHECK         |
  +-------------+-----------------------+
  | 128         | bls12_381_g1          |
  +-------------+-----------------------+
  | 129         | bls12_381_g2          |
  +-------------+-----------------------+
  | 130         | bls12_381_fr          |
  +-------------+-----------------------+
  | 131         | sapling_state         |
  +-------------+-----------------------+
  | 132         | sapling_transaction   |
  +-------------+-----------------------+
  | 133         | SAPLING_EMPTY_STATE   |
  +-------------+-----------------------+
  | 134         | SAPLING_VERIFY_UPDATE |
  +-------------+-----------------------+
  | 135         | ticket                |
  +-------------+-----------------------+
  | 136         | TICKET                |
  +-------------+-----------------------+
  | 137         | READ_TICKET           |
  +-------------+-----------------------+
  | 138         | SPLIT_TICKET          |
  +-------------+-----------------------+
  | 139         | JOIN_TICKETS          |
  +-------------+-----------------------+
  | 140         | GET_AND_UPDATE        |
  +-------------+-----------------------+
  | 141         | chest                 |
  +-------------+-----------------------+
  | 142         | chest_key             |
  +-------------+-----------------------+
  | 143         | OPEN_CHEST            |
  +-------------+-----------------------+
  | 144         | VIEW                  |
  +-------------+-----------------------+
  | 145         | view                  |
  +-------------+-----------------------+
  | 146         | constant              |
  +-------------+-----------------------+
  | 147         | SUB_MUTEZ             |
  +-------------+-----------------------+

  

GET ../<block_id>/context/big_maps/<big_map_id>/<script_expr>

Access the value associated with a key in a big map.

  { /* Int */
    "int": $bignum }
  || { /* String */
       "string": $unistring }
  || { /* Bytes */
       "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
  || [ $micheline.alpha.michelson_v1.expression ... ]
  /* Sequence */
  || { /* Prim__generic
          Generic primitive (any number of args with or without annotations) */
       "prim": $alpha.michelson.v1.primitives,
       "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
       "annots"?: [ string ... ] }
  $alpha.michelson.v1.primitives:
    "ABS"
    | "IF"
    | "SENDER"
    | "NEVER"
    | "False"
    | "DUG"
    | "DIG"
    | "chest_key"
    | "BLAKE2B"
    | "list"
    | "bls12_381_g1"
    | "Pair"
    | "INT"
    | "nat"
    | "never"
    | "storage"
    | "SIZE"
    | "view"
    | "SHA256"
    | "AND"
    | "VIEW"
    | "bytes"
    | "NIL"
    | "map"
    | "SUB"
    | "SAPLING_EMPTY_STATE"
    | "CHECK_SIGNATURE"
    | "VOTING_POWER"
    | "operation"
    | "MAP"
    | "option"
    | "bls12_381_fr"
    | "ADD"
    | "IMPLICIT_ACCOUNT"
    | "SHA512"
    | "int"
    | "LSL"
    | "bls12_381_g2"
    | "ticket"
    | "sapling_transaction"
    | "COMPARE"
    | "SWAP"
    | "STEPS_TO_QUOTA"
    | "DROP"
    | "pair"
    | "BALANCE"
    | "CONCAT"
    | "MUL"
    | "FAILWITH"
    | "Elt"
    | "lambda"
    | "OR"
    | "DIP"
    | "MEM"
    | "ITER"
    | "key_hash"
    | "XOR"
    | "Some"
    | "parameter"
    | "address"
    | "EMPTY_MAP"
    | "None"
    | "TRANSFER_TOKENS"
    | "or"
    | "AMOUNT"
    | "signature"
    | "SHA3"
    | "string"
    | "CHAIN_ID"
    | "HASH_KEY"
    | "IF_LEFT"
    | "CREATE_ACCOUNT"
    | "LT"
    | "TOTAL_VOTING_POWER"
    | "UNPACK"
    | "READ_TICKET"
    | "SELF_ADDRESS"
    | "timestamp"
    | "SET_DELEGATE"
    | "LE"
    | "SOURCE"
    | "CREATE_CONTRACT"
    | "Unit"
    | "SAPLING_VERIFY_UPDATE"
    | "NONE"
    | "CONTRACT"
    | "GE"
    | "SOME"
    | "key"
    | "SELF"
    | "set"
    | "CAR"
    | "NOT"
    | "unit"
    | "CDR"
    | "LOOP_LEFT"
    | "PAIRING_CHECK"
    | "RIGHT"
    | "LEFT"
    | "CAST"
    | "True"
    | "Right"
    | "PACK"
    | "IF_CONS"
    | "KECCAK"
    | "chest"
    | "UNIT"
    | "EMPTY_SET"
    | "NEQ"
    | "LAMBDA"
    | "mutez"
    | "TICKET"
    | "LOOP"
    | "Left"
    | "contract"
    | "LSR"
    | "EMPTY_BIG_MAP"
    | "sapling_state"
    | "JOIN_TICKETS"
    | "LEVEL"
    | "UNPAIR"
    | "SPLIT_TICKET"
    | "PUSH"
    | "big_map"
    | "GT"
    | "chain_id"
    | "constant"
    | "NOW"
    | "IF_NONE"
    | "PAIR"
    | "GET_AND_UPDATE"
    | "UPDATE"
    | "ISNAT"
    | "RENAME"
    | "OPEN_CHEST"
    | "EDIV"
    | "EQ"
    | "ADDRESS"
    | "bool"
    | "EXEC"
    | "GET"
    | "NEG"
    | "SLICE"
    | "DUP"
    | "CONS"
    | "APPLY"
    | "SUB_MUTEZ"
    | "code"
  $bignum:
    /* Big number
       Decimal representation of a big number */
    string
  $micheline.alpha.michelson_v1.expression:
    { /* Int */
      "int": $bignum }
    || { /* String */
         "string": $unistring }
    || { /* Bytes */
         "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
    || [ $micheline.alpha.michelson_v1.expression ... ]
    /* Sequence */
    || { /* Prim__generic
            Generic primitive (any number of args with or without
            annotations) */
         "prim": $alpha.michelson.v1.primitives,
         "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
         "annots"?: [ 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_8     |
  +-----------------+----------------------+----------+


  Z.t
  ***

  A variable-length sequence of bytes encoding a Zarith integer. Each byte has a running unary size bit: the most significant bit of each byte indicates whether this is the last byte in the sequence (0) or whether the sequence continues (1). The second most significant bit of the first byte is reserved for the sign (0 for positive, 1 for negative). Size and sign bits ignored, the data is the binary representation of the absolute value of the number in little-endian order.

  +------+----------------------+----------+
  | Name | Size                 | Contents |
  +======+======================+==========+
  | Z.t  | Determined from data | bytes    |
  +------+----------------------+----------+


  micheline.alpha.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.alpha.michelson_v1.expression |
  +-----------------------+----------+------------------------------------------------------+


  Prim__no_args__no_annots (tag 3)
  ================================

  +------+--------+------------------------------------------------------------------------------------+
  | Name | Size   | Contents                                                                           |
  +======+========+====================================================================================+
  | Tag  | 1 byte | unsigned 8-bit integer                                                             |
  +------+--------+------------------------------------------------------------------------------------+
  | prim | 1 byte | unsigned 8-bit integer encoding an enumeration (see alpha.michelson.v1.primitives) |
  +------+--------+------------------------------------------------------------------------------------+


  Prim__no_args__some_annots (tag 4)
  ==================================

  +-----------------------+----------+------------------------------------------------------------------------------------+
  | Name                  | Size     | Contents                                                                           |
  +=======================+==========+====================================================================================+
  | Tag                   | 1 byte   | unsigned 8-bit integer                                                             |
  +-----------------------+----------+------------------------------------------------------------------------------------+
  | prim                  | 1 byte   | unsigned 8-bit integer encoding an enumeration (see alpha.michelson.v1.primitives) |
  +-----------------------+----------+------------------------------------------------------------------------------------+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer                                                            |
  +-----------------------+----------+------------------------------------------------------------------------------------+
  | annots                | Variable | bytes                                                                              |
  +-----------------------+----------+------------------------------------------------------------------------------------+


  Prim__1_arg__no_annots (tag 5)
  ==============================

  +------+----------------------+------------------------------------------------------------------------------------+
  | Name | Size                 | Contents                                                                           |
  +======+======================+====================================================================================+
  | Tag  | 1 byte               | unsigned 8-bit integer                                                             |
  +------+----------------------+------------------------------------------------------------------------------------+
  | prim | 1 byte               | unsigned 8-bit integer encoding an enumeration (see alpha.michelson.v1.primitives) |
  +------+----------------------+------------------------------------------------------------------------------------+
  | arg  | Determined from data | $micheline.alpha.michelson_v1.expression                                           |
  +------+----------------------+------------------------------------------------------------------------------------+


  Prim__1_arg__some_annots (tag 6)
  ================================

  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | Name                  | Size                 | Contents                                                                           |
  +=======================+======================+====================================================================================+
  | Tag                   | 1 byte               | unsigned 8-bit integer                                                             |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | prim                  | 1 byte               | unsigned 8-bit integer encoding an enumeration (see alpha.michelson.v1.primitives) |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | arg                   | Determined from data | $micheline.alpha.michelson_v1.expression                                           |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | # bytes in next field | 4 bytes              | unsigned 30-bit integer                                                            |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | annots                | Variable             | bytes                                                                              |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+


  Prim__2_args__no_annots (tag 7)
  ===============================

  +------+----------------------+------------------------------------------------------------------------------------+
  | Name | Size                 | Contents                                                                           |
  +======+======================+====================================================================================+
  | Tag  | 1 byte               | unsigned 8-bit integer                                                             |
  +------+----------------------+------------------------------------------------------------------------------------+
  | prim | 1 byte               | unsigned 8-bit integer encoding an enumeration (see alpha.michelson.v1.primitives) |
  +------+----------------------+------------------------------------------------------------------------------------+
  | arg1 | Determined from data | $micheline.alpha.michelson_v1.expression                                           |
  +------+----------------------+------------------------------------------------------------------------------------+
  | arg2 | Determined from data | $micheline.alpha.michelson_v1.expression                                           |
  +------+----------------------+------------------------------------------------------------------------------------+


  Prim__2_args__some_annots (tag 8)
  =================================

  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | Name                  | Size                 | Contents                                                                           |
  +=======================+======================+====================================================================================+
  | Tag                   | 1 byte               | unsigned 8-bit integer                                                             |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | prim                  | 1 byte               | unsigned 8-bit integer encoding an enumeration (see alpha.michelson.v1.primitives) |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | arg1                  | Determined from data | $micheline.alpha.michelson_v1.expression                                           |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | arg2                  | Determined from data | $micheline.alpha.michelson_v1.expression                                           |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | # bytes in next field | 4 bytes              | unsigned 30-bit integer                                                            |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | annots                | Variable             | bytes                                                                              |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+


  Prim__generic (tag 9)
  =====================

  +-----------------------+----------+------------------------------------------------------------------------------------+
  | Name                  | Size     | Contents                                                                           |
  +=======================+==========+====================================================================================+
  | Tag                   | 1 byte   | unsigned 8-bit integer                                                             |
  +-----------------------+----------+------------------------------------------------------------------------------------+
  | prim                  | 1 byte   | unsigned 8-bit integer encoding an enumeration (see alpha.michelson.v1.primitives) |
  +-----------------------+----------+------------------------------------------------------------------------------------+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer                                                            |
  +-----------------------+----------+------------------------------------------------------------------------------------+
  | args                  | Variable | sequence of $micheline.alpha.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                   |
  +-----------------------+----------+-------------------------+


  alpha.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         | DIG                   |
  +-------------+-----------------------+
  | 113         | DUG                   |
  +-------------+-----------------------+
  | 114         | EMPTY_BIG_MAP         |
  +-------------+-----------------------+
  | 115         | APPLY                 |
  +-------------+-----------------------+
  | 116         | chain_id              |
  +-------------+-----------------------+
  | 117         | CHAIN_ID              |
  +-------------+-----------------------+
  | 118         | LEVEL                 |
  +-------------+-----------------------+
  | 119         | SELF_ADDRESS          |
  +-------------+-----------------------+
  | 120         | never                 |
  +-------------+-----------------------+
  | 121         | NEVER                 |
  +-------------+-----------------------+
  | 122         | UNPAIR                |
  +-------------+-----------------------+
  | 123         | VOTING_POWER          |
  +-------------+-----------------------+
  | 124         | TOTAL_VOTING_POWER    |
  +-------------+-----------------------+
  | 125         | KECCAK                |
  +-------------+-----------------------+
  | 126         | SHA3                  |
  +-------------+-----------------------+
  | 127         | PAIRING_CHECK         |
  +-------------+-----------------------+
  | 128         | bls12_381_g1          |
  +-------------+-----------------------+
  | 129         | bls12_381_g2          |
  +-------------+-----------------------+
  | 130         | bls12_381_fr          |
  +-------------+-----------------------+
  | 131         | sapling_state         |
  +-------------+-----------------------+
  | 132         | sapling_transaction   |
  +-------------+-----------------------+
  | 133         | SAPLING_EMPTY_STATE   |
  +-------------+-----------------------+
  | 134         | SAPLING_VERIFY_UPDATE |
  +-------------+-----------------------+
  | 135         | ticket                |
  +-------------+-----------------------+
  | 136         | TICKET                |
  +-------------+-----------------------+
  | 137         | READ_TICKET           |
  +-------------+-----------------------+
  | 138         | SPLIT_TICKET          |
  +-------------+-----------------------+
  | 139         | JOIN_TICKETS          |
  +-------------+-----------------------+
  | 140         | GET_AND_UPDATE        |
  +-------------+-----------------------+
  | 141         | chest                 |
  +-------------+-----------------------+
  | 142         | chest_key             |
  +-------------+-----------------------+
  | 143         | OPEN_CHEST            |
  +-------------+-----------------------+
  | 144         | VIEW                  |
  +-------------+-----------------------+
  | 145         | view                  |
  +-------------+-----------------------+
  | 146         | constant              |
  +-------------+-----------------------+
  | 147         | SUB_MUTEZ             |
  +-------------+-----------------------+

  

GET ../<block_id>/context/cache/contracts/all

Return the list of cached contracts

  [ [ $alpha.contract_id, integer ∈ [-2^30, 2^30] ] ... ]
  $alpha.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
  $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                  |
  +----------------------+----------+------------------------+


  alpha.contract_id (22 bytes, 8-bit tag)
  ***************************************

  Implicit (tag 0)
  ================

  +---------------------------+----------+------------------------+
  | Name                      | Size     | Contents               |
  +===========================+==========+========================+
  | Tag                       | 1 byte   | unsigned 8-bit integer |
  +---------------------------+----------+------------------------+
  | Signature.Public_key_hash | 21 bytes | $public_key_hash       |
  +---------------------------+----------+------------------------+


  Originated (tag 1)
  ==================

  +---------------+----------+------------------------+
  | Name          | Size     | Contents               |
  +===============+==========+========================+
  | Tag           | 1 byte   | unsigned 8-bit integer |
  +---------------+----------+------------------------+
  | Contract_hash | 20 bytes | bytes                  |
  +---------------+----------+------------------------+
  | padding       | 1 byte   | padding                |
  +---------------+----------+------------------------+


  X_0
  ***

  +-----------------+----------+--------------------------------------------------------------+
  | Name            | Size     | Contents                                                     |
  +=================+==========+==============================================================+
  | Unnamed field 0 | 22 bytes | $alpha.contract_id                                           |
  +-----------------+----------+--------------------------------------------------------------+
  | Unnamed field 1 | 4 bytes  | signed 31-bit integer in the range -1073741824 to 1073741823 |
  +-----------------+----------+--------------------------------------------------------------+

  

POST ../<block_id>/context/cache/contracts/rank

Return the number of cached contracts older than the provided contract

  $alpha.contract_id
  $alpha.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
  $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 | 22 bytes | $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 (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                |
  +---------------+----------+------------------------+

  
  integer ∈ [-2^30, 2^30] /* Some */ || null /* None */
  +-----------------+----------------------+----------+
  | 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 |
  +------+--------+------------------------+


  Some (tag 1)
  ============

  +-----------------+---------+--------------------------------------------------------------+
  | Name            | Size    | Contents                                                     |
  +=================+=========+==============================================================+
  | Tag             | 1 byte  | unsigned 8-bit integer                                       |
  +-----------------+---------+--------------------------------------------------------------+
  | Unnamed field 0 | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 |
  +-----------------+---------+--------------------------------------------------------------+

  

GET ../<block_id>/context/cache/contracts/size

Return the size of the contract cache

  integer ∈ [-2^30, 2^30]
  +-----------------+---------+--------------------------------------------------------------+
  | Name            | Size    | Contents                                                     |
  +=================+=========+==============================================================+
  | Unnamed field 0 | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 |
  +-----------------+---------+--------------------------------------------------------------+


  

GET ../<block_id>/context/cache/contracts/size_limit

Return the size limit of the contract cache

  integer ∈ [-2^30, 2^30]
  +-----------------+---------+--------------------------------------------------------------+
  | Name            | Size    | Contents                                                     |
  +=================+=========+==============================================================+
  | Unnamed field 0 | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 |
  +-----------------+---------+--------------------------------------------------------------+


  

GET ../<block_id>/context/constants

All constants

  { "proof_of_work_nonce_size": integer ∈ [0, 255],
    "nonce_length": integer ∈ [0, 255],
    "max_anon_ops_per_block": integer ∈ [0, 255],
    "max_operation_data_length": integer ∈ [-2^30, 2^30],
    "max_proposals_per_delegate": integer ∈ [0, 255],
    "max_micheline_node_count": integer ∈ [-2^30, 2^30],
    "max_micheline_bytes_limit": integer ∈ [-2^30, 2^30],
    "max_allowed_global_constants_depth": integer ∈ [-2^30, 2^30],
    "cache_layout_size": integer ∈ [0, 255],
    "michelson_maximum_type_size": integer ∈ [0, 2^16-1],
    "preserved_cycles": integer ∈ [0, 255],
    "blocks_per_cycle": integer ∈ [-2^31-1, 2^31],
    "blocks_per_commitment": integer ∈ [-2^31-1, 2^31],
    "blocks_per_stake_snapshot": integer ∈ [-2^31-1, 2^31],
    "blocks_per_voting_period": integer ∈ [-2^31-1, 2^31],
    "hard_gas_limit_per_operation": $bignum,
    "hard_gas_limit_per_block": $bignum,
    "proof_of_work_threshold": $int64,
    "tokens_per_roll": $alpha.mutez,
    "seed_nonce_revelation_tip": $alpha.mutez,
    "origination_size": integer ∈ [-2^30, 2^30],
    "baking_reward_fixed_portion": $alpha.mutez,
    "baking_reward_bonus_per_slot": $alpha.mutez,
    "endorsing_reward_per_slot": $alpha.mutez,
    "cost_per_byte": $alpha.mutez,
    "hard_storage_limit_per_operation": $bignum,
    "quorum_min": integer ∈ [-2^31-1, 2^31],
    "quorum_max": integer ∈ [-2^31-1, 2^31],
    "min_proposal_quorum": integer ∈ [-2^31-1, 2^31],
    "liquidity_baking_subsidy": $alpha.mutez,
    "liquidity_baking_sunset_level": integer ∈ [-2^31-1, 2^31],
    "liquidity_baking_escape_ema_threshold": integer ∈ [-2^31-1, 2^31],
    "max_operations_time_to_live": integer ∈ [-2^15, 2^15-1],
    "minimal_block_delay": $int64,
    "delay_increment_per_round": $int64,
    "consensus_committee_size": integer ∈ [-2^30, 2^30],
    "consensus_threshold": integer ∈ [-2^30, 2^30],
    "minimal_participation_ratio":
      { "numerator": integer ∈ [0, 2^16-1],
        "denominator": integer ∈ [0, 2^16-1] },
    "max_slashing_period": integer ∈ [-2^30, 2^30],
    "frozen_deposits_percentage": integer ∈ [-2^30, 2^30],
    "double_baking_punishment": $alpha.mutez,
    "ratio_of_frozen_deposits_slashed_per_double_endorsement":
      { "numerator": integer ∈ [0, 2^16-1],
        "denominator": integer ∈ [0, 2^16-1] },
    "initial_seed"?: $random,
    "cache_script_size": integer ∈ [-2^30, 2^30],
    "cache_stake_distribution_cycles": integer ∈ [-128, 127],
    "cache_sampler_state_cycles": integer ∈ [-128, 127],
    "tx_rollup_enable": boolean,
    "tx_rollup_origination_size": integer ∈ [-2^30, 2^30],
    "sc_rollup_enable": boolean,
    "sc_rollup_origination_size": integer ∈ [-2^30, 2^30] }
  $alpha.mutez: $positive_bignum
  $bignum:
    /* Big number
       Decimal representation of a big number */
    string
  $int64:
    /* 64 bit integers
       Decimal representation of 64 bit integers */
    string
  $positive_bignum:
    /* Positive big number
       Decimal representation of a positive big number */
    string
  $random:
    /* A random generation state (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                                                     |
  +=========================================================+======================+==============================================================+
  | proof_of_work_nonce_size                                | 1 byte               | unsigned 8-bit integer                                       |
  +---------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | nonce_length                                            | 1 byte               | unsigned 8-bit integer                                       |
  +---------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | max_anon_ops_per_block                                  | 1 byte               | unsigned 8-bit integer                                       |
  +---------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | max_operation_data_length                               | 4 bytes              | signed 31-bit integer in the range -1073741824 to 1073741823 |
  +---------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | max_proposals_per_delegate                              | 1 byte               | unsigned 8-bit integer                                       |
  +---------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | max_micheline_node_count                                | 4 bytes              | signed 31-bit integer in the range -1073741824 to 1073741823 |
  +---------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | max_micheline_bytes_limit                               | 4 bytes              | signed 31-bit integer in the range -1073741824 to 1073741823 |
  +---------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | max_allowed_global_constants_depth                      | 4 bytes              | signed 31-bit integer in the range -1073741824 to 1073741823 |
  +---------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | cache_layout_size                                       | 1 byte               | unsigned 8-bit integer                                       |
  +---------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | michelson_maximum_type_size                             | 2 bytes              | unsigned 16-bit integer                                      |
  +---------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | preserved_cycles                                        | 1 byte               | unsigned 8-bit integer                                       |
  +---------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | blocks_per_cycle                                        | 4 bytes              | signed 32-bit integer                                        |
  +---------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | blocks_per_commitment                                   | 4 bytes              | signed 32-bit integer                                        |
  +---------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | blocks_per_stake_snapshot                               | 4 bytes              | signed 32-bit integer                                        |
  +---------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | blocks_per_voting_period                                | 4 bytes              | signed 32-bit integer                                        |
  +---------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | hard_gas_limit_per_operation                            | Determined from data | $Z.t                                                         |
  +---------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | hard_gas_limit_per_block                                | Determined from data | $Z.t                                                         |
  +---------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | proof_of_work_threshold                                 | 8 bytes              | signed 64-bit integer                                        |
  +---------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | tokens_per_roll                                         | Determined from data | $N.t                                                         |
  +---------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | seed_nonce_revelation_tip                               | Determined from data | $N.t                                                         |
  +---------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | origination_size                                        | 4 bytes              | signed 31-bit integer in the range -1073741824 to 1073741823 |
  +---------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | baking_reward_fixed_portion                             | Determined from data | $N.t                                                         |
  +---------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | baking_reward_bonus_per_slot                            | Determined from data | $N.t                                                         |
  +---------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | endorsing_reward_per_slot                               | Determined from data | $N.t                                                         |
  +---------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | cost_per_byte                                           | Determined from data | $N.t                                                         |
  +---------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | hard_storage_limit_per_operation                        | Determined from data | $Z.t                                                         |
  +---------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | quorum_min                                              | 4 bytes              | signed 32-bit integer                                        |
  +---------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | quorum_max                                              | 4 bytes              | signed 32-bit integer                                        |
  +---------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | min_proposal_quorum                                     | 4 bytes              | signed 32-bit integer                                        |
  +---------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | liquidity_baking_subsidy                                | Determined from data | $N.t                                                         |
  +---------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | liquidity_baking_sunset_level                           | 4 bytes              | signed 32-bit integer                                        |
  +---------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | liquidity_baking_escape_ema_threshold                   | 4 bytes              | signed 32-bit integer                                        |
  +---------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | max_operations_time_to_live                             | 2 bytes              | signed 16-bit integer                                        |
  +---------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | minimal_block_delay                                     | 8 bytes              | signed 64-bit integer                                        |
  +---------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | delay_increment_per_round                               | 8 bytes              | signed 64-bit integer                                        |
  +---------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | consensus_committee_size                                | 4 bytes              | signed 31-bit integer in the range -1073741824 to 1073741823 |
  +---------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | consensus_threshold                                     | 4 bytes              | signed 31-bit integer in the range -1073741824 to 1073741823 |
  +---------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | minimal_participation_ratio                             | 4 bytes              | $X_0                                                         |
  +---------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | max_slashing_period                                     | 4 bytes              | signed 31-bit integer in the range -1073741824 to 1073741823 |
  +---------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | frozen_deposits_percentage                              | 4 bytes              | signed 31-bit integer in the range -1073741824 to 1073741823 |
  +---------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | double_baking_punishment                                | Determined from data | $N.t                                                         |
  +---------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | ratio_of_frozen_deposits_slashed_per_double_endorsement | 4 bytes              | $X_1                                                         |
  +---------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | ? presence of field "initial_seed"                      | 1 byte               | boolean (0 for false, 255 for true)                          |
  +---------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | initial_seed                                            | 32 bytes             | bytes                                                        |
  +---------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | cache_script_size                                       | 4 bytes              | signed 31-bit integer in the range -1073741824 to 1073741823 |
  +---------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | cache_stake_distribution_cycles                         | 1 byte               | signed 8-bit integer                                         |
  +---------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | cache_sampler_state_cycles                              | 1 byte               | signed 8-bit integer                                         |
  +---------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | tx_rollup_enable                                        | 1 byte               | boolean (0 for false, 255 for true)                          |
  +---------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | tx_rollup_origination_size                              | 4 bytes              | signed 31-bit integer in the range -1073741824 to 1073741823 |
  +---------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | sc_rollup_enable                                        | 1 byte               | boolean (0 for false, 255 for true)                          |
  +---------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | sc_rollup_origination_size                              | 4 bytes              | signed 31-bit integer in the range -1073741824 to 1073741823 |
  +---------------------------------------------------------+----------------------+--------------------------------------------------------------+


  Z.t
  ***

  A variable-length sequence of bytes encoding a Zarith integer. Each byte has a running unary size bit: the most significant bit of each byte indicates whether this is the last byte in the sequence (0) or whether the sequence continues (1). The second most significant bit of the first byte is reserved for the sign (0 for positive, 1 for negative). Size and sign bits ignored, the data is the binary representation of the absolute value of the number in little-endian order.

  +------+----------------------+----------+
  | Name | Size                 | Contents |
  +======+======================+==========+
  | Z.t  | Determined from data | bytes    |
  +------+----------------------+----------+


  N.t
  ***

  A variable-length sequence of bytes encoding a Zarith natural number. Each byte has a running unary size bit: the most significant bit of each byte indicates whether this is the last byte in the sequence (0) or whether the sequence continues (1). Size bits ignored, the data is the binary representation of the number in little-endian order.

  +------+----------------------+----------+
  | Name | Size                 | Contents |
  +======+======================+==========+
  | N.t  | Determined from data | bytes    |
  +------+----------------------+----------+


  X_1
  ***

  +-------------+---------+-------------------------+
  | Name        | Size    | Contents                |
  +=============+=========+=========================+
  | numerator   | 2 bytes | unsigned 16-bit integer |
  +-------------+---------+-------------------------+
  | denominator | 2 bytes | unsigned 16-bit integer |
  +-------------+---------+-------------------------+

  

GET ../<block_id>/context/constants/errors

Schema for all the RPC errors from this protocol version

  any
  +-----------------------+----------+-------------------------+
  | Name                  | Size     | Contents                |
  +=======================+==========+=========================+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer |
  +-----------------------+----------+-------------------------+
  | Unnamed field 0       | Variable | bytes                   |
  +-----------------------+----------+-------------------------+


  

GET ../<block_id>/context/contracts

All existing contracts (including non-empty default contracts).

  [ $alpha.contract_id ... ]
  $alpha.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
  $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 $alpha.contract_id |
  +-----------------------+----------+--------------------------------+


  public_key_hash (21 bytes, 8-bit tag)
  *************************************

  Ed25519 (tag 0)
  ===============

  +-------------------------+----------+------------------------+
  | Name                    | Size     | Contents               |
  +=========================+==========+========================+
  | Tag                     | 1 byte   | unsigned 8-bit integer |
  +-------------------------+----------+------------------------+
  | Ed25519.Public_key_hash | 20 bytes | bytes                  |
  +-------------------------+----------+------------------------+


  Secp256k1 (tag 1)
  =================

  +---------------------------+----------+------------------------+
  | Name                      | Size     | Contents               |
  +===========================+==========+========================+
  | Tag                       | 1 byte   | unsigned 8-bit integer |
  +---------------------------+----------+------------------------+
  | Secp256k1.Public_key_hash | 20 bytes | bytes                  |
  +---------------------------+----------+------------------------+


  P256 (tag 2)
  ============

  +----------------------+----------+------------------------+
  | Name                 | Size     | Contents               |
  +======================+==========+========================+
  | Tag                  | 1 byte   | unsigned 8-bit integer |
  +----------------------+----------+------------------------+
  | P256.Public_key_hash | 20 bytes | bytes                  |
  +----------------------+----------+------------------------+


  alpha.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                |
  +---------------+----------+------------------------+

  

GET ../<block_id>/context/contracts/<contract_id>

Access the complete status of a contract.

  { "balance": $alpha.mutez,
    "delegate"?: $Signature.Public_key_hash,
    "script"?: $alpha.scripted.contracts,
    "counter"?: $positive_bignum }
  $Signature.Public_key_hash:
    /* A Ed25519, Secp256k1, or P256 public key hash (Base58Check-encoded) */
    $unistring
  $alpha.michelson.v1.primitives:
    "ABS"
    | "IF"
    | "SENDER"
    | "NEVER"
    | "False"
    | "DUG"
    | "DIG"
    | "chest_key"
    | "BLAKE2B"
    | "list"
    | "bls12_381_g1"
    | "Pair"
    | "INT"
    | "nat"
    | "never"
    | "storage"
    | "SIZE"
    | "view"
    | "SHA256"
    | "AND"
    | "VIEW"
    | "bytes"
    | "NIL"
    | "map"
    | "SUB"
    | "SAPLING_EMPTY_STATE"
    | "CHECK_SIGNATURE"
    | "VOTING_POWER"
    | "operation"
    | "MAP"
    | "option"
    | "bls12_381_fr"
    | "ADD"
    | "IMPLICIT_ACCOUNT"
    | "SHA512"
    | "int"
    | "LSL"
    | "bls12_381_g2"
    | "ticket"
    | "sapling_transaction"
    | "COMPARE"
    | "SWAP"
    | "STEPS_TO_QUOTA"
    | "DROP"
    | "pair"
    | "BALANCE"
    | "CONCAT"
    | "MUL"
    | "FAILWITH"
    | "Elt"
    | "lambda"
    | "OR"
    | "DIP"
    | "MEM"
    | "ITER"
    | "key_hash"
    | "XOR"
    | "Some"
    | "parameter"
    | "address"
    | "EMPTY_MAP"
    | "None"
    | "TRANSFER_TOKENS"
    | "or"
    | "AMOUNT"
    | "signature"
    | "SHA3"
    | "string"
    | "CHAIN_ID"
    | "HASH_KEY"
    | "IF_LEFT"
    | "CREATE_ACCOUNT"
    | "LT"
    | "TOTAL_VOTING_POWER"
    | "UNPACK"
    | "READ_TICKET"
    | "SELF_ADDRESS"
    | "timestamp"
    | "SET_DELEGATE"
    | "LE"
    | "SOURCE"
    | "CREATE_CONTRACT"
    | "Unit"
    | "SAPLING_VERIFY_UPDATE"
    | "NONE"
    | "CONTRACT"
    | "GE"
    | "SOME"
    | "key"
    | "SELF"
    | "set"
    | "CAR"
    | "NOT"
    | "unit"
    | "CDR"
    | "LOOP_LEFT"
    | "PAIRING_CHECK"
    | "RIGHT"
    | "LEFT"
    | "CAST"
    | "True"
    | "Right"
    | "PACK"
    | "IF_CONS"
    | "KECCAK"
    | "chest"
    | "UNIT"
    | "EMPTY_SET"
    | "NEQ"
    | "LAMBDA"
    | "mutez"
    | "TICKET"
    | "LOOP"
    | "Left"
    | "contract"
    | "LSR"
    | "EMPTY_BIG_MAP"
    | "sapling_state"
    | "JOIN_TICKETS"
    | "LEVEL"
    | "UNPAIR"
    | "SPLIT_TICKET"
    | "PUSH"
    | "big_map"
    | "GT"
    | "chain_id"
    | "constant"
    | "NOW"
    | "IF_NONE"
    | "PAIR"
    | "GET_AND_UPDATE"
    | "UPDATE"
    | "ISNAT"
    | "RENAME"
    | "OPEN_CHEST"
    | "EDIV"
    | "EQ"
    | "ADDRESS"
    | "bool"
    | "EXEC"
    | "GET"
    | "NEG"
    | "SLICE"
    | "DUP"
    | "CONS"
    | "APPLY"
    | "SUB_MUTEZ"
    | "code"
  $alpha.mutez: $positive_bignum
  $alpha.scripted.contracts:
    { "code":
        { /* Int */
          "int": $bignum }
        || { /* String */
             "string": $unistring }
        || { /* Bytes */
             "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
        || [ $micheline.alpha.michelson_v1.expression ... ]
        /* Sequence */
        || { /* Prim__generic
                Generic primitive (any number of args with or without
                annotations) */
             "prim": $alpha.michelson.v1.primitives,
             "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
             "annots"?: [ string ... ] },
      "storage":
        { /* Int */
          "int": $bignum }
        || { /* String */
             "string": $unistring }
        || { /* Bytes */
             "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
        || [ $micheline.alpha.michelson_v1.expression ... ]
        /* Sequence */
        || { /* Prim__generic
                Generic primitive (any number of args with or without
                annotations) */
             "prim": $alpha.michelson.v1.primitives,
             "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
             "annots"?: [ string ... ] } }
  $bignum:
    /* Big number
       Decimal representation of a big number */
    string
  $micheline.alpha.michelson_v1.expression:
    { /* Int */
      "int": $bignum }
    || { /* String */
         "string": $unistring }
    || { /* Bytes */
         "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
    || [ $micheline.alpha.michelson_v1.expression ... ]
    /* Sequence */
    || { /* Prim__generic
            Generic primitive (any number of args with or without
            annotations) */
         "prim": $alpha.michelson.v1.primitives,
         "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
         "annots"?: [ string ... ] }
  $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                            |
  +================================+======================+=====================================+
  | 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                    |
  +--------------------------------+----------------------+-------------------------------------+
  | ? presence of field "script"   | 1 byte               | boolean (0 for false, 255 for true) |
  +--------------------------------+----------------------+-------------------------------------+
  | script                         | Determined from data | $alpha.scripted.contracts           |
  +--------------------------------+----------------------+-------------------------------------+
  | ? presence of field "counter"  | 1 byte               | boolean (0 for false, 255 for true) |
  +--------------------------------+----------------------+-------------------------------------+
  | counter                        | Determined from data | $N.t                                |
  +--------------------------------+----------------------+-------------------------------------+


  public_key_hash (21 bytes, 8-bit tag)
  *************************************

  Ed25519 (tag 0)
  ===============

  +-------------------------+----------+------------------------+
  | Name                    | Size     | Contents               |
  +=========================+==========+========================+
  | Tag                     | 1 byte   | unsigned 8-bit integer |
  +-------------------------+----------+------------------------+
  | Ed25519.Public_key_hash | 20 bytes | bytes                  |
  +-------------------------+----------+------------------------+


  Secp256k1 (tag 1)
  =================

  +---------------------------+----------+------------------------+
  | Name                      | Size     | Contents               |
  +===========================+==========+========================+
  | Tag                       | 1 byte   | unsigned 8-bit integer |
  +---------------------------+----------+------------------------+
  | Secp256k1.Public_key_hash | 20 bytes | bytes                  |
  +---------------------------+----------+------------------------+


  P256 (tag 2)
  ============

  +----------------------+----------+------------------------+
  | Name                 | Size     | Contents               |
  +======================+==========+========================+
  | Tag                  | 1 byte   | unsigned 8-bit integer |
  +----------------------+----------+------------------------+
  | P256.Public_key_hash | 20 bytes | bytes                  |
  +----------------------+----------+------------------------+


  alpha.scripted.contracts
  ************************

  +-----------------------+----------+-------------------------+
  | Name                  | Size     | Contents                |
  +=======================+==========+=========================+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer |
  +-----------------------+----------+-------------------------+
  | code                  | Variable | bytes                   |
  +-----------------------+----------+-------------------------+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer |
  +-----------------------+----------+-------------------------+
  | storage               | Variable | bytes                   |
  +-----------------------+----------+-------------------------+


  N.t
  ***

  A variable-length sequence of bytes encoding a Zarith natural number. Each byte has a running unary size bit: the most significant bit of each byte indicates whether this is the last byte in the sequence (0) or whether the sequence continues (1). Size bits ignored, the data is the binary representation of the number in little-endian order.

  +------+----------------------+----------+
  | Name | Size                 | Contents |
  +======+======================+==========+
  | N.t  | Determined from data | bytes    |
  +------+----------------------+----------+

  

GET ../<block_id>/context/contracts/<contract_id>/balance

Access the balance of a contract.

  $alpha.mutez
  $alpha.mutez: $positive_bignum
  $positive_bignum:
    /* Positive big number
       Decimal representation of a positive big number */
    string
  +-----------------+----------------------+----------+
  | Name            | Size                 | Contents |
  +=================+======================+==========+
  | Unnamed field 0 | Determined from data | $N.t     |
  +-----------------+----------------------+----------+


  N.t
  ***

  A variable-length sequence of bytes encoding a Zarith natural number. Each byte has a running unary size bit: the most significant bit of each byte indicates whether this is the last byte in the sequence (0) or whether the sequence continues (1). Size bits ignored, the data is the binary representation of the number in little-endian order.

  +------+----------------------+----------+
  | Name | Size                 | Contents |
  +======+======================+==========+
  | N.t  | Determined from data | bytes    |
  +------+----------------------+----------+

  

POST ../<block_id>/context/contracts/<contract_id>/big_map_get

Access the value associated with a key in a big map of the contract (deprecated).

  { "key":
      { /* Int */
        "int": $bignum }
      || { /* String */
           "string": $unistring }
      || { /* Bytes */
           "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
      || [ $micheline.alpha.michelson_v1.expression ... ]
      /* Sequence */
      || { /* Prim__generic
              Generic primitive (any number of args with or without
              annotations) */
           "prim": $alpha.michelson.v1.primitives,
           "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
           "annots"?: [ string ... ] },
    "type":
      { /* Int */
        "int": $bignum }
      || { /* String */
           "string": $unistring }
      || { /* Bytes */
           "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
      || [ $micheline.alpha.michelson_v1.expression ... ]
      /* Sequence */
      || { /* Prim__generic
              Generic primitive (any number of args with or without
              annotations) */
           "prim": $alpha.michelson.v1.primitives,
           "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
           "annots"?: [ string ... ] } }
  $alpha.michelson.v1.primitives:
    "ABS"
    | "IF"
    | "SENDER"
    | "NEVER"
    | "False"
    | "DUG"
    | "DIG"
    | "chest_key"
    | "BLAKE2B"
    | "list"
    | "bls12_381_g1"
    | "Pair"
    | "INT"
    | "nat"
    | "never"
    | "storage"
    | "SIZE"
    | "view"
    | "SHA256"
    | "AND"
    | "VIEW"
    | "bytes"
    | "NIL"
    | "map"
    | "SUB"
    | "SAPLING_EMPTY_STATE"
    | "CHECK_SIGNATURE"
    | "VOTING_POWER"
    | "operation"
    | "MAP"
    | "option"
    | "bls12_381_fr"
    | "ADD"
    | "IMPLICIT_ACCOUNT"
    | "SHA512"
    | "int"
    | "LSL"
    | "bls12_381_g2"
    | "ticket"
    | "sapling_transaction"
    | "COMPARE"
    | "SWAP"
    | "STEPS_TO_QUOTA"
    | "DROP"
    | "pair"
    | "BALANCE"
    | "CONCAT"
    | "MUL"
    | "FAILWITH"
    | "Elt"
    | "lambda"
    | "OR"
    | "DIP"
    | "MEM"
    | "ITER"
    | "key_hash"
    | "XOR"
    | "Some"
    | "parameter"
    | "address"
    | "EMPTY_MAP"
    | "None"
    | "TRANSFER_TOKENS"
    | "or"
    | "AMOUNT"
    | "signature"
    | "SHA3"
    | "string"
    | "CHAIN_ID"
    | "HASH_KEY"
    | "IF_LEFT"
    | "CREATE_ACCOUNT"
    | "LT"
    | "TOTAL_VOTING_POWER"
    | "UNPACK"
    | "READ_TICKET"
    | "SELF_ADDRESS"
    | "timestamp"
    | "SET_DELEGATE"
    | "LE"
    | "SOURCE"
    | "CREATE_CONTRACT"
    | "Unit"
    | "SAPLING_VERIFY_UPDATE"
    | "NONE"
    | "CONTRACT"
    | "GE"
    | "SOME"
    | "key"
    | "SELF"
    | "set"
    | "CAR"
    | "NOT"
    | "unit"
    | "CDR"
    | "LOOP_LEFT"
    | "PAIRING_CHECK"
    | "RIGHT"
    | "LEFT"
    | "CAST"
    | "True"
    | "Right"
    | "PACK"
    | "IF_CONS"
    | "KECCAK"
    | "chest"
    | "UNIT"
    | "EMPTY_SET"
    | "NEQ"
    | "LAMBDA"
    | "mutez"
    | "TICKET"
    | "LOOP"
    | "Left"
    | "contract"
    | "LSR"
    | "EMPTY_BIG_MAP"
    | "sapling_state"
    | "JOIN_TICKETS"
    | "LEVEL"
    | "UNPAIR"
    | "SPLIT_TICKET"
    | "PUSH"
    | "big_map"
    | "GT"
    | "chain_id"
    | "constant"
    | "NOW"
    | "IF_NONE"
    | "PAIR"
    | "GET_AND_UPDATE"
    | "UPDATE"
    | "ISNAT"
    | "RENAME"
    | "OPEN_CHEST"
    | "EDIV"
    | "EQ"
    | "ADDRESS"
    | "bool"
    | "EXEC"
    | "GET"
    | "NEG"
    | "SLICE"
    | "DUP"
    | "CONS"
    | "APPLY"
    | "SUB_MUTEZ"
    | "code"
  $bignum:
    /* Big number
       Decimal representation of a big number */
    string
  $micheline.alpha.michelson_v1.expression:
    { /* Int */
      "int": $bignum }
    || { /* String */
         "string": $unistring }
    || { /* Bytes */
         "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
    || [ $micheline.alpha.michelson_v1.expression ... ]
    /* Sequence */
    || { /* Prim__generic
            Generic primitive (any number of args with or without
            annotations) */
         "prim": $alpha.michelson.v1.primitives,
         "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
         "annots"?: [ 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 |
  +======+======================+==========+
  | key  | Determined from data | $X_8     |
  +------+----------------------+----------+
  | type | Determined from data | $X_17    |
  +------+----------------------+----------+


  Z.t
  ***

  A variable-length sequence of bytes encoding a Zarith integer. Each byte has a running unary size bit: the most significant bit of each byte indicates whether this is the last byte in the sequence (0) or whether the sequence continues (1). The second most significant bit of the first byte is reserved for the sign (0 for positive, 1 for negative). Size and sign bits ignored, the data is the binary representation of the absolute value of the number in little-endian order.

  +------+----------------------+----------+
  | Name | Size                 | Contents |
  +======+======================+==========+
  | Z.t  | Determined from data | bytes    |
  +------+----------------------+----------+


  alpha.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         | DIG                   |
  +-------------+-----------------------+
  | 113         | DUG                   |
  +-------------+-----------------------+
  | 114         | EMPTY_BIG_MAP         |
  +-------------+-----------------------+
  | 115         | APPLY                 |
  +-------------+-----------------------+
  | 116         | chain_id              |
  +-------------+-----------------------+
  | 117         | CHAIN_ID              |
  +-------------+-----------------------+
  | 118         | LEVEL                 |
  +-------------+-----------------------+
  | 119         | SELF_ADDRESS          |
  +-------------+-----------------------+
  | 120         | never                 |
  +-------------+-----------------------+
  | 121         | NEVER                 |
  +-------------+-----------------------+
  | 122         | UNPAIR                |
  +-------------+-----------------------+
  | 123         | VOTING_POWER          |
  +-------------+-----------------------+
  | 124         | TOTAL_VOTING_POWER    |
  +-------------+-----------------------+
  | 125         | KECCAK                |
  +-------------+-----------------------+
  | 126         | SHA3                  |
  +-------------+-----------------------+
  | 127         | PAIRING_CHECK         |
  +-------------+-----------------------+
  | 128         | bls12_381_g1          |
  +-------------+-----------------------+
  | 129         | bls12_381_g2          |
  +-------------+-----------------------+
  | 130         | bls12_381_fr          |
  +-------------+-----------------------+
  | 131         | sapling_state         |
  +-------------+-----------------------+
  | 132         | sapling_transaction   |
  +-------------+-----------------------+
  | 133         | SAPLING_EMPTY_STATE   |
  +-------------+-----------------------+
  | 134         | SAPLING_VERIFY_UPDATE |
  +-------------+-----------------------+
  | 135         | ticket                |
  +-------------+-----------------------+
  | 136         | TICKET                |
  +-------------+-----------------------+
  | 137         | READ_TICKET           |
  +-------------+-----------------------+
  | 138         | SPLIT_TICKET          |
  +-------------+-----------------------+
  | 139         | JOIN_TICKETS          |
  +-------------+-----------------------+
  | 140         | GET_AND_UPDATE        |
  +-------------+-----------------------+
  | 141         | chest                 |
  +-------------+-----------------------+
  | 142         | chest_key             |
  +-------------+-----------------------+
  | 143         | OPEN_CHEST            |
  +-------------+-----------------------+
  | 144         | VIEW                  |
  +-------------+-----------------------+
  | 145         | view                  |
  +-------------+-----------------------+
  | 146         | constant              |
  +-------------+-----------------------+
  | 147         | SUB_MUTEZ             |
  +-------------+-----------------------+


  X_8 (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 $X_8        |
  +-----------------------+----------+-------------------------+


  Prim__no_args__no_annots (tag 3)
  ================================

  +------+--------+------------------------------------------------------------------------------------+
  | Name | Size   | Contents                                                                           |
  +======+========+====================================================================================+
  | Tag  | 1 byte | unsigned 8-bit integer                                                             |
  +------+--------+------------------------------------------------------------------------------------+
  | prim | 1 byte | unsigned 8-bit integer encoding an enumeration (see alpha.michelson.v1.primitives) |
  +------+--------+------------------------------------------------------------------------------------+


  Prim__no_args__some_annots (tag 4)
  ==================================

  +-----------------------+----------+------------------------------------------------------------------------------------+
  | Name                  | Size     | Contents                                                                           |
  +=======================+==========+====================================================================================+
  | Tag                   | 1 byte   | unsigned 8-bit integer                                                             |
  +-----------------------+----------+------------------------------------------------------------------------------------+
  | prim                  | 1 byte   | unsigned 8-bit integer encoding an enumeration (see alpha.michelson.v1.primitives) |
  +-----------------------+----------+------------------------------------------------------------------------------------+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer                                                            |
  +-----------------------+----------+------------------------------------------------------------------------------------+
  | annots                | Variable | bytes                                                                              |
  +-----------------------+----------+------------------------------------------------------------------------------------+


  Prim__1_arg__no_annots (tag 5)
  ==============================

  +------+----------------------+------------------------------------------------------------------------------------+
  | Name | Size                 | Contents                                                                           |
  +======+======================+====================================================================================+
  | Tag  | 1 byte               | unsigned 8-bit integer                                                             |
  +------+----------------------+------------------------------------------------------------------------------------+
  | prim | 1 byte               | unsigned 8-bit integer encoding an enumeration (see alpha.michelson.v1.primitives) |
  +------+----------------------+------------------------------------------------------------------------------------+
  | arg  | Determined from data | $X_8                                                                               |
  +------+----------------------+------------------------------------------------------------------------------------+


  Prim__1_arg__some_annots (tag 6)
  ================================

  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | Name                  | Size                 | Contents                                                                           |
  +=======================+======================+====================================================================================+
  | Tag                   | 1 byte               | unsigned 8-bit integer                                                             |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | prim                  | 1 byte               | unsigned 8-bit integer encoding an enumeration (see alpha.michelson.v1.primitives) |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | arg                   | Determined from data | $X_8                                                                               |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | # bytes in next field | 4 bytes              | unsigned 30-bit integer                                                            |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | annots                | Variable             | bytes                                                                              |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+


  Prim__2_args__no_annots (tag 7)
  ===============================

  +------+----------------------+------------------------------------------------------------------------------------+
  | Name | Size                 | Contents                                                                           |
  +======+======================+====================================================================================+
  | Tag  | 1 byte               | unsigned 8-bit integer                                                             |
  +------+----------------------+------------------------------------------------------------------------------------+
  | prim | 1 byte               | unsigned 8-bit integer encoding an enumeration (see alpha.michelson.v1.primitives) |
  +------+----------------------+------------------------------------------------------------------------------------+
  | arg1 | Determined from data | $X_8                                                                               |
  +------+----------------------+------------------------------------------------------------------------------------+
  | arg2 | Determined from data | $X_8                                                                               |
  +------+----------------------+------------------------------------------------------------------------------------+


  Prim__2_args__some_annots (tag 8)
  =================================

  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | Name                  | Size                 | Contents                                                                           |
  +=======================+======================+====================================================================================+
  | Tag                   | 1 byte               | unsigned 8-bit integer                                                             |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | prim                  | 1 byte               | unsigned 8-bit integer encoding an enumeration (see alpha.michelson.v1.primitives) |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | arg1                  | Determined from data | $X_8                                                                               |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | arg2                  | Determined from data | $X_8                                                                               |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | # bytes in next field | 4 bytes              | unsigned 30-bit integer                                                            |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | annots                | Variable             | bytes                                                                              |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+


  Prim__generic (tag 9)
  =====================

  +-----------------------+----------+------------------------------------------------------------------------------------+
  | Name                  | Size     | Contents                                                                           |
  +=======================+==========+====================================================================================+
  | Tag                   | 1 byte   | unsigned 8-bit integer                                                             |
  +-----------------------+----------+------------------------------------------------------------------------------------+
  | prim                  | 1 byte   | unsigned 8-bit integer encoding an enumeration (see alpha.michelson.v1.primitives) |
  +-----------------------+----------+------------------------------------------------------------------------------------+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer                                                            |
  +-----------------------+----------+------------------------------------------------------------------------------------+
  | args                  | Variable | sequence of $X_8                                                                   |
  +-----------------------+----------+------------------------------------------------------------------------------------+
  | # 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                   |
  +-----------------------+----------+-------------------------+

  
  /* Some */
  { /* Int */
    "int": $bignum }
  || { /* String */
       "string": $unistring }
  || { /* Bytes */
       "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
  || [ $micheline.alpha.michelson_v1.expression ... ]
  /* Sequence */
  || { /* Prim__generic
          Generic primitive (any number of args with or without annotations) */
       "prim": $alpha.michelson.v1.primitives,
       "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
       "annots"?: [ string ... ] }
  || null
  /* None */
  $alpha.michelson.v1.primitives:
    "ABS"
    | "IF"
    | "SENDER"
    | "NEVER"
    | "False"
    | "DUG"
    | "DIG"
    | "chest_key"
    | "BLAKE2B"
    | "list"
    | "bls12_381_g1"
    | "Pair"
    | "INT"
    | "nat"
    | "never"
    | "storage"
    | "SIZE"
    | "view"
    | "SHA256"
    | "AND"
    | "VIEW"
    | "bytes"
    | "NIL"
    | "map"
    | "SUB"
    | "SAPLING_EMPTY_STATE"
    | "CHECK_SIGNATURE"
    | "VOTING_POWER"
    | "operation"
    | "MAP"
    | "option"
    | "bls12_381_fr"
    | "ADD"
    | "IMPLICIT_ACCOUNT"
    | "SHA512"
    | "int"
    | "LSL"
    | "bls12_381_g2"
    | "ticket"
    | "sapling_transaction"
    | "COMPARE"
    | "SWAP"
    | "STEPS_TO_QUOTA"
    | "DROP"
    | "pair"
    | "BALANCE"
    | "CONCAT"
    | "MUL"
    | "FAILWITH"
    | "Elt"
    | "lambda"
    | "OR"
    | "DIP"
    | "MEM"
    | "ITER"
    | "key_hash"
    | "XOR"
    | "Some"
    | "parameter"
    | "address"
    | "EMPTY_MAP"
    | "None"
    | "TRANSFER_TOKENS"
    | "or"
    | "AMOUNT"
    | "signature"
    | "SHA3"
    | "string"
    | "CHAIN_ID"
    | "HASH_KEY"
    | "IF_LEFT"
    | "CREATE_ACCOUNT"
    | "LT"
    | "TOTAL_VOTING_POWER"
    | "UNPACK"
    | "READ_TICKET"
    | "SELF_ADDRESS"
    | "timestamp"
    | "SET_DELEGATE"
    | "LE"
    | "SOURCE"
    | "CREATE_CONTRACT"
    | "Unit"
    | "SAPLING_VERIFY_UPDATE"
    | "NONE"
    | "CONTRACT"
    | "GE"
    | "SOME"
    | "key"
    | "SELF"
    | "set"
    | "CAR"
    | "NOT"
    | "unit"
    | "CDR"
    | "LOOP_LEFT"
    | "PAIRING_CHECK"
    | "RIGHT"
    | "LEFT"
    | "CAST"
    | "True"
    | "Right"
    | "PACK"
    | "IF_CONS"
    | "KECCAK"
    | "chest"
    | "UNIT"
    | "EMPTY_SET"
    | "NEQ"
    | "LAMBDA"
    | "mutez"
    | "TICKET"
    | "LOOP"
    | "Left"
    | "contract"
    | "LSR"
    | "EMPTY_BIG_MAP"
    | "sapling_state"
    | "JOIN_TICKETS"
    | "LEVEL"
    | "UNPAIR"
    | "SPLIT_TICKET"
    | "PUSH"
    | "big_map"
    | "GT"
    | "chain_id"
    | "constant"
    | "NOW"
    | "IF_NONE"
    | "PAIR"
    | "GET_AND_UPDATE"
    | "UPDATE"
    | "ISNAT"
    | "RENAME"
    | "OPEN_CHEST"
    | "EDIV"
    | "EQ"
    | "ADDRESS"
    | "bool"
    | "EXEC"
    | "GET"
    | "NEG"
    | "SLICE"
    | "DUP"
    | "CONS"
    | "APPLY"
    | "SUB_MUTEZ"
    | "code"
  $bignum:
    /* Big number
       Decimal representation of a big number */
    string
  $micheline.alpha.michelson_v1.expression:
    { /* Int */
      "int": $bignum }
    || { /* String */
         "string": $unistring }
    || { /* Bytes */
         "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
    || [ $micheline.alpha.michelson_v1.expression ... ]
    /* Sequence */
    || { /* Prim__generic
            Generic primitive (any number of args with or without
            annotations) */
         "prim": $alpha.michelson.v1.primitives,
         "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
         "annots"?: [ 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_9     |
  +-----------------+----------------------+----------+


  X_9 (Determined from data, 8-bit tag)
  *************************************

  None (tag 0)
  ============

  +------+--------+------------------------+
  | Name | Size   | Contents               |
  +======+========+========================+
  | Tag  | 1 byte | unsigned 8-bit integer |
  +------+--------+------------------------+


  Some (tag 1)
  ============

  +-----------------+----------------------+------------------------------------------+
  | Name            | Size                 | Contents                                 |
  +=================+======================+==========================================+
  | Tag             | 1 byte               | unsigned 8-bit integer                   |
  +-----------------+----------------------+------------------------------------------+
  | Unnamed field 0 | Determined from data | $micheline.alpha.michelson_v1.expression |
  +-----------------+----------------------+------------------------------------------+


  Z.t
  ***

  A variable-length sequence of bytes encoding a Zarith integer. Each byte has a running unary size bit: the most significant bit of each byte indicates whether this is the last byte in the sequence (0) or whether the sequence continues (1). The second most significant bit of the first byte is reserved for the sign (0 for positive, 1 for negative). Size and sign bits ignored, the data is the binary representation of the absolute value of the number in little-endian order.

  +------+----------------------+----------+
  | Name | Size                 | Contents |
  +======+======================+==========+
  | Z.t  | Determined from data | bytes    |
  +------+----------------------+----------+


  micheline.alpha.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.alpha.michelson_v1.expression |
  +-----------------------+----------+------------------------------------------------------+


  Prim__no_args__no_annots (tag 3)
  ================================

  +------+--------+------------------------------------------------------------------------------------+
  | Name | Size   | Contents                                                                           |
  +======+========+====================================================================================+
  | Tag  | 1 byte | unsigned 8-bit integer                                                             |
  +------+--------+------------------------------------------------------------------------------------+
  | prim | 1 byte | unsigned 8-bit integer encoding an enumeration (see alpha.michelson.v1.primitives) |
  +------+--------+------------------------------------------------------------------------------------+


  Prim__no_args__some_annots (tag 4)
  ==================================

  +-----------------------+----------+------------------------------------------------------------------------------------+
  | Name                  | Size     | Contents                                                                           |
  +=======================+==========+====================================================================================+
  | Tag                   | 1 byte   | unsigned 8-bit integer                                                             |
  +-----------------------+----------+------------------------------------------------------------------------------------+
  | prim                  | 1 byte   | unsigned 8-bit integer encoding an enumeration (see alpha.michelson.v1.primitives) |
  +-----------------------+----------+------------------------------------------------------------------------------------+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer                                                            |
  +-----------------------+----------+------------------------------------------------------------------------------------+
  | annots                | Variable | bytes                                                                              |
  +-----------------------+----------+------------------------------------------------------------------------------------+


  Prim__1_arg__no_annots (tag 5)
  ==============================

  +------+----------------------+------------------------------------------------------------------------------------+
  | Name | Size                 | Contents                                                                           |
  +======+======================+====================================================================================+
  | Tag  | 1 byte               | unsigned 8-bit integer                                                             |
  +------+----------------------+------------------------------------------------------------------------------------+
  | prim | 1 byte               | unsigned 8-bit integer encoding an enumeration (see alpha.michelson.v1.primitives) |
  +------+----------------------+------------------------------------------------------------------------------------+
  | arg  | Determined from data | $micheline.alpha.michelson_v1.expression                                           |
  +------+----------------------+------------------------------------------------------------------------------------+


  Prim__1_arg__some_annots (tag 6)
  ================================

  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | Name                  | Size                 | Contents                                                                           |
  +=======================+======================+====================================================================================+
  | Tag                   | 1 byte               | unsigned 8-bit integer                                                             |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | prim                  | 1 byte               | unsigned 8-bit integer encoding an enumeration (see alpha.michelson.v1.primitives) |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | arg                   | Determined from data | $micheline.alpha.michelson_v1.expression                                           |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | # bytes in next field | 4 bytes              | unsigned 30-bit integer                                                            |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | annots                | Variable             | bytes                                                                              |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+


  Prim__2_args__no_annots (tag 7)
  ===============================

  +------+----------------------+------------------------------------------------------------------------------------+
  | Name | Size                 | Contents                                                                           |
  +======+======================+====================================================================================+
  | Tag  | 1 byte               | unsigned 8-bit integer                                                             |
  +------+----------------------+------------------------------------------------------------------------------------+
  | prim | 1 byte               | unsigned 8-bit integer encoding an enumeration (see alpha.michelson.v1.primitives) |
  +------+----------------------+------------------------------------------------------------------------------------+
  | arg1 | Determined from data | $micheline.alpha.michelson_v1.expression                                           |
  +------+----------------------+------------------------------------------------------------------------------------+
  | arg2 | Determined from data | $micheline.alpha.michelson_v1.expression                                           |
  +------+----------------------+------------------------------------------------------------------------------------+


  Prim__2_args__some_annots (tag 8)
  =================================

  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | Name                  | Size                 | Contents                                                                           |
  +=======================+======================+====================================================================================+
  | Tag                   | 1 byte               | unsigned 8-bit integer                                                             |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | prim                  | 1 byte               | unsigned 8-bit integer encoding an enumeration (see alpha.michelson.v1.primitives) |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | arg1                  | Determined from data | $micheline.alpha.michelson_v1.expression                                           |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | arg2                  | Determined from data | $micheline.alpha.michelson_v1.expression                                           |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | # bytes in next field | 4 bytes              | unsigned 30-bit integer                                                            |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | annots                | Variable             | bytes                                                                              |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+


  Prim__generic (tag 9)
  =====================

  +-----------------------+----------+------------------------------------------------------------------------------------+
  | Name                  | Size     | Contents                                                                           |
  +=======================+==========+====================================================================================+
  | Tag                   | 1 byte   | unsigned 8-bit integer                                                             |
  +-----------------------+----------+------------------------------------------------------------------------------------+
  | prim                  | 1 byte   | unsigned 8-bit integer encoding an enumeration (see alpha.michelson.v1.primitives) |
  +-----------------------+----------+------------------------------------------------------------------------------------+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer                                                            |
  +-----------------------+----------+------------------------------------------------------------------------------------+
  | args                  | Variable | sequence of $micheline.alpha.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                   |
  +-----------------------+----------+-------------------------+


  alpha.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         | DIG                   |
  +-------------+-----------------------+
  | 113         | DUG                   |
  +-------------+-----------------------+
  | 114         | EMPTY_BIG_MAP         |
  +-------------+-----------------------+
  | 115         | APPLY                 |
  +-------------+-----------------------+
  | 116         | chain_id              |
  +-------------+-----------------------+
  | 117         | CHAIN_ID              |
  +-------------+-----------------------+
  | 118         | LEVEL                 |
  +-------------+-----------------------+
  | 119         | SELF_ADDRESS          |
  +-------------+-----------------------+
  | 120         | never                 |
  +-------------+-----------------------+
  | 121         | NEVER                 |
  +-------------+-----------------------+
  | 122         | UNPAIR                |
  +-------------+-----------------------+
  | 123         | VOTING_POWER          |
  +-------------+-----------------------+
  | 124         | TOTAL_VOTING_POWER    |
  +-------------+-----------------------+
  | 125         | KECCAK                |
  +-------------+-----------------------+
  | 126         | SHA3                  |
  +-------------+-----------------------+
  | 127         | PAIRING_CHECK         |
  +-------------+-----------------------+
  | 128         | bls12_381_g1          |
  +-------------+-----------------------+
  | 129         | bls12_381_g2          |
  +-------------+-----------------------+
  | 130         | bls12_381_fr          |
  +-------------+-----------------------+
  | 131         | sapling_state         |
  +-------------+-----------------------+
  | 132         | sapling_transaction   |
  +-------------+-----------------------+
  | 133         | SAPLING_EMPTY_STATE   |
  +-------------+-----------------------+
  | 134         | SAPLING_VERIFY_UPDATE |
  +-------------+-----------------------+
  | 135         | ticket                |
  +-------------+-----------------------+
  | 136         | TICKET                |
  +-------------+-----------------------+
  | 137         | READ_TICKET           |
  +-------------+-----------------------+
  | 138         | SPLIT_TICKET          |
  +-------------+-----------------------+
  | 139         | JOIN_TICKETS          |
  +-------------+-----------------------+
  | 140         | GET_AND_UPDATE        |
  +-------------+-----------------------+
  | 141         | chest                 |
  +-------------+-----------------------+
  | 142         | chest_key             |
  +-------------+-----------------------+
  | 143         | OPEN_CHEST            |
  +-------------+-----------------------+
  | 144         | VIEW                  |
  +-------------+-----------------------+
  | 145         | view                  |
  +-------------+-----------------------+
  | 146         | constant              |
  +-------------+-----------------------+
  | 147         | SUB_MUTEZ             |
  +-------------+-----------------------+

  

GET ../<block_id>/context/contracts/<contract_id>/counter

Access the counter of a contract, if any.

  $bignum
  $bignum:
    /* Big number
       Decimal representation of a big number */
    string
  +-----------------+----------------------+----------+
  | Name            | Size                 | Contents |
  +=================+======================+==========+
  | Unnamed field 0 | Determined from data | $Z.t     |
  +-----------------+----------------------+----------+


  Z.t
  ***

  A variable-length sequence of bytes encoding a Zarith integer. Each byte has a running unary size bit: the most significant bit of each byte indicates whether this is the last byte in the sequence (0) or whether the sequence continues (1). The second most significant bit of the first byte is reserved for the sign (0 for positive, 1 for negative). Size and sign bits ignored, the data is the binary representation of the absolute value of the number in little-endian order.

  +------+----------------------+----------+
  | Name | Size                 | Contents |
  +======+======================+==========+
  | Z.t  | Determined from data | bytes    |
  +------+----------------------+----------+

  

GET ../<block_id>/context/contracts/<contract_id>/delegate

Access the delegate of a contract, if any.

  $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 ../<block_id>/context/contracts/<contract_id>/entrypoints

Return the list of entrypoints of the contract

  { "unreachable"?:
      [ { "path": [ $alpha.michelson.v1.primitives ... ] } ... ],
    "entrypoints":
      { *:
          { /* Int */
            "int": $bignum }
          || { /* String */
               "string": $unistring }
          || { /* Bytes */
               "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
          || [ $micheline.alpha.michelson_v1.expression ... ]
          /* Sequence */
          || { /* Prim__generic
                  Generic primitive (any number of args with or without
                  annotations) */
               "prim": $alpha.michelson.v1.primitives,
               "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
               "annots"?: [ string ... ] } } }
  $alpha.michelson.v1.primitives:
    "ABS"
    | "IF"
    | "SENDER"
    | "NEVER"
    | "False"
    | "DUG"
    | "DIG"
    | "chest_key"
    | "BLAKE2B"
    | "list"
    | "bls12_381_g1"
    | "Pair"
    | "INT"
    | "nat"
    | "never"
    | "storage"
    | "SIZE"
    | "view"
    | "SHA256"
    | "AND"
    | "VIEW"
    | "bytes"
    | "NIL"
    | "map"
    | "SUB"
    | "SAPLING_EMPTY_STATE"
    | "CHECK_SIGNATURE"
    | "VOTING_POWER"
    | "operation"
    | "MAP"
    | "option"
    | "bls12_381_fr"
    | "ADD"
    | "IMPLICIT_ACCOUNT"
    | "SHA512"
    | "int"
    | "LSL"
    | "bls12_381_g2"
    | "ticket"
    | "sapling_transaction"
    | "COMPARE"
    | "SWAP"
    | "STEPS_TO_QUOTA"
    | "DROP"
    | "pair"
    | "BALANCE"
    | "CONCAT"
    | "MUL"
    | "FAILWITH"
    | "Elt"
    | "lambda"
    | "OR"
    | "DIP"
    | "MEM"
    | "ITER"
    | "key_hash"
    | "XOR"
    | "Some"
    | "parameter"
    | "address"
    | "EMPTY_MAP"
    | "None"
    | "TRANSFER_TOKENS"
    | "or"
    | "AMOUNT"
    | "signature"
    | "SHA3"
    | "string"
    | "CHAIN_ID"
    | "HASH_KEY"
    | "IF_LEFT"
    | "CREATE_ACCOUNT"
    | "LT"
    | "TOTAL_VOTING_POWER"
    | "UNPACK"
    | "READ_TICKET"
    | "SELF_ADDRESS"
    | "timestamp"
    | "SET_DELEGATE"
    | "LE"
    | "SOURCE"
    | "CREATE_CONTRACT"
    | "Unit"
    | "SAPLING_VERIFY_UPDATE"
    | "NONE"
    | "CONTRACT"
    | "GE"
    | "SOME"
    | "key"
    | "SELF"
    | "set"
    | "CAR"
    | "NOT"
    | "unit"
    | "CDR"
    | "LOOP_LEFT"
    | "PAIRING_CHECK"
    | "RIGHT"
    | "LEFT"
    | "CAST"
    | "True"
    | "Right"
    | "PACK"
    | "IF_CONS"
    | "KECCAK"
    | "chest"
    | "UNIT"
    | "EMPTY_SET"
    | "NEQ"
    | "LAMBDA"
    | "mutez"
    | "TICKET"
    | "LOOP"
    | "Left"
    | "contract"
    | "LSR"
    | "EMPTY_BIG_MAP"
    | "sapling_state"
    | "JOIN_TICKETS"
    | "LEVEL"
    | "UNPAIR"
    | "SPLIT_TICKET"
    | "PUSH"
    | "big_map"
    | "GT"
    | "chain_id"
    | "constant"
    | "NOW"
    | "IF_NONE"
    | "PAIR"
    | "GET_AND_UPDATE"
    | "UPDATE"
    | "ISNAT"
    | "RENAME"
    | "OPEN_CHEST"
    | "EDIV"
    | "EQ"
    | "ADDRESS"
    | "bool"
    | "EXEC"
    | "GET"
    | "NEG"
    | "SLICE"
    | "DUP"
    | "CONS"
    | "APPLY"
    | "SUB_MUTEZ"
    | "code"
  $bignum:
    /* Big number
       Decimal representation of a big number */
    string
  $micheline.alpha.michelson_v1.expression:
    { /* Int */
      "int": $bignum }
    || { /* String */
         "string": $unistring }
    || { /* Bytes */
         "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
    || [ $micheline.alpha.michelson_v1.expression ... ]
    /* Sequence */
    || { /* Prim__generic
            Generic primitive (any number of args with or without
            annotations) */
         "prim": $alpha.michelson.v1.primitives,
         "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
         "annots"?: [ 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 |
  +-----------------------+----------+-------------------------+
  | unreachable           | Variable | sequence of $X_0        |
  +-----------------------+----------+-------------------------+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer |
  +-----------------------+----------+-------------------------+
  | entrypoints           | Variable | sequence of $X_1        |
  +-----------------------+----------+-------------------------+


  X_1
  ***

  +-----------------+----------------------+------------------------------------------+
  | Name            | Size                 | Contents                                 |
  +=================+======================+==========================================+
  | Unnamed field 0 | Determined from data | $X_2                                     |
  +-----------------+----------------------+------------------------------------------+
  | Unnamed field 1 | Determined from data | $micheline.alpha.michelson_v1.expression |
  +-----------------+----------------------+------------------------------------------+


  Z.t
  ***

  A variable-length sequence of bytes encoding a Zarith integer. Each byte has a running unary size bit: the most significant bit of each byte indicates whether this is the last byte in the sequence (0) or whether the sequence continues (1). The second most significant bit of the first byte is reserved for the sign (0 for positive, 1 for negative). Size and sign bits ignored, the data is the binary representation of the absolute value of the number in little-endian order.

  +------+----------------------+----------+
  | Name | Size                 | Contents |
  +======+======================+==========+
  | Z.t  | Determined from data | bytes    |
  +------+----------------------+----------+


  micheline.alpha.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.alpha.michelson_v1.expression |
  +-----------------------+----------+------------------------------------------------------+


  Prim__no_args__no_annots (tag 3)
  ================================

  +------+--------+------------------------------------------------------------------------------------+
  | Name | Size   | Contents                                                                           |
  +======+========+====================================================================================+
  | Tag  | 1 byte | unsigned 8-bit integer                                                             |
  +------+--------+------------------------------------------------------------------------------------+
  | prim | 1 byte | unsigned 8-bit integer encoding an enumeration (see alpha.michelson.v1.primitives) |
  +------+--------+------------------------------------------------------------------------------------+


  Prim__no_args__some_annots (tag 4)
  ==================================

  +-----------------------+----------+------------------------------------------------------------------------------------+
  | Name                  | Size     | Contents                                                                           |
  +=======================+==========+====================================================================================+
  | Tag                   | 1 byte   | unsigned 8-bit integer                                                             |
  +-----------------------+----------+------------------------------------------------------------------------------------+
  | prim                  | 1 byte   | unsigned 8-bit integer encoding an enumeration (see alpha.michelson.v1.primitives) |
  +-----------------------+----------+------------------------------------------------------------------------------------+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer                                                            |
  +-----------------------+----------+------------------------------------------------------------------------------------+
  | annots                | Variable | bytes                                                                              |
  +-----------------------+----------+------------------------------------------------------------------------------------+


  Prim__1_arg__no_annots (tag 5)
  ==============================

  +------+----------------------+------------------------------------------------------------------------------------+
  | Name | Size                 | Contents                                                                           |
  +======+======================+====================================================================================+
  | Tag  | 1 byte               | unsigned 8-bit integer                                                             |
  +------+----------------------+------------------------------------------------------------------------------------+
  | prim | 1 byte               | unsigned 8-bit integer encoding an enumeration (see alpha.michelson.v1.primitives) |
  +------+----------------------+------------------------------------------------------------------------------------+
  | arg  | Determined from data | $micheline.alpha.michelson_v1.expression                                           |
  +------+----------------------+------------------------------------------------------------------------------------+


  Prim__1_arg__some_annots (tag 6)
  ================================

  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | Name                  | Size                 | Contents                                                                           |
  +=======================+======================+====================================================================================+
  | Tag                   | 1 byte               | unsigned 8-bit integer                                                             |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | prim                  | 1 byte               | unsigned 8-bit integer encoding an enumeration (see alpha.michelson.v1.primitives) |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | arg                   | Determined from data | $micheline.alpha.michelson_v1.expression                                           |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | # bytes in next field | 4 bytes              | unsigned 30-bit integer                                                            |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | annots                | Variable             | bytes                                                                              |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+


  Prim__2_args__no_annots (tag 7)
  ===============================

  +------+----------------------+------------------------------------------------------------------------------------+
  | Name | Size                 | Contents                                                                           |
  +======+======================+====================================================================================+
  | Tag  | 1 byte               | unsigned 8-bit integer                                                             |
  +------+----------------------+------------------------------------------------------------------------------------+
  | prim | 1 byte               | unsigned 8-bit integer encoding an enumeration (see alpha.michelson.v1.primitives) |
  +------+----------------------+------------------------------------------------------------------------------------+
  | arg1 | Determined from data | $micheline.alpha.michelson_v1.expression                                           |
  +------+----------------------+------------------------------------------------------------------------------------+
  | arg2 | Determined from data | $micheline.alpha.michelson_v1.expression                                           |
  +------+----------------------+------------------------------------------------------------------------------------+


  Prim__2_args__some_annots (tag 8)
  =================================

  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | Name                  | Size                 | Contents                                                                           |
  +=======================+======================+====================================================================================+
  | Tag                   | 1 byte               | unsigned 8-bit integer                                                             |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | prim                  | 1 byte               | unsigned 8-bit integer encoding an enumeration (see alpha.michelson.v1.primitives) |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | arg1                  | Determined from data | $micheline.alpha.michelson_v1.expression                                           |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | arg2                  | Determined from data | $micheline.alpha.michelson_v1.expression                                           |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | # bytes in next field | 4 bytes              | unsigned 30-bit integer                                                            |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | annots                | Variable             | bytes                                                                              |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+


  Prim__generic (tag 9)
  =====================

  +-----------------------+----------+------------------------------------------------------------------------------------+
  | Name                  | Size     | Contents                                                                           |
  +=======================+==========+====================================================================================+
  | Tag                   | 1 byte   | unsigned 8-bit integer                                                             |
  +-----------------------+----------+------------------------------------------------------------------------------------+
  | prim                  | 1 byte   | unsigned 8-bit integer encoding an enumeration (see alpha.michelson.v1.primitives) |
  +-----------------------+----------+------------------------------------------------------------------------------------+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer                                                            |
  +-----------------------+----------+------------------------------------------------------------------------------------+
  | args                  | Variable | sequence of $micheline.alpha.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                   |
  +-----------------------+----------+-------------------------+


  alpha.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         | DIG                   |
  +-------------+-----------------------+
  | 113         | DUG                   |
  +-------------+-----------------------+
  | 114         | EMPTY_BIG_MAP         |
  +-------------+-----------------------+
  | 115         | APPLY                 |
  +-------------+-----------------------+
  | 116         | chain_id              |
  +-------------+-----------------------+
  | 117         | CHAIN_ID              |
  +-------------+-----------------------+
  | 118         | LEVEL                 |
  +-------------+-----------------------+
  | 119         | SELF_ADDRESS          |
  +-------------+-----------------------+
  | 120         | never                 |
  +-------------+-----------------------+
  | 121         | NEVER                 |
  +-------------+-----------------------+
  | 122         | UNPAIR                |
  +-------------+-----------------------+
  | 123         | VOTING_POWER          |
  +-------------+-----------------------+
  | 124         | TOTAL_VOTING_POWER    |
  +-------------+-----------------------+
  | 125         | KECCAK                |
  +-------------+-----------------------+
  | 126         | SHA3                  |
  +-------------+-----------------------+
  | 127         | PAIRING_CHECK         |
  +-------------+-----------------------+
  | 128         | bls12_381_g1          |
  +-------------+-----------------------+
  | 129         | bls12_381_g2          |
  +-------------+-----------------------+
  | 130         | bls12_381_fr          |
  +-------------+-----------------------+
  | 131         | sapling_state         |
  +-------------+-----------------------+
  | 132         | sapling_transaction   |
  +-------------+-----------------------+
  | 133         | SAPLING_EMPTY_STATE   |
  +-------------+-----------------------+
  | 134         | SAPLING_VERIFY_UPDATE |
  +-------------+-----------------------+
  | 135         | ticket                |
  +-------------+-----------------------+
  | 136         | TICKET                |
  +-------------+-----------------------+
  | 137         | READ_TICKET           |
  +-------------+-----------------------+
  | 138         | SPLIT_TICKET          |
  +-------------+-----------------------+
  | 139         | JOIN_TICKETS          |
  +-------------+-----------------------+
  | 140         | GET_AND_UPDATE        |
  +-------------+-----------------------+
  | 141         | chest                 |
  +-------------+-----------------------+
  | 142         | chest_key             |
  +-------------+-----------------------+
  | 143         | OPEN_CHEST            |
  +-------------+-----------------------+
  | 144         | VIEW                  |
  +-------------+-----------------------+
  | 145         | view                  |
  +-------------+-----------------------+
  | 146         | constant              |
  +-------------+-----------------------+
  | 147         | SUB_MUTEZ             |
  +-------------+-----------------------+


  X_2
  ***

  +-----------------------+----------+-------------------------+
  | 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                                                                        |
  +-----------------------+----------+------------------------------------------------------------------------------------------------+
  | Unnamed field 0       | Variable | sequence of unsigned 8-bit integer encoding an enumeration (see alpha.michelson.v1.primitives) |
  +-----------------------+----------+------------------------------------------------------------------------------------------------+

  

GET ../<block_id>/context/contracts/<contract_id>/entrypoints/<entrypoint>

Return the type of the given entrypoint of the contract

  { /* Int */
    "int": $bignum }
  || { /* String */
       "string": $unistring }
  || { /* Bytes */
       "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
  || [ $micheline.alpha.michelson_v1.expression ... ]
  /* Sequence */
  || { /* Prim__generic
          Generic primitive (any number of args with or without annotations) */
       "prim": $alpha.michelson.v1.primitives,
       "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
       "annots"?: [ string ... ] }
  $alpha.michelson.v1.primitives:
    "ABS"
    | "IF"
    | "SENDER"
    | "NEVER"
    | "False"
    | "DUG"
    | "DIG"
    | "chest_key"
    | "BLAKE2B"
    | "list"
    | "bls12_381_g1"
    | "Pair"
    | "INT"
    | "nat"
    | "never"
    | "storage"
    | "SIZE"
    | "view"
    | "SHA256"
    | "AND"
    | "VIEW"
    | "bytes"
    | "NIL"
    | "map"
    | "SUB"
    | "SAPLING_EMPTY_STATE"
    | "CHECK_SIGNATURE"
    | "VOTING_POWER"
    | "operation"
    | "MAP"
    | "option"
    | "bls12_381_fr"
    | "ADD"
    | "IMPLICIT_ACCOUNT"
    | "SHA512"
    | "int"
    | "LSL"
    | "bls12_381_g2"
    | "ticket"
    | "sapling_transaction"
    | "COMPARE"
    | "SWAP"
    | "STEPS_TO_QUOTA"
    | "DROP"
    | "pair"
    | "BALANCE"
    | "CONCAT"
    | "MUL"
    | "FAILWITH"
    | "Elt"
    | "lambda"
    | "OR"
    | "DIP"
    | "MEM"
    | "ITER"
    | "key_hash"
    | "XOR"
    | "Some"
    | "parameter"
    | "address"
    | "EMPTY_MAP"
    | "None"
    | "TRANSFER_TOKENS"
    | "or"
    | "AMOUNT"
    | "signature"
    | "SHA3"
    | "string"
    | "CHAIN_ID"
    | "HASH_KEY"
    | "IF_LEFT"
    | "CREATE_ACCOUNT"
    | "LT"
    | "TOTAL_VOTING_POWER"
    | "UNPACK"
    | "READ_TICKET"
    | "SELF_ADDRESS"
    | "timestamp"
    | "SET_DELEGATE"
    | "LE"
    | "SOURCE"
    | "CREATE_CONTRACT"
    | "Unit"
    | "SAPLING_VERIFY_UPDATE"
    | "NONE"
    | "CONTRACT"
    | "GE"
    | "SOME"
    | "key"
    | "SELF"
    | "set"
    | "CAR"
    | "NOT"
    | "unit"
    | "CDR"
    | "LOOP_LEFT"
    | "PAIRING_CHECK"
    | "RIGHT"
    | "LEFT"
    | "CAST"
    | "True"
    | "Right"
    | "PACK"
    | "IF_CONS"
    | "KECCAK"
    | "chest"
    | "UNIT"
    | "EMPTY_SET"
    | "NEQ"
    | "LAMBDA"
    | "mutez"
    | "TICKET"
    | "LOOP"
    | "Left"
    | "contract"
    | "LSR"
    | "EMPTY_BIG_MAP"
    | "sapling_state"
    | "JOIN_TICKETS"
    | "LEVEL"
    | "UNPAIR"
    | "SPLIT_TICKET"
    | "PUSH"
    | "big_map"
    | "GT"
    | "chain_id"
    | "constant"
    | "NOW"
    | "IF_NONE"
    | "PAIR"
    | "GET_AND_UPDATE"
    | "UPDATE"
    | "ISNAT"
    | "RENAME"
    | "OPEN_CHEST"
    | "EDIV"
    | "EQ"
    | "ADDRESS"
    | "bool"
    | "EXEC"
    | "GET"
    | "NEG"
    | "SLICE"
    | "DUP"
    | "CONS"
    | "APPLY"
    | "SUB_MUTEZ"
    | "code"
  $bignum:
    /* Big number
       Decimal representation of a big number */
    string
  $micheline.alpha.michelson_v1.expression:
    { /* Int */
      "int": $bignum }
    || { /* String */
         "string": $unistring }
    || { /* Bytes */
         "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
    || [ $micheline.alpha.michelson_v1.expression ... ]
    /* Sequence */
    || { /* Prim__generic
            Generic primitive (any number of args with or without
            annotations) */
         "prim": $alpha.michelson.v1.primitives,
         "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
         "annots"?: [ 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_8     |
  +-----------------+----------------------+----------+


  Z.t
  ***

  A variable-length sequence of bytes encoding a Zarith integer. Each byte has a running unary size bit: the most significant bit of each byte indicates whether this is the last byte in the sequence (0) or whether the sequence continues (1). The second most significant bit of the first byte is reserved for the sign (0 for positive, 1 for negative). Size and sign bits ignored, the data is the binary representation of the absolute value of the number in little-endian order.

  +------+----------------------+----------+
  | Name | Size                 | Contents |
  +======+======================+==========+
  | Z.t  | Determined from data | bytes    |
  +------+----------------------+----------+


  micheline.alpha.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.alpha.michelson_v1.expression |
  +-----------------------+----------+------------------------------------------------------+


  Prim__no_args__no_annots (tag 3)
  ================================

  +------+--------+------------------------------------------------------------------------------------+
  | Name | Size   | Contents                                                                           |
  +======+========+====================================================================================+
  | Tag  | 1 byte | unsigned 8-bit integer                                                             |
  +------+--------+------------------------------------------------------------------------------------+
  | prim | 1 byte | unsigned 8-bit integer encoding an enumeration (see alpha.michelson.v1.primitives) |
  +------+--------+------------------------------------------------------------------------------------+


  Prim__no_args__some_annots (tag 4)
  ==================================

  +-----------------------+----------+------------------------------------------------------------------------------------+
  | Name                  | Size     | Contents                                                                           |
  +=======================+==========+====================================================================================+
  | Tag                   | 1 byte   | unsigned 8-bit integer                                                             |
  +-----------------------+----------+------------------------------------------------------------------------------------+
  | prim                  | 1 byte   | unsigned 8-bit integer encoding an enumeration (see alpha.michelson.v1.primitives) |
  +-----------------------+----------+------------------------------------------------------------------------------------+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer                                                            |
  +-----------------------+----------+------------------------------------------------------------------------------------+
  | annots                | Variable | bytes                                                                              |
  +-----------------------+----------+------------------------------------------------------------------------------------+


  Prim__1_arg__no_annots (tag 5)
  ==============================

  +------+----------------------+------------------------------------------------------------------------------------+
  | Name | Size                 | Contents                                                                           |
  +======+======================+====================================================================================+
  | Tag  | 1 byte               | unsigned 8-bit integer                                                             |
  +------+----------------------+------------------------------------------------------------------------------------+
  | prim | 1 byte               | unsigned 8-bit integer encoding an enumeration (see alpha.michelson.v1.primitives) |
  +------+----------------------+------------------------------------------------------------------------------------+
  | arg  | Determined from data | $micheline.alpha.michelson_v1.expression                                           |
  +------+----------------------+------------------------------------------------------------------------------------+


  Prim__1_arg__some_annots (tag 6)
  ================================

  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | Name                  | Size                 | Contents                                                                           |
  +=======================+======================+====================================================================================+
  | Tag                   | 1 byte               | unsigned 8-bit integer                                                             |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | prim                  | 1 byte               | unsigned 8-bit integer encoding an enumeration (see alpha.michelson.v1.primitives) |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | arg                   | Determined from data | $micheline.alpha.michelson_v1.expression                                           |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | # bytes in next field | 4 bytes              | unsigned 30-bit integer                                                            |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | annots                | Variable             | bytes                                                                              |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+


  Prim__2_args__no_annots (tag 7)
  ===============================

  +------+----------------------+------------------------------------------------------------------------------------+
  | Name | Size                 | Contents                                                                           |
  +======+======================+====================================================================================+
  | Tag  | 1 byte               | unsigned 8-bit integer                                                             |
  +------+----------------------+------------------------------------------------------------------------------------+
  | prim | 1 byte               | unsigned 8-bit integer encoding an enumeration (see alpha.michelson.v1.primitives) |
  +------+----------------------+------------------------------------------------------------------------------------+
  | arg1 | Determined from data | $micheline.alpha.michelson_v1.expression                                           |
  +------+----------------------+------------------------------------------------------------------------------------+
  | arg2 | Determined from data | $micheline.alpha.michelson_v1.expression                                           |
  +------+----------------------+------------------------------------------------------------------------------------+


  Prim__2_args__some_annots (tag 8)
  =================================

  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | Name                  | Size                 | Contents                                                                           |
  +=======================+======================+====================================================================================+
  | Tag                   | 1 byte               | unsigned 8-bit integer                                                             |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | prim                  | 1 byte               | unsigned 8-bit integer encoding an enumeration (see alpha.michelson.v1.primitives) |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | arg1                  | Determined from data | $micheline.alpha.michelson_v1.expression                                           |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | arg2                  | Determined from data | $micheline.alpha.michelson_v1.expression                                           |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | # bytes in next field | 4 bytes              | unsigned 30-bit integer                                                            |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | annots                | Variable             | bytes                                                                              |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+


  Prim__generic (tag 9)
  =====================

  +-----------------------+----------+------------------------------------------------------------------------------------+
  | Name                  | Size     | Contents                                                                           |
  +=======================+==========+====================================================================================+
  | Tag                   | 1 byte   | unsigned 8-bit integer                                                             |
  +-----------------------+----------+------------------------------------------------------------------------------------+
  | prim                  | 1 byte   | unsigned 8-bit integer encoding an enumeration (see alpha.michelson.v1.primitives) |
  +-----------------------+----------+------------------------------------------------------------------------------------+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer                                                            |
  +-----------------------+----------+------------------------------------------------------------------------------------+
  | args                  | Variable | sequence of $micheline.alpha.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                   |
  +-----------------------+----------+-------------------------+


  alpha.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         | DIG                   |
  +-------------+-----------------------+
  | 113         | DUG                   |
  +-------------+-----------------------+
  | 114         | EMPTY_BIG_MAP         |
  +-------------+-----------------------+
  | 115         | APPLY                 |
  +-------------+-----------------------+
  | 116         | chain_id              |
  +-------------+-----------------------+
  | 117         | CHAIN_ID              |
  +-------------+-----------------------+
  | 118         | LEVEL                 |
  +-------------+-----------------------+
  | 119         | SELF_ADDRESS          |
  +-------------+-----------------------+
  | 120         | never                 |
  +-------------+-----------------------+
  | 121         | NEVER                 |
  +-------------+-----------------------+
  | 122         | UNPAIR                |
  +-------------+-----------------------+
  | 123         | VOTING_POWER          |
  +-------------+-----------------------+
  | 124         | TOTAL_VOTING_POWER    |
  +-------------+-----------------------+
  | 125         | KECCAK                |
  +-------------+-----------------------+
  | 126         | SHA3                  |
  +-------------+-----------------------+
  | 127         | PAIRING_CHECK         |
  +-------------+-----------------------+
  | 128         | bls12_381_g1          |
  +-------------+-----------------------+
  | 129         | bls12_381_g2          |
  +-------------+-----------------------+
  | 130         | bls12_381_fr          |
  +-------------+-----------------------+
  | 131         | sapling_state         |
  +-------------+-----------------------+
  | 132         | sapling_transaction   |
  +-------------+-----------------------+
  | 133         | SAPLING_EMPTY_STATE   |
  +-------------+-----------------------+
  | 134         | SAPLING_VERIFY_UPDATE |
  +-------------+-----------------------+
  | 135         | ticket                |
  +-------------+-----------------------+
  | 136         | TICKET                |
  +-------------+-----------------------+
  | 137         | READ_TICKET           |
  +-------------+-----------------------+
  | 138         | SPLIT_TICKET          |
  +-------------+-----------------------+
  | 139         | JOIN_TICKETS          |
  +-------------+-----------------------+
  | 140         | GET_AND_UPDATE        |
  +-------------+-----------------------+
  | 141         | chest                 |
  +-------------+-----------------------+
  | 142         | chest_key             |
  +-------------+-----------------------+
  | 143         | OPEN_CHEST            |
  +-------------+-----------------------+
  | 144         | VIEW                  |
  +-------------+-----------------------+
  | 145         | view                  |
  +-------------+-----------------------+
  | 146         | constant              |
  +-------------+-----------------------+
  | 147         | SUB_MUTEZ             |
  +-------------+-----------------------+

  

GET ../<block_id>/context/contracts/<contract_id>/manager_key

Access the manager of a contract.

  $Signature.Public_key /* Some */ || null /* None */
  $Signature.Public_key:
    /* A Ed25519, Secp256k1, or P256 public key (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     |
  +-----------------+----------------------+----------+


  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                  |
  +-----------------+----------+------------------------+


  X_0 (Determined from data, 8-bit tag)
  *************************************

  None (tag 0)
  ============

  +------+--------+------------------------+
  | Name | Size   | Contents               |
  +======+========+========================+
  | Tag  | 1 byte | unsigned 8-bit integer |
  +------+--------+------------------------+


  Some (tag 1)
  ============

  +----------------------+----------------------+------------------------+
  | Name                 | Size                 | Contents               |
  +======================+======================+========================+
  | Tag                  | 1 byte               | unsigned 8-bit integer |
  +----------------------+----------------------+------------------------+
  | Signature.Public_key | Determined from data | $public_key            |
  +----------------------+----------------------+------------------------+

  

GET ../<block_id>/context/contracts/<contract_id>/script

Access the code and data of the contract.

  $alpha.scripted.contracts
  $alpha.michelson.v1.primitives:
    "ABS"
    | "IF"
    | "SENDER"
    | "NEVER"
    | "False"
    | "DUG"
    | "DIG"
    | "chest_key"
    | "BLAKE2B"
    | "list"
    | "bls12_381_g1"
    | "Pair"
    | "INT"
    | "nat"
    | "never"
    | "storage"
    | "SIZE"
    | "view"
    | "SHA256"
    | "AND"
    | "VIEW"
    | "bytes"
    | "NIL"
    | "map"
    | "SUB"
    | "SAPLING_EMPTY_STATE"
    | "CHECK_SIGNATURE"
    | "VOTING_POWER"
    | "operation"
    | "MAP"
    | "option"
    | "bls12_381_fr"
    | "ADD"
    | "IMPLICIT_ACCOUNT"
    | "SHA512"
    | "int"
    | "LSL"
    | "bls12_381_g2"
    | "ticket"
    | "sapling_transaction"
    | "COMPARE"
    | "SWAP"
    | "STEPS_TO_QUOTA"
    | "DROP"
    | "pair"
    | "BALANCE"
    | "CONCAT"
    | "MUL"
    | "FAILWITH"
    | "Elt"
    | "lambda"
    | "OR"
    | "DIP"
    | "MEM"
    | "ITER"
    | "key_hash"
    | "XOR"
    | "Some"
    | "parameter"
    | "address"
    | "EMPTY_MAP"
    | "None"
    | "TRANSFER_TOKENS"
    | "or"
    | "AMOUNT"
    | "signature"
    | "SHA3"
    | "string"
    | "CHAIN_ID"
    | "HASH_KEY"
    | "IF_LEFT"
    | "CREATE_ACCOUNT"
    | "LT"
    | "TOTAL_VOTING_POWER"
    | "UNPACK"
    | "READ_TICKET"
    | "SELF_ADDRESS"
    | "timestamp"
    | "SET_DELEGATE"
    | "LE"
    | "SOURCE"
    | "CREATE_CONTRACT"
    | "Unit"
    | "SAPLING_VERIFY_UPDATE"
    | "NONE"
    | "CONTRACT"
    | "GE"
    | "SOME"
    | "key"
    | "SELF"
    | "set"
    | "CAR"
    | "NOT"
    | "unit"
    | "CDR"
    | "LOOP_LEFT"
    | "PAIRING_CHECK"
    | "RIGHT"
    | "LEFT"
    | "CAST"
    | "True"
    | "Right"
    | "PACK"
    | "IF_CONS"
    | "KECCAK"
    | "chest"
    | "UNIT"
    | "EMPTY_SET"
    | "NEQ"
    | "LAMBDA"
    | "mutez"
    | "TICKET"
    | "LOOP"
    | "Left"
    | "contract"
    | "LSR"
    | "EMPTY_BIG_MAP"
    | "sapling_state"
    | "JOIN_TICKETS"
    | "LEVEL"
    | "UNPAIR"
    | "SPLIT_TICKET"
    | "PUSH"
    | "big_map"
    | "GT"
    | "chain_id"
    | "constant"
    | "NOW"
    | "IF_NONE"
    | "PAIR"
    | "GET_AND_UPDATE"
    | "UPDATE"
    | "ISNAT"
    | "RENAME"
    | "OPEN_CHEST"
    | "EDIV"
    | "EQ"
    | "ADDRESS"
    | "bool"
    | "EXEC"
    | "GET"
    | "NEG"
    | "SLICE"
    | "DUP"
    | "CONS"
    | "APPLY"
    | "SUB_MUTEZ"
    | "code"
  $alpha.scripted.contracts:
    { "code":
        { /* Int */
          "int": $bignum }
        || { /* String */
             "string": $unistring }
        || { /* Bytes */
             "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
        || [ $micheline.alpha.michelson_v1.expression ... ]
        /* Sequence */
        || { /* Prim__generic
                Generic primitive (any number of args with or without
                annotations) */
             "prim": $alpha.michelson.v1.primitives,
             "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
             "annots"?: [ string ... ] },
      "storage":
        { /* Int */
          "int": $bignum }
        || { /* String */
             "string": $unistring }
        || { /* Bytes */
             "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
        || [ $micheline.alpha.michelson_v1.expression ... ]
        /* Sequence */
        || { /* Prim__generic
                Generic primitive (any number of args with or without
                annotations) */
             "prim": $alpha.michelson.v1.primitives,
             "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
             "annots"?: [ string ... ] } }
  $bignum:
    /* Big number
       Decimal representation of a big number */
    string
  $micheline.alpha.michelson_v1.expression:
    { /* Int */
      "int": $bignum }
    || { /* String */
         "string": $unistring }
    || { /* Bytes */
         "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
    || [ $micheline.alpha.michelson_v1.expression ... ]
    /* Sequence */
    || { /* Prim__generic
            Generic primitive (any number of args with or without
            annotations) */
         "prim": $alpha.michelson.v1.primitives,
         "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
         "annots"?: [ 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 |
  +-----------------------+----------+-------------------------+
  | code                  | Variable | bytes                   |
  +-----------------------+----------+-------------------------+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer |
  +-----------------------+----------+-------------------------+
  | storage               | Variable | bytes                   |
  +-----------------------+----------+-------------------------+


  

GET ../<block_id>/context/contracts/<contract_id>/single_sapling_get_diff?[offset_commitment=<uint63>]&[offset_nullifier=<uint63>]

Returns the root and a diff of a state starting from an optional offset which is zero by default.

Optional query arguments :

  • offset_commitment = <uint63> : Commitments and ciphertexts are returned from the specified offset up to the most recent.
  • offset_nullifier = <uint63> : Nullifiers are returned from the specified offset up to the most recent.

  { "root": $sapling.transaction.commitment_hash,
    "commitments_and_ciphertexts":
      [ [ $sapling.transaction.commitment, $sapling.transaction.ciphertext ] ... ],
    "nullifiers": [ $sapling.transaction.nullifier ... ] }
  $sapling.DH.epk: /^([a-zA-Z0-9][a-zA-Z0-9])*$/
  $sapling.transaction.ciphertext:
    { "cv": $sapling.transaction.commitment_value,
      "epk": $sapling.DH.epk,
      "payload_enc": /^([a-zA-Z0-9][a-zA-Z0-9])*$/,
      "nonce_enc": /^([a-zA-Z0-9][a-zA-Z0-9])*$/,
      "payload_out": /^([a-zA-Z0-9][a-zA-Z0-9])*$/,
      "nonce_out": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
  $sapling.transaction.commitment: /^([a-zA-Z0-9][a-zA-Z0-9])*$/
  $sapling.transaction.commitment_hash: /^([a-zA-Z0-9][a-zA-Z0-9])*$/
  $sapling.transaction.commitment_value: /^([a-zA-Z0-9][a-zA-Z0-9])*$/
  $sapling.transaction.nullifier: /^([a-zA-Z0-9][a-zA-Z0-9])*$/
  +-----------------------------+----------+-------------------------+
  | Name                        | Size     | Contents                |
  +=============================+==========+=========================+
  | root                        | 32 bytes | bytes                   |
  +-----------------------------+----------+-------------------------+
  | # bytes in next field       | 4 bytes  | unsigned 30-bit integer |
  +-----------------------------+----------+-------------------------+
  | commitments_and_ciphertexts | Variable | sequence of $X_0        |
  +-----------------------------+----------+-------------------------+
  | # bytes in next field       | 4 bytes  | unsigned 30-bit integer |
  +-----------------------------+----------+-------------------------+
  | nullifiers                  | Variable | sequence of bytes       |
  +-----------------------------+----------+-------------------------+


  sapling.transaction.ciphertext
  ******************************

  +-----------------------+----------+-------------------------+
  | Name                  | Size     | Contents                |
  +=======================+==========+=========================+
  | cv                    | 32 bytes | bytes                   |
  +-----------------------+----------+-------------------------+
  | epk                   | 32 bytes | bytes                   |
  +-----------------------+----------+-------------------------+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer |
  +-----------------------+----------+-------------------------+
  | payload_enc           | Variable | bytes                   |
  +-----------------------+----------+-------------------------+
  | nonce_enc             | 24 bytes | bytes                   |
  +-----------------------+----------+-------------------------+
  | payload_out           | 80 bytes | bytes                   |
  +-----------------------+----------+-------------------------+
  | nonce_out             | 24 bytes | bytes                   |
  +-----------------------+----------+-------------------------+


  X_0
  ***

  +-----------------+----------------------+---------------------------------+
  | Name            | Size                 | Contents                        |
  +=================+======================+=================================+
  | Unnamed field 0 | 32 bytes             | bytes                           |
  +-----------------+----------------------+---------------------------------+
  | Unnamed field 1 | Determined from data | $sapling.transaction.ciphertext |
  +-----------------+----------------------+---------------------------------+

  

GET ../<block_id>/context/contracts/<contract_id>/storage

Access the data of the contract.

  { /* Int */
    "int": $bignum }
  || { /* String */
       "string": $unistring }
  || { /* Bytes */
       "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
  || [ $micheline.alpha.michelson_v1.expression ... ]
  /* Sequence */
  || { /* Prim__generic
          Generic primitive (any number of args with or without annotations) */
       "prim": $alpha.michelson.v1.primitives,
       "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
       "annots"?: [ string ... ] }
  $alpha.michelson.v1.primitives:
    "ABS"
    | "IF"
    | "SENDER"
    | "NEVER"
    | "False"
    | "DUG"
    | "DIG"
    | "chest_key"
    | "BLAKE2B"
    | "list"
    | "bls12_381_g1"
    | "Pair"
    | "INT"
    | "nat"
    | "never"
    | "storage"
    | "SIZE"
    | "view"
    | "SHA256"
    | "AND"
    | "VIEW"
    | "bytes"
    | "NIL"
    | "map"
    | "SUB"
    | "SAPLING_EMPTY_STATE"
    | "CHECK_SIGNATURE"
    | "VOTING_POWER"
    | "operation"
    | "MAP"
    | "option"
    | "bls12_381_fr"
    | "ADD"
    | "IMPLICIT_ACCOUNT"
    | "SHA512"
    | "int"
    | "LSL"
    | "bls12_381_g2"
    | "ticket"
    | "sapling_transaction"
    | "COMPARE"
    | "SWAP"
    | "STEPS_TO_QUOTA"
    | "DROP"
    | "pair"
    | "BALANCE"
    | "CONCAT"
    | "MUL"
    | "FAILWITH"
    | "Elt"
    | "lambda"
    | "OR"
    | "DIP"
    | "MEM"
    | "ITER"
    | "key_hash"
    | "XOR"
    | "Some"
    | "parameter"
    | "address"
    | "EMPTY_MAP"
    | "None"
    | "TRANSFER_TOKENS"
    | "or"
    | "AMOUNT"
    | "signature"
    | "SHA3"
    | "string"
    | "CHAIN_ID"
    | "HASH_KEY"
    | "IF_LEFT"
    | "CREATE_ACCOUNT"
    | "LT"
    | "TOTAL_VOTING_POWER"
    | "UNPACK"
    | "READ_TICKET"
    | "SELF_ADDRESS"
    | "timestamp"
    | "SET_DELEGATE"
    | "LE"
    | "SOURCE"
    | "CREATE_CONTRACT"
    | "Unit"
    | "SAPLING_VERIFY_UPDATE"
    | "NONE"
    | "CONTRACT"
    | "GE"
    | "SOME"
    | "key"
    | "SELF"
    | "set"
    | "CAR"
    | "NOT"
    | "unit"
    | "CDR"
    | "LOOP_LEFT"
    | "PAIRING_CHECK"
    | "RIGHT"
    | "LEFT"
    | "CAST"
    | "True"
    | "Right"
    | "PACK"
    | "IF_CONS"
    | "KECCAK"
    | "chest"
    | "UNIT"
    | "EMPTY_SET"
    | "NEQ"
    | "LAMBDA"
    | "mutez"
    | "TICKET"
    | "LOOP"
    | "Left"
    | "contract"
    | "LSR"
    | "EMPTY_BIG_MAP"
    | "sapling_state"
    | "JOIN_TICKETS"
    | "LEVEL"
    | "UNPAIR"
    | "SPLIT_TICKET"
    | "PUSH"
    | "big_map"
    | "GT"
    | "chain_id"
    | "constant"
    | "NOW"
    | "IF_NONE"
    | "PAIR"
    | "GET_AND_UPDATE"
    | "UPDATE"
    | "ISNAT"
    | "RENAME"
    | "OPEN_CHEST"
    | "EDIV"
    | "EQ"
    | "ADDRESS"
    | "bool"
    | "EXEC"
    | "GET"
    | "NEG"
    | "SLICE"
    | "DUP"
    | "CONS"
    | "APPLY"
    | "SUB_MUTEZ"
    | "code"
  $bignum:
    /* Big number
       Decimal representation of a big number */
    string
  $micheline.alpha.michelson_v1.expression:
    { /* Int */
      "int": $bignum }
    || { /* String */
         "string": $unistring }
    || { /* Bytes */
         "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
    || [ $micheline.alpha.michelson_v1.expression ... ]
    /* Sequence */
    || { /* Prim__generic
            Generic primitive (any number of args with or without
            annotations) */
         "prim": $alpha.michelson.v1.primitives,
         "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
         "annots"?: [ 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_8     |
  +-----------------+----------------------+----------+


  Z.t
  ***

  A variable-length sequence of bytes encoding a Zarith integer. Each byte has a running unary size bit: the most significant bit of each byte indicates whether this is the last byte in the sequence (0) or whether the sequence continues (1). The second most significant bit of the first byte is reserved for the sign (0 for positive, 1 for negative). Size and sign bits ignored, the data is the binary representation of the absolute value of the number in little-endian order.

  +------+----------------------+----------+
  | Name | Size                 | Contents |
  +======+======================+==========+
  | Z.t  | Determined from data | bytes    |
  +------+----------------------+----------+


  micheline.alpha.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.alpha.michelson_v1.expression |
  +-----------------------+----------+------------------------------------------------------+


  Prim__no_args__no_annots (tag 3)
  ================================

  +------+--------+------------------------------------------------------------------------------------+
  | Name | Size   | Contents                                                                           |
  +======+========+====================================================================================+
  | Tag  | 1 byte | unsigned 8-bit integer                                                             |
  +------+--------+------------------------------------------------------------------------------------+
  | prim | 1 byte | unsigned 8-bit integer encoding an enumeration (see alpha.michelson.v1.primitives) |
  +------+--------+------------------------------------------------------------------------------------+


  Prim__no_args__some_annots (tag 4)
  ==================================

  +-----------------------+----------+------------------------------------------------------------------------------------+
  | Name                  | Size     | Contents                                                                           |
  +=======================+==========+====================================================================================+
  | Tag                   | 1 byte   | unsigned 8-bit integer                                                             |
  +-----------------------+----------+------------------------------------------------------------------------------------+
  | prim                  | 1 byte   | unsigned 8-bit integer encoding an enumeration (see alpha.michelson.v1.primitives) |
  +-----------------------+----------+------------------------------------------------------------------------------------+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer                                                            |
  +-----------------------+----------+------------------------------------------------------------------------------------+
  | annots                | Variable | bytes                                                                              |
  +-----------------------+----------+------------------------------------------------------------------------------------+


  Prim__1_arg__no_annots (tag 5)
  ==============================

  +------+----------------------+------------------------------------------------------------------------------------+
  | Name | Size                 | Contents                                                                           |
  +======+======================+====================================================================================+
  | Tag  | 1 byte               | unsigned 8-bit integer                                                             |
  +------+----------------------+------------------------------------------------------------------------------------+
  | prim | 1 byte               | unsigned 8-bit integer encoding an enumeration (see alpha.michelson.v1.primitives) |
  +------+----------------------+------------------------------------------------------------------------------------+
  | arg  | Determined from data | $micheline.alpha.michelson_v1.expression                                           |
  +------+----------------------+------------------------------------------------------------------------------------+


  Prim__1_arg__some_annots (tag 6)
  ================================

  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | Name                  | Size                 | Contents                                                                           |
  +=======================+======================+====================================================================================+
  | Tag                   | 1 byte               | unsigned 8-bit integer                                                             |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | prim                  | 1 byte               | unsigned 8-bit integer encoding an enumeration (see alpha.michelson.v1.primitives) |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | arg                   | Determined from data | $micheline.alpha.michelson_v1.expression                                           |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | # bytes in next field | 4 bytes              | unsigned 30-bit integer                                                            |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | annots                | Variable             | bytes                                                                              |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+


  Prim__2_args__no_annots (tag 7)
  ===============================

  +------+----------------------+------------------------------------------------------------------------------------+
  | Name | Size                 | Contents                                                                           |
  +======+======================+====================================================================================+
  | Tag  | 1 byte               | unsigned 8-bit integer                                                             |
  +------+----------------------+------------------------------------------------------------------------------------+
  | prim | 1 byte               | unsigned 8-bit integer encoding an enumeration (see alpha.michelson.v1.primitives) |
  +------+----------------------+------------------------------------------------------------------------------------+
  | arg1 | Determined from data | $micheline.alpha.michelson_v1.expression                                           |
  +------+----------------------+------------------------------------------------------------------------------------+
  | arg2 | Determined from data | $micheline.alpha.michelson_v1.expression                                           |
  +------+----------------------+------------------------------------------------------------------------------------+


  Prim__2_args__some_annots (tag 8)
  =================================

  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | Name                  | Size                 | Contents                                                                           |
  +=======================+======================+====================================================================================+
  | Tag                   | 1 byte               | unsigned 8-bit integer                                                             |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | prim                  | 1 byte               | unsigned 8-bit integer encoding an enumeration (see alpha.michelson.v1.primitives) |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | arg1                  | Determined from data | $micheline.alpha.michelson_v1.expression                                           |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | arg2                  | Determined from data | $micheline.alpha.michelson_v1.expression                                           |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | # bytes in next field | 4 bytes              | unsigned 30-bit integer                                                            |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+
  | annots                | Variable             | bytes                                                                              |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+


  Prim__generic (tag 9)
  =====================

  +-----------------------+----------+------------------------------------------------------------------------------------+
  | Name                  | Size     | Contents                                                                           |
  +=======================+==========+====================================================================================+
  | Tag                   | 1 byte   | unsigned 8-bit integer                                                             |
  +-----------------------+----------+------------------------------------------------------------------------------------+
  | prim                  | 1 byte   | unsigned 8-bit integer encoding an enumeration (see alpha.michelson.v1.primitives) |
  +-----------------------+----------+------------------------------------------------------------------------------------+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer                                                            |
  +-----------------------+----------+------------------------------------------------------------------------------------+
  | args                  | Variable | sequence of $micheline.alpha.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                   |
  +-----------------------+----------+-------------------------+


  alpha.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         | DIG                   |
  +-------------+-----------------------+
  | 113         | DUG                   |
  +-------------+-----------------------+
  | 114         | EMPTY_BIG_MAP         |
  +-------------+-----------------------+
  | 115         | APPLY                 |
  +-------------+-----------------------+
  | 116         | chain_id              |
  +-------------+-----------------------+
  | 117         | CHAIN_ID              |
  +-------------+-----------------------+
  | 118         | LEVEL                 |
  +-------------+-----------------------+
  | 119         | SELF_ADDRESS          |
  +-------------+-----------------------+
  | 120         | never                 |
  +-------------+-----------------------+
  | 121         | NEVER                 |
  +-------------+-----------------------+
  | 122         | UNPAIR                |
  +-------------+-----------------------+
  | 123         | VOTING_POWER          |
  +-------------+-----------------------+
  | 124         | TOTAL_VOTING_POWER    |
  +-------------+-----------------------+
  | 125         | KECCAK                |
  +-------------+-----------------------+
  | 126         | SHA3                  |
  +-------------+-----------------------+
  | 127         | PAIRING_CHECK         |
  +-------------+-----------------------+
  | 128         | bls12_381_g1          |
  +-------------+-----------------------+
  | 129         | bls12_381_g2          |
  +-------------+-----------------------+
  | 130         | bls12_381_fr          |
  +-------------+-----------------------+
  | 131         | sapling_state         |
  +-------------+-----------------------+
  | 132         | sapling_transaction   |
  +-------------+-----------------------+
  | 133         | SAPLING_EMPTY_STATE   |
  +-------------+-----------------------+
  | 134         | SAPLING_VERIFY_UPDATE |
  +-------------+-----------------------+
  | 135         | ticket                |
  +-------------+-----------------------+
  | 136         | TICKET                |
  +-------------+-----------------------+
  | 137         | READ_TICKET           |
  +-------------+-----------------------+
  | 138         | SPLIT_TICKET          |
  +-------------+-----------------------+
  | 139         | JOIN_TICKETS          |
  +-------------+-----------------------+
  | 140         | GET_AND_UPDATE        |
  +-------------+-----------------------+
  | 141         | chest                 |
  +-------------+-----------------------+
  | 142         | chest_key             |
  +-------------+-----------------------+
  | 143         | OPEN_CHEST            |
  +-------------+-----------------------+
  | 144         | VIEW                  |
  +-------------+-----------------------+
  | 145         | view                  |
  +-------------+-----------------------+
  | 146         | constant              |
  +-------------+-----------------------+
  | 147         | SUB_MUTEZ             |
  +-------------+-----------------------+

  

GET ../<block_id>/context/delegates?[active]&[inactive]&[with_minimal_stake]&[without_minimal_stake]

Lists all registered delegates. The arguments `active`, `inactive`, `with_minimal_stake`, and `without_minimal_stake` allow to enumerate only the delegates that are active, inactive, have at least a minimal stake to participate in consensus and in governance, or do not have such a minimal stake, respectively.

Optional query arguments :

  • active
  • inactive
  • with_minimal_stake
  • without_minimal_stake

  [ $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 $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 ../<block_id>/context/delegates/<pkh>

Everything about a delegate.

  { "full_balance": $alpha.mutez,
    "current_frozen_deposits": $alpha.mutez,
    "frozen_deposits": $alpha.mutez,
    "staking_balance": $alpha.mutez,
    "frozen_deposits_limit"?: $alpha.mutez,
    "delegated_contracts": [ $alpha.contract_id ... ],
    "delegated_balance": $alpha.mutez,
    "deactivated": boolean,
    "grace_period": integer ∈ [-2^31-1, 2^31],
    "voting_power": integer ∈ [-2^31-1, 2^31] }
  $alpha.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
  $alpha.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                            |
  +=============================================+======================+=====================================+
  | full_balance                                | Determined from data | $N.t                                |
  +---------------------------------------------+----------------------+-------------------------------------+
  | current_frozen_deposits                     | Determined from data | $N.t                                |
  +---------------------------------------------+----------------------+-------------------------------------+
  | frozen_deposits                             | Determined from data | $N.t                                |
  +---------------------------------------------+----------------------+-------------------------------------+
  | staking_balance                             | Determined from data | $N.t                                |
  +---------------------------------------------+----------------------+-------------------------------------+
  | ? presence of field "frozen_deposits_limit" | 1 byte               | boolean (0 for false, 255 for true) |
  +---------------------------------------------+----------------------+-------------------------------------+
  | frozen_deposits_limit                       | Determined from data | $N.t                                |
  +---------------------------------------------+----------------------+-------------------------------------+
  | # bytes in next field                       | 4 bytes              | unsigned 30-bit integer             |
  +---------------------------------------------+----------------------+-------------------------------------+
  | delegated_contracts                         | Variable             | sequence of $alpha.contract_id      |
  +---------------------------------------------+----------------------+-------------------------------------+
  | delegated_balance                           | Determined from data | $N.t                                |
  +---------------------------------------------+----------------------+-------------------------------------+
  | deactivated                                 | 1 byte               | boolean (0 for false, 255 for true) |
  +---------------------------------------------+----------------------+-------------------------------------+
  | grace_period                                | 4 bytes              | signed 32-bit integer               |
  +---------------------------------------------+----------------------+-------------------------------------+
  | voting_power                                | 4 bytes              | signed 32-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                  |
  +----------------------+----------+------------------------+


  alpha.contract_id (22 bytes, 8-bit tag)
  ***************************************

  Implicit (tag 0)
  ================

  +---------------------------+----------+------------------------+
  | Name                      | Size     | Contents               |
  +===========================+==========+========================+
  | Tag                       | 1 byte   | unsigned 8-bit integer |
  +---------------------------+----------+------------------------+
  | Signature.Public_key_hash | 21 bytes | $public_key_hash       |
  +---------------------------+----------+------------------------+


  Originated (tag 1)
  ==================

  +---------------+----------+------------------------+
  | Name          | Size     | Contents               |
  +===============+==========+========================+
  | Tag           | 1 byte   | unsigned 8-bit integer |
  +---------------+----------+------------------------+
  | Contract_hash | 20 bytes | bytes                  |
  +---------------+----------+------------------------+
  | padding       | 1 byte   | padding                |
  +---------------+----------+------------------------+


  N.t
  ***

  A variable-length sequence of bytes encoding a Zarith natural number. Each byte has a running unary size bit: the most significant bit of each byte indicates whether this is the last byte in the sequence (0) or whether the sequence continues (1). Size bits ignored, the data is the binary representation of the number in little-endian order.

  +------+----------------------+----------+
  | Name | Size                 | Contents |
  +======+======================+==========+
  | N.t  | Determined from data | bytes    |
  +------+----------------------+----------+

  

GET ../<block_id>/context/delegates/<pkh>/current_frozen_deposits

Returns the current amount of the frozen deposits (in mutez).

  $alpha.mutez
  $alpha.mutez: $positive_bignum
  $positive_bignum:
    /* Positive big number
       Decimal representation of a positive big number */
    string
  +-----------------+----------------------+----------+
  | Name            | Size                 | Contents |
  +=================+======================+==========+
  | Unnamed field 0 | Determined from data | $N.t     |
  +-----------------+----------------------+----------+


  N.t
  ***

  A variable-length sequence of bytes encoding a Zarith natural number. Each byte has a running unary size bit: the most significant bit of each byte indicates whether this is the last byte in the sequence (0) or whether the sequence continues (1). Size bits ignored, the data is the binary representation of the number in little-endian order.

  +------+----------------------+----------+
  | Name | Size                 | Contents |
  +======+======================+==========+
  | N.t  | Determined from data | bytes    |
  +------+----------------------+----------+

  

GET ../<block_id>/context/delegates/<pkh>/deactivated

Tells whether the delegate is currently tagged as deactivated or not.

  boolean
  +-----------------+--------+-------------------------------------+
  | Name            | Size   | Contents                            |
  +=================+========+=====================================+
  | Unnamed field 0 | 1 byte | boolean (0 for false, 255 for true) |
  +-----------------+--------+-------------------------------------+


  

GET ../<block_id>/context/delegates/<pkh>/delegated_balance

Returns the sum (in mutez) of all balances of all the contracts that delegate to a given delegate. This excludes the delegate's own balance and its frozen deposits.

  $alpha.mutez
  $alpha.mutez: $positive_bignum
  $positive_bignum:
    /* Positive big number
       Decimal representation of a positive big number */
    string
  +-----------------+----------------------+----------+
  | Name            | Size                 | Contents |
  +=================+======================+==========+
  | Unnamed field 0 | Determined from data | $N.t     |
  +-----------------+----------------------+----------+


  N.t
  ***

  A variable-length sequence of bytes encoding a Zarith natural number. Each byte has a running unary size bit: the most significant bit of each byte indicates whether this is the last byte in the sequence (0) or whether the sequence continues (1). Size bits ignored, the data is the binary representation of the number in little-endian order.

  +------+----------------------+----------+
  | Name | Size                 | Contents |
  +======+======================+==========+
  | N.t  | Determined from data | bytes    |
  +------+----------------------+----------+

  

GET ../<block_id>/context/delegates/<pkh>/delegated_contracts

Returns the list of contracts that delegate to a given delegate.

  [ $alpha.contract_id ... ]
  $alpha.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
  $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 $alpha.contract_id |
  +-----------------------+----------+--------------------------------+


  public_key_hash (21 bytes, 8-bit tag)
  *************************************

  Ed25519 (tag 0)
  ===============

  +-------------------------+----------+------------------------+
  | Name                    | Size     | Contents               |
  +=========================+==========+========================+
  | Tag                     | 1 byte   | unsigned 8-bit integer |
  +-------------------------+----------+------------------------+
  | Ed25519.Public_key_hash | 20 bytes | bytes                  |
  +-------------------------+----------+------------------------+


  Secp256k1 (tag 1)
  =================

  +---------------------------+----------+------------------------+
  | Name                      | Size     | Contents               |
  +===========================+==========+========================+
  | Tag                       | 1 byte   | unsigned 8-bit integer |
  +---------------------------+----------+------------------------+
  | Secp256k1.Public_key_hash | 20 bytes | bytes                  |
  +---------------------------+----------+------------------------+


  P256 (tag 2)
  ============

  +----------------------+----------+------------------------+
  | Name                 | Size     | Contents               |
  +======================+==========+========================+
  | Tag                  | 1 byte   | unsigned 8-bit integer |
  +----------------------+----------+------------------------+
  | P256.Public_key_hash | 20 bytes | bytes                  |
  +----------------------+----------+------------------------+


  alpha.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                |
  +---------------+----------+------------------------+

  

GET ../<block_id>/context/delegates/<pkh>/frozen_deposits

Returns the initial amount (that is, at the beginning of a cycle) of the frozen deposits (in mutez). This amount is the same as the current amount of the frozen deposits, unless the delegate has been punished.

  $alpha.mutez
  $alpha.mutez: $positive_bignum
  $positive_bignum:
    /* Positive big number
       Decimal representation of a positive big number */
    string
  +-----------------+----------------------+----------+
  | Name            | Size                 | Contents |
  +=================+======================+==========+
  | Unnamed field 0 | Determined from data | $N.t     |
  +-----------------+----------------------+----------+


  N.t
  ***

  A variable-length sequence of bytes encoding a Zarith natural number. Each byte has a running unary size bit: the most significant bit of each byte indicates whether this is the last byte in the sequence (0) or whether the sequence continues (1). Size bits ignored, the data is the binary representation of the number in little-endian order.

  +------+----------------------+----------+
  | Name | Size                 | Contents |
  +======+======================+==========+
  | N.t  | Determined from data | bytes    |
  +------+----------------------+----------+

  

GET ../<block_id>/context/delegates/<pkh>/frozen_deposits_limit

Returns the frozen deposits limit for the given delegate or none if no limit is set.

  $alpha.mutez /* Some */ || null /* None */
  $alpha.mutez: $positive_bignum
  $positive_bignum:
    /* Positive big number
       Decimal representation of a positive big number */
    string
  +-----------------+----------------------+----------+
  | Name            | Size                 | Contents |
  +=================+======================+==========+
  | Unnamed field 0 | Determined from data | $X_0     |
  +-----------------+----------------------+----------+


  N.t
  ***

  A variable-length sequence of bytes encoding a Zarith natural number. Each byte has a running unary size bit: the most significant bit of each byte indicates whether this is the last byte in the sequence (0) or whether the sequence continues (1). Size bits ignored, the data is the binary representation of the number in little-endian order.

  +------+----------------------+----------+
  | Name | Size                 | Contents |
  +======+======================+==========+
  | N.t  | Determined from data | bytes    |
  +------+----------------------+----------+


  X_0 (Determined from data, 8-bit tag)
  *************************************

  None (tag 0)
  ============

  +------+--------+------------------------+
  | Name | Size   | Contents               |
  +======+========+========================+
  | Tag  | 1 byte | unsigned 8-bit integer |
  +------+--------+------------------------+


  Some (tag 1)
  ============

  +-----------------+----------------------+------------------------+
  | Name            | Size                 | Contents               |
  +=================+======================+========================+
  | Tag             | 1 byte               | unsigned 8-bit integer |
  +-----------------+----------------------+------------------------+
  | Unnamed field 0 | Determined from data | $N.t                   |
  +-----------------+----------------------+------------------------+

  

GET ../<block_id>/context/delegates/<pkh>/full_balance

Returns the full balance (in mutez) of a given delegate, including the frozen deposits. It does not include its delegated balance.

  $alpha.mutez
  $alpha.mutez: $positive_bignum
  $positive_bignum:
    /* Positive big number
       Decimal representation of a positive big number */
    string
  +-----------------+----------------------+----------+
  | Name            | Size                 | Contents |
  +=================+======================+==========+
  | Unnamed field 0 | Determined from data | $N.t     |
  +-----------------+----------------------+----------+


  N.t
  ***

  A variable-length sequence of bytes encoding a Zarith natural number. Each byte has a running unary size bit: the most significant bit of each byte indicates whether this is the last byte in the sequence (0) or whether the sequence continues (1). Size bits ignored, the data is the binary representation of the number in little-endian order.

  +------+----------------------+----------+
  | Name | Size                 | Contents |
  +======+======================+==========+
  | N.t  | Determined from data | bytes    |
  +------+----------------------+----------+

  

GET ../<block_id>/context/delegates/<pkh>/grace_period

Returns the cycle by the end of which the delegate might be deactivated if she fails to execute any delegate action. A deactivated delegate might be reactivated (without loosing any stake) by simply re-registering as a delegate. For deactivated delegates, this value contains the cycle at which they were deactivated.

  integer ∈ [-2^31-1, 2^31]
  +-----------------+---------+-----------------------+
  | Name            | Size    | Contents              |
  +=================+=========+=======================+
  | Unnamed field 0 | 4 bytes | signed 32-bit integer |
  +-----------------+---------+-----------------------+


  

GET ../<block_id>/context/delegates/<pkh>/participation

Returns cycle and level participation information. In particular this indicates, in the field 'expected_cycle_activity', the number of slots the delegate is expected to have in the cycle based on its active stake. The field 'minimal_cycle_activity' indicates the minimal endorsing slots in the cycle required to get endorsing rewards. It is computed based on 'expected_cycle_activity. The fields 'missed_slots' and 'missed_levels' indicate the number of missed endorsing slots and missed levels (for endorsing) in the cycle so far. 'missed_slots' indicates the number of missed endorsing slots in the cycle so far. The field 'remaining_allowed_missed_slots' indicates the remaining amount of endorsing slots that can be missed in the cycle before forfeiting the rewards. Finally, 'expected_endorsing_rewards' indicates the endorsing rewards that will be distributed at the end of the cycle if activity at that point will be greater than the minimal required; if the activity is already known to be below the required minimum, then the rewards are zero.

  { "expected_cycle_activity": integer ∈ [-2^30, 2^30],
    "minimal_cycle_activity": integer ∈ [-2^30, 2^30],
    "missed_slots": integer ∈ [-2^30, 2^30],
    "missed_levels": integer ∈ [-2^30, 2^30],
    "remaining_allowed_missed_slots": integer ∈ [-2^30, 2^30],
    "expected_endorsing_rewards": $alpha.mutez }
  $alpha.mutez: $positive_bignum
  $positive_bignum:
    /* Positive big number
       Decimal representation of a positive big number */
    string
  +--------------------------------+----------------------+--------------------------------------------------------------+
  | Name                           | Size                 | Contents                                                     |
  +================================+======================+==============================================================+
  | expected_cycle_activity        | 4 bytes              | signed 31-bit integer in the range -1073741824 to 1073741823 |
  +--------------------------------+----------------------+--------------------------------------------------------------+
  | minimal_cycle_activity         | 4 bytes              | signed 31-bit integer in the range -1073741824 to 1073741823 |
  +--------------------------------+----------------------+--------------------------------------------------------------+
  | missed_slots                   | 4 bytes              | signed 31-bit integer in the range -1073741824 to 1073741823 |
  +--------------------------------+----------------------+--------------------------------------------------------------+
  | missed_levels                  | 4 bytes              | signed 31-bit integer in the range -1073741824 to 1073741823 |
  +--------------------------------+----------------------+--------------------------------------------------------------+
  | remaining_allowed_missed_slots | 4 bytes              | signed 31-bit integer in the range -1073741824 to 1073741823 |
  +--------------------------------+----------------------+--------------------------------------------------------------+
  | expected_endorsing_rewards     | Determined from data | $N.t                                                         |
  +--------------------------------+----------------------+--------------------------------------------------------------+


  N.t
  ***

  A variable-length sequence of bytes encoding a Zarith natural number. Each byte has a running unary size bit: the most significant bit of each byte indicates whether this is the last byte in the sequence (0) or whether the sequence continues (1). Size bits ignored, the data is the binary representation of the number in little-endian order.

  +------+----------------------+----------+
  | Name | Size                 | Contents |
  +======+======================+==========+
  | N.t  | Determined from data | bytes    |
  +------+----------------------+----------+

  

GET ../<block_id>/context/delegates/<pkh>/staking_balance

Returns the total amount of tokens (in mutez) delegated to a given delegate. This includes the balances of all the contracts that delegate to it, but also the balance of the delegate itself and its frozen deposits.

  $alpha.mutez
  $alpha.mutez: $positive_bignum
  $positive_bignum:
    /* Positive big number
       Decimal representation of a positive big number */
    string
  +-----------------+----------------------+----------+
  | Name            | Size                 | Contents |
  +=================+======================+==========+
  | Unnamed field 0 | Determined from data | $N.t     |
  +-----------------+----------------------+----------+


  N.t
  ***

  A variable-length sequence of bytes encoding a Zarith natural number. Each byte has a running unary size bit: the most significant bit of each byte indicates whether this is the last byte in the sequence (0) or whether the sequence continues (1). Size bits ignored, the data is the binary representation of the number in little-endian order.

  +------+----------------------+----------+
  | Name | Size                 | Contents |
  +======+======================+==========+
  | N.t  | Determined from data | bytes    |
  +------+----------------------+----------+

  

GET ../<block_id>/context/delegates/<pkh>/voting_power

The number of rolls in the vote listings for a given delegate

  integer ∈ [-2^31-1, 2^31]
  +-----------------+---------+-----------------------+
  | Name            | Size    | Contents              |
  +=================+=========+=======================+
  | Unnamed field 0 | 4 bytes | signed 32-bit integer |
  +-----------------+---------+-----------------------+


  

GET ../<block_id>/context/liquidity_baking/cpmm_address

Liquidity baking CPMM address

  $alpha.contract_id
  $alpha.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
  $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 | 22 bytes | $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 (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                |
  +---------------+----------+------------------------+

  

GET ../<block_id>/context/merkle_tree(/<context_path>)*?[holey=<bool>]

Returns the merkle tree of a piece of context.

Optional query arguments :

  • holey = <bool> : Send only hashes, omit data of key

  [ [ $unistring,
      [ boolean, $unistring ]
      /* Hash */
      || /* Data */
      /^([a-zA-Z0-9][a-zA-Z0-9])*$/
      /* Key */
      || { /* Dir */
           *: $raw_context }
      || null
      /* Cut */
      || $merkle_tree
      /* Continue */ ] ... ]
  /* Some */
  || null
  /* None */
  $merkle_tree:
    [ [ $unistring,
        [ boolean, $unistring ]
        /* Hash */
        || /* Data */
        /^([a-zA-Z0-9][a-zA-Z0-9])*$/
        /* Key */
        || { /* Dir */
             *: $raw_context }
        || null
        /* Cut */
        || $merkle_tree
        /* Continue */ ] ... ]
  $raw_context:
    /^([a-zA-Z0-9][a-zA-Z0-9])*$/
    /* Key */
    || { /* Dir */
         *: $raw_context }
    || null
    /* Cut */
  $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_21    |
  +-----------------+----------------------+----------+


  X_7
  ***

  +-----------------+----------------------+----------+
  | Name            | Size                 | Contents |
  +=================+======================+==========+
  | Unnamed field 0 | Determined from data | $X_19    |
  +-----------------+----------------------+----------+
  | Unnamed field 1 | Determined from data | $X_18    |
  +-----------------+----------------------+----------+


  X_12 (Determined from data, 8-bit tag)
  **************************************

  Hash (tag 0)
  ============

  +-----------------+----------------------+-------------------------------------+
  | Name            | Size                 | Contents                            |
  +=================+======================+=====================================+
  | Tag             | 1 byte               | unsigned 8-bit integer              |
  +-----------------+----------------------+-------------------------------------+
  | Unnamed field 0 | 1 byte               | boolean (0 for false, 255 for true) |
  +-----------------+----------------------+-------------------------------------+
  | Unnamed field 1 | Determined from data | $X_19                               |
  +-----------------+----------------------+-------------------------------------+


  Data (tag 1)
  ============

  +-----------------+----------------------+------------------------+
  | Name            | Size                 | Contents               |
  +=================+======================+========================+
  | Tag             | 1 byte               | unsigned 8-bit integer |
  +-----------------+----------------------+------------------------+
  | Unnamed field 0 | Determined from data | $X_18                  |
  +-----------------+----------------------+------------------------+


  Continue (tag 2)
  ================

  +-----------------+----------------------+------------------------+
  | Name            | Size                 | Contents               |
  +=================+======================+========================+
  | Tag             | 1 byte               | unsigned 8-bit integer |
  +-----------------+----------------------+------------------------+
  | Unnamed field 0 | Determined from data | $merkle_tree           |
  +-----------------+----------------------+------------------------+


  merkle_tree
  ***********

  +-----------------------+----------+-------------------------+
  | Name                  | Size     | Contents                |
  +=======================+==========+=========================+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer |
  +-----------------------+----------+-------------------------+
  | Unnamed field 0       | Variable | sequence of $X_0        |
  +-----------------------+----------+-------------------------+


  X_18 (Determined from data, 8-bit tag)
  **************************************

  Key (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                   |
  +-----------------------+----------+-------------------------+


  Dir (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 $X_7        |
  +-----------------------+----------+-------------------------+


  Cut (tag 2)
  ===========

  +------+--------+------------------------+
  | Name | Size   | Contents               |
  +======+========+========================+
  | Tag  | 1 byte | unsigned 8-bit integer |
  +------+--------+------------------------+


  X_19
  ****

  +-----------------------+----------+-------------------------+
  | Name                  | Size     | Contents                |
  +=======================+==========+=========================+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer |
  +-----------------------+----------+-------------------------+
  | Unnamed field 0       | Variable | bytes                   |
  +-----------------------+----------+-------------------------+


  X_0
  ***

  +-----------------+----------------------+----------+
  | Name            | Size                 | Contents |
  +=================+======================+==========+
  | Unnamed field 0 | Determined from data | $X_19    |
  +-----------------+----------------------+----------+
  | Unnamed field 1 | Determined from data | $X_12    |
  +-----------------+----------------------+----------+


  X_21 (Determined from data, 8-bit tag)
  **************************************

  None (tag 0)
  ============

  +------+--------+------------------------+
  | Name | Size   | Contents               |
  +======+========+========================+
  | Tag  | 1 byte | unsigned 8-bit integer |
  +------+--------+------------------------+


  Some (tag 1)
  ============

  +-----------------------+----------+-------------------------+
  | Name                  | Size     | Contents                |
  +=======================+==========+=========================+
  | Tag                   | 1 byte   | unsigned 8-bit integer  |
  +-----------------------+----------+-------------------------+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer |
  +-----------------------+----------+-------------------------+
  | Unnamed field 0       | Variable | sequence of $X_0        |
  +-----------------------+----------+-------------------------+

  

GET ../<block_id>/context/nonces/<block_level>

Info about the nonce of a previous block.

  { /* Revealed */
    "nonce": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
  || { /* Missing */
       "hash": $cycle_nonce }
  || { /* Forgotten */
        }
  $cycle_nonce:
    /* A nonce 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 |
  +=================+======================+==========+
  | Unnamed field 0 | Determined from data | $X_0     |
  +-----------------+----------------------+----------+


  X_0 (Determined from data, 8-bit tag)
  *************************************

  Revealed (tag 0)
  ================

  +-------+----------+------------------------+
  | Name  | Size     | Contents               |
  +=======+==========+========================+
  | Tag   | 1 byte   | unsigned 8-bit integer |
  +-------+----------+------------------------+
  | nonce | 32 bytes | bytes                  |
  +-------+----------+------------------------+


  Missing (tag 1)
  ===============

  +------+----------+------------------------+
  | Name | Size     | Contents               |
  +======+==========+========================+
  | Tag  | 1 byte   | unsigned 8-bit integer |
  +------+----------+------------------------+
  | hash | 32 bytes | bytes                  |
  +------+----------+------------------------+


  Forgotten (tag 2)
  =================

  +------+--------+------------------------+
  | Name | Size   | Contents               |
  +======+========+========================+
  | Tag  | 1 byte | unsigned 8-bit integer |
  +------+--------+------------------------+

  

GET ../<block_id>/context/raw/bytes(/<context_path>)*?[depth=<uint>]

Returns the raw context.

Optional query arguments :

  • depth = <uint>

  /^([a-zA-Z0-9][a-zA-Z0-9])*$/
  /* Key */
  || { /* Dir */
       *: $raw_context }
  || null
  /* Cut */
  $raw_context:
    /^([a-zA-Z0-9][a-zA-Z0-9])*$/
    /* Key */
    || { /* Dir */
         *: $raw_context }
    || null
    /* Cut */
  +-----------------+----------------------+----------+
  | Name            | Size                 | Contents |
  +=================+======================+==========+
  | Unnamed field 0 | Determined from data | $X_5     |
  +-----------------+----------------------+----------+


  X_3
  ***

  +-----------------------+----------+-------------------------+
  | Name                  | Size     | Contents                |
  +=======================+==========+=========================+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer |
  +-----------------------+----------+-------------------------+
  | Unnamed field 0       | Variable | bytes                   |
  +-----------------------+----------+-------------------------+


  X_2
  ***

  +-----------------+----------------------+----------+
  | Name            | Size                 | Contents |
  +=================+======================+==========+
  | Unnamed field 0 | Determined from data | $X_3     |
  +-----------------+----------------------+----------+
  | Unnamed field 1 | Determined from data | $X_5     |
  +-----------------+----------------------+----------+


  X_5 (Determined from data, 8-bit tag)
  *************************************

  Key (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                   |
  +-----------------------+----------+-------------------------+


  Dir (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 $X_2        |
  +-----------------------+----------+-------------------------+


  Cut (tag 2)
  ===========

  +------+--------+------------------------+
  | Name | Size   | Contents               |
  +======+========+========================+
  | Tag  | 1 byte | unsigned 8-bit integer |
  +------+--------+------------------------+

  

GET ../<block_id>/context/sapling/<sapling_state_id>/get_diff?[offset_commitment=<uint63>]&[offset_nullifier=<uint63>]

Returns the root and a diff of a state starting from an optional offset which is zero by default.

Optional query arguments :

  • offset_commitment = <uint63> : Commitments and ciphertexts are returned from the specified offset up to the most recent.
  • offset_nullifier = <uint63> : Nullifiers are returned from the specified offset up to the most recent.

  { "root": $sapling.transaction.commitment_hash,
    "commitments_and_ciphertexts":
      [ [ $sapling.transaction.commitment, $sapling.transaction.ciphertext ] ... ],
    "nullifiers": [ $sapling.transaction.nullifier ... ] }
  $sapling.DH.epk: /^([a-zA-Z0-9][a-zA-Z0-9])*$/
  $sapling.transaction.ciphertext:
    { "cv": $sapling.transaction.commitment_value,
      "epk": $sapling.DH.epk,
      "payload_enc": /^([a-zA-Z0-9][a-zA-Z0-9])*$/,
      "nonce_enc": /^([a-zA-Z0-9][a-zA-Z0-9])*$/,
      "payload_out": /^([a-zA-Z0-9][a-zA-Z0-9])*$/,
      "nonce_out": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
  $sapling.transaction.commitment: /^([a-zA-Z0-9][a-zA-Z0-9])*$/
  $sapling.transaction.commitment_hash: /^([a-zA-Z0-9][a-zA-Z0-9])*$/
  $sapling.transaction.commitment_value: /^([a-zA-Z0-9][a-zA-Z0-9])*$/
  $sapling.transaction.nullifier: /^([a-zA-Z0-9][a-zA-Z0-9])*$/
  +-----------------------------+----------+-------------------------+
  | Name                        | Size     | Contents                |
  +=============================+==========+=========================+
  | root                        | 32 bytes | bytes                   |
  +-----------------------------+----------+-------------------------+
  | # bytes in next field       | 4 bytes  | unsigned 30-bit integer |
  +-----------------------------+----------+-------------------------+
  | commitments_and_ciphertexts | Variable | sequence of $X_0        |
  +-----------------------------+----------+-------------------------+
  | # bytes in next field       | 4 bytes  | unsigned 30-bit integer |
  +-----------------------------+----------+-------------------------+
  | nullifiers                  | Variable | sequence of bytes       |
  +-----------------------------+----------+-------------------------+


  sapling.transaction.ciphertext
  ******************************

  +-----------------------+----------+-------------------------+
  | Name                  | Size     | Contents                |
  +=======================+==========+=========================+
  | cv                    | 32 bytes | bytes                   |
  +-----------------------+----------+-------------------------+
  | epk                   | 32 bytes | bytes                   |
  +-----------------------+----------+-------------------------+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer |
  +-----------------------+----------+-------------------------+
  | payload_enc           | Variable | bytes                   |
  +-----------------------+----------+-------------------------+
  | nonce_enc             | 24 bytes | bytes                   |
  +-----------------------+----------+-------------------------+
  | payload_out           | 80 bytes | bytes                   |
  +-----------------------+----------+-------------------------+
  | nonce_out             | 24 bytes | bytes                   |
  +-----------------------+----------+-------------------------+


  X_0
  ***

  +-----------------+----------------------+---------------------------------+
  | Name            | Size                 | Contents                        |
  +=================+======================+=================================+
  | Unnamed field 0 | 32 bytes             | bytes                           |
  +-----------------+----------------------+---------------------------------+
  | Unnamed field 1 | Determined from data | $sapling.transaction.ciphertext |
  +-----------------+----------------------+---------------------------------+

  

POST ../<block_id>/context/seed

Seed of the cycle to which the block belongs.

  {  }
  +------+------+----------+
  | Name | Size | Contents |
  +======+======+==========+



  
  /^([a-zA-Z0-9][a-zA-Z0-9])*$/
  +-----------------+----------+----------+
  | Name            | Size     | Contents |
  +=================+==========+==========+
  | Unnamed field 0 | 32 bytes | bytes    |
  +-----------------+----------+----------+


  

GET ../<block_id>/context/tx_rollup/<tx_rollup_id>/state

Access the state of a rollup.

  any
  +------+------+----------+
  | Name | Size | Contents |
  +======+======+==========+



  

GET ../<block_id>/hash

The block's hash, its unique identifier.

  $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    |
  +------------+----------+----------+


  

GET ../<block_id>/header

The whole block header.

  $block_header
  $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
  $Signature:
    /* A Ed25519, Secp256k1 or P256 signature (Base58Check-encoded) */
    $unistring
  $block_hash:
    /* A block identifier (Base58Check-encoded) */
    $unistring
  $block_header:
    /* Shell header
       Block header's shell-related content. It contains information such as
       the block level, its predecessor and timestamp. */
    { "protocol": "ProtoALphaALphaALphaALphaALphaALphaALphaALphaDdp3zK",
      "chain_id": $Chain_id,
      "hash": $block_hash,
      "level": integer ∈ [-2^31-1, 2^31],
      "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,
      "payload_hash": $value_hash,
      "payload_round": integer ∈ [-2^31-1, 2^31],
      "proof_of_work_nonce": /^([a-zA-Z0-9][a-zA-Z0-9])*$/,
      "seed_nonce_hash"?: $cycle_nonce,
      "liquidity_baking_escape_vote": boolean,
      "signature": $Signature }
  $cycle_nonce:
    /* A nonce hash (Base58Check-encoded) */
    $unistring
  $fitness:
    /* Block fitness
       The fitness, or score, of a block, that allow the Tezos 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][a-zA-Z0-9])*$/ ... ]
  $timestamp.protocol:
    /* A timestamp as seen by the protocol: second-level precision, epoch
       based. */
    $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] ... ] }
  $value_hash:
    /* Hash of a consensus value (Base58Check-encoded) */
    $unistring
  +---------------------------------------+----------+-------------------------------------+
  | 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                               |
  +---------------------------------------+----------+-------------------------------------+
  | payload_hash                          | 32 bytes | bytes                               |
  +---------------------------------------+----------+-------------------------------------+
  | payload_round                         | 4 bytes  | signed 32-bit integer               |
  +---------------------------------------+----------+-------------------------------------+
  | proof_of_work_nonce                   | 8 bytes  | bytes                               |
  +---------------------------------------+----------+-------------------------------------+
  | ? presence of field "seed_nonce_hash" | 1 byte   | boolean (0 for false, 255 for true) |
  +---------------------------------------+----------+-------------------------------------+
  | seed_nonce_hash                       | 32 bytes | bytes                               |
  +---------------------------------------+----------+-------------------------------------+
  | liquidity_baking_escape_vote          | 1 byte   | boolean (0 for false, 255 for true) |
  +---------------------------------------+----------+-------------------------------------+
  | signature                             | 64 bytes | bytes                               |
  +---------------------------------------+----------+-------------------------------------+


  fitness.elem
  ************

  +-----------------------+----------+-------------------------+
  | Name                  | Size     | Contents                |
  +=======================+==========+=========================+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer |
  +-----------------------+----------+-------------------------+
  | Unnamed field 0       | Variable | bytes                   |
  +-----------------------+----------+-------------------------+

  

GET ../<block_id>/header/protocol_data

The version-specific fragment of the block header.

  { "protocol": "ProtoALphaALphaALphaALphaALphaALphaALphaALphaDdp3zK",
    "payload_hash": $value_hash,
    "payload_round": integer ∈ [-2^31-1, 2^31],
    "proof_of_work_nonce": /^([a-zA-Z0-9][a-zA-Z0-9])*$/,
    "seed_nonce_hash"?: $cycle_nonce,
    "liquidity_baking_escape_vote": boolean,
    "signature": $Signature }
  $Signature:
    /* A Ed25519, Secp256k1 or P256 signature (Base58Check-encoded) */
    $unistring
  $cycle_nonce:
    /* A nonce 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] ... ] }
  $value_hash:
    /* Hash of a consensus value (Base58Check-encoded) */
    $unistring
  +---------------------------------------+----------+-------------------------------------+
  | Name                                  | Size     | Contents                            |
  +=======================================+==========+=====================================+
  | payload_hash                          | 32 bytes | bytes                               |
  +---------------------------------------+----------+-------------------------------------+
  | payload_round                         | 4 bytes  | signed 32-bit integer               |
  +---------------------------------------+----------+-------------------------------------+
  | proof_of_work_nonce                   | 8 bytes  | bytes                               |
  +---------------------------------------+----------+-------------------------------------+
  | ? presence of field "seed_nonce_hash" | 1 byte   | boolean (0 for false, 255 for true) |
  +---------------------------------------+----------+-------------------------------------+
  | seed_nonce_hash                       | 32 bytes | bytes                               |
  +---------------------------------------+----------+-------------------------------------+
  | liquidity_baking_escape_vote          | 1 byte   | boolean (0 for false, 255 for true) |
  +---------------------------------------+----------+-------------------------------------+
  | signature                             | 64 bytes | bytes                               |
  +---------------------------------------+----------+-------------------------------------+


  

GET ../<block_id>/header/protocol_data/raw

The version-specific fragment of the block header (unparsed).

  /^([a-zA-Z0-9][a-zA-Z0-9])*$/
  +-----------------------+----------+-------------------------+
  | Name                  | Size     | Contents                |
  +=======================+==========+=========================+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer |
  +-----------------------+----------+-------------------------+
  | Unnamed field 0       | Variable | bytes                   |
  +-----------------------+----------+-------------------------+


  

GET ../<block_id>/header/raw

The whole block header (unparsed).

  /^([a-zA-Z0-9][a-zA-Z0-9])*$/
  +-----------------------+----------+-------------------------+
  | Name                  | Size     | Contents                |
  +=======================+==========+=========================+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer |
  +-----------------------+----------+-------------------------+
  | Unnamed field 0       | Variable | bytes                   |
  +-----------------------+----------+-------------------------+


  

GET ../<block_id>/header/shell

The shell-specific fragment of the block header.

  $block_header.shell
  $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.shell:
    /* Shell header
       Block header's shell-related content. It contains information such as
       the block level, its predecessor and timestamp. */
    { "level": integer ∈ [-2^31-1, 2^31],
      "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 }
  $fitness:
    /* Block fitness
       The fitness, or score, of a block, that allow the Tezos 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][a-zA-Z0-9])*$/ ... ]
  $timestamp.protocol:
    /* A timestamp as seen by the protocol: second-level precision, epoch
       based. */
    $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                  |
  +============================+==========+===========================+
  | 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                     |
  +----------------------------+----------+---------------------------+


  fitness.elem
  ************

  +-----------------------+----------+-------------------------+
  | Name                  | Size     | Contents                |
  +=======================+==========+=========================+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer |
  +-----------------------+----------+-------------------------+
  | Unnamed field 0       | Variable | bytes                   |
  +-----------------------+----------+-------------------------+

  

GET ../<block_id>/helpers/complete/<prefix>

Try to complete a prefix of a Base58Check-encoded data. This RPC is actually able to complete hashes of block, operations, public_keys and contracts.

  [ $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 | bytes                   |
  +-----------------------+----------+-------------------------+

  

POST ../<block_id>/helpers/forge_block_header

Forge a block header

  $block_header
  $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-1, 2^31],
      "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][a-zA-Z0-9])*$/ }
  $fitness:
    /* Block fitness
       The fitness, or score, of a block, that allow the Tezos 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][a-zA-Z0-9])*$/ ... ]
  $timestamp.protocol:
    /* A timestamp as seen by the protocol: second-level precision, epoch
       based. */
    $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                  |
  +============================+==========+===========================+
  | 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                   |
  +-----------------------+----------+-------------------------+

  
  { "block": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
  +-----------------------+----------+-------------------------+
  | Name                  | Size     | Contents                |
  +=======================+==========+=========================+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer |
  +-----------------------+----------+-------------------------+
  | block                 | Variable | bytes                   |
  +-----------------------+----------+-------------------------+


  

POST ../<block_id>/helpers/preapply/block?[sort]&[timestamp=<date>]

Simulate the validation of a block that would contain the given operations and return the resulting fitness and context hash.

Optional query arguments :

  • sort
  • timestamp = <date>

  { "protocol_data":
      { "protocol": "ProtoALphaALphaALphaALphaALphaALphaALphaALphaDdp3zK",
        "payload_hash": $value_hash,
        "payload_round": integer ∈ [-2^31-1, 2^31],
        "proof_of_work_nonce": /^([a-zA-Z0-9][a-zA-Z0-9])*$/,
        "seed_nonce_hash"?: $cycle_nonce,
        "liquidity_baking_escape_vote": boolean,
        "signature": $Signature },
    "operations": [ [ $next_operation ... ] ... ] }
  $Context_hash:
    /* A hash of context (Base58Check-encoded) */
    $unistring
  $Ed25519.Public_key_hash:
    /* An Ed25519 public key hash (Base58Check-encoded) */
    $unistring
  $Operation_list_list_hash:
    /* A list of list of operations (Base58Check-encoded) */
    $unistring
  $Protocol_hash:
    /* A Tezos 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
  $alpha.block_header.alpha.full_header:
    /* Shell header
       Block header's shell-related content. It contains information such as
       the block level, its predecessor and timestamp. */
    { "level": integer ∈ [-2^31-1, 2^31],
      "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,
      "payload_hash": $value_hash,
      "payload_round": integer ∈ [-2^31-1, 2^31],
      "proof_of_work_nonce": /^([a-zA-Z0-9][a-zA-Z0-9])*$/,
      "seed_nonce_hash"?: $cycle_nonce,
      "liquidity_baking_escape_vote": boolean,
      "signature": $Signature }
  $alpha.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
  $alpha.entrypoint:
    /* entrypoint
       Named entrypoint to a Michelson smart contract */
    "default"
    || "root"
    || "do"
    || "set_delegate"
    || "remove_delegate"
    || string
    /* named */
  $alpha.inlined.endorsement:
    /* An operation's shell header. */
    { "branch": $block_hash,
      "operations": $alpha.inlined.endorsement_mempool.contents,
      "signature"?: $Signature }
  $alpha.inlined.endorsement_mempool.contents:
    { /* Endorsement */
      "kind": "endorsement",
      "slot": integer ∈ [0, 2^16-1],
      "level": integer ∈ [-2^31-1, 2^31],
      "round": integer ∈ [-2^31-1, 2^31],
      "block_payload_hash": $value_hash }
  $alpha.inlined.preendorsement:
    /* An operation's shell header. */
    { "branch": $block_hash,
      "operations": $alpha.inlined.preendorsement.contents,
      "signature"?: $Signature }
  $alpha.inlined.preendorsement.contents:
    { /* Preendorsement */
      "kind": "preendorsement",
      "slot": integer ∈ [0, 2^16-1],
      "level": integer ∈ [-2^31-1, 2^31],
      "round": integer ∈ [-2^31-1, 2^31],
      "block_payload_hash": $value_hash }
  $alpha.michelson.v1.primitives:
    "ABS"
    | "IF"
    | "SENDER"
    | "NEVER"
    | "False"
    | "DUG"
    | "DIG"
    | "chest_key"
    | "BLAKE2B"
    | "list"
    | "bls12_381_g1"
    | "Pair"
    | "INT"
    | "nat"
    | "never"
    | "storage"
    | "SIZE"
    | "view"
    | "SHA256"
    | "AND"
    | "VIEW"
    | "bytes"
    | "NIL"
    | "map"
    | "SUB"
    | "SAPLING_EMPTY_STATE"
    | "CHECK_SIGNATURE"
    | "VOTING_POWER"
    | "operation"
    | "MAP"
    | "option"
    | "bls12_381_fr"
    | "ADD"
    | "IMPLICIT_ACCOUNT"
    | "SHA512"
    | "int"
    | "LSL"
    | "bls12_381_g2"
    | "ticket"
    | "sapling_transaction"
    | "COMPARE"
    | "SWAP"
    | "STEPS_TO_QUOTA"
    | "DROP"
    | "pair"
    | "BALANCE"
    | "CONCAT"
    | "MUL"
    | "FAILWITH"
    | "Elt"
    | "lambda"
    | "OR"
    | "DIP"
    | "MEM"
    | "ITER"
    | "key_hash"
    | "XOR"
    | "Some"
    | "parameter"
    | "address"
    | "EMPTY_MAP"
    | "None"
    | "TRANSFER_TOKENS"
    | "or"
    | "AMOUNT"
    | "signature"
    | "SHA3"
    | "string"
    | "CHAIN_ID"
    | "HASH_KEY"
    | "IF_LEFT"
    | "CREATE_ACCOUNT"
    | "LT"
    | "TOTAL_VOTING_POWER"
    | "UNPACK"
    | "READ_TICKET"
    | "SELF_ADDRESS"
    | "timestamp"
    | "SET_DELEGATE"
    | "LE"
    | "SOURCE"
    | "CREATE_CONTRACT"
    | "Unit"
    | "SAPLING_VERIFY_UPDATE"
    | "NONE"
    | "CONTRACT"
    | "GE"
    | "SOME"
    | "key"
    | "SELF"
    | "set"
    | "CAR"
    | "NOT"
    | "unit"
    | "CDR"
    | "LOOP_LEFT"
    | "PAIRING_CHECK"
    | "RIGHT"
    | "LEFT"
    | "CAST"
    | "True"
    | "Right"
    | "PACK"
    | "IF_CONS"
    | "KECCAK"
    | "chest"
    | "UNIT"
    | "EMPTY_SET"
    | "NEQ"
    | "LAMBDA"
    | "mutez"
    | "TICKET"
    | "LOOP"
    | "Left"
    | "contract"
    | "LSR"
    | "EMPTY_BIG_MAP"
    | "sapling_state"
    | "JOIN_TICKETS"
    | "LEVEL"
    | "UNPAIR"
    | "SPLIT_TICKET"
    | "PUSH"
    | "big_map"
    | "GT"
    | "chain_id"
    | "constant"
    | "NOW"
    | "IF_NONE"
    | "PAIR"
    | "GET_AND_UPDATE"
    | "UPDATE"
    | "ISNAT"
    | "RENAME"
    | "OPEN_CHEST"
    | "EDIV"
    | "EQ"
    | "ADDRESS"
    | "bool"
    | "EXEC"
    | "GET"
    | "NEG"
    | "SLICE"
    | "DUP"
    | "CONS"
    | "APPLY"
    | "SUB_MUTEZ"
    | "code"
  $alpha.mutez: $positive_bignum
  $alpha.operation.alpha.contents:
    { /* Endorsement */
      "kind": "endorsement",
      "slot": integer ∈ [0, 2^16-1],
      "level": integer ∈ [-2^31-1, 2^31],
      "round": integer ∈ [-2^31-1, 2^31],
      "block_payload_hash": $value_hash }
    || { /* Preendorsement */
         "kind": "preendorsement",
         "slot": integer ∈ [0, 2^16-1],
         "level": integer ∈ [-2^31-1, 2^31],
         "round": integer ∈ [-2^31-1, 2^31],
         "block_payload_hash": $value_hash }
    || { /* Seed_nonce_revelation */
         "kind": "seed_nonce_revelation",
         "level": integer ∈ [-2^31-1, 2^31],
         "nonce": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
    || { /* Double_endorsement_evidence */
         "kind": "double_endorsement_evidence",
         "op1": $alpha.inlined.endorsement,
         "op2": $alpha.inlined.endorsement }
    || { /* Double_preendorsement_evidence */
         "kind": "double_preendorsement_evidence",
         "op1": $alpha.inlined.preendorsement,
         "op2": $alpha.inlined.preendorsement }
    || { /* Double_baking_evidence */
         "kind": "double_baking_evidence",
         "bh1": $alpha.block_header.alpha.full_header,
         "bh2": $alpha.block_header.alpha.full_header }
    || { /* Activate_account */
         "kind": "activate_account",
         "pkh": $Ed25519.Public_key_hash,
         "secret": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
    || { /* Proposals */
         "kind": "proposals",
         "source": $Signature.Public_key_hash,
         "period": integer ∈ [-2^31-1, 2^31],
         "proposals": [ $Protocol_hash ... ] }
    || { /* Ballot */
         "kind": "ballot",
         "source": $Signature.Public_key_hash,
         "period": integer ∈ [-2^31-1, 2^31],
         "proposal": $Protocol_hash,
         "ballot": "nay" | "yay" | "pass" }
    || { /* Reveal */
         "kind": "reveal",
         "source": $Signature.Public_key_hash,
         "fee": $alpha.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "public_key": $Signature.Public_key }
    || { /* Transaction */
         "kind": "transaction",
         "source": $Signature.Public_key_hash,
         "fee": $alpha.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "amount": $alpha.mutez,
         "destination": $alpha.contract_id,
         "parameters"?:
           { "entrypoint": $alpha.entrypoint,
             "value":
               { /* Int */
                 "int": $bignum }
               || { /* String */
                    "string": $unistring }
               || { /* Bytes */
                    "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
               || [ $micheline.alpha.michelson_v1.expression ... ]
               /* Sequence */
               || { /* Prim__generic
                       Generic primitive (any number of args with or without
                       annotations) */
                    "prim": $alpha.michelson.v1.primitives,
                    "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
                    "annots"?: [ string ... ] } } }
    || { /* Origination */
         "kind": "origination",
         "source": $Signature.Public_key_hash,
         "fee": $alpha.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "balance": $alpha.mutez,
         "delegate"?: $Signature.Public_key_hash,
         "script": $alpha.scripted.contracts }
    || { /* Delegation */
         "kind": "delegation",
         "source": $Signature.Public_key_hash,
         "fee": $alpha.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "delegate"?: $Signature.Public_key_hash }
    || { /* Set_deposits_limit */
         "kind": "set_deposits_limit",
         "source": $Signature.Public_key_hash,
         "fee": $alpha.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "limit"?: $alpha.mutez }
    || { /* Failing_noop */
         "kind": "failing_noop",
         "arbitrary": $unistring }
    || { /* Register_global_constant */
         "kind": "register_global_constant",
         "source": $Signature.Public_key_hash,
         "fee": $alpha.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "value":
           { /* Int */
             "int": $bignum }
           || { /* String */
                "string": $unistring }
           || { /* Bytes */
                "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
           || [ $micheline.alpha.michelson_v1.expression ... ]
           /* Sequence */
           || { /* Prim__generic
                   Generic primitive (any number of args with or without
                   annotations) */
                "prim": $alpha.michelson.v1.primitives,
                "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
                "annots"?: [ string ... ] } }
    || { /* Tx_rollup_origination */
         "kind": "tx_rollup_origination",
         "source": $Signature.Public_key_hash,
         "fee": $alpha.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "tx_rollup_origination": any }
    || { /* Sc_rollup_originate */
         "kind": "sc_rollup_originate",
         "source": $Signature.Public_key_hash,
         "fee": $alpha.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "kind": any /* Example_arith smart contract rollup kind */,
         "boot_sector": $unistring }
    || { /* Sc_rollup_add_messages */
         "kind": "sc_rollup_add_messages",
         "source": $Signature.Public_key_hash,
         "fee": $alpha.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "rollup": $alpha.rollup_address,
         "message": [ $unistring ... ] }
  $alpha.rollup_address:
    /* A smart contract rollup address
       A smart contract rollup is identified by a base58 address starting
       with scr1 */
    $unistring
  $alpha.scripted.contracts:
    { "code":
        { /* Int */
          "int": $bignum }
        || { /* String */
             "string": $unistring }
        || { /* Bytes */
             "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
        || [ $micheline.alpha.michelson_v1.expression ... ]
        /* Sequence */
        || { /* Prim__generic
                Generic primitive (any number of args with or without
                annotations) */
             "prim": $alpha.michelson.v1.primitives,
             "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
             "annots"?: [ string ... ] },
      "storage":
        { /* Int */
          "int": $bignum }
        || { /* String */
             "string": $unistring }
        || { /* Bytes */
             "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
        || [ $micheline.alpha.michelson_v1.expression ... ]
        /* Sequence */
        || { /* Prim__generic
                Generic primitive (any number of args with or without
                annotations) */
             "prim": $alpha.michelson.v1.primitives,
             "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
             "annots"?: [ string ... ] } }
  $bignum:
    /* Big number
       Decimal representation of a big number */
    string
  $block_hash:
    /* A block identifier (Base58Check-encoded) */
    $unistring
  $cycle_nonce:
    /* A nonce hash (Base58Check-encoded) */
    $unistring
  $fitness:
    /* Block fitness
       The fitness, or score, of a block, that allow the Tezos 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][a-zA-Z0-9])*$/ ... ]
  $micheline.alpha.michelson_v1.expression:
    { /* Int */
      "int": $bignum }
    || { /* String */
         "string": $unistring }
    || { /* Bytes */
         "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
    || [ $micheline.alpha.michelson_v1.expression ... ]
    /* Sequence */
    || { /* Prim__generic
            Generic primitive (any number of args with or without
            annotations) */
         "prim": $alpha.michelson.v1.primitives,
         "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
         "annots"?: [ string ... ] }
  $next_operation:
    /* An operation's shell header. */
    { "protocol": "ProtoALphaALphaALphaALphaALphaALphaALphaALphaDdp3zK",
      "branch": $block_hash,
      "contents": [ $alpha.operation.alpha.contents ... ],
      "signature": $Signature }
  $positive_bignum:
    /* Positive big number
       Decimal representation of a positive big number */
    string
  $timestamp.protocol:
    /* A timestamp as seen by the protocol: second-level precision, epoch
       based. */
    $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] ... ] }
  $value_hash:
    /* Hash of a consensus value (Base58Check-encoded) */
    $unistring
  +-----------------------+----------------------+-------------------------+
  | Name                  | Size                 | Contents                |
  +=======================+======================+=========================+
  | protocol_data         | Determined from data | $X_0                    |
  +-----------------------+----------------------+-------------------------+
  | # bytes in next field | 4 bytes              | unsigned 30-bit integer |
  +-----------------------+----------------------+-------------------------+
  | operations            | Variable             | sequence of $X_1        |
  +-----------------------+----------------------+-------------------------+


  X_0
  ***

  +---------------------------------------+----------+-------------------------------------+
  | Name                                  | Size     | Contents                            |
  +=======================================+==========+=====================================+
  | # bytes in next 7 fields              | 4 bytes  | unsigned 30-bit integer             |
  +---------------------------------------+----------+-------------------------------------+
  | payload_hash                          | 32 bytes | bytes                               |
  +---------------------------------------+----------+-------------------------------------+
  | payload_round                         | 4 bytes  | signed 32-bit integer               |
  +---------------------------------------+----------+-------------------------------------+
  | proof_of_work_nonce                   | 8 bytes  | bytes                               |
  +---------------------------------------+----------+-------------------------------------+
  | ? presence of field "seed_nonce_hash" | 1 byte   | boolean (0 for false, 255 for true) |
  +---------------------------------------+----------+-------------------------------------+
  | seed_nonce_hash                       | 32 bytes | bytes                               |
  +---------------------------------------+----------+-------------------------------------+
  | liquidity_baking_escape_vote          | 1 byte   | boolean (0 for false, 255 for true) |
  +---------------------------------------+----------+-------------------------------------+
  | signature                             | 64 bytes | bytes                               |
  +---------------------------------------+----------+-------------------------------------+


  X_2
  ***

  +-----------------------+----------+-------------------------+
  | Name                  | Size     | Contents                |
  +=======================+==========+=========================+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer |
  +-----------------------+----------+-------------------------+
  | Unnamed field 0       | Variable | bytes                   |
  +-----------------------+----------+-------------------------+


  X_3 (2 bytes, 16-bit tag)
  *************************

  Example_arith smart contract rollup kind (tag 0)
  ================================================

  +------+---------+-------------------------+
  | Name | Size    | Contents                |
  +======+=========+=========================+
  | Tag  | 2 bytes | unsigned 16-bit integer |
  +------+---------+-------------------------+


  alpha.scripted.contracts
  ************************

  +-----------------------+----------+-------------------------+
  | Name                  | Size     | Contents                |
  +=======================+==========+=========================+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer |
  +-----------------------+----------+-------------------------+
  | code                  | Variable | bytes                   |
  +-----------------------+----------+-------------------------+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer |
  +-----------------------+----------+-------------------------+
  | storage               | Variable | bytes                   |
  +-----------------------+----------+-------------------------+


  alpha.contract_id (22 bytes, 8-bit tag)
  ***************************************

  Implicit (tag 0)
  ================

  +---------------------------+----------+------------------------+
  | Name                      | Size     | Contents               |
  +===========================+==========+========================+
  | Tag                       | 1 byte   | unsigned 8-bit integer |
  +---------------------------+----------+------------------------+
  | Signature.Public_key_hash | 21 bytes | $public_key_hash       |
  +---------------------------+----------+------------------------+


  Originated (tag 1)
  ==================

  +---------------+----------+------------------------+
  | Name          | Size     | Contents               |
  +===============+==========+========================+
  | Tag           | 1 byte   | unsigned 8-bit integer |
  +---------------+----------+------------------------+
  | Contract_hash | 20 bytes | bytes                  |
  +---------------+----------+------------------------+
  | padding       | 1 byte   | padding                |
  +---------------+----------+------------------------+


  alpha.entrypoint (Determined from data, 8-bit tag)
  **************************************************

  default (tag 0)
  ===============

  +------+--------+------------------------+
  | Name | Size   | Contents               |
  +======+========+========================+
  | Tag  | 1 byte | unsigned 8-bit integer |
  +------+--------+------------------------+


  root (tag 1)
  ============

  +------+--------+------------------------+
  | Name | Size   | Contents               |
  +======+========+========================+
  | Tag  | 1 byte | unsigned 8-bit integer |
  +------+--------+------------------------+


  do (tag 2)
  ==========

  +------+--------+------------------------+
  | Name | Size   | Contents               |
  +======+========+========================+
  | Tag  | 1 byte | unsigned 8-bit integer |
  +------+--------+------------------------+


  set_delegate (tag 3)
  ====================

  +------+--------+------------------------+
  | Name | Size   | Contents               |
  +======+========+========================+
  | Tag  | 1 byte | unsigned 8-bit integer |
  +------+--------+------------------------+


  remove_delegate (tag 4)
  =======================

  +------+--------+------------------------+
  | Name | Size   | Contents               |
  +======+========+========================+
  | Tag  | 1 byte | unsigned 8-bit integer |
  +------+--------+------------------------+


  named (tag 255)
  ===============

  +-----------------------+----------+------------------------+
  | Name                  | Size     | Contents               |
  +=======================+==========+========================+
  | Tag                   | 1 byte   | unsigned 8-bit integer |
  +-----------------------+----------+------------------------+
  | # bytes in next field | 1 byte   | unsigned 8-bit integer |
  +-----------------------+----------+------------------------+
  | Unnamed field 0       | Variable | bytes                  |
  +-----------------------+----------+------------------------+


  X_4
  ***

  +-----------------------+----------------------+-------------------------+
  | Name                  | Size                 | Contents                |
  +=======================+======================+=========================+
  | entrypoint            | Determined from data | $alpha.entrypoint       |
  +-----------------------+----------------------+-------------------------+
  | # bytes in next field | 4 bytes              | unsigned 30-bit integer |
  +-----------------------+----------------------+-------------------------+
  | value                 | Variable             | bytes                   |
  +-----------------------+----------------------+-------------------------+


  N.t
  ***

  A variable-length sequence of bytes encoding a Zarith natural number. Each byte has a running unary size bit: the most significant bit of each byte indicates whether this is the last byte in the sequence (0) or whether the sequence continues (1). Size bits ignored, the data is the binary representation of the number in little-endian order.

  +------+----------------------+----------+
  | Name | Size                 | Contents |
  +======+======================+==========+
  | N.t  | Determined from data | bytes    |
  +------+----------------------+----------+


  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                  |
  +-----------------+----------+------------------------+


  alpha.inlined.preendorsement.contents (43 bytes, 8-bit tag)
  ***********************************************************

  Preendorsement (tag 20)
  =======================

  +--------------------+----------+-------------------------+
  | Name               | Size     | Contents                |
  +====================+==========+=========================+
  | Tag                | 1 byte   | unsigned 8-bit integer  |
  +--------------------+----------+-------------------------+
  | slot               | 2 bytes  | unsigned 16-bit integer |
  +--------------------+----------+-------------------------+
  | level              | 4 bytes  | signed 32-bit integer   |
  +--------------------+----------+-------------------------+
  | round              | 4 bytes  | signed 32-bit integer   |
  +--------------------+----------+-------------------------+
  | block_payload_hash | 32 bytes | bytes                   |
  +--------------------+----------+-------------------------+


  alpha.inlined.preendorsement
  ****************************

  +------------+----------+----------------------------------------+
  | Name       | Size     | Contents                               |
  +============+==========+========================================+
  | branch     | 32 bytes | bytes                                  |
  +------------+----------+----------------------------------------+
  | operations | 43 bytes | $alpha.inlined.preendorsement.contents |
  +------------+----------+----------------------------------------+
  | signature  | Variable | bytes                                  |
  +------------+----------+----------------------------------------+


  public_key_hash (21 bytes, 8-bit tag)
  *************************************

  Ed25519 (tag 0)
  ===============

  +-------------------------+----------+------------------------+
  | Name                    | Size     | Contents               |
  +=========================+==========+========================+
  | Tag                     | 1 byte   | unsigned 8-bit integer |
  +-------------------------+----------+------------------------+
  | Ed25519.Public_key_hash | 20 bytes | bytes                  |
  +-------------------------+----------+------------------------+


  Secp256k1 (tag 1)
  =================

  +---------------------------+----------+------------------------+
  | Name                      | Size     | Contents               |
  +===========================+==========+========================+
  | Tag                       | 1 byte   | unsigned 8-bit integer |
  +---------------------------+----------+------------------------+
  | Secp256k1.Public_key_hash | 20 bytes | bytes                  |
  +---------------------------+----------+------------------------+


  P256 (tag 2)
  ============

  +----------------------+----------+------------------------+
  | Name                 | Size     | Contents               |
  +======================+==========+========================+
  | Tag                  | 1 byte   | unsigned 8-bit integer |
  +----------------------+----------+------------------------+
  | P256.Public_key_hash | 20 bytes | bytes                  |
  +----------------------+----------+------------------------+


  fitness.elem
  ************

  +-----------------------+----------+-------------------------+
  | Name                  | Size     | Contents                |
  +=======================+==========+=========================+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer |
  +-----------------------+----------+-------------------------+
  | Unnamed field 0       | Variable | bytes                   |
  +-----------------------+----------+-------------------------+


  alpha.block_header.alpha.full_header
  ************************************

  +---------------------------------------+----------+-------------------------------------+
  | Name                                  | Size     | Contents                            |
  +=======================================+==========+=====================================+
  | level                                 | 4 bytes  | signed 32-bit integer               |
  +---------------------------------------+----------+-------------------------------------+
  | proto                                 | 1 byte   | unsigned 8-bit integer              |
  +---------------------------------------+----------+-------------------------------------+
  | predecessor                           | 32 bytes | bytes                               |
  +---------------------------------------+----------+-------------------------------------+
  | timestamp                             | 8 bytes  | signed 64-bit integer               |
  +---------------------------------------+----------+-------------------------------------+
  | validation_pass                       | 1 byte   | unsigned 8-bit integer              |
  +---------------------------------------+----------+-------------------------------------+
  | operations_hash                       | 32 bytes | bytes                               |
  +---------------------------------------+----------+-------------------------------------+
  | # bytes in field "fitness"            | 4 bytes  | unsigned 30-bit integer             |
  +---------------------------------------+----------+-------------------------------------+
  | fitness                               | Variable | sequence of $fitness.elem           |
  +---------------------------------------+----------+-------------------------------------+
  | context                               | 32 bytes | bytes                               |
  +---------------------------------------+----------+-------------------------------------+
  | payload_hash                          | 32 bytes | bytes                               |
  +---------------------------------------+----------+-------------------------------------+
  | payload_round                         | 4 bytes  | signed 32-bit integer               |
  +---------------------------------------+----------+-------------------------------------+
  | proof_of_work_nonce                   | 8 bytes  | bytes                               |
  +---------------------------------------+----------+-------------------------------------+
  | ? presence of field "seed_nonce_hash" | 1 byte   | boolean (0 for false, 255 for true) |
  +---------------------------------------+----------+-------------------------------------+
  | seed_nonce_hash                       | 32 bytes | bytes                               |
  +---------------------------------------+----------+-------------------------------------+
  | liquidity_baking_escape_vote          | 1 byte   | boolean (0 for false, 255 for true) |
  +---------------------------------------+----------+-------------------------------------+
  | signature                             | 64 bytes | bytes                               |
  +---------------------------------------+----------+-------------------------------------+


  alpha.inlined.endorsement_mempool.contents (43 bytes, 8-bit tag)
  ****************************************************************

  Endorsement (tag 21)
  ====================

  +--------------------+----------+-------------------------+
  | Name               | Size     | Contents                |
  +====================+==========+=========================+
  | Tag                | 1 byte   | unsigned 8-bit integer  |
  +--------------------+----------+-------------------------+
  | slot               | 2 bytes  | unsigned 16-bit integer |
  +--------------------+----------+-------------------------+
  | level              | 4 bytes  | signed 32-bit integer   |
  +--------------------+----------+-------------------------+
  | round              | 4 bytes  | signed 32-bit integer   |
  +--------------------+----------+-------------------------+
  | block_payload_hash | 32 bytes | bytes                   |
  +--------------------+----------+-------------------------+


  alpha.inlined.endorsement
  *************************

  +------------+----------+---------------------------------------------+
  | Name       | Size     | Contents                                    |
  +============+==========+=============================================+
  | branch     | 32 bytes | bytes                                       |
  +------------+----------+---------------------------------------------+
  | operations | 43 bytes | $alpha.inlined.endorsement_mempool.contents |
  +------------+----------+---------------------------------------------+
  | signature  | Variable | bytes                                       |
  +------------+----------+---------------------------------------------+


  alpha.operation.alpha.contents (Determined from data, 8-bit tag)
  ****************************************************************

  Seed_nonce_revelation (tag 1)
  =============================

  +-------+----------+------------------------+
  | Name  | Size     | Contents               |
  +=======+==========+========================+
  | Tag   | 1 byte   | unsigned 8-bit integer |
  +-------+----------+------------------------+
  | level | 4 bytes  | signed 32-bit integer  |
  +-------+----------+------------------------+
  | nonce | 32 bytes | bytes                  |
  +-------+----------+------------------------+


  Double_endorsement_evidence (tag 2)
  ===================================

  +-----------------------+----------+----------------------------+
  | Name                  | Size     | Contents                   |
  +=======================+==========+============================+
  | Tag                   | 1 byte   | unsigned 8-bit integer     |
  +-----------------------+----------+----------------------------+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer    |
  +-----------------------+----------+----------------------------+
  | op1                   | Variable | $alpha.inlined.endorsement |
  +-----------------------+----------+----------------------------+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer    |
  +-----------------------+----------+----------------------------+
  | op2                   | Variable | $alpha.inlined.endorsement |
  +-----------------------+----------+----------------------------+


  Double_baking_evidence (tag 3)
  ==============================

  +-----------------------+----------------------+---------------------------------------+
  | Name                  | Size                 | Contents                              |
  +=======================+======================+=======================================+
  | Tag                   | 1 byte               | unsigned 8-bit integer                |
  +-----------------------+----------------------+---------------------------------------+
  | # bytes in next field | 4 bytes              | unsigned 30-bit integer               |
  +-----------------------+----------------------+---------------------------------------+
  | bh1                   | Determined from data | $alpha.block_header.alpha.full_header |
  +-----------------------+----------------------+---------------------------------------+
  | # bytes in next field | 4 bytes              | unsigned 30-bit integer               |
  +-----------------------+----------------------+---------------------------------------+
  | bh2                   | Determined from data | $alpha.block_header.alpha.full_header |
  +-----------------------+----------------------+---------------------------------------+


  Activate_account (tag 4)
  ========================

  +--------+----------+------------------------+
  | Name   | Size     | Contents               |
  +========+==========+========================+
  | Tag    | 1 byte   | unsigned 8-bit integer |
  +--------+----------+------------------------+
  | pkh    | 20 bytes | bytes                  |
  +--------+----------+------------------------+
  | secret | 20 bytes | bytes                  |
  +--------+----------+------------------------+


  Proposals (tag 5)
  =================

  +-----------------------+----------+-------------------------+
  | Name                  | Size     | Contents                |
  +=======================+==========+=========================+
  | Tag                   | 1 byte   | unsigned 8-bit integer  |
  +-----------------------+----------+-------------------------+
  | source                | 21 bytes | $public_key_hash        |
  +-----------------------+----------+-------------------------+
  | period                | 4 bytes  | signed 32-bit integer   |
  +-----------------------+----------+-------------------------+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer |
  +-----------------------+----------+-------------------------+
  | proposals             | Variable | sequence of bytes       |
  +-----------------------+----------+-------------------------+


  Ballot (tag 6)
  ==============

  +----------+----------+------------------------+
  | Name     | Size     | Contents               |
  +==========+==========+========================+
  | Tag      | 1 byte   | unsigned 8-bit integer |
  +----------+----------+------------------------+
  | source   | 21 bytes | $public_key_hash       |
  +----------+----------+------------------------+
  | period   | 4 bytes  | signed 32-bit integer  |
  +----------+----------+------------------------+
  | proposal | 32 bytes | bytes                  |
  +----------+----------+------------------------+
  | ballot   | 1 byte   | signed 8-bit integer   |
  +----------+----------+------------------------+


  Double_preendorsement_evidence (tag 7)
  ======================================

  +-----------------------+----------+-------------------------------+
  | Name                  | Size     | Contents                      |
  +=======================+==========+===============================+
  | Tag                   | 1 byte   | unsigned 8-bit integer        |
  +-----------------------+----------+-------------------------------+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer       |
  +-----------------------+----------+-------------------------------+
  | op1                   | Variable | $alpha.inlined.preendorsement |
  +-----------------------+----------+-------------------------------+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer       |
  +-----------------------+----------+-------------------------------+
  | op2                   | Variable | $alpha.inlined.preendorsement |
  +-----------------------+----------+-------------------------------+


  Failing_noop (tag 17)
  =====================

  +-----------------------+----------+-------------------------+
  | Name                  | Size     | Contents                |
  +=======================+==========+=========================+
  | Tag                   | 1 byte   | unsigned 8-bit integer  |
  +-----------------------+----------+-------------------------+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer |
  +-----------------------+----------+-------------------------+
  | arbitrary             | Variable | bytes                   |
  +-----------------------+----------+-------------------------+


  Preendorsement (tag 20)
  =======================

  +--------------------+----------+-------------------------+
  | Name               | Size     | Contents                |
  +====================+==========+=========================+
  | Tag                | 1 byte   | unsigned 8-bit integer  |
  +--------------------+----------+-------------------------+
  | slot               | 2 bytes  | unsigned 16-bit integer |
  +--------------------+----------+-------------------------+
  | level              | 4 bytes  | signed 32-bit integer   |
  +--------------------+----------+-------------------------+
  | round              | 4 bytes  | signed 32-bit integer   |
  +--------------------+----------+-------------------------+
  | block_payload_hash | 32 bytes | bytes                   |
  +--------------------+----------+-------------------------+


  Endorsement (tag 21)
  ====================

  +--------------------+----------+-------------------------+
  | Name               | Size     | Contents                |
  +====================+==========+=========================+
  | Tag                | 1 byte   | unsigned 8-bit integer  |
  +--------------------+----------+-------------------------+
  | slot               | 2 bytes  | unsigned 16-bit integer |
  +--------------------+----------+-------------------------+
  | level              | 4 bytes  | signed 32-bit integer   |
  +--------------------+----------+-------------------------+
  | round              | 4 bytes  | signed 32-bit integer   |
  +--------------------+----------+-------------------------+
  | block_payload_hash | 32 bytes | bytes                   |
  +--------------------+----------+-------------------------+


  Reveal (tag 107)
  ================

  +---------------+----------------------+------------------------+
  | Name          | Size                 | Contents               |
  +===============+======================+========================+
  | Tag           | 1 byte               | unsigned 8-bit integer |
  +---------------+----------------------+------------------------+
  | source        | 21 bytes             | $public_key_hash       |
  +---------------+----------------------+------------------------+
  | fee           | Determined from data | $N.t                   |
  +---------------+----------------------+------------------------+
  | counter       | Determined from data | $N.t                   |
  +---------------+----------------------+------------------------+
  | gas_limit     | Determined from data | $N.t                   |
  +---------------+----------------------+------------------------+
  | storage_limit | Determined from data | $N.t                   |
  +---------------+----------------------+------------------------+
  | public_key    | Determined from data | $public_key            |
  +---------------+----------------------+------------------------+


  Transaction (tag 108)
  =====================

  +----------------------------------+----------------------+-------------------------------------+
  | Name                             | Size                 | Contents                            |
  +==================================+======================+=====================================+
  | Tag                              | 1 byte               | unsigned 8-bit integer              |
  +----------------------------------+----------------------+-------------------------------------+
  | source                           | 21 bytes             | $public_key_hash                    |
  +----------------------------------+----------------------+-------------------------------------+
  | fee                              | Determined from data | $N.t                                |
  +----------------------------------+----------------------+-------------------------------------+
  | counter                          | Determined from data | $N.t                                |
  +----------------------------------+----------------------+-------------------------------------+
  | gas_limit                        | Determined from data | $N.t                                |
  +----------------------------------+----------------------+-------------------------------------+
  | storage_limit                    | Determined from data | $N.t                                |
  +----------------------------------+----------------------+-------------------------------------+
  | amount                           | Determined from data | $N.t                                |
  +----------------------------------+----------------------+-------------------------------------+
  | destination                      | 22 bytes             | $alpha.contract_id                  |
  +----------------------------------+----------------------+-------------------------------------+
  | ? presence of field "parameters" | 1 byte               | boolean (0 for false, 255 for true) |
  +----------------------------------+----------------------+-------------------------------------+
  | parameters                       | Determined from data | $X_4                                |
  +----------------------------------+----------------------+-------------------------------------+


  Origination (tag 109)
  =====================

  +--------------------------------+----------------------+-------------------------------------+
  | Name                           | Size                 | Contents                            |
  +================================+======================+=====================================+
  | Tag                            | 1 byte               | unsigned 8-bit integer              |
  +--------------------------------+----------------------+-------------------------------------+
  | source                         | 21 bytes             | $public_key_hash                    |
  +--------------------------------+----------------------+-------------------------------------+
  | fee                            | Determined from data | $N.t                                |
  +--------------------------------+----------------------+-------------------------------------+
  | counter                        | Determined from data | $N.t                                |
  +--------------------------------+----------------------+-------------------------------------+
  | gas_limit                      | Determined from data | $N.t                                |
  +--------------------------------+----------------------+-------------------------------------+
  | storage_limit                  | Determined from data | $N.t                                |
  +--------------------------------+----------------------+-------------------------------------+
  | balance                        | Determined from data | $N.t                                |
  +--------------------------------+----------------------+-------------------------------------+
  | ? presence of field "delegate" | 1 byte               | boolean (0 for false, 255 for true) |
  +--------------------------------+----------------------+-------------------------------------+
  | delegate                       | 21 bytes             | $public_key_hash                    |
  +--------------------------------+----------------------+-------------------------------------+
  | script                         | Determined from data | $alpha.scripted.contracts           |
  +--------------------------------+----------------------+-------------------------------------+


  Delegation (tag 110)
  ====================

  +--------------------------------+----------------------+-------------------------------------+
  | Name                           | Size                 | Contents                            |
  +================================+======================+=====================================+
  | Tag                            | 1 byte               | unsigned 8-bit integer              |
  +--------------------------------+----------------------+-------------------------------------+
  | source                         | 21 bytes             | $public_key_hash                    |
  +--------------------------------+----------------------+-------------------------------------+
  | fee                            | Determined from data | $N.t                                |
  +--------------------------------+----------------------+-------------------------------------+
  | counter                        | Determined from data | $N.t                                |
  +--------------------------------+----------------------+-------------------------------------+
  | gas_limit                      | Determined from data | $N.t                                |
  +--------------------------------+----------------------+-------------------------------------+
  | storage_limit                  | Determined from data | $N.t                                |
  +--------------------------------+----------------------+-------------------------------------+
  | ? presence of field "delegate" | 1 byte               | boolean (0 for false, 255 for true) |
  +--------------------------------+----------------------+-------------------------------------+
  | delegate                       | 21 bytes             | $public_key_hash                    |
  +--------------------------------+----------------------+-------------------------------------+


  Register_global_constant (tag 111)
  ==================================

  +-----------------------+----------------------+-------------------------+
  | Name                  | Size                 | Contents                |
  +=======================+======================+=========================+
  | Tag                   | 1 byte               | unsigned 8-bit integer  |
  +-----------------------+----------------------+-------------------------+
  | source                | 21 bytes             | $public_key_hash        |
  +-----------------------+----------------------+-------------------------+
  | fee                   | Determined from data | $N.t                    |
  +-----------------------+----------------------+-------------------------+
  | counter               | Determined from data | $N.t                    |
  +-----------------------+----------------------+-------------------------+
  | gas_limit             | Determined from data | $N.t                    |
  +-----------------------+----------------------+-------------------------+
  | storage_limit         | Determined from data | $N.t                    |
  +-----------------------+----------------------+-------------------------+
  | # bytes in next field | 4 bytes              | unsigned 30-bit integer |
  +-----------------------+----------------------+-------------------------+
  | value                 | Variable             | bytes                   |
  +-----------------------+----------------------+-------------------------+


  Set_deposits_limit (tag 112)
  ============================

  +-----------------------------+----------------------+-------------------------------------+
  | Name                        | Size                 | Contents                            |
  +=============================+======================+=====================================+
  | Tag                         | 1 byte               | unsigned 8-bit integer              |
  +-----------------------------+----------------------+-------------------------------------+
  | source                      | 21 bytes             | $public_key_hash                    |
  +-----------------------------+----------------------+-------------------------------------+
  | fee                         | Determined from data | $N.t                                |
  +-----------------------------+----------------------+-------------------------------------+
  | counter                     | Determined from data | $N.t                                |
  +-----------------------------+----------------------+-------------------------------------+
  | gas_limit                   | Determined from data | $N.t                                |
  +-----------------------------+----------------------+-------------------------------------+
  | storage_limit               | Determined from data | $N.t                                |
  +-----------------------------+----------------------+-------------------------------------+
  | ? presence of field "limit" | 1 byte               | boolean (0 for false, 255 for true) |
  +-----------------------------+----------------------+-------------------------------------+
  | limit                       | Determined from data | $N.t                                |
  +-----------------------------+----------------------+-------------------------------------+


  Tx_rollup_origination (tag 150)
  ===============================

  +---------------+----------------------+------------------------+
  | Name          | Size                 | Contents               |
  +===============+======================+========================+
  | Tag           | 1 byte               | unsigned 8-bit integer |
  +---------------+----------------------+------------------------+
  | source        | 21 bytes             | $public_key_hash       |
  +---------------+----------------------+------------------------+
  | fee           | Determined from data | $N.t                   |
  +---------------+----------------------+------------------------+
  | counter       | Determined from data | $N.t                   |
  +---------------+----------------------+------------------------+
  | gas_limit     | Determined from data | $N.t                   |
  +---------------+----------------------+------------------------+
  | storage_limit | Determined from data | $N.t                   |
  +---------------+----------------------+------------------------+


  Sc_rollup_originate (tag 200)
  =============================

  +-----------------------+----------------------+-------------------------+
  | Name                  | Size                 | Contents                |
  +=======================+======================+=========================+
  | Tag                   | 1 byte               | unsigned 8-bit integer  |
  +-----------------------+----------------------+-------------------------+
  | source                | 21 bytes             | $public_key_hash        |
  +-----------------------+----------------------+-------------------------+
  | fee                   | Determined from data | $N.t                    |
  +-----------------------+----------------------+-------------------------+
  | counter               | Determined from data | $N.t                    |
  +-----------------------+----------------------+-------------------------+
  | gas_limit             | Determined from data | $N.t                    |
  +-----------------------+----------------------+-------------------------+
  | storage_limit         | Determined from data | $N.t                    |
  +-----------------------+----------------------+-------------------------+
  | kind                  | 2 bytes              | $X_3                    |
  +-----------------------+----------------------+-------------------------+
  | # bytes in next field | 4 bytes              | unsigned 30-bit integer |
  +-----------------------+----------------------+-------------------------+
  | boot_sector           | Variable             | bytes                   |
  +-----------------------+----------------------+-------------------------+


  Sc_rollup_add_messages (tag 201)
  ================================

  +-----------------------------------------+----------------------+-------------------------+
  | Name                                    | Size                 | Contents                |
  +=========================================+======================+=========================+
  | Tag                                     | 1 byte               | unsigned 8-bit integer  |
  +-----------------------------------------+----------------------+-------------------------+
  | source                                  | 21 bytes             | $public_key_hash        |
  +-----------------------------------------+----------------------+-------------------------+
  | fee                                     | Determined from data | $N.t                    |
  +-----------------------------------------+----------------------+-------------------------+
  | counter                                 | Determined from data | $N.t                    |
  +-----------------------------------------+----------------------+-------------------------+
  | gas_limit                               | Determined from data | $N.t                    |
  +-----------------------------------------+----------------------+-------------------------+
  | storage_limit                           | Determined from data | $N.t                    |
  +-----------------------------------------+----------------------+-------------------------+
  | # bytes in field "alpha.rollup_address" | 4 bytes              | unsigned 30-bit integer |
  +-----------------------------------------+----------------------+-------------------------+
  | rollup                                  | Variable             | bytes                   |
  +-----------------------------------------+----------------------+-------------------------+
  | # bytes in next field                   | 4 bytes              | unsigned 30-bit integer |
  +-----------------------------------------+----------------------+-------------------------+
  | message                                 | Variable             | sequence of $X_2        |
  +-----------------------------------------+----------------------+-------------------------+


  next_operation
  **************

  +--------------------------+----------+---------------------------------------------+
  | Name                     | Size     | Contents                                    |
  +==========================+==========+=============================================+
  | # bytes in next field    | 4 bytes  | unsigned 30-bit integer                     |
  +--------------------------+----------+---------------------------------------------+
  | branch                   | 32 bytes | bytes                                       |
  +--------------------------+----------+---------------------------------------------+
  | # bytes in next 2 fields | 4 bytes  | unsigned 30-bit integer                     |
  +--------------------------+----------+---------------------------------------------+
  | contents                 | Variable | sequence of $alpha.operation.alpha.contents |
  +--------------------------+----------+---------------------------------------------+
  | signature                | 64 bytes | bytes                                       |
  +--------------------------+----------+---------------------------------------------+


  X_1
  ***

  +--------------------------+----------+-----------------------------+
  | 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 $next_operation |
  +--------------------------+----------+-----------------------------+

  
  { "shell_header": $block_header.shell,
    "operations":
      [ { "applied":
            [ { /* 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. */
                "hash": $Operation_hash,
                "branch": $block_hash,
                "data": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ } ... ],
          "refused":
            [ { /* 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. */
                "hash": $Operation_hash,
                "branch": $block_hash,
                "data": /^([a-zA-Z0-9][a-zA-Z0-9])*$/,
                "error": $error } ... ],
          "outdated":
            [ { /* 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. */
                "hash": $Operation_hash,
                "branch": $block_hash,
                "data": /^([a-zA-Z0-9][a-zA-Z0-9])*$/,
                "error": $error } ... ],
          "branch_refused":
            [ { /* 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. */
                "hash": $Operation_hash,
                "branch": $block_hash,
                "data": /^([a-zA-Z0-9][a-zA-Z0-9])*$/,
                "error": $error } ... ],
          "branch_delayed":
            [ { /* 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. */
                "hash": $Operation_hash,
                "branch": $block_hash,
                "data": /^([a-zA-Z0-9][a-zA-Z0-9])*$/,
                "error": $error } ... ] } ... ] }
  $Context_hash:
    /* A hash of context (Base58Check-encoded) */
    $unistring
  $Operation_hash:
    /* A Tezos operation ID (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.shell:
    /* Shell header
       Block header's shell-related content. It contains information such as
       the block level, its predecessor and timestamp. */
    { "level": integer ∈ [-2^31-1, 2^31],
      "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 }
  $error:
    /* The full list of errors is available with the global RPC `GET errors` */
    any
  $fitness:
    /* Block fitness
       The fitness, or score, of a block, that allow the Tezos 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][a-zA-Z0-9])*$/ ... ]
  $timestamp.protocol:
    /* A timestamp as seen by the protocol: second-level precision, epoch
       based. */
    $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                |
  +=======================+======================+=========================+
  | shell_header          | Determined from data | $block_header.shell     |
  +-----------------------+----------------------+-------------------------+
  | # bytes in next field | 4 bytes              | unsigned 30-bit integer |
  +-----------------------+----------------------+-------------------------+
  | operations            | Variable             | sequence of $X_0        |
  +-----------------------+----------------------+-------------------------+


  fitness.elem
  ************

  +-----------------------+----------+-------------------------+
  | Name                  | Size     | Contents                |
  +=======================+==========+=========================+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer |
  +-----------------------+----------+-------------------------+
  | Unnamed field 0       | Variable | bytes                   |
  +-----------------------+----------+-------------------------+


  block_header.shell
  ******************

  +----------------------------+----------+---------------------------+
  | Name                       | Size     | Contents                  |
  +============================+==========+===========================+
  | level                      | 4 bytes  | signed 32-bit integer     |
  +----------------------------+----------+---------------------------+
  | proto                      | 1 byte   | unsigned 8-bit integer    |
  +----------------------------+----------+---------------------------+
  | predecessor                | 32 bytes | bytes                     |
  +----------------------------+----------+---------------------------+
  | timestamp                  | 8 bytes  | signed 64-bit integer     |
  +----------------------------+----------+---------------------------+
  | validation_pass            | 1 byte   | unsigned 8-bit integer    |
  +----------------------------+----------+---------------------------+
  | operations_hash            | 32 bytes | bytes                     |
  +----------------------------+----------+---------------------------+
  | # bytes in field "fitness" | 4 bytes  | unsigned 30-bit integer   |
  +----------------------------+----------+---------------------------+
  | fitness                    | Variable | sequence of $fitness.elem |
  +----------------------------+----------+---------------------------+
  | context                    | 32 bytes | bytes                     |
  +----------------------------+----------+---------------------------+


  X_1
  ***

  +--------------------------+----------+-------------------------+
  | Name                     | Size     | Contents                |
  +==========================+==========+=========================+
  | hash                     | 32 bytes | bytes                   |
  +--------------------------+----------+-------------------------+
  | # bytes in next 2 fields | 4 bytes  | unsigned 30-bit integer |
  +--------------------------+----------+-------------------------+
  | branch                   | 32 bytes | bytes                   |
  +--------------------------+----------+-------------------------+
  | data                     | Variable | bytes                   |
  +--------------------------+----------+-------------------------+


  X_5
  ***

  +--------------------------+----------+-------------------------+
  | Name                     | Size     | Contents                |
  +==========================+==========+=========================+
  | hash                     | 32 bytes | bytes                   |
  +--------------------------+----------+-------------------------+
  | # bytes in next 2 fields | 4 bytes  | unsigned 30-bit integer |
  +--------------------------+----------+-------------------------+
  | branch                   | 32 bytes | bytes                   |
  +--------------------------+----------+-------------------------+
  | data                     | Variable | bytes                   |
  +--------------------------+----------+-------------------------+
  | # bytes in field "error" | 4 bytes  | unsigned 30-bit integer |
  +--------------------------+----------+-------------------------+
  | error                    | Variable | bytes                   |
  +--------------------------+----------+-------------------------+


  X_0
  ***

  +-----------------------+----------+-------------------------+
  | Name                  | Size     | Contents                |
  +=======================+==========+=========================+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer |
  +-----------------------+----------+-------------------------+
  | applied               | Variable | sequence of $X_1        |
  +-----------------------+----------+-------------------------+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer |
  +-----------------------+----------+-------------------------+
  | refused               | Variable | sequence of $X_5        |
  +-----------------------+----------+-------------------------+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer |
  +-----------------------+----------+-------------------------+
  | outdated              | Variable | sequence of $X_5        |
  +-----------------------+----------+-------------------------+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer |
  +-----------------------+----------+-------------------------+
  | branch_refused        | Variable | sequence of $X_5        |
  +-----------------------+----------+-------------------------+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer |
  +-----------------------+----------+-------------------------+
  | branch_delayed        | Variable | sequence of $X_5        |
  +-----------------------+----------+-------------------------+

  

POST ../<block_id>/helpers/preapply/operations

Simulate the validation of an operation.

  [ $next_operation ... ]
  $Context_hash:
    /* A hash of context (Base58Check-encoded) */
    $unistring
  $Ed25519.Public_key_hash:
    /* An Ed25519 public key hash (Base58Check-encoded) */
    $unistring
  $Operation_list_list_hash:
    /* A list of list of operations (Base58Check-encoded) */
    $unistring
  $Protocol_hash:
    /* A Tezos 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
  $alpha.block_header.alpha.full_header:
    /* Shell header
       Block header's shell-related content. It contains information such as
       the block level, its predecessor and timestamp. */
    { "level": integer ∈ [-2^31-1, 2^31],
      "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,
      "payload_hash": $value_hash,
      "payload_round": integer ∈ [-2^31-1, 2^31],
      "proof_of_work_nonce": /^([a-zA-Z0-9][a-zA-Z0-9])*$/,
      "seed_nonce_hash"?: $cycle_nonce,
      "liquidity_baking_escape_vote": boolean,
      "signature": $Signature }
  $alpha.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
  $alpha.entrypoint:
    /* entrypoint
       Named entrypoint to a Michelson smart contract */
    "default"
    || "root"
    || "do"
    || "set_delegate"
    || "remove_delegate"
    || string
    /* named */
  $alpha.inlined.endorsement:
    /* An operation's shell header. */
    { "branch": $block_hash,
      "operations": $alpha.inlined.endorsement_mempool.contents,
      "signature"?: $Signature }
  $alpha.inlined.endorsement_mempool.contents:
    { /* Endorsement */
      "kind": "endorsement",
      "slot": integer ∈ [0, 2^16-1],
      "level": integer ∈ [-2^31-1, 2^31],
      "round": integer ∈ [-2^31-1, 2^31],
      "block_payload_hash": $value_hash }
  $alpha.inlined.preendorsement:
    /* An operation's shell header. */
    { "branch": $block_hash,
      "operations": $alpha.inlined.preendorsement.contents,
      "signature"?: $Signature }
  $alpha.inlined.preendorsement.contents:
    { /* Preendorsement */
      "kind": "preendorsement",
      "slot": integer ∈ [0, 2^16-1],
      "level": integer ∈ [-2^31-1, 2^31],
      "round": integer ∈ [-2^31-1, 2^31],
      "block_payload_hash": $value_hash }
  $alpha.michelson.v1.primitives:
    "ABS"
    | "IF"
    | "SENDER"
    | "NEVER"
    | "False"
    | "DUG"
    | "DIG"
    | "chest_key"
    | "BLAKE2B"
    | "list"
    | "bls12_381_g1"
    | "Pair"
    | "INT"
    | "nat"
    | "never"
    | "storage"
    | "SIZE"
    | "view"
    | "SHA256"
    | "AND"
    | "VIEW"
    | "bytes"
    | "NIL"
    | "map"
    | "SUB"
    | "SAPLING_EMPTY_STATE"
    | "CHECK_SIGNATURE"
    | "VOTING_POWER"
    | "operation"
    | "MAP"
    | "option"
    | "bls12_381_fr"
    | "ADD"
    | "IMPLICIT_ACCOUNT"
    | "SHA512"
    | "int"
    | "LSL"
    | "bls12_381_g2"
    | "ticket"
    | "sapling_transaction"
    | "COMPARE"
    | "SWAP"
    | "STEPS_TO_QUOTA"
    | "DROP"
    | "pair"
    | "BALANCE"
    | "CONCAT"
    | "MUL"
    | "FAILWITH"
    | "Elt"
    | "lambda"
    | "OR"
    | "DIP"
    | "MEM"
    | "ITER"
    | "key_hash"
    | "XOR"
    | "Some"
    | "parameter"
    | "address"
    | "EMPTY_MAP"
    | "None"
    | "TRANSFER_TOKENS"
    | "or"
    | "AMOUNT"
    | "signature"
    | "SHA3"
    | "string"
    | "CHAIN_ID"
    | "HASH_KEY"
    | "IF_LEFT"
    | "CREATE_ACCOUNT"
    | "LT"
    | "TOTAL_VOTING_POWER"
    | "UNPACK"
    | "READ_TICKET"
    | "SELF_ADDRESS"
    | "timestamp"
    | "SET_DELEGATE"
    | "LE"
    | "SOURCE"
    | "CREATE_CONTRACT"
    | "Unit"
    | "SAPLING_VERIFY_UPDATE"
    | "NONE"
    | "CONTRACT"
    | "GE"
    | "SOME"
    | "key"
    | "SELF"
    | "set"
    | "CAR"
    | "NOT"
    | "unit"
    | "CDR"
    | "LOOP_LEFT"
    | "PAIRING_CHECK"
    | "RIGHT"
    | "LEFT"
    | "CAST"
    | "True"
    | "Right"
    | "PACK"
    | "IF_CONS"
    | "KECCAK"
    | "chest"
    | "UNIT"
    | "EMPTY_SET"
    | "NEQ"
    | "LAMBDA"
    | "mutez"
    | "TICKET"
    | "LOOP"
    | "Left"
    | "contract"
    | "LSR"
    | "EMPTY_BIG_MAP"
    | "sapling_state"
    | "JOIN_TICKETS"
    | "LEVEL"
    | "UNPAIR"
    | "SPLIT_TICKET"
    | "PUSH"
    | "big_map"
    | "GT"
    | "chain_id"
    | "constant"
    | "NOW"
    | "IF_NONE"
    | "PAIR"
    | "GET_AND_UPDATE"
    | "UPDATE"
    | "ISNAT"
    | "RENAME"
    | "OPEN_CHEST"
    | "EDIV"
    | "EQ"
    | "ADDRESS"
    | "bool"
    | "EXEC"
    | "GET"
    | "NEG"
    | "SLICE"
    | "DUP"
    | "CONS"
    | "APPLY"
    | "SUB_MUTEZ"
    | "code"
  $alpha.mutez: $positive_bignum
  $alpha.operation.alpha.contents:
    { /* Endorsement */
      "kind": "endorsement",
      "slot": integer ∈ [0, 2^16-1],
      "level": integer ∈ [-2^31-1, 2^31],
      "round": integer ∈ [-2^31-1, 2^31],
      "block_payload_hash": $value_hash }
    || { /* Preendorsement */
         "kind": "preendorsement",
         "slot": integer ∈ [0, 2^16-1],
         "level": integer ∈ [-2^31-1, 2^31],
         "round": integer ∈ [-2^31-1, 2^31],
         "block_payload_hash": $value_hash }
    || { /* Seed_nonce_revelation */
         "kind": "seed_nonce_revelation",
         "level": integer ∈ [-2^31-1, 2^31],
         "nonce": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
    || { /* Double_endorsement_evidence */
         "kind": "double_endorsement_evidence",
         "op1": $alpha.inlined.endorsement,
         "op2": $alpha.inlined.endorsement }
    || { /* Double_preendorsement_evidence */
         "kind": "double_preendorsement_evidence",
         "op1": $alpha.inlined.preendorsement,
         "op2": $alpha.inlined.preendorsement }
    || { /* Double_baking_evidence */
         "kind": "double_baking_evidence",
         "bh1": $alpha.block_header.alpha.full_header,
         "bh2": $alpha.block_header.alpha.full_header }
    || { /* Activate_account */
         "kind": "activate_account",
         "pkh": $Ed25519.Public_key_hash,
         "secret": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
    || { /* Proposals */
         "kind": "proposals",
         "source": $Signature.Public_key_hash,
         "period": integer ∈ [-2^31-1, 2^31],
         "proposals": [ $Protocol_hash ... ] }
    || { /* Ballot */
         "kind": "ballot",
         "source": $Signature.Public_key_hash,
         "period": integer ∈ [-2^31-1, 2^31],
         "proposal": $Protocol_hash,
         "ballot": "nay" | "yay" | "pass" }
    || { /* Reveal */
         "kind": "reveal",
         "source": $Signature.Public_key_hash,
         "fee": $alpha.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "public_key": $Signature.Public_key }
    || { /* Transaction */
         "kind": "transaction",
         "source": $Signature.Public_key_hash,
         "fee": $alpha.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "amount": $alpha.mutez,
         "destination": $alpha.contract_id,
         "parameters"?:
           { "entrypoint": $alpha.entrypoint,
             "value":
               { /* Int */
                 "int": $bignum }
               || { /* String */
                    "string": $unistring }
               || { /* Bytes */
                    "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
               || [ $micheline.alpha.michelson_v1.expression ... ]
               /* Sequence */
               || { /* Prim__generic
                       Generic primitive (any number of args with or without
                       annotations) */
                    "prim": $alpha.michelson.v1.primitives,
                    "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
                    "annots"?: [ string ... ] } } }
    || { /* Origination */
         "kind": "origination",
         "source": $Signature.Public_key_hash,
         "fee": $alpha.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "balance": $alpha.mutez,
         "delegate"?: $Signature.Public_key_hash,
         "script": $alpha.scripted.contracts }
    || { /* Delegation */
         "kind": "delegation",
         "source": $Signature.Public_key_hash,
         "fee": $alpha.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "delegate"?: $Signature.Public_key_hash }
    || { /* Set_deposits_limit */
         "kind": "set_deposits_limit",
         "source": $Signature.Public_key_hash,
         "fee": $alpha.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "limit"?: $alpha.mutez }
    || { /* Failing_noop */
         "kind": "failing_noop",
         "arbitrary": $unistring }
    || { /* Register_global_constant */
         "kind": "register_global_constant",
         "source": $Signature.Public_key_hash,
         "fee": $alpha.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "value":
           { /* Int */
             "int": $bignum }
           || { /* String */
                "string": $unistring }
           || { /* Bytes */
                "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
           || [ $micheline.alpha.michelson_v1.expression ... ]
           /* Sequence */
           || { /* Prim__generic
                   Generic primitive (any number of args with or without
                   annotations) */
                "prim": $alpha.michelson.v1.primitives,
                "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
                "annots"?: [ string ... ] } }
    || { /* Tx_rollup_origination */
         "kind": "tx_rollup_origination",
         "source": $Signature.Public_key_hash,
         "fee": $alpha.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "tx_rollup_origination": any }
    || { /* Sc_rollup_originate */
         "kind": "sc_rollup_originate",
         "source": $Signature.Public_key_hash,
         "fee": $alpha.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "kind": any /* Example_arith smart contract rollup kind */,
         "boot_sector": $unistring }
    || { /* Sc_rollup_add_messages */
         "kind": "sc_rollup_add_messages",
         "source": $Signature.Public_key_hash,
         "fee": $alpha.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "rollup": $alpha.rollup_address,
         "message": [ $unistring ... ] }
  $alpha.rollup_address:
    /* A smart contract rollup address
       A smart contract rollup is identified by a base58 address starting
       with scr1 */
    $unistring
  $alpha.scripted.contracts:
    { "code":
        { /* Int */
          "int": $bignum }
        || { /* String */
             "string": $unistring }
        || { /* Bytes */
             "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
        || [ $micheline.alpha.michelson_v1.expression ... ]
        /* Sequence */
        || { /* Prim__generic
                Generic primitive (any number of args with or without
                annotations) */
             "prim": $alpha.michelson.v1.primitives,
             "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
             "annots"?: [ string ... ] },
      "storage":
        { /* Int */
          "int": $bignum }
        || { /* String */
             "string": $unistring }
        || { /* Bytes */
             "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
        || [ $micheline.alpha.michelson_v1.expression ... ]
        /* Sequence */
        || { /* Prim__generic
                Generic primitive (any number of args with or without
                annotations) */
             "prim": $alpha.michelson.v1.primitives,
             "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
             "annots"?: [ string ... ] } }
  $bignum:
    /* Big number
       Decimal representation of a big number */
    string
  $block_hash:
    /* A block identifier (Base58Check-encoded) */
    $unistring
  $cycle_nonce:
    /* A nonce hash (Base58Check-encoded) */
    $unistring
  $fitness:
    /* Block fitness
       The fitness, or score, of a block, that allow the Tezos 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][a-zA-Z0-9])*$/ ... ]
  $micheline.alpha.michelson_v1.expression:
    { /* Int */
      "int": $bignum }
    || { /* String */
         "string": $unistring }
    || { /* Bytes */
         "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
    || [ $micheline.alpha.michelson_v1.expression ... ]
    /* Sequence */
    || { /* Prim__generic
            Generic primitive (any number of args with or without
            annotations) */
         "prim": $alpha.michelson.v1.primitives,
         "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
         "annots"?: [ string ... ] }
  $next_operation:
    /* An operation's shell header. */
    { "protocol": "ProtoALphaALphaALphaALphaALphaALphaALphaALphaDdp3zK",
      "branch": $block_hash,
      "contents": [ $alpha.operation.alpha.contents ... ],
      "signature": $Signature }
  $positive_bignum:
    /* Positive big number
       Decimal representation of a positive big number */
    string
  $timestamp.protocol:
    /* A timestamp as seen by the protocol: second-level precision, epoch
       based. */
    $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] ... ] }
  $value_hash:
    /* Hash of a consensus value (Base58Check-encoded) */
    $unistring
  +-----------------------+----------+-----------------------------+
  | Name                  | Size     | Contents                    |
  +=======================+==========+=============================+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer     |
  +-----------------------+----------+-----------------------------+
  | Unnamed field 0       | Variable | sequence of $next_operation |
  +-----------------------+----------+-----------------------------+


  X_0
  ***

  +-----------------------+----------+-------------------------+
  | Name                  | Size     | Contents                |
  +=======================+==========+=========================+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer |
  +-----------------------+----------+-------------------------+
  | Unnamed field 0       | Variable | bytes                   |
  +-----------------------+----------+-------------------------+


  X_1 (2 bytes, 16-bit tag)
  *************************

  Example_arith smart contract rollup kind (tag 0)
  ================================================

  +------+---------+-------------------------+
  | Name | Size    | Contents                |
  +======+=========+=========================+
  | Tag  | 2 bytes | unsigned 16-bit integer |
  +------+---------+-------------------------+


  alpha.scripted.contracts
  ************************

  +-----------------------+----------+-------------------------+
  | Name                  | Size     | Contents                |
  +=======================+==========+=========================+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer |
  +-----------------------+----------+-------------------------+
  | code                  | Variable | bytes                   |
  +-----------------------+----------+-------------------------+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer |
  +-----------------------+----------+-------------------------+
  | storage               | Variable | bytes                   |
  +-----------------------+----------+-------------------------+


  alpha.contract_id (22 bytes, 8-bit tag)
  ***************************************

  Implicit (tag 0)
  ================

  +---------------------------+----------+------------------------+
  | Name                      | Size     | Contents               |
  +===========================+==========+========================+
  | Tag                       | 1 byte   | unsigned 8-bit integer |
  +---------------------------+----------+------------------------+
  | Signature.Public_key_hash | 21 bytes | $public_key_hash       |
  +---------------------------+----------+------------------------+


  Originated (tag 1)
  ==================

  +---------------+----------+------------------------+
  | Name          | Size     | Contents               |
  +===============+==========+========================+
  | Tag           | 1 byte   | unsigned 8-bit integer |
  +---------------+----------+------------------------+
  | Contract_hash | 20 bytes | bytes                  |
  +---------------+----------+------------------------+
  | padding       | 1 byte   | padding                |
  +---------------+----------+------------------------+


  alpha.entrypoint (Determined from data, 8-bit tag)
  **************************************************

  default (tag 0)
  ===============

  +------+--------+------------------------+
  | Name | Size   | Contents               |
  +======+========+========================+
  | Tag  | 1 byte | unsigned 8-bit integer |
  +------+--------+------------------------+


  root (tag 1)
  ============

  +------+--------+------------------------+
  | Name | Size   | Contents               |
  +======+========+========================+
  | Tag  | 1 byte | unsigned 8-bit integer |
  +------+--------+------------------------+


  do (tag 2)
  ==========

  +------+--------+------------------------+
  | Name | Size   | Contents               |
  +======+========+========================+
  | Tag  | 1 byte | unsigned 8-bit integer |
  +------+--------+------------------------+


  set_delegate (tag 3)
  ====================

  +------+--------+------------------------+
  | Name | Size   | Contents               |
  +======+========+========================+
  | Tag  | 1 byte | unsigned 8-bit integer |
  +------+--------+------------------------+


  remove_delegate (tag 4)
  =======================

  +------+--------+------------------------+
  | Name | Size   | Contents               |
  +======+========+========================+
  | Tag  | 1 byte | unsigned 8-bit integer |
  +------+--------+------------------------+


  named (tag 255)
  ===============

  +-----------------------+----------+------------------------+
  | Name                  | Size     | Contents               |
  +=======================+==========+========================+
  | Tag                   | 1 byte   | unsigned 8-bit integer |
  +-----------------------+----------+------------------------+
  | # bytes in next field | 1 byte   | unsigned 8-bit integer |
  +-----------------------+----------+------------------------+
  | Unnamed field 0       | Variable | bytes                  |
  +-----------------------+----------+------------------------+


  X_2
  ***

  +-----------------------+----------------------+-------------------------+
  | Name                  | Size                 | Contents                |
  +=======================+======================+=========================+
  | entrypoint            | Determined from data | $alpha.entrypoint       |
  +-----------------------+----------------------+-------------------------+
  | # bytes in next field | 4 bytes              | unsigned 30-bit integer |
  +-----------------------+----------------------+-------------------------+
  | value                 | Variable             | bytes                   |
  +-----------------------+----------------------+-------------------------+


  N.t
  ***

  A variable-length sequence of bytes encoding a Zarith natural number. Each byte has a running unary size bit: the most significant bit of each byte indicates whether this is the last byte in the sequence (0) or whether the sequence continues (1). Size bits ignored, the data is the binary representation of the number in little-endian order.

  +------+----------------------+----------+
  | Name | Size                 | Contents |
  +======+======================+==========+
  | N.t  | Determined from data | bytes    |
  +------+----------------------+----------+


  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                  |
  +-----------------+----------+------------------------+


  alpha.inlined.preendorsement.contents (43 bytes, 8-bit tag)
  ***********************************************************

  Preendorsement (tag 20)
  =======================

  +--------------------+----------+-------------------------+
  | Name               | Size     | Contents                |
  +====================+==========+=========================+
  | Tag                | 1 byte   | unsigned 8-bit integer  |
  +--------------------+----------+-------------------------+
  | slot               | 2 bytes  | unsigned 16-bit integer |
  +--------------------+----------+-------------------------+
  | level              | 4 bytes  | signed 32-bit integer   |
  +--------------------+----------+-------------------------+
  | round              | 4 bytes  | signed 32-bit integer   |
  +--------------------+----------+-------------------------+
  | block_payload_hash | 32 bytes | bytes                   |
  +--------------------+----------+-------------------------+


  alpha.inlined.preendorsement
  ****************************

  +------------+----------+----------------------------------------+
  | Name       | Size     | Contents                               |
  +============+==========+========================================+
  | branch     | 32 bytes | bytes                                  |
  +------------+----------+----------------------------------------+
  | operations | 43 bytes | $alpha.inlined.preendorsement.contents |
  +------------+----------+----------------------------------------+
  | signature  | Variable | bytes                                  |
  +------------+----------+----------------------------------------+


  public_key_hash (21 bytes, 8-bit tag)
  *************************************

  Ed25519 (tag 0)
  ===============

  +-------------------------+----------+------------------------+
  | Name                    | Size     | Contents               |
  +=========================+==========+========================+
  | Tag                     | 1 byte   | unsigned 8-bit integer |
  +-------------------------+----------+------------------------+
  | Ed25519.Public_key_hash | 20 bytes | bytes                  |
  +-------------------------+----------+------------------------+


  Secp256k1 (tag 1)
  =================

  +---------------------------+----------+------------------------+
  | Name                      | Size     | Contents               |
  +===========================+==========+========================+
  | Tag                       | 1 byte   | unsigned 8-bit integer |
  +---------------------------+----------+------------------------+
  | Secp256k1.Public_key_hash | 20 bytes | bytes                  |
  +---------------------------+----------+------------------------+


  P256 (tag 2)
  ============

  +----------------------+----------+------------------------+
  | Name                 | Size     | Contents               |
  +======================+==========+========================+
  | Tag                  | 1 byte   | unsigned 8-bit integer |
  +----------------------+----------+------------------------+
  | P256.Public_key_hash | 20 bytes | bytes                  |
  +----------------------+----------+------------------------+


  fitness.elem
  ************

  +-----------------------+----------+-------------------------+
  | Name                  | Size     | Contents                |
  +=======================+==========+=========================+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer |
  +-----------------------+----------+-------------------------+
  | Unnamed field 0       | Variable | bytes                   |
  +-----------------------+----------+-------------------------+


  alpha.block_header.alpha.full_header
  ************************************

  +---------------------------------------+----------+-------------------------------------+
  | Name                                  | Size     | Contents                            |
  +=======================================+==========+=====================================+
  | level                                 | 4 bytes  | signed 32-bit integer               |
  +---------------------------------------+----------+-------------------------------------+
  | proto                                 | 1 byte   | unsigned 8-bit integer              |
  +---------------------------------------+----------+-------------------------------------+
  | predecessor                           | 32 bytes | bytes                               |
  +---------------------------------------+----------+-------------------------------------+
  | timestamp                             | 8 bytes  | signed 64-bit integer               |
  +---------------------------------------+----------+-------------------------------------+
  | validation_pass                       | 1 byte   | unsigned 8-bit integer              |
  +---------------------------------------+----------+-------------------------------------+
  | operations_hash                       | 32 bytes | bytes                               |
  +---------------------------------------+----------+-------------------------------------+
  | # bytes in field "fitness"            | 4 bytes  | unsigned 30-bit integer             |
  +---------------------------------------+----------+-------------------------------------+
  | fitness                               | Variable | sequence of $fitness.elem           |
  +---------------------------------------+----------+-------------------------------------+
  | context                               | 32 bytes | bytes                               |
  +---------------------------------------+----------+-------------------------------------+
  | payload_hash                          | 32 bytes | bytes                               |
  +---------------------------------------+----------+-------------------------------------+
  | payload_round                         | 4 bytes  | signed 32-bit integer               |
  +---------------------------------------+----------+-------------------------------------+
  | proof_of_work_nonce                   | 8 bytes  | bytes                               |
  +---------------------------------------+----------+-------------------------------------+
  | ? presence of field "seed_nonce_hash" | 1 byte   | boolean (0 for false, 255 for true) |
  +---------------------------------------+----------+-------------------------------------+
  | seed_nonce_hash                       | 32 bytes | bytes                               |
  +---------------------------------------+----------+-------------------------------------+
  | liquidity_baking_escape_vote          | 1 byte   | boolean (0 for false, 255 for true) |
  +---------------------------------------+----------+-------------------------------------+
  | signature                             | 64 bytes | bytes                               |
  +---------------------------------------+----------+-------------------------------------+


  alpha.inlined.endorsement_mempool.contents (43 bytes, 8-bit tag)
  ****************************************************************

  Endorsement (tag 21)
  ====================

  +--------------------+----------+-------------------------+
  | Name               | Size     | Contents                |
  +====================+==========+=========================+
  | Tag                | 1 byte   | unsigned 8-bit integer  |
  +--------------------+----------+-------------------------+
  | slot               | 2 bytes  | unsigned 16-bit integer |
  +--------------------+----------+-------------------------+
  | level              | 4 bytes  | signed 32-bit integer   |
  +--------------------+----------+-------------------------+
  | round              | 4 bytes  | signed 32-bit integer   |
  +--------------------+----------+-------------------------+
  | block_payload_hash | 32 bytes | bytes                   |
  +--------------------+----------+-------------------------+


  alpha.inlined.endorsement
  *************************

  +------------+----------+---------------------------------------------+
  | Name       | Size     | Contents                                    |
  +============+==========+=============================================+
  | branch     | 32 bytes | bytes                                       |
  +------------+----------+---------------------------------------------+
  | operations | 43 bytes | $alpha.inlined.endorsement_mempool.contents |
  +------------+----------+---------------------------------------------+
  | signature  | Variable | bytes                                       |
  +------------+----------+---------------------------------------------+


  alpha.operation.alpha.contents (Determined from data, 8-bit tag)
  ****************************************************************

  Seed_nonce_revelation (tag 1)
  =============================

  +-------+----------+------------------------+
  | Name  | Size     | Contents               |
  +=======+==========+========================+
  | Tag   | 1 byte   | unsigned 8-bit integer |
  +-------+----------+------------------------+
  | level | 4 bytes  | signed 32-bit integer  |
  +-------+----------+------------------------+
  | nonce | 32 bytes | bytes                  |
  +-------+----------+------------------------+


  Double_endorsement_evidence (tag 2)
  ===================================

  +-----------------------+----------+----------------------------+
  | Name                  | Size     | Contents                   |
  +=======================+==========+============================+
  | Tag                   | 1 byte   | unsigned 8-bit integer     |
  +-----------------------+----------+----------------------------+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer    |
  +-----------------------+----------+----------------------------+
  | op1                   | Variable | $alpha.inlined.endorsement |
  +-----------------------+----------+----------------------------+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer    |
  +-----------------------+----------+----------------------------+
  | op2                   | Variable | $alpha.inlined.endorsement |
  +-----------------------+----------+----------------------------+


  Double_baking_evidence (tag 3)
  ==============================

  +-----------------------+----------------------+---------------------------------------+
  | Name                  | Size                 | Contents                              |
  +=======================+======================+=======================================+
  | Tag                   | 1 byte               | unsigned 8-bit integer                |
  +-----------------------+----------------------+---------------------------------------+
  | # bytes in next field | 4 bytes              | unsigned 30-bit integer               |
  +-----------------------+----------------------+---------------------------------------+
  | bh1                   | Determined from data | $alpha.block_header.alpha.full_header |
  +-----------------------+----------------------+---------------------------------------+
  | # bytes in next field | 4 bytes              | unsigned 30-bit integer               |
  +-----------------------+----------------------+---------------------------------------+
  | bh2                   | Determined from data | $alpha.block_header.alpha.full_header |
  +-----------------------+----------------------+---------------------------------------+


  Activate_account (tag 4)
  ========================

  +--------+----------+------------------------+
  | Name   | Size     | Contents               |
  +========+==========+========================+
  | Tag    | 1 byte   | unsigned 8-bit integer |
  +--------+----------+------------------------+
  | pkh    | 20 bytes | bytes                  |
  +--------+----------+------------------------+
  | secret | 20 bytes | bytes                  |
  +--------+----------+------------------------+


  Proposals (tag 5)
  =================

  +-----------------------+----------+-------------------------+
  | Name                  | Size     | Contents                |
  +=======================+==========+=========================+
  | Tag                   | 1 byte   | unsigned 8-bit integer  |
  +-----------------------+----------+-------------------------+
  | source                | 21 bytes | $public_key_hash        |
  +-----------------------+----------+-------------------------+
  | period                | 4 bytes  | signed 32-bit integer   |
  +-----------------------+----------+-------------------------+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer |
  +-----------------------+----------+-------------------------+
  | proposals             | Variable | sequence of bytes       |
  +-----------------------+----------+-------------------------+


  Ballot (tag 6)
  ==============

  +----------+----------+------------------------+
  | Name     | Size     | Contents               |
  +==========+==========+========================+
  | Tag      | 1 byte   | unsigned 8-bit integer |
  +----------+----------+------------------------+
  | source   | 21 bytes | $public_key_hash       |
  +----------+----------+------------------------+
  | period   | 4 bytes  | signed 32-bit integer  |
  +----------+----------+------------------------+
  | proposal | 32 bytes | bytes                  |
  +----------+----------+------------------------+
  | ballot   | 1 byte   | signed 8-bit integer   |
  +----------+----------+------------------------+


  Double_preendorsement_evidence (tag 7)
  ======================================

  +-----------------------+----------+-------------------------------+
  | Name                  | Size     | Contents                      |
  +=======================+==========+===============================+
  | Tag                   | 1 byte   | unsigned 8-bit integer        |
  +-----------------------+----------+-------------------------------+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer       |
  +-----------------------+----------+-------------------------------+
  | op1                   | Variable | $alpha.inlined.preendorsement |
  +-----------------------+----------+-------------------------------+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer       |
  +-----------------------+----------+-------------------------------+
  | op2                   | Variable | $alpha.inlined.preendorsement |
  +-----------------------+----------+-------------------------------+


  Failing_noop (tag 17)
  =====================

  +-----------------------+----------+-------------------------+
  | Name                  | Size     | Contents                |
  +=======================+==========+=========================+
  | Tag                   | 1 byte   | unsigned 8-bit integer  |
  +-----------------------+----------+-------------------------+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer |
  +-----------------------+----------+-------------------------+
  | arbitrary             | Variable | bytes                   |
  +-----------------------+----------+-------------------------+


  Preendorsement (tag 20)
  =======================

  +--------------------+----------+-------------------------+
  | Name               | Size     | Contents                |
  +====================+==========+=========================+
  | Tag                | 1 byte   | unsigned 8-bit integer  |
  +--------------------+----------+-------------------------+
  | slot               | 2 bytes  | unsigned 16-bit integer |
  +--------------------+----------+-------------------------+
  | level              | 4 bytes  | signed 32-bit integer   |
  +--------------------+----------+-------------------------+
  | round              | 4 bytes  | signed 32-bit integer   |
  +--------------------+----------+-------------------------+
  | block_payload_hash | 32 bytes | bytes                   |
  +--------------------+----------+-------------------------+


  Endorsement (tag 21)
  ====================

  +--------------------+----------+-------------------------+
  | Name               | Size     | Contents                |
  +====================+==========+=========================+
  | Tag                | 1 byte   | unsigned 8-bit integer  |
  +--------------------+----------+-------------------------+
  | slot               | 2 bytes  | unsigned 16-bit integer |
  +--------------------+----------+-------------------------+
  | level              | 4 bytes  | signed 32-bit integer   |
  +--------------------+----------+-------------------------+
  | round              | 4 bytes  | signed 32-bit integer   |
  +--------------------+----------+-------------------------+
  | block_payload_hash | 32 bytes | bytes                   |
  +--------------------+----------+-------------------------+


  Reveal (tag 107)
  ================

  +---------------+----------------------+------------------------+
  | Name          | Size                 | Contents               |
  +===============+======================+========================+
  | Tag           | 1 byte               | unsigned 8-bit integer |
  +---------------+----------------------+------------------------+
  | source        | 21 bytes             | $public_key_hash       |
  +---------------+----------------------+------------------------+
  | fee           | Determined from data | $N.t                   |
  +---------------+----------------------+------------------------+
  | counter       | Determined from data | $N.t                   |
  +---------------+----------------------+------------------------+
  | gas_limit     | Determined from data | $N.t                   |
  +---------------+----------------------+------------------------+
  | storage_limit | Determined from data | $N.t                   |
  +---------------+----------------------+------------------------+
  | public_key    | Determined from data | $public_key            |
  +---------------+----------------------+------------------------+


  Transaction (tag 108)
  =====================

  +----------------------------------+----------------------+-------------------------------------+
  | Name                             | Size                 | Contents                            |
  +==================================+======================+=====================================+
  | Tag                              | 1 byte               | unsigned 8-bit integer              |
  +----------------------------------+----------------------+-------------------------------------+
  | source                           | 21 bytes             | $public_key_hash                    |
  +----------------------------------+----------------------+-------------------------------------+
  | fee                              | Determined from data | $N.t                                |
  +----------------------------------+----------------------+-------------------------------------+
  | counter                          | Determined from data | $N.t                                |
  +----------------------------------+----------------------+-------------------------------------+
  | gas_limit                        | Determined from data | $N.t                                |
  +----------------------------------+----------------------+-------------------------------------+
  | storage_limit                    | Determined from data | $N.t                                |
  +----------------------------------+----------------------+-------------------------------------+
  | amount                           | Determined from data | $N.t                                |
  +----------------------------------+----------------------+-------------------------------------+
  | destination                      | 22 bytes             | $alpha.contract_id                  |
  +----------------------------------+----------------------+-------------------------------------+
  | ? presence of field "parameters" | 1 byte               | boolean (0 for false, 255 for true) |
  +----------------------------------+----------------------+-------------------------------------+
  | parameters                       | Determined from data | $X_2                                |
  +----------------------------------+----------------------+-------------------------------------+


  Origination (tag 109)
  =====================

  +--------------------------------+----------------------+-------------------------------------+
  | Name                           | Size                 | Contents                            |
  +================================+======================+=====================================+
  | Tag                            | 1 byte               | unsigned 8-bit integer              |
  +--------------------------------+----------------------+-------------------------------------+
  | source                         | 21 bytes             | $public_key_hash                    |
  +--------------------------------+----------------------+-------------------------------------+
  | fee                            | Determined from data | $N.t                                |
  +--------------------------------+----------------------+-------------------------------------+
  | counter                        | Determined from data | $N.t                                |
  +--------------------------------+----------------------+-------------------------------------+
  | gas_limit                      | Determined from data | $N.t                                |
  +--------------------------------+----------------------+-------------------------------------+
  | storage_limit                  | Determined from data | $N.t                                |
  +--------------------------------+----------------------+-------------------------------------+
  | balance                        | Determined from data | $N.t                                |
  +--------------------------------+----------------------+-------------------------------------+
  | ? presence of field "delegate" | 1 byte               | boolean (0 for false, 255 for true) |
  +--------------------------------+----------------------+-------------------------------------+
  | delegate                       | 21 bytes             | $public_key_hash                    |
  +--------------------------------+----------------------+-------------------------------------+
  | script                         | Determined from data | $alpha.scripted.contracts           |
  +--------------------------------+----------------------+-------------------------------------+


  Delegation (tag 110)
  ====================

  +--------------------------------+----------------------+-------------------------------------+
  | Name                           | Size                 | Contents                            |
  +================================+======================+=====================================+
  | Tag                            | 1 byte               | unsigned 8-bit integer              |
  +--------------------------------+----------------------+-------------------------------------+
  | source                         | 21 bytes             | $public_key_hash                    |
  +--------------------------------+----------------------+-------------------------------------+
  | fee                            | Determined from data | $N.t                                |
  +--------------------------------+----------------------+-------------------------------------+
  | counter                        | Determined from data | $N.t                                |
  +--------------------------------+----------------------+-------------------------------------+
  | gas_limit                      | Determined from data | $N.t                                |
  +--------------------------------+----------------------+-------------------------------------+
  | storage_limit                  | Determined from data | $N.t                                |
  +--------------------------------+----------------------+-------------------------------------+
  | ? presence of field "delegate" | 1 byte               | boolean (0 for false, 255 for true) |
  +--------------------------------+----------------------+-------------------------------------+
  | delegate                       | 21 bytes             | $public_key_hash                    |
  +--------------------------------+----------------------+-------------------------------------+


  Register_global_constant (tag 111)
  ==================================

  +-----------------------+----------------------+-------------------------+
  | Name                  | Size                 | Contents                |
  +=======================+======================+=========================+
  | Tag                   | 1 byte               | unsigned 8-bit integer  |
  +-----------------------+----------------------+-------------------------+
  | source                | 21 bytes             | $public_key_hash        |
  +-----------------------+----------------------+-------------------------+
  | fee                   | Determined from data | $N.t                    |
  +-----------------------+----------------------+-------------------------+
  | counter               | Determined from data | $N.t                    |
  +-----------------------+----------------------+-------------------------+
  | gas_limit             | Determined from data | $N.t                    |
  +-----------------------+----------------------+-------------------------+
  | storage_limit         | Determined from data | $N.t                    |
  +-----------------------+----------------------+-------------------------+
  | # bytes in next field | 4 bytes              | unsigned 30-bit integer |
  +-----------------------+----------------------+-------------------------+
  | value                 | Variable             | bytes                   |
  +-----------------------+----------------------+-------------------------+


  Set_deposits_limit (tag 112)
  ============================

  +-----------------------------+----------------------+-------------------------------------+
  | Name                        | Size                 | Contents                            |
  +=============================+======================+=====================================+
  | Tag                         | 1 byte               | unsigned 8-bit integer              |
  +-----------------------------+----------------------+-------------------------------------+
  | source                      | 21 bytes             | $public_key_hash                    |
  +-----------------------------+----------------------+-------------------------------------+
  | fee                         | Determined from data | $N.t                                |
  +-----------------------------+----------------------+-------------------------------------+
  | counter                     | Determined from data | $N.t                                |
  +-----------------------------+----------------------+-------------------------------------+
  | gas_limit                   | Determined from data | $N.t                                |
  +-----------------------------+----------------------+-------------------------------------+
  | storage_limit               | Determined from data | $N.t                                |
  +-----------------------------+----------------------+-------------------------------------+
  | ? presence of field "limit" | 1 byte               | boolean (0 for false, 255 for true) |
  +-----------------------------+----------------------+-------------------------------------+
  | limit                       | Determined from data | $N.t                                |
  +-----------------------------+----------------------+-------------------------------------+


  Tx_rollup_origination (tag 150)
  ===============================

  +---------------+----------------------+------------------------+
  | Name          | Size                 | Contents               |
  +===============+======================+========================+
  | Tag           | 1 byte               | unsigned 8-bit integer |
  +---------------+----------------------+------------------------+
  | source        | 21 bytes             | $public_key_hash       |
  +---------------+----------------------+------------------------+
  | fee           | Determined from data | $N.t                   |
  +---------------+----------------------+------------------------+
  | counter       | Determined from data | $N.t                   |
  +---------------+----------------------+------------------------+
  | gas_limit     | Determined from data | $N.t                   |
  +---------------+----------------------+------------------------+
  | storage_limit | Determined from data | $N.t                   |
  +---------------+----------------------+------------------------+


  Sc_rollup_originate (tag 200)
  =============================

  +-----------------------+----------------------+-------------------------+
  | Name                  | Size                 | Contents                |
  +=======================+======================+=========================+
  | Tag                   | 1 byte               | unsigned 8-bit integer  |
  +-----------------------+----------------------+-------------------------+
  | source                | 21 bytes             | $public_key_hash        |
  +-----------------------+----------------------+-------------------------+
  | fee                   | Determined from data | $N.t                    |
  +-----------------------+----------------------+-------------------------+
  | counter               | Determined from data | $N.t                    |
  +-----------------------+----------------------+-------------------------+
  | gas_limit             | Determined from data | $N.t                    |
  +-----------------------+----------------------+-------------------------+
  | storage_limit         | Determined from data | $N.t                    |
  +-----------------------+----------------------+-------------------------+
  | kind                  | 2 bytes              | $X_1                    |
  +-----------------------+----------------------+-------------------------+
  | # bytes in next field | 4 bytes              | unsigned 30-bit integer |
  +-----------------------+----------------------+-------------------------+
  | boot_sector           | Variable             | bytes                   |
  +-----------------------+----------------------+-------------------------+


  Sc_rollup_add_messages (tag 201)
  ================================

  +-----------------------------------------+----------------------+-------------------------+
  | Name                                    | Size                 | Contents                |
  +=========================================+======================+=========================+
  | Tag                                     | 1 byte               | unsigned 8-bit integer  |
  +-----------------------------------------+----------------------+-------------------------+
  | source                                  | 21 bytes             | $public_key_hash        |
  +-----------------------------------------+----------------------+-------------------------+
  | fee                                     | Determined from data | $N.t                    |
  +-----------------------------------------+----------------------+-------------------------+
  | counter                                 | Determined from data | $N.t                    |
  +-----------------------------------------+----------------------+-------------------------+
  | gas_limit                               | Determined from data | $N.t                    |
  +-----------------------------------------+----------------------+-------------------------+
  | storage_limit                           | Determined from data | $N.t                    |
  +-----------------------------------------+----------------------+-------------------------+
  | # bytes in field "alpha.rollup_address" | 4 bytes              | unsigned 30-bit integer |
  +-----------------------------------------+----------------------+-------------------------+
  | rollup                                  | Variable             | bytes                   |
  +-----------------------------------------+----------------------+-------------------------+
  | # bytes in next field                   | 4 bytes              | unsigned 30-bit integer |
  +-----------------------------------------+----------------------+-------------------------+
  | message                                 | Variable             | sequence of $X_0        |
  +-----------------------------------------+----------------------+-------------------------+


  next_operation
  **************

  +--------------------------+----------+---------------------------------------------+
  | Name                     | Size     | Contents                                    |
  +==========================+==========+=============================================+
  | # bytes in next field    | 4 bytes  | unsigned 30-bit integer                     |
  +--------------------------+----------+---------------------------------------------+
  | branch                   | 32 bytes | bytes                                       |
  +--------------------------+----------+---------------------------------------------+
  | # bytes in next 2 fields | 4 bytes  | unsigned 30-bit integer                     |
  +--------------------------+----------+---------------------------------------------+
  | contents                 | Variable | sequence of $alpha.operation.alpha.contents |
  +--------------------------+----------+---------------------------------------------+
  | signature                | 64 bytes | bytes                                       |
  +--------------------------+----------+---------------------------------------------+

  
  [ $alpha.operation.alpha.operation_with_metadata ... ]
  $Blinded public key hash:
    /* A blinded public key hash (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_list_list_hash:
    /* A list of list of operations (Base58Check-encoded) */
    $unistring
  $Protocol_hash:
    /* A Tezos protocol ID (Base58Check-encoded) */
    $unistring
  $Sc_rollup_hash:
    /* A smart contract rollup address (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
  $alpha.big_map_id:
    /* Big map identifier
       A big map identifier */
    $bignum
  $alpha.block_header.alpha.full_header:
    /* Shell header
       Block header's shell-related content. It contains information such as
       the block level, its predecessor and timestamp. */
    { "level": integer ∈ [-2^31-1, 2^31],
      "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,
      "payload_hash": $value_hash,
      "payload_round": integer ∈ [-2^31-1, 2^31],
      "proof_of_work_nonce": /^([a-zA-Z0-9][a-zA-Z0-9])*$/,
      "seed_nonce_hash"?: $cycle_nonce,
      "liquidity_baking_escape_vote": boolean,
      "signature": $Signature }
  $alpha.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
  $alpha.entrypoint:
    /* entrypoint
       Named entrypoint to a Michelson smart contract */
    "default"
    || "root"
    || "do"
    || "set_delegate"
    || "remove_delegate"
    || string
    /* named */
  $alpha.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
  $alpha.inlined.endorsement:
    /* An operation's shell header. */
    { "branch": $block_hash,
      "operations": $alpha.inlined.endorsement_mempool.contents,
      "signature"?: $Signature }
  $alpha.inlined.endorsement_mempool.contents:
    { /* Endorsement */
      "kind": "endorsement",
      "slot": integer ∈ [0, 2^16-1],
      "level": integer ∈ [-2^31-1, 2^31],
      "round": integer ∈ [-2^31-1, 2^31],
      "block_payload_hash": $value_hash }
  $alpha.inlined.preendorsement:
    /* An operation's shell header. */
    { "branch": $block_hash,
      "operations": $alpha.inlined.preendorsement.contents,
      "signature"?: $Signature }
  $alpha.inlined.preendorsement.contents:
    { /* Preendorsement */
      "kind": "preendorsement",
      "slot": integer ∈ [0, 2^16-1],
      "level": integer ∈ [-2^31-1, 2^31],
      "round": integer ∈ [-2^31-1, 2^31],
      "block_payload_hash": $value_hash }
  $alpha.lazy_storage_diff:
    [ { /* big_map */
        "kind": "big_map",
        "id": $alpha.big_map_id,
        "diff":
          { /* update */
            "action": "update",
            "updates":
              [ { "key_hash": $script_expr,
                  "key":
                    { /* Int */
                      "int": $bignum }
                    || { /* String */
                         "string": $unistring }
                    || { /* Bytes */
                         "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                    || [ $micheline.alpha.michelson_v1.expression ... ]
                    /* Sequence */
                    || { /* Prim__generic
                            Generic primitive (any number of args with or
                            without annotations) */
                         "prim": $alpha.michelson.v1.primitives,
                         "args"?:
                           [ $micheline.alpha.michelson_v1.expression ... ],
                         "annots"?: [ string ... ] },
                  "value"?:
                    { /* Int */
                      "int": $bignum }
                    || { /* String */
                         "string": $unistring }
                    || { /* Bytes */
                         "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                    || [ $micheline.alpha.michelson_v1.expression ... ]
                    /* Sequence */
                    || { /* Prim__generic
                            Generic primitive (any number of args with or
                            without annotations) */
                         "prim": $alpha.michelson.v1.primitives,
                         "args"?:
                           [ $micheline.alpha.michelson_v1.expression ... ],
                         "annots"?: [ string ... ] } } ... ] }
          || { /* remove */
               "action": "remove" }
          || { /* copy */
               "action": "copy",
               "source": $alpha.big_map_id,
               "updates":
                 [ { "key_hash": $script_expr,
                     "key":
                       { /* Int */
                         "int": $bignum }
                       || { /* String */
                            "string": $unistring }
                       || { /* Bytes */
                            "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                       || [ $micheline.alpha.michelson_v1.expression ... ]
                       /* Sequence */
                       || { /* Prim__generic
                               Generic primitive (any number of args with or
                               without annotations) */
                            "prim": $alpha.michelson.v1.primitives,
                            "args"?:
                              [ $micheline.alpha.michelson_v1.expression ... ],
                            "annots"?: [ string ... ] },
                     "value"?:
                       { /* Int */
                         "int": $bignum }
                       || { /* String */
                            "string": $unistring }
                       || { /* Bytes */
                            "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                       || [ $micheline.alpha.michelson_v1.expression ... ]
                       /* Sequence */
                       || { /* Prim__generic
                               Generic primitive (any number of args with or
                               without annotations) */
                            "prim": $alpha.michelson.v1.primitives,
                            "args"?:
                              [ $micheline.alpha.michelson_v1.expression ... ],
                            "annots"?: [ string ... ] } } ... ] }
          || { /* alloc */
               "action": "alloc",
               "updates":
                 [ { "key_hash": $script_expr,
                     "key":
                       { /* Int */
                         "int": $bignum }
                       || { /* String */
                            "string": $unistring }
                       || { /* Bytes */
                            "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                       || [ $micheline.alpha.michelson_v1.expression ... ]
                       /* Sequence */
                       || { /* Prim__generic
                               Generic primitive (any number of args with or
                               without annotations) */
                            "prim": $alpha.michelson.v1.primitives,
                            "args"?:
                              [ $micheline.alpha.michelson_v1.expression ... ],
                            "annots"?: [ string ... ] },
                     "value"?:
                       { /* Int */
                         "int": $bignum }
                       || { /* String */
                            "string": $unistring }
                       || { /* Bytes */
                            "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                       || [ $micheline.alpha.michelson_v1.expression ... ]
                       /* Sequence */
                       || { /* Prim__generic
                               Generic primitive (any number of args with or
                               without annotations) */
                            "prim": $alpha.michelson.v1.primitives,
                            "args"?:
                              [ $micheline.alpha.michelson_v1.expression ... ],
                            "annots"?: [ string ... ] } } ... ],
               "key_type":
                 { /* Int */
                   "int": $bignum }
                 || { /* String */
                      "string": $unistring }
                 || { /* Bytes */
                      "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                 || [ $micheline.alpha.michelson_v1.expression ... ]
                 /* Sequence */
                 || { /* Prim__generic
                         Generic primitive (any number of args with or
                         without annotations) */
                      "prim": $alpha.michelson.v1.primitives,
                      "args"?:
                        [ $micheline.alpha.michelson_v1.expression ... ],
                      "annots"?: [ string ... ] },
               "value_type":
                 { /* Int */
                   "int": $bignum }
                 || { /* String */
                      "string": $unistring }
                 || { /* Bytes */
                      "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                 || [ $micheline.alpha.michelson_v1.expression ... ]
                 /* Sequence */
                 || { /* Prim__generic
                         Generic primitive (any number of args with or
                         without annotations) */
                      "prim": $alpha.michelson.v1.primitives,
                      "args"?:
                        [ $micheline.alpha.michelson_v1.expression ... ],
                      "annots"?: [ string ... ] } } }
      || { /* sapling_state */
           "kind": "sapling_state",
           "id": $alpha.sapling_state_id,
           "diff":
             { /* update */
               "action": "update",
               "updates":
                 { "commitments_and_ciphertexts":
                     [ [ $sapling.transaction.commitment,
                         $sapling.transaction.ciphertext ] ... ],
                   "nullifiers": [ $sapling.transaction.nullifier ... ] } }
             || { /* remove */
                  "action": "remove" }
             || { /* copy */
                  "action": "copy",
                  "source": $alpha.sapling_state_id,
                  "updates":
                    { "commitments_and_ciphertexts":
                        [ [ $sapling.transaction.commitment,
                            $sapling.transaction.ciphertext ] ... ],
                      "nullifiers": [ $sapling.transaction.nullifier ... ] } }
             || { /* alloc */
                  "action": "alloc",
                  "updates":
                    { "commitments_and_ciphertexts":
                        [ [ $sapling.transaction.commitment,
                            $sapling.transaction.ciphertext ] ... ],
                      "nullifiers": [ $sapling.transaction.nullifier ... ] },
                  "memo_size": integer ∈ [0, 2^16-1] } } ... ]
  $alpha.michelson.v1.primitives:
    "ABS"
    | "IF"
    | "SENDER"
    | "NEVER"
    | "False"
    | "DUG"
    | "DIG"
    | "chest_key"
    | "BLAKE2B"
    | "list"
    | "bls12_381_g1"
    | "Pair"
    | "INT"
    | "nat"
    | "never"
    | "storage"
    | "SIZE"
    | "view"
    | "SHA256"
    | "AND"
    | "VIEW"
    | "bytes"
    | "NIL"
    | "map"
    | "SUB"
    | "SAPLING_EMPTY_STATE"
    | "CHECK_SIGNATURE"
    | "VOTING_POWER"
    | "operation"
    | "MAP"
    | "option"
    | "bls12_381_fr"
    | "ADD"
    | "IMPLICIT_ACCOUNT"
    | "SHA512"
    | "int"
    | "LSL"
    | "bls12_381_g2"
    | "ticket"
    | "sapling_transaction"
    | "COMPARE"
    | "SWAP"
    | "STEPS_TO_QUOTA"
    | "DROP"
    | "pair"
    | "BALANCE"
    | "CONCAT"
    | "MUL"
    | "FAILWITH"
    | "Elt"
    | "lambda"
    | "OR"
    | "DIP"
    | "MEM"
    | "ITER"
    | "key_hash"
    | "XOR"
    | "Some"
    | "parameter"
    | "address"
    | "EMPTY_MAP"
    | "None"
    | "TRANSFER_TOKENS"
    | "or"
    | "AMOUNT"
    | "signature"
    | "SHA3"
    | "string"
    | "CHAIN_ID"
    | "HASH_KEY"
    | "IF_LEFT"
    | "CREATE_ACCOUNT"
    | "LT"
    | "TOTAL_VOTING_POWER"
    | "UNPACK"
    | "READ_TICKET"
    | "SELF_ADDRESS"
    | "timestamp"
    | "SET_DELEGATE"
    | "LE"
    | "SOURCE"
    | "CREATE_CONTRACT"
    | "Unit"
    | "SAPLING_VERIFY_UPDATE"
    | "NONE"
    | "CONTRACT"
    | "GE"
    | "SOME"
    | "key"
    | "SELF"
    | "set"
    | "CAR"
    | "NOT"
    | "unit"
    | "CDR"
    | "LOOP_LEFT"
    | "PAIRING_CHECK"
    | "RIGHT"
    | "LEFT"
    | "CAST"
    | "True"
    | "Right"
    | "PACK"
    | "IF_CONS"
    | "KECCAK"
    | "chest"
    | "UNIT"
    | "EMPTY_SET"
    | "NEQ"
    | "LAMBDA"
    | "mutez"
    | "TICKET"
    | "LOOP"
    | "Left"
    | "contract"
    | "LSR"
    | "EMPTY_BIG_MAP"
    | "sapling_state"
    | "JOIN_TICKETS"
    | "LEVEL"
    | "UNPAIR"
    | "SPLIT_TICKET"
    | "PUSH"
    | "big_map"
    | "GT"
    | "chain_id"
    | "constant"
    | "NOW"
    | "IF_NONE"
    | "PAIR"
    | "GET_AND_UPDATE"
    | "UPDATE"
    | "ISNAT"
    | "RENAME"
    | "OPEN_CHEST"
    | "EDIV"
    | "EQ"
    | "ADDRESS"
    | "bool"
    | "EXEC"
    | "GET"
    | "NEG"
    | "SLICE"
    | "DUP"
    | "CONS"
    | "APPLY"
    | "SUB_MUTEZ"
    | "code"
  $alpha.mutez: $positive_bignum
  $alpha.operation.alpha.contents:
    { /* Endorsement */
      "kind": "endorsement",
      "slot": integer ∈ [0, 2^16-1],
      "level": integer ∈ [-2^31-1, 2^31],
      "round": integer ∈ [-2^31-1, 2^31],
      "block_payload_hash": $value_hash }
    || { /* Preendorsement */
         "kind": "preendorsement",
         "slot": integer ∈ [0, 2^16-1],
         "level": integer ∈ [-2^31-1, 2^31],
         "round": integer ∈ [-2^31-1, 2^31],
         "block_payload_hash": $value_hash }
    || { /* Seed_nonce_revelation */
         "kind": "seed_nonce_revelation",
         "level": integer ∈ [-2^31-1, 2^31],
         "nonce": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
    || { /* Double_endorsement_evidence */
         "kind": "double_endorsement_evidence",
         "op1": $alpha.inlined.endorsement,
         "op2": $alpha.inlined.endorsement }
    || { /* Double_preendorsement_evidence */
         "kind": "double_preendorsement_evidence",
         "op1": $alpha.inlined.preendorsement,
         "op2": $alpha.inlined.preendorsement }
    || { /* Double_baking_evidence */
         "kind": "double_baking_evidence",
         "bh1": $alpha.block_header.alpha.full_header,
         "bh2": $alpha.block_header.alpha.full_header }
    || { /* Activate_account */
         "kind": "activate_account",
         "pkh": $Ed25519.Public_key_hash,
         "secret": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
    || { /* Proposals */
         "kind": "proposals",
         "source": $Signature.Public_key_hash,
         "period": integer ∈ [-2^31-1, 2^31],
         "proposals": [ $Protocol_hash ... ] }
    || { /* Ballot */
         "kind": "ballot",
         "source": $Signature.Public_key_hash,
         "period": integer ∈ [-2^31-1, 2^31],
         "proposal": $Protocol_hash,
         "ballot": "nay" | "yay" | "pass" }
    || { /* Reveal */
         "kind": "reveal",
         "source": $Signature.Public_key_hash,
         "fee": $alpha.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "public_key": $Signature.Public_key }
    || { /* Transaction */
         "kind": "transaction",
         "source": $Signature.Public_key_hash,
         "fee": $alpha.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "amount": $alpha.mutez,
         "destination": $alpha.contract_id,
         "parameters"?:
           { "entrypoint": $alpha.entrypoint,
             "value":
               { /* Int */
                 "int": $bignum }
               || { /* String */
                    "string": $unistring }
               || { /* Bytes */
                    "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
               || [ $micheline.alpha.michelson_v1.expression ... ]
               /* Sequence */
               || { /* Prim__generic
                       Generic primitive (any number of args with or without
                       annotations) */
                    "prim": $alpha.michelson.v1.primitives,
                    "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
                    "annots"?: [ string ... ] } } }
    || { /* Origination */
         "kind": "origination",
         "source": $Signature.Public_key_hash,
         "fee": $alpha.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "balance": $alpha.mutez,
         "delegate"?: $Signature.Public_key_hash,
         "script": $alpha.scripted.contracts }
    || { /* Delegation */
         "kind": "delegation",
         "source": $Signature.Public_key_hash,
         "fee": $alpha.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "delegate"?: $Signature.Public_key_hash }
    || { /* Set_deposits_limit */
         "kind": "set_deposits_limit",
         "source": $Signature.Public_key_hash,
         "fee": $alpha.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "limit"?: $alpha.mutez }
    || { /* Failing_noop */
         "kind": "failing_noop",
         "arbitrary": $unistring }
    || { /* Register_global_constant */
         "kind": "register_global_constant",
         "source": $Signature.Public_key_hash,
         "fee": $alpha.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "value":
           { /* Int */
             "int": $bignum }
           || { /* String */
                "string": $unistring }
           || { /* Bytes */
                "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
           || [ $micheline.alpha.michelson_v1.expression ... ]
           /* Sequence */
           || { /* Prim__generic
                   Generic primitive (any number of args with or without
                   annotations) */
                "prim": $alpha.michelson.v1.primitives,
                "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
                "annots"?: [ string ... ] } }
    || { /* Tx_rollup_origination */
         "kind": "tx_rollup_origination",
         "source": $Signature.Public_key_hash,
         "fee": $alpha.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "tx_rollup_origination": any }
    || { /* Sc_rollup_originate */
         "kind": "sc_rollup_originate",
         "source": $Signature.Public_key_hash,
         "fee": $alpha.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "kind": any /* Example_arith smart contract rollup kind */,
         "boot_sector": $unistring }
    || { /* Sc_rollup_add_messages */
         "kind": "sc_rollup_add_messages",
         "source": $Signature.Public_key_hash,
         "fee": $alpha.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "rollup": $alpha.rollup_address,
         "message": [ $unistring ... ] }
  $alpha.operation.alpha.internal_operation_result:
    { /* reveal */
      "kind": "reveal",
      "source": $alpha.contract_id,
      "nonce": integer ∈ [0, 2^16-1],
      "public_key": $Signature.Public_key,
      "result": $alpha.operation.alpha.operation_result.reveal }
    || { /* transaction */
         "kind": "transaction",
         "source": $alpha.contract_id,
         "nonce": integer ∈ [0, 2^16-1],
         "amount": $alpha.mutez,
         "destination": $alpha.contract_id,
         "parameters"?:
           { "entrypoint": $alpha.entrypoint,
             "value":
               { /* Int */
                 "int": $bignum }
               || { /* String */
                    "string": $unistring }
               || { /* Bytes */
                    "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
               || [ $micheline.alpha.michelson_v1.expression ... ]
               /* Sequence */
               || { /* Prim__generic
                       Generic primitive (any number of args with or without
                       annotations) */
                    "prim": $alpha.michelson.v1.primitives,
                    "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
                    "annots"?: [ string ... ] } },
         "result": $alpha.operation.alpha.operation_result.transaction }
    || { /* origination */
         "kind": "origination",
         "source": $alpha.contract_id,
         "nonce": integer ∈ [0, 2^16-1],
         "balance": $alpha.mutez,
         "delegate"?: $Signature.Public_key_hash,
         "script": $alpha.scripted.contracts,
         "result": $alpha.operation.alpha.operation_result.origination }
    || { /* delegation */
         "kind": "delegation",
         "source": $alpha.contract_id,
         "nonce": integer ∈ [0, 2^16-1],
         "delegate"?: $Signature.Public_key_hash,
         "result": $alpha.operation.alpha.operation_result.delegation }
    || { /* register_global_constant */
         "kind": "register_global_constant",
         "source": $alpha.contract_id,
         "nonce": integer ∈ [0, 2^16-1],
         "value":
           { /* Int */
             "int": $bignum }
           || { /* String */
                "string": $unistring }
           || { /* Bytes */
                "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
           || [ $micheline.alpha.michelson_v1.expression ... ]
           /* Sequence */
           || { /* Prim__generic
                   Generic primitive (any number of args with or without
                   annotations) */
                "prim": $alpha.michelson.v1.primitives,
                "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
                "annots"?: [ string ... ] },
         "result":
           $alpha.operation.alpha.operation_result.register_global_constant }
    || { /* set_deposits_limit */
         "kind": "set_deposits_limit",
         "source": $alpha.contract_id,
         "nonce": integer ∈ [0, 2^16-1],
         "limit"?: $alpha.mutez,
         "result": $alpha.operation.alpha.operation_result.set_deposits_limit }
    || { /* tx_rollup_origination */
         "kind": "tx_rollup_origination",
         "source": $alpha.contract_id,
         "nonce": integer ∈ [0, 2^16-1],
         "tx_rollup_origination": any,
         "result":
           $alpha.operation.alpha.operation_result.tx_rollup_origination }
    || { /* sc_rollup_originate */
         "kind": "sc_rollup_originate",
         "source": $alpha.contract_id,
         "nonce": integer ∈ [0, 2^16-1],
         "kind": any /* Example_arith smart contract rollup kind */,
         "boot_sector": $unistring,
         "result":
           $alpha.operation.alpha.operation_result.sc_rollup_originate }
    || { /* sc_rollup_add_messages */
         "kind": "sc_rollup_add_messages",
         "source": $alpha.contract_id,
         "nonce": integer ∈ [0, 2^16-1],
         "rollup": $alpha.rollup_address,
         "message": [ $unistring ... ],
         "result":
           $alpha.operation.alpha.operation_result.sc_rollup_add_messages }
  $alpha.operation.alpha.operation_contents_and_result:
    { /* Seed_nonce_revelation */
      "kind": "seed_nonce_revelation",
      "level": integer ∈ [-2^31-1, 2^31],
      "nonce": /^([a-zA-Z0-9][a-zA-Z0-9])*$/,
      "metadata":
        { "balance_updates"?: $alpha.operation_metadata.alpha.balance_updates } }
    || { /* Endorsement */
         "kind": "endorsement",
         "slot": integer ∈ [0, 2^16-1],
         "level": integer ∈ [-2^31-1, 2^31],
         "round": integer ∈ [-2^31-1, 2^31],
         "block_payload_hash": $value_hash,
         "metadata":
           { "balance_updates"?:
               $alpha.operation_metadata.alpha.balance_updates,
             "delegate": $Signature.Public_key_hash,
             "endorsement_power": integer ∈ [-2^30, 2^30] } }
    || { /* Preendorsement */
         "kind": "preendorsement",
         "slot": integer ∈ [0, 2^16-1],
         "level": integer ∈ [-2^31-1, 2^31],
         "round": integer ∈ [-2^31-1, 2^31],
         "block_payload_hash": $value_hash,
         "metadata":
           { "balance_updates"?:
               $alpha.operation_metadata.alpha.balance_updates,
             "delegate": $Signature.Public_key_hash,
             "preendorsement_power": integer ∈ [-2^30, 2^30] } }
    || { /* Double_preendorsement_evidence */
         "kind": "double_preendorsement_evidence",
         "op1": $alpha.inlined.preendorsement,
         "op2": $alpha.inlined.preendorsement,
         "metadata":
           { "balance_updates"?:
               $alpha.operation_metadata.alpha.balance_updates } }
    || { /* Double_endorsement_evidence */
         "kind": "double_endorsement_evidence",
         "op1": $alpha.inlined.endorsement,
         "op2": $alpha.inlined.endorsement,
         "metadata":
           { "balance_updates"?:
               $alpha.operation_metadata.alpha.balance_updates } }
    || { /* Double_baking_evidence */
         "kind": "double_baking_evidence",
         "bh1": $alpha.block_header.alpha.full_header,
         "bh2": $alpha.block_header.alpha.full_header,
         "metadata":
           { "balance_updates"?:
               $alpha.operation_metadata.alpha.balance_updates } }
    || { /* Activate_account */
         "kind": "activate_account",
         "pkh": $Ed25519.Public_key_hash,
         "secret": /^([a-zA-Z0-9][a-zA-Z0-9])*$/,
         "metadata":
           { "balance_updates"?:
               $alpha.operation_metadata.alpha.balance_updates } }
    || { /* Proposals */
         "kind": "proposals",
         "source": $Signature.Public_key_hash,
         "period": integer ∈ [-2^31-1, 2^31],
         "proposals": [ $Protocol_hash ... ],
         "metadata": {  } }
    || { /* Ballot */
         "kind": "ballot",
         "source": $Signature.Public_key_hash,
         "period": integer ∈ [-2^31-1, 2^31],
         "proposal": $Protocol_hash,
         "ballot": "nay" | "yay" | "pass",
         "metadata": {  } }
    || { /* Reveal */
         "kind": "reveal",
         "source": $Signature.Public_key_hash,
         "fee": $alpha.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "public_key": $Signature.Public_key,
         "metadata":
           { "balance_updates"?:
               $alpha.operation_metadata.alpha.balance_updates,
             "operation_result":
               $alpha.operation.alpha.operation_result.reveal,
             "internal_operation_results"?:
               [ $alpha.operation.alpha.internal_operation_result ... ] } }
    || { /* Transaction */
         "kind": "transaction",
         "source": $Signature.Public_key_hash,
         "fee": $alpha.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "amount": $alpha.mutez,
         "destination": $alpha.contract_id,
         "parameters"?:
           { "entrypoint": $alpha.entrypoint,
             "value":
               { /* Int */
                 "int": $bignum }
               || { /* String */
                    "string": $unistring }
               || { /* Bytes */
                    "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
               || [ $micheline.alpha.michelson_v1.expression ... ]
               /* Sequence */
               || { /* Prim__generic
                       Generic primitive (any number of args with or without
                       annotations) */
                    "prim": $alpha.michelson.v1.primitives,
                    "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
                    "annots"?: [ string ... ] } },
         "metadata":
           { "balance_updates"?:
               $alpha.operation_metadata.alpha.balance_updates,
             "operation_result":
               $alpha.operation.alpha.operation_result.transaction,
             "internal_operation_results"?:
               [ $alpha.operation.alpha.internal_operation_result ... ] } }
    || { /* Origination */
         "kind": "origination",
         "source": $Signature.Public_key_hash,
         "fee": $alpha.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "balance": $alpha.mutez,
         "delegate"?: $Signature.Public_key_hash,
         "script": $alpha.scripted.contracts,
         "metadata":
           { "balance_updates"?:
               $alpha.operation_metadata.alpha.balance_updates,
             "operation_result":
               $alpha.operation.alpha.operation_result.origination,
             "internal_operation_results"?:
               [ $alpha.operation.alpha.internal_operation_result ... ] } }
    || { /* Delegation */
         "kind": "delegation",
         "source": $Signature.Public_key_hash,
         "fee": $alpha.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "delegate"?: $Signature.Public_key_hash,
         "metadata":
           { "balance_updates"?:
               $alpha.operation_metadata.alpha.balance_updates,
             "operation_result":
               $alpha.operation.alpha.operation_result.delegation,
             "internal_operation_results"?:
               [ $alpha.operation.alpha.internal_operation_result ... ] } }
    || { /* Register_global_constant */
         "kind": "register_global_constant",
         "source": $Signature.Public_key_hash,
         "fee": $alpha.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "value":
           { /* Int */
             "int": $bignum }
           || { /* String */
                "string": $unistring }
           || { /* Bytes */
                "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
           || [ $micheline.alpha.michelson_v1.expression ... ]
           /* Sequence */
           || { /* Prim__generic
                   Generic primitive (any number of args with or without
                   annotations) */
                "prim": $alpha.michelson.v1.primitives,
                "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
                "annots"?: [ string ... ] },
         "metadata":
           { "balance_updates"?:
               $alpha.operation_metadata.alpha.balance_updates,
             "operation_result":
               $alpha.operation.alpha.operation_result.register_global_constant,
             "internal_operation_results"?:
               [ $alpha.operation.alpha.internal_operation_result ... ] } }
    || { /* Set_deposits_limit */
         "kind": "set_deposits_limit",
         "source": $Signature.Public_key_hash,
         "fee": $alpha.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "limit"?: $alpha.mutez,
         "metadata":
           { "balance_updates"?:
               $alpha.operation_metadata.alpha.balance_updates,
             "operation_result":
               $alpha.operation.alpha.operation_result.set_deposits_limit,
             "internal_operation_results"?:
               [ $alpha.operation.alpha.internal_operation_result ... ] } }
    || { /* Tx_rollup_origination */
         "kind": "tx_rollup_origination",
         "source": $Signature.Public_key_hash,
         "fee": $alpha.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "tx_rollup_origination": any,
         "metadata":
           { "balance_updates"?:
               $alpha.operation_metadata.alpha.balance_updates,
             "operation_result":
               $alpha.operation.alpha.operation_result.tx_rollup_origination,
             "internal_operation_results"?:
               [ $alpha.operation.alpha.internal_operation_result ... ] } }
    || { /* Sc_rollup_originate */
         "kind": "sc_rollup_originate",
         "source": $Signature.Public_key_hash,
         "fee": $alpha.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "kind": any /* Example_arith smart contract rollup kind */,
         "boot_sector": $unistring,
         "metadata":
           { "balance_updates"?:
               $alpha.operation_metadata.alpha.balance_updates,
             "operation_result":
               $alpha.operation.alpha.operation_result.sc_rollup_originate,
             "internal_operation_results"?:
               [ $alpha.operation.alpha.internal_operation_result ... ] } }
    || { /* Sc_rollup_add_messages */
         "kind": "sc_rollup_add_messages",
         "source": $Signature.Public_key_hash,
         "fee": $alpha.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "rollup": $alpha.rollup_address,
         "message": [ $unistring ... ],
         "metadata":
           { "balance_updates"?:
               $alpha.operation_metadata.alpha.balance_updates,
             "operation_result":
               $alpha.operation.alpha.operation_result.sc_rollup_add_messages,
             "internal_operation_results"?:
               [ $alpha.operation.alpha.internal_operation_result ... ] } }
  $alpha.operation.alpha.operation_result.delegation:
    { /* Applied */
      "status": "applied",
      "consumed_gas"?: $positive_bignum,
      "consumed_milligas"?: $positive_bignum }
    || { /* Failed */
         "status": "failed",
         "errors": [ $alpha.error ... ] }
    || { /* Skipped */
         "status": "skipped" }
    || { /* Backtracked */
         "status": "backtracked",
         "errors"?: [ $alpha.error ... ],
         "consumed_gas"?: $positive_bignum,
         "consumed_milligas"?: $positive_bignum }
  $alpha.operation.alpha.operation_result.origination:
    { /* Applied */
      "status": "applied",
      "big_map_diff"?:
        [ { /* update */
            "action": "update",
            "big_map": $bignum,
            "key_hash": $script_expr,
            "key":
              { /* Int */
                "int": $bignum }
              || { /* String */
                   "string": $unistring }
              || { /* Bytes */
                   "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
              || [ $micheline.alpha.michelson_v1.expression ... ]
              /* Sequence */
              || { /* Prim__generic
                      Generic primitive (any number of args with or without
                      annotations) */
                   "prim": $alpha.michelson.v1.primitives,
                   "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
                   "annots"?: [ string ... ] },
            "value"?:
              { /* Int */
                "int": $bignum }
              || { /* String */
                   "string": $unistring }
              || { /* Bytes */
                   "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
              || [ $micheline.alpha.michelson_v1.expression ... ]
              /* Sequence */
              || { /* Prim__generic
                      Generic primitive (any number of args with or without
                      annotations) */
                   "prim": $alpha.michelson.v1.primitives,
                   "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
                   "annots"?: [ string ... ] } }
          || { /* remove */
               "action": "remove",
               "big_map": $bignum }
          || { /* copy */
               "action": "copy",
               "source_big_map": $bignum,
               "destination_big_map": $bignum }
          || { /* alloc */
               "action": "alloc",
               "big_map": $bignum,
               "key_type":
                 { /* Int */
                   "int": $bignum }
                 || { /* String */
                      "string": $unistring }
                 || { /* Bytes */
                      "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                 || [ $micheline.alpha.michelson_v1.expression ... ]
                 /* Sequence */
                 || { /* Prim__generic
                         Generic primitive (any number of args with or
                         without annotations) */
                      "prim": $alpha.michelson.v1.primitives,
                      "args"?:
                        [ $micheline.alpha.michelson_v1.expression ... ],
                      "annots"?: [ string ... ] },
               "value_type":
                 { /* Int */
                   "int": $bignum }
                 || { /* String */
                      "string": $unistring }
                 || { /* Bytes */
                      "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                 || [ $micheline.alpha.michelson_v1.expression ... ]
                 /* Sequence */
                 || { /* Prim__generic
                         Generic primitive (any number of args with or
                         without annotations) */
                      "prim": $alpha.michelson.v1.primitives,
                      "args"?:
                        [ $micheline.alpha.michelson_v1.expression ... ],
                      "annots"?: [ string ... ] } } ... ],
      "balance_updates"?: $alpha.operation_metadata.alpha.balance_updates,
      "originated_contracts"?: [ $alpha.contract_id ... ],
      "consumed_gas"?: $positive_bignum,
      "consumed_milligas"?: $positive_bignum,
      "storage_size"?: $bignum,
      "paid_storage_size_diff"?: $bignum,
      "lazy_storage_diff"?: $alpha.lazy_storage_diff }
    || { /* Failed */
         "status": "failed",
         "errors": [ $alpha.error ... ] }
    || { /* Skipped */
         "status": "skipped" }
    || { /* Backtracked */
         "status": "backtracked",
         "errors"?: [ $alpha.error ... ],
         "big_map_diff"?:
           [ { /* update */
               "action": "update",
               "big_map": $bignum,
               "key_hash": $script_expr,
               "key":
                 { /* Int */
                   "int": $bignum }
                 || { /* String */
                      "string": $unistring }
                 || { /* Bytes */
                      "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                 || [ $micheline.alpha.michelson_v1.expression ... ]
                 /* Sequence */
                 || { /* Prim__generic
                         Generic primitive (any number of args with or
                         without annotations) */
                      "prim": $alpha.michelson.v1.primitives,
                      "args"?:
                        [ $micheline.alpha.michelson_v1.expression ... ],
                      "annots"?: [ string ... ] },
               "value"?:
                 { /* Int */
                   "int": $bignum }
                 || { /* String */
                      "string": $unistring }
                 || { /* Bytes */
                      "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                 || [ $micheline.alpha.michelson_v1.expression ... ]
                 /* Sequence */
                 || { /* Prim__generic
                         Generic primitive (any number of args with or
                         without annotations) */
                      "prim": $alpha.michelson.v1.primitives,
                      "args"?:
                        [ $micheline.alpha.michelson_v1.expression ... ],
                      "annots"?: [ string ... ] } }
             || { /* remove */
                  "action": "remove",
                  "big_map": $bignum }
             || { /* copy */
                  "action": "copy",
                  "source_big_map": $bignum,
                  "destination_big_map": $bignum }
             || { /* alloc */
                  "action": "alloc",
                  "big_map": $bignum,
                  "key_type":
                    { /* Int */
                      "int": $bignum }
                    || { /* String */
                         "string": $unistring }
                    || { /* Bytes */
                         "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                    || [ $micheline.alpha.michelson_v1.expression ... ]
                    /* Sequence */
                    || { /* Prim__generic
                            Generic primitive (any number of args with or
                            without annotations) */
                         "prim": $alpha.michelson.v1.primitives,
                         "args"?:
                           [ $micheline.alpha.michelson_v1.expression ... ],
                         "annots"?: [ string ... ] },
                  "value_type":
                    { /* Int */
                      "int": $bignum }
                    || { /* String */
                         "string": $unistring }
                    || { /* Bytes */
                         "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                    || [ $micheline.alpha.michelson_v1.expression ... ]
                    /* Sequence */
                    || { /* Prim__generic
                            Generic primitive (any number of args with or
                            without annotations) */
                         "prim": $alpha.michelson.v1.primitives,
                         "args"?:
                           [ $micheline.alpha.michelson_v1.expression ... ],
                         "annots"?: [ string ... ] } } ... ],
         "balance_updates"?: $alpha.operation_metadata.alpha.balance_updates,
         "originated_contracts"?: [ $alpha.contract_id ... ],
         "consumed_gas"?: $positive_bignum,
         "consumed_milligas"?: $positive_bignum,
         "storage_size"?: $bignum,
         "paid_storage_size_diff"?: $bignum,
         "lazy_storage_diff"?: $alpha.lazy_storage_diff }
  $alpha.operation.alpha.operation_result.register_global_constant:
    { /* Applied */
      "status": "applied",
      "balance_updates"?: $alpha.operation_metadata.alpha.balance_updates,
      "consumed_gas"?: $positive_bignum,
      "consumed_milligas"?: $positive_bignum,
      "storage_size"?: $bignum,
      "global_address": $script_expr }
    || { /* Failed */
         "status": "failed",
         "errors": [ $alpha.error ... ] }
    || { /* Skipped */
         "status": "skipped" }
    || { /* Backtracked */
         "status": "backtracked",
         "errors"?: [ $alpha.error ... ],
         "balance_updates"?: $alpha.operation_metadata.alpha.balance_updates,
         "consumed_gas"?: $positive_bignum,
         "consumed_milligas"?: $positive_bignum,
         "storage_size"?: $bignum,
         "global_address": $script_expr }
  $alpha.operation.alpha.operation_result.reveal:
    { /* Applied */
      "status": "applied",
      "consumed_gas"?: $positive_bignum,
      "consumed_milligas"?: $positive_bignum }
    || { /* Failed */
         "status": "failed",
         "errors": [ $alpha.error ... ] }
    || { /* Skipped */
         "status": "skipped" }
    || { /* Backtracked */
         "status": "backtracked",
         "errors"?: [ $alpha.error ... ],
         "consumed_gas"?: $positive_bignum,
         "consumed_milligas"?: $positive_bignum }
  $alpha.operation.alpha.operation_result.sc_rollup_add_messages:
    { /* Applied */
      "status": "applied",
      "consumed_gas": $positive_bignum,
      "consumed_milligas"?: $positive_bignum,
      "inbox_after": { "hash": $inbox_hash,
                       "inbox_size": $int64 } }
    || { /* Failed */
         "status": "failed",
         "errors": [ $alpha.error ... ] }
    || { /* Skipped */
         "status": "skipped" }
    || { /* Backtracked */
         "status": "backtracked",
         "errors"?: [ $alpha.error ... ],
         "consumed_gas": $positive_bignum,
         "consumed_milligas"?: $positive_bignum,
         "inbox_after": { "hash": $inbox_hash,
                          "inbox_size": $int64 } }
  $alpha.operation.alpha.operation_result.sc_rollup_originate:
    { /* Applied */
      "status": "applied",
      "balance_updates": $alpha.operation_metadata.alpha.balance_updates,
      "address": $Sc_rollup_hash,
      "consumed_gas"?: $positive_bignum,
      "consumed_milligas"?: $positive_bignum,
      "size": $bignum }
    || { /* Failed */
         "status": "failed",
         "errors": [ $alpha.error ... ] }
    || { /* Skipped */
         "status": "skipped" }
    || { /* Backtracked */
         "status": "backtracked",
         "errors"?: [ $alpha.error ... ],
         "balance_updates": $alpha.operation_metadata.alpha.balance_updates,
         "address": $Sc_rollup_hash,
         "consumed_gas"?: $positive_bignum,
         "consumed_milligas"?: $positive_bignum,
         "size": $bignum }
  $alpha.operation.alpha.operation_result.set_deposits_limit:
    { /* Applied */
      "status": "applied",
      "consumed_gas"?: $positive_bignum,
      "consumed_milligas"?: $positive_bignum }
    || { /* Failed */
         "status": "failed",
         "errors": [ $alpha.error ... ] }
    || { /* Skipped */
         "status": "skipped" }
    || { /* Backtracked */
         "status": "backtracked",
         "errors"?: [ $alpha.error ... ],
         "consumed_gas"?: $positive_bignum,
         "consumed_milligas"?: $positive_bignum }
  $alpha.operation.alpha.operation_result.transaction:
    { /* Applied */
      "status": "applied",
      "storage"?:
        { /* Int */
          "int": $bignum }
        || { /* String */
             "string": $unistring }
        || { /* Bytes */
             "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
        || [ $micheline.alpha.michelson_v1.expression ... ]
        /* Sequence */
        || { /* Prim__generic
                Generic primitive (any number of args with or without
                annotations) */
             "prim": $alpha.michelson.v1.primitives,
             "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
             "annots"?: [ string ... ] },
      "big_map_diff"?:
        [ { /* update */
            "action": "update",
            "big_map": $bignum,
            "key_hash": $script_expr,
            "key":
              { /* Int */
                "int": $bignum }
              || { /* String */
                   "string": $unistring }
              || { /* Bytes */
                   "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
              || [ $micheline.alpha.michelson_v1.expression ... ]
              /* Sequence */
              || { /* Prim__generic
                      Generic primitive (any number of args with or without
                      annotations) */
                   "prim": $alpha.michelson.v1.primitives,
                   "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
                   "annots"?: [ string ... ] },
            "value"?:
              { /* Int */
                "int": $bignum }
              || { /* String */
                   "string": $unistring }
              || { /* Bytes */
                   "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
              || [ $micheline.alpha.michelson_v1.expression ... ]
              /* Sequence */
              || { /* Prim__generic
                      Generic primitive (any number of args with or without
                      annotations) */
                   "prim": $alpha.michelson.v1.primitives,
                   "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
                   "annots"?: [ string ... ] } }
          || { /* remove */
               "action": "remove",
               "big_map": $bignum }
          || { /* copy */
               "action": "copy",
               "source_big_map": $bignum,
               "destination_big_map": $bignum }
          || { /* alloc */
               "action": "alloc",
               "big_map": $bignum,
               "key_type":
                 { /* Int */
                   "int": $bignum }
                 || { /* String */
                      "string": $unistring }
                 || { /* Bytes */
                      "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                 || [ $micheline.alpha.michelson_v1.expression ... ]
                 /* Sequence */
                 || { /* Prim__generic
                         Generic primitive (any number of args with or
                         without annotations) */
                      "prim": $alpha.michelson.v1.primitives,
                      "args"?:
                        [ $micheline.alpha.michelson_v1.expression ... ],
                      "annots"?: [ string ... ] },
               "value_type":
                 { /* Int */
                   "int": $bignum }
                 || { /* String */
                      "string": $unistring }
                 || { /* Bytes */
                      "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                 || [ $micheline.alpha.michelson_v1.expression ... ]
                 /* Sequence */
                 || { /* Prim__generic
                         Generic primitive (any number of args with or
                         without annotations) */
                      "prim": $alpha.michelson.v1.primitives,
                      "args"?:
                        [ $micheline.alpha.michelson_v1.expression ... ],
                      "annots"?: [ string ... ] } } ... ],
      "balance_updates"?: $alpha.operation_metadata.alpha.balance_updates,
      "originated_contracts"?: [ $alpha.contract_id ... ],
      "consumed_gas"?: $positive_bignum,
      "consumed_milligas"?: $positive_bignum,
      "storage_size"?: $bignum,
      "paid_storage_size_diff"?: $bignum,
      "allocated_destination_contract"?: boolean,
      "lazy_storage_diff"?: $alpha.lazy_storage_diff }
    || { /* Failed */
         "status": "failed",
         "errors": [ $alpha.error ... ] }
    || { /* Skipped */
         "status": "skipped" }
    || { /* Backtracked */
         "status": "backtracked",
         "errors"?: [ $alpha.error ... ],
         "storage"?:
           { /* Int */
             "int": $bignum }
           || { /* String */
                "string": $unistring }
           || { /* Bytes */
                "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
           || [ $micheline.alpha.michelson_v1.expression ... ]
           /* Sequence */
           || { /* Prim__generic
                   Generic primitive (any number of args with or without
                   annotations) */
                "prim": $alpha.michelson.v1.primitives,
                "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
                "annots"?: [ string ... ] },
         "big_map_diff"?:
           [ { /* update */
               "action": "update",
               "big_map": $bignum,
               "key_hash": $script_expr,
               "key":
                 { /* Int */
                   "int": $bignum }
                 || { /* String */
                      "string": $unistring }
                 || { /* Bytes */
                      "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                 || [ $micheline.alpha.michelson_v1.expression ... ]
                 /* Sequence */
                 || { /* Prim__generic
                         Generic primitive (any number of args with or
                         without annotations) */
                      "prim": $alpha.michelson.v1.primitives,
                      "args"?:
                        [ $micheline.alpha.michelson_v1.expression ... ],
                      "annots"?: [ string ... ] },
               "value"?:
                 { /* Int */
                   "int": $bignum }
                 || { /* String */
                      "string": $unistring }
                 || { /* Bytes */
                      "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                 || [ $micheline.alpha.michelson_v1.expression ... ]
                 /* Sequence */
                 || { /* Prim__generic
                         Generic primitive (any number of args with or
                         without annotations) */
                      "prim": $alpha.michelson.v1.primitives,
                      "args"?:
                        [ $micheline.alpha.michelson_v1.expression ... ],
                      "annots"?: [ string ... ] } }
             || { /* remove */
                  "action": "remove",
                  "big_map": $bignum }
             || { /* copy */
                  "action": "copy",
                  "source_big_map": $bignum,
                  "destination_big_map": $bignum }
             || { /* alloc */
                  "action": "alloc",
                  "big_map": $bignum,
                  "key_type":
                    { /* Int */
                      "int": $bignum }
                    || { /* String */
                         "string": $unistring }
                    || { /* Bytes */
                         "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                    || [ $micheline.alpha.michelson_v1.expression ... ]
                    /* Sequence */
                    || { /* Prim__generic
                            Generic primitive (any number of args with or
                            without annotations) */
                         "prim": $alpha.michelson.v1.primitives,
                         "args"?:
                           [ $micheline.alpha.michelson_v1.expression ... ],
                         "annots"?: [ string ... ] },
                  "value_type":
                    { /* Int */
                      "int": $bignum }
                    || { /* String */
                         "string": $unistring }
                    || { /* Bytes */
                         "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                    || [ $micheline.alpha.michelson_v1.expression ... ]
                    /* Sequence */
                    || { /* Prim__generic
                            Generic primitive (any number of args with or
                            without annotations) */
                         "prim": $alpha.michelson.v1.primitives,
                         "args"?:
                           [ $micheline.alpha.michelson_v1.expression ... ],
                         "annots"?: [ string ... ] } } ... ],
         "balance_updates"?: $alpha.operation_metadata.alpha.balance_updates,
         "originated_contracts"?: [ $alpha.contract_id ... ],
         "consumed_gas"?: $positive_bignum,
         "consumed_milligas"?: $positive_bignum,
         "storage_size"?: $bignum,
         "paid_storage_size_diff"?: $bignum,
         "allocated_destination_contract"?: boolean,
         "lazy_storage_diff"?: $alpha.lazy_storage_diff }
  $alpha.operation.alpha.operation_result.tx_rollup_origination:
    { /* Applied */
      "status": "applied",
      "balance_updates": $alpha.operation_metadata.alpha.balance_updates,
      "consumed_gas"?: $positive_bignum,
      "consumed_milligas"?: $positive_bignum,
      "originated_rollup": $alpha.tx_rollup_id }
    || { /* Failed */
         "status": "failed",
         "errors": [ $alpha.error ... ] }
    || { /* Skipped */
         "status": "skipped" }
    || { /* Backtracked */
         "status": "backtracked",
         "errors"?: [ $alpha.error ... ],
         "balance_updates": $alpha.operation_metadata.alpha.balance_updates,
         "consumed_gas"?: $positive_bignum,
         "consumed_milligas"?: $positive_bignum,
         "originated_rollup": $alpha.tx_rollup_id }
  $alpha.operation.alpha.operation_with_metadata:
    { /* Operation_with_metadata */
      "contents":
        [ $alpha.operation.alpha.operation_contents_and_result ... ],
      "signature"?: $Signature }
    || { /* Operation_without_metadata */
         "contents": [ $alpha.operation.alpha.contents ... ],
         "signature"?: $Signature }
  $alpha.operation_metadata.alpha.balance_updates:
    [ { /* Contract */
        "kind": "contract",
        "contract": $alpha.contract_id,
        "change": $int64,
        "origin": "block" || "migration" || "subsidy" || "simulation" }
      || { /* Legacy_rewards */
           "kind": "freezer",
           "category": "legacy_rewards",
           "delegate": $Signature.Public_key_hash,
           "cycle": integer ∈ [-2^31-1, 2^31],
           "change": $int64,
           "origin": "block" || "migration" || "subsidy" || "simulation" }
      || { /* Block_fees */
           "kind": "accumulator",
           "category": "block fees",
           "change": $int64,
           "origin": "block" || "migration" || "subsidy" || "simulation" }
      || { /* Legacy_deposits */
           "kind": "freezer",
           "category": "legacy_deposits",
           "delegate": $Signature.Public_key_hash,
           "cycle": integer ∈ [-2^31-1, 2^31],
           "change": $int64,
           "origin": "block" || "migration" || "subsidy" || "simulation" }
      || { /* Deposits */
           "kind": "freezer",
           "category": "deposits",
           "delegate": $Signature.Public_key_hash,
           "change": $int64,
           "origin": "block" || "migration" || "subsidy" || "simulation" }
      || { /* Nonce_revelation_rewards */
           "kind": "minted",
           "category": "nonce revelation rewards",
           "change": $int64,
           "origin": "block" || "migration" || "subsidy" || "simulation" }
      || { /* Double_signing_evidence_rewards */
           "kind": "minted",
           "category": "double signing evidence rewards",
           "change": $int64,
           "origin": "block" || "migration" || "subsidy" || "simulation" }
      || { /* Endorsing_rewards */
           "kind": "minted",
           "category": "endorsing rewards",
           "change": $int64,
           "origin": "block" || "migration" || "subsidy" || "simulation" }
      || { /* Baking_rewards */
           "kind": "minted",
           "category": "baking rewards",
           "change": $int64,
           "origin": "block" || "migration" || "subsidy" || "simulation" }
      || { /* Baking_bonuses */
           "kind": "minted",
           "category": "baking bonuses",
           "change": $int64,
           "origin": "block" || "migration" || "subsidy" || "simulation" }
      || { /* Legacy_fees */
           "kind": "freezer",
           "category": "legacy_fees",
           "delegate": $Signature.Public_key_hash,
           "cycle": integer ∈ [-2^31-1, 2^31],
           "change": $int64,
           "origin": "block" || "migration" || "subsidy" || "simulation" }
      || { /* Storage_fees */
           "kind": "burned",
           "category": "storage fees",
           "change": $int64,
           "origin": "block" || "migration" || "subsidy" || "simulation" }
      || { /* Double_signing_punishments */
           "kind": "burned",
           "category": "punishments",
           "change": $int64,
           "origin": "block" || "migration" || "subsidy" || "simulation" }
      || { /* Lost_endorsing_rewards */
           "kind": "burned",
           "category": "lost endorsing rewards",
           "delegate": $Signature.Public_key_hash,
           "participation": boolean,
           "revelation": boolean,
           "change": $int64,
           "origin": "block" || "migration" || "subsidy" || "simulation" }
      || { /* Liquidity_baking_subsidies */
           "kind": "minted",
           "category": "subsidy",
           "change": $int64,
           "origin": "block" || "migration" || "subsidy" || "simulation" }
      || { /* Burned */
           "kind": "burned",
           "category": "burned",
           "change": $int64,
           "origin": "block" || "migration" || "subsidy" || "simulation" }
      || { /* Commitments */
           "kind": "commitment",
           "category": "commitment",
           "committer": $Blinded public key hash,
           "change": $int64,
           "origin": "block" || "migration" || "subsidy" || "simulation" }
      || { /* Bootstrap */
           "kind": "minted",
           "category": "bootstrap",
           "change": $int64,
           "origin": "block" || "migration" || "subsidy" || "simulation" }
      || { /* Invoice */
           "kind": "minted",
           "category": "invoice",
           "change": $int64,
           "origin": "block" || "migration" || "subsidy" || "simulation" }
      || { /* Initial_commitments */
           "kind": "minted",
           "category": "commitment",
           "change": $int64,
           "origin": "block" || "migration" || "subsidy" || "simulation" }
      || { /* Minted */
           "kind": "minted",
           "category": "minted",
           "change": $int64,
           "origin": "block" || "migration" || "subsidy" || "simulation" } ... ]
  $alpha.rollup_address:
    /* A smart contract rollup address
       A smart contract rollup is identified by a base58 address starting
       with scr1 */
    $unistring
  $alpha.sapling_state_id:
    /* Sapling state identifier
       A sapling state identifier */
    $bignum
  $alpha.scripted.contracts:
    { "code":
        { /* Int */
          "int": $bignum }
        || { /* String */
             "string": $unistring }
        || { /* Bytes */
             "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
        || [ $micheline.alpha.michelson_v1.expression ... ]
        /* Sequence */
        || { /* Prim__generic
                Generic primitive (any number of args with or without
                annotations) */
             "prim": $alpha.michelson.v1.primitives,
             "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
             "annots"?: [ string ... ] },
      "storage":
        { /* Int */
          "int": $bignum }
        || { /* String */
             "string": $unistring }
        || { /* Bytes */
             "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
        || [ $micheline.alpha.michelson_v1.expression ... ]
        /* Sequence */
        || { /* Prim__generic
                Generic primitive (any number of args with or without
                annotations) */
             "prim": $alpha.michelson.v1.primitives,
             "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
             "annots"?: [ string ... ] } }
  $alpha.tx_rollup_id:
    /* A tx rollup handle
       A tx rollup notation as given to an RPC or inside scripts, is a base58
       tx rollup hash */
    $unistring
  $bignum:
    /* Big number
       Decimal representation of a big number */
    string
  $block_hash:
    /* A block identifier (Base58Check-encoded) */
    $unistring
  $cycle_nonce:
    /* A nonce hash (Base58Check-encoded) */
    $unistring
  $fitness:
    /* Block fitness
       The fitness, or score, of a block, that allow the Tezos 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][a-zA-Z0-9])*$/ ... ]
  $inbox_hash:
    /* The hash of a the inbox of a smart contract rollup
       (Base58Check-encoded) */
    $unistring
  $int64:
    /* 64 bit integers
       Decimal representation of 64 bit integers */
    string
  $micheline.alpha.michelson_v1.expression:
    { /* Int */
      "int": $bignum }
    || { /* String */
         "string": $unistring }
    || { /* Bytes */
         "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
    || [ $micheline.alpha.michelson_v1.expression ... ]
    /* Sequence */
    || { /* Prim__generic
            Generic primitive (any number of args with or without
            annotations) */
         "prim": $alpha.michelson.v1.primitives,
         "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
         "annots"?: [ string ... ] }
  $positive_bignum:
    /* Positive big number
       Decimal representation of a positive big number */
    string
  $sapling.DH.epk: /^([a-zA-Z0-9][a-zA-Z0-9])*$/
  $sapling.transaction.ciphertext:
    { "cv": $sapling.transaction.commitment_value,
      "epk": $sapling.DH.epk,
      "payload_enc": /^([a-zA-Z0-9][a-zA-Z0-9])*$/,
      "nonce_enc": /^([a-zA-Z0-9][a-zA-Z0-9])*$/,
      "payload_out": /^([a-zA-Z0-9][a-zA-Z0-9])*$/,
      "nonce_out": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
  $sapling.transaction.commitment: /^([a-zA-Z0-9][a-zA-Z0-9])*$/
  $sapling.transaction.commitment_value: /^([a-zA-Z0-9][a-zA-Z0-9])*$/
  $sapling.transaction.nullifier: /^([a-zA-Z0-9][a-zA-Z0-9])*$/
  $script_expr:
    /* A script expression ID (Base58Check-encoded) */
    $unistring
  $timestamp.protocol:
    /* A timestamp as seen by the protocol: second-level precision, epoch
       based. */
    $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] ... ] }
  $value_hash:
    /* Hash of a consensus value (Base58Check-encoded) */
    $unistring
  +-----------------------+----------+-------------------------+
  | 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       | Determined from data | $X_5563                 |
  +-----------------------+----------------------+-------------------------+


  X_5563 (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 $alpha.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 $alpha.operation.alpha.contents |
  +---------------------------------+----------+---------------------------------------------+
  | ? presence of field "signature" | 1 byte   | boolean (0 for false, 255 for true)         |
  +---------------------------------+----------+---------------------------------------------+
  | signature                       | 64 bytes | bytes                                       |
  +---------------------------------+----------+---------------------------------------------+


  alpha.operation.alpha.operation_contents_and_result (Determined from data, 8-bit tag)
  *************************************************************************************

  Seed_nonce_revelation (tag 1)
  =============================

  +----------+----------------------+-------------------------------------------------+
  | Name     | Size                 | Contents                                        |
  +==========+======================+=================================================+
  | Tag      | 1 byte               | unsigned 8-bit integer                          |
  +----------+----------------------+-------------------------------------------------+
  | level    | 4 bytes              | signed 32-bit integer                           |
  +----------+----------------------+-------------------------------------------------+
  | nonce    | 32 bytes             | bytes                                           |
  +----------+----------------------+-------------------------------------------------+
  | metadata | Determined from data | $alpha.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             | $alpha.inlined.endorsement                      |
  +-----------------------+----------------------+-------------------------------------------------+
  | # bytes in next field | 4 bytes              | unsigned 30-bit integer                         |
  +-----------------------+----------------------+-------------------------------------------------+
  | op2                   | Variable             | $alpha.inlined.endorsement                      |
  +-----------------------+----------------------+-------------------------------------------------+
  | metadata              | Determined from data | $alpha.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 | $alpha.block_header.alpha.full_header           |
  +-----------------------+----------------------+-------------------------------------------------+
  | # bytes in next field | 4 bytes              | unsigned 30-bit integer                         |
  +-----------------------+----------------------+-------------------------------------------------+
  | bh2                   | Determined from data | $alpha.block_header.alpha.full_header           |
  +-----------------------+----------------------+-------------------------------------------------+
  | metadata              | Determined from data | $alpha.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 | $alpha.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   |
  +----------+----------+------------------------+


  Double_preendorsement_evidence (tag 7)
  ======================================

  +-----------------------+----------------------+-------------------------------------------------+
  | Name                  | Size                 | Contents                                        |
  +=======================+======================+=================================================+
  | Tag                   | 1 byte               | unsigned 8-bit integer                          |
  +-----------------------+----------------------+-------------------------------------------------+
  | # bytes in next field | 4 bytes              | unsigned 30-bit integer                         |
  +-----------------------+----------------------+-------------------------------------------------+
  | op1                   | Variable             | $alpha.inlined.preendorsement                   |
  +-----------------------+----------------------+-------------------------------------------------+
  | # bytes in next field | 4 bytes              | unsigned 30-bit integer                         |
  +-----------------------+----------------------+-------------------------------------------------+
  | op2                   | Variable             | $alpha.inlined.preendorsement                   |
  +-----------------------+----------------------+-------------------------------------------------+
  | metadata              | Determined from data | $alpha.operation_metadata.alpha.balance_updates |
  +-----------------------+----------------------+-------------------------------------------------+


  Preendorsement (tag 20)
  =======================

  +--------------------+----------------------+-------------------------+
  | Name               | Size                 | Contents                |
  +====================+======================+=========================+
  | Tag                | 1 byte               | unsigned 8-bit integer  |
  +--------------------+----------------------+-------------------------+
  | slot               | 2 bytes              | unsigned 16-bit integer |
  +--------------------+----------------------+-------------------------+
  | level              | 4 bytes              | signed 32-bit integer   |
  +--------------------+----------------------+-------------------------+
  | round              | 4 bytes              | signed 32-bit integer   |
  +--------------------+----------------------+-------------------------+
  | block_payload_hash | 32 bytes             | bytes                   |
  +--------------------+----------------------+-------------------------+
  | metadata           | Determined from data | $X_5544                 |
  +--------------------+----------------------+-------------------------+


  Endorsement (tag 21)
  ====================

  +--------------------+----------------------+-------------------------+
  | Name               | Size                 | Contents                |
  +====================+======================+=========================+
  | Tag                | 1 byte               | unsigned 8-bit integer  |
  +--------------------+----------------------+-------------------------+
  | slot               | 2 bytes              | unsigned 16-bit integer |
  +--------------------+----------------------+-------------------------+
  | level              | 4 bytes              | signed 32-bit integer   |
  +--------------------+----------------------+-------------------------+
  | round              | 4 bytes              | signed 32-bit integer   |
  +--------------------+----------------------+-------------------------+
  | block_payload_hash | 32 bytes             | bytes                   |
  +--------------------+----------------------+-------------------------+
  | metadata           | Determined from data | $X_5540                 |
  +--------------------+----------------------+-------------------------+


  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_4985                |
  +---------------+----------------------+------------------------+


  Transaction (tag 108)
  =====================

  +----------------------------------+----------------------+-------------------------------------+
  | Name                             | Size                 | Contents                            |
  +==================================+======================+=====================================+
  | Tag                              | 1 byte               | unsigned 8-bit integer              |
  +----------------------------------+----------------------+-------------------------------------+
  | source                           | 21 bytes             | $public_key_hash                    |
  +----------------------------------+----------------------+-------------------------------------+
  | fee                              | Determined from data | $N.t                                |
  +----------------------------------+----------------------+-------------------------------------+
  | counter                          | Determined from data | $N.t                                |
  +----------------------------------+----------------------+-------------------------------------+
  | gas_limit                        | Determined from data | $N.t                                |
  +----------------------------------+----------------------+-------------------------------------+
  | storage_limit                    | Determined from data | $N.t                                |
  +----------------------------------+----------------------+-------------------------------------+
  | amount                           | Determined from data | $N.t                                |
  +----------------------------------+----------------------+-------------------------------------+
  | destination                      | 22 bytes             | $alpha.contract_id                  |
  +----------------------------------+----------------------+-------------------------------------+
  | ? presence of field "parameters" | 1 byte               | boolean (0 for false, 255 for true) |
  +----------------------------------+----------------------+-------------------------------------+
  | parameters                       | Determined from data | $X_5269                             |
  +----------------------------------+----------------------+-------------------------------------+
  | metadata                         | Determined from data | $X_4162                             |
  +----------------------------------+----------------------+-------------------------------------+


  Origination (tag 109)
  =====================

  +--------------------------------+----------------------+-------------------------------------+
  | Name                           | Size                 | Contents                            |
  +================================+======================+=====================================+
  | Tag                            | 1 byte               | unsigned 8-bit integer              |
  +--------------------------------+----------------------+-------------------------------------+
  | source                         | 21 bytes             | $public_key_hash                    |
  +--------------------------------+----------------------+-------------------------------------+
  | fee                            | Determined from data | $N.t                                |
  +--------------------------------+----------------------+-------------------------------------+
  | counter                        | Determined from data | $N.t                                |
  +--------------------------------+----------------------+-------------------------------------+
  | gas_limit                      | Determined from data | $N.t                                |
  +--------------------------------+----------------------+-------------------------------------+
  | storage_limit                  | Determined from data | $N.t                                |
  +--------------------------------+----------------------+-------------------------------------+
  | balance                        | Determined from data | $N.t                                |
  +--------------------------------+----------------------+-------------------------------------+
  | ? presence of field "delegate" | 1 byte               | boolean (0 for false, 255 for true) |
  +--------------------------------+----------------------+-------------------------------------+
  | delegate                       | 21 bytes             | $public_key_hash                    |
  +--------------------------------+----------------------+-------------------------------------+
  | script                         | Determined from data | $alpha.scripted.contracts           |
  +--------------------------------+----------------------+-------------------------------------+
  | metadata                       | Determined from data | $X_3356                             |
  +--------------------------------+----------------------+-------------------------------------+


  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_4985                             |
  +--------------------------------+----------------------+-------------------------------------+


  Register_global_constant (tag 111)
  ==================================

  +-----------------------+----------------------+-------------------------+
  | Name                  | Size                 | Contents                |
  +=======================+======================+=========================+
  | Tag                   | 1 byte               | unsigned 8-bit integer  |
  +-----------------------+----------------------+-------------------------+
  | source                | 21 bytes             | $public_key_hash        |
  +-----------------------+----------------------+-------------------------+
  | fee                   | Determined from data | $N.t                    |
  +-----------------------+----------------------+-------------------------+
  | counter               | Determined from data | $N.t                    |
  +-----------------------+----------------------+-------------------------+
  | gas_limit             | Determined from data | $N.t                    |
  +-----------------------+----------------------+-------------------------+
  | storage_limit         | Determined from data | $N.t                    |
  +-----------------------+----------------------+-------------------------+
  | # bytes in next field | 4 bytes              | unsigned 30-bit integer |
  +-----------------------+----------------------+-------------------------+
  | value                 | Variable             | bytes                   |
  +-----------------------+----------------------+-------------------------+
  | metadata              | Determined from data | $X_2240                 |
  +-----------------------+----------------------+-------------------------+


  Set_deposits_limit (tag 112)
  ============================

  +-----------------------------+----------------------+-------------------------------------+
  | Name                        | Size                 | Contents                            |
  +=============================+======================+=====================================+
  | Tag                         | 1 byte               | unsigned 8-bit integer              |
  +-----------------------------+----------------------+-------------------------------------+
  | source                      | 21 bytes             | $public_key_hash                    |
  +-----------------------------+----------------------+-------------------------------------+
  | fee                         | Determined from data | $N.t                                |
  +-----------------------------+----------------------+-------------------------------------+
  | counter                     | Determined from data | $N.t                                |
  +-----------------------------+----------------------+-------------------------------------+
  | gas_limit                   | Determined from data | $N.t                                |
  +-----------------------------+----------------------+-------------------------------------+
  | storage_limit               | Determined from data | $N.t                                |
  +-----------------------------+----------------------+-------------------------------------+
  | ? presence of field "limit" | 1 byte               | boolean (0 for false, 255 for true) |
  +-----------------------------+----------------------+-------------------------------------+
  | limit                       | Determined from data | $N.t                                |
  +-----------------------------+----------------------+-------------------------------------+
  | metadata                    | Determined from data | $X_4985                             |
  +-----------------------------+----------------------+-------------------------------------+


  Tx_rollup_origination (tag 150)
  ===============================

  +---------------+----------------------+------------------------+
  | Name          | Size                 | Contents               |
  +===============+======================+========================+
  | Tag           | 1 byte               | unsigned 8-bit integer |
  +---------------+----------------------+------------------------+
  | source        | 21 bytes             | $public_key_hash       |
  +---------------+----------------------+------------------------+
  | fee           | Determined from data | $N.t                   |
  +---------------+----------------------+------------------------+
  | counter       | Determined from data | $N.t                   |
  +---------------+----------------------+------------------------+
  | gas_limit     | Determined from data | $N.t                   |
  +---------------+----------------------+------------------------+
  | storage_limit | Determined from data | $N.t                   |
  +---------------+----------------------+------------------------+
  | metadata      | Determined from data | $X_1124                |
  +---------------+----------------------+------------------------+


  Sc_rollup_originate (tag 200)
  =============================

  +-----------------------+----------------------+-------------------------+
  | Name                  | Size                 | Contents                |
  +=======================+======================+=========================+
  | Tag                   | 1 byte               | unsigned 8-bit integer  |
  +-----------------------+----------------------+-------------------------+
  | source                | 21 bytes             | $public_key_hash        |
  +-----------------------+----------------------+-------------------------+
  | fee                   | Determined from data | $N.t                    |
  +-----------------------+----------------------+-------------------------+
  | counter               | Determined from data | $N.t                    |
  +-----------------------+----------------------+-------------------------+
  | gas_limit             | Determined from data | $N.t                    |
  +-----------------------+----------------------+-------------------------+
  | storage_limit         | Determined from data | $N.t                    |
  +-----------------------+----------------------+-------------------------+
  | kind                  | 2 bytes              | $X_4994                 |
  +-----------------------+----------------------+-------------------------+
  | # bytes in next field | 4 bytes              | unsigned 30-bit integer |
  +-----------------------+----------------------+-------------------------+
  | boot_sector           | Variable             | bytes                   |
  +-----------------------+----------------------+-------------------------+
  | metadata              | Determined from data | $X_563                  |
  +-----------------------+----------------------+-------------------------+


  Sc_rollup_add_messages (tag 201)
  ================================

  +-----------------------------------------+----------------------+--------------------------+
  | Name                                    | Size                 | Contents                 |
  +=========================================+======================+==========================+
  | Tag                                     | 1 byte               | unsigned 8-bit integer   |
  +-----------------------------------------+----------------------+--------------------------+
  | source                                  | 21 bytes             | $public_key_hash         |
  +-----------------------------------------+----------------------+--------------------------+
  | fee                                     | Determined from data | $N.t                     |
  +-----------------------------------------+----------------------+--------------------------+
  | counter                                 | Determined from data | $N.t                     |
  +-----------------------------------------+----------------------+--------------------------+
  | gas_limit                               | Determined from data | $N.t                     |
  +-----------------------------------------+----------------------+--------------------------+
  | storage_limit                           | Determined from data | $N.t                     |
  +-----------------------------------------+----------------------+--------------------------+
  | # bytes in field "alpha.rollup_address" | 4 bytes              | unsigned 30-bit integer  |
  +-----------------------------------------+----------------------+--------------------------+
  | rollup                                  | Variable             | bytes                    |
  +-----------------------------------------+----------------------+--------------------------+
  | # bytes in next field                   | 4 bytes              | unsigned 30-bit integer  |
  +-----------------------------------------+----------------------+--------------------------+
  | message                                 | Variable             | sequence of $alpha.error |
  +-----------------------------------------+----------------------+--------------------------+
  | metadata                                | Determined from data | $X_5                     |
  +-----------------------------------------+----------------------+--------------------------+


  alpha.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_6        |
  +-----------------------+----------+-------------------------+


  X_5562 (1 byte, 8-bit tag)
  **************************

  Block_application (tag 0)
  =========================

  +------+--------+------------------------+
  | Name | Size   | Contents               |
  +======+========+========================+
  | Tag  | 1 byte | unsigned 8-bit integer |
  +------+--------+------------------------+


  Protocol_migration (tag 1)
  ==========================

  +------+--------+------------------------+
  | Name | Size   | Contents               |
  +======+========+========================+
  | Tag  | 1 byte | unsigned 8-bit integer |
  +------+--------+------------------------+


  Subsidy (tag 2)
  ===============

  +------+--------+------------------------+
  | Name | Size   | Contents               |
  +======+========+========================+
  | Tag  | 1 byte | unsigned 8-bit integer |
  +------+--------+------------------------+


  Simulation (tag 3)
  ==================

  +------+--------+------------------------+
  | Name | Size   | Contents               |
  +======+========+========================+
  | Tag  | 1 byte | unsigned 8-bit integer |
  +------+--------+------------------------+


  X_5561 (Determined from data, 8-bit tag)
  ****************************************

  Contract (tag 0)
  ================

  +----------+----------+------------------------+
  | Name     | Size     | Contents               |
  +==========+==========+========================+
  | Tag      | 1 byte   | unsigned 8-bit integer |
  +----------+----------+------------------------+
  | contract | 22 bytes | $alpha.contract_id     |
  +----------+----------+------------------------+


  Legacy_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  |
  +----------+----------+------------------------+


  Block_fees (tag 2)
  ==================

  +------+--------+------------------------+
  | Name | Size   | Contents               |
  +======+========+========================+
  | Tag  | 1 byte | unsigned 8-bit integer |
  +------+--------+------------------------+


  Legacy_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  |
  +----------+----------+------------------------+


  Deposits (tag 4)
  ================

  +----------+----------+------------------------+
  | Name     | Size     | Contents               |
  +==========+==========+========================+
  | Tag      | 1 byte   | unsigned 8-bit integer |
  +----------+----------+------------------------+
  | delegate | 21 bytes | $public_key_hash       |
  +----------+----------+------------------------+


  Nonce_revelation_rewards (tag 5)
  ================================

  +------+--------+------------------------+
  | Name | Size   | Contents               |
  +======+========+========================+
  | Tag  | 1 byte | unsigned 8-bit integer |
  +------+--------+------------------------+


  Double_signing_evidence_rewards (tag 6)
  =======================================

  +------+--------+------------------------+
  | Name | Size   | Contents               |
  +======+========+========================+
  | Tag  | 1 byte | unsigned 8-bit integer |
  +------+--------+------------------------+


  Endorsing_rewards (tag 7)
  =========================

  +------+--------+------------------------+
  | Name | Size   | Contents               |
  +======+========+========================+
  | Tag  | 1 byte | unsigned 8-bit integer |
  +------+--------+------------------------+


  Baking_rewards (tag 8)
  ======================

  +------+--------+------------------------+
  | Name | Size   | Contents               |
  +======+========+========================+
  | Tag  | 1 byte | unsigned 8-bit integer |
  +------+--------+------------------------+


  Baking_bonuses (tag 9)
  ======================

  +------+--------+------------------------+
  | Name | Size   | Contents               |
  +======+========+========================+
  | Tag  | 1 byte | unsigned 8-bit integer |
  +------+--------+------------------------+


  Legacy_fees (tag 10)
  ====================

  +----------+----------+------------------------+
  | Name     | Size     | Contents               |
  +==========+==========+========================+
  | Tag      | 1 byte   | unsigned 8-bit integer |
  +----------+----------+------------------------+
  | delegate | 21 bytes | $public_key_hash       |
  +----------+----------+------------------------+
  | cycle    | 4 bytes  | signed 32-bit integer  |
  +----------+----------+------------------------+


  Storage_fees (tag 11)
  =====================

  +------+--------+------------------------+
  | Name | Size   | Contents               |
  +======+========+========================+
  | Tag  | 1 byte | unsigned 8-bit integer |
  +------+--------+------------------------+


  Double_signing_punishments (tag 12)
  ===================================

  +------+--------+------------------------+
  | Name | Size   | Contents               |
  +======+========+========================+
  | Tag  | 1 byte | unsigned 8-bit integer |
  +------+--------+------------------------+


  Lost_endorsing_rewards (tag 13)
  ===============================

  +---------------+----------+-------------------------------------+
  | Name          | Size     | Contents                            |
  +===============+==========+=====================================+
  | Tag           | 1 byte   | unsigned 8-bit integer              |
  +---------------+----------+-------------------------------------+
  | delegate      | 21 bytes | $public_key_hash                    |
  +---------------+----------+-------------------------------------+
  | participation | 1 byte   | boolean (0 for false, 255 for true) |
  +---------------+----------+-------------------------------------+
  | revelation    | 1 byte   | boolean (0 for false, 255 for true) |
  +---------------+----------+-------------------------------------+


  Liquidity_baking_subsidies (tag 14)
  ===================================

  +------+--------+------------------------+
  | Name | Size   | Contents               |
  +======+========+========================+
  | Tag  | 1 byte | unsigned 8-bit integer |
  +------+--------+------------------------+


  Burned (tag 15)
  ===============

  +------+--------+------------------------+
  | Name | Size   | Contents               |
  +======+========+========================+
  | Tag  | 1 byte | unsigned 8-bit integer |
  +------+--------+------------------------+


  Commitments (tag 16)
  ====================

  +-----------+----------+------------------------+
  | Name      | Size     | Contents               |
  +===========+==========+========================+
  | Tag       | 1 byte   | unsigned 8-bit integer |
  +-----------+----------+------------------------+
  | committer | 20 bytes | bytes                  |
  +-----------+----------+------------------------+


  Bootstrap (tag 17)
  ==================

  +------+--------+------------------------+
  | Name | Size   | Contents               |
  +======+========+========================+
  | Tag  | 1 byte | unsigned 8-bit integer |
  +------+--------+------------------------+


  Invoice (tag 18)
  ================

  +------+--------+------------------------+
  | Name | Size   | Contents               |
  +======+========+========================+
  | Tag  | 1 byte | unsigned 8-bit integer |
  +------+--------+------------------------+


  Initial_commitments (tag 19)
  ============================

  +------+--------+------------------------+
  | Name | Size   | Contents               |
  +======+========+========================+
  | Tag  | 1 byte | unsigned 8-bit integer |
  +------+--------+------------------------+


  Minted (tag 20)
  ===============

  +------+--------+------------------------+
  | Name | Size   | Contents               |
  +======+========+========================+
  | Tag  | 1 byte | unsigned 8-bit integer |
  +------+--------+------------------------+


  alpha.contract_id (22 bytes, 8-bit tag)
  ***************************************

  Implicit (tag 0)
  ================

  +---------------------------+----------+------------------------+
  | Name                      | Size     | Contents               |
  +===========================+==========+========================+
  | Tag                       | 1 byte   | unsigned 8-bit integer |
  +---------------------------+----------+------------------------+
  | Signature.Public_key_hash | 21 bytes | $public_key_hash       |
  +---------------------------+----------+------------------------+


  Originated (tag 1)
  ==================

  +---------------+----------+------------------------+
  | Name          | Size     | Contents               |
  +===============+==========+========================+
  | Tag           | 1 byte   | unsigned 8-bit integer |
  +---------------+----------+------------------------+
  | Contract_hash | 20 bytes | bytes                  |
  +---------------+----------+------------------------+
  | padding       | 1 byte   | padding                |
  +---------------+----------+------------------------+


  public_key_hash (21 bytes, 8-bit tag)
  *************************************

  Ed25519 (tag 0)
  ===============

  +-------------------------+----------+------------------------+
  | Name                    | Size     | Contents               |
  +=========================+==========+========================+
  | Tag                     | 1 byte   | unsigned 8-bit integer |
  +-------------------------+----------+------------------------+
  | Ed25519.Public_key_hash | 20 bytes | bytes                  |
  +-------------------------+----------+------------------------+


  Secp256k1 (tag 1)
  =================

  +---------------------------+----------+------------------------+
  | Name                      | Size     | Contents               |
  +===========================+==========+========================+
  | Tag                       | 1 byte   | unsigned 8-bit integer |
  +---------------------------+----------+------------------------+
  | Secp256k1.Public_key_hash | 20 bytes | bytes                  |
  +---------------------------+----------+------------------------+


  P256 (tag 2)
  ============

  +----------------------+----------+------------------------+
  | Name                 | Size     | Contents               |
  +======================+==========+========================+
  | Tag                  | 1 byte   | unsigned 8-bit integer |
  +----------------------+----------+------------------------+
  | P256.Public_key_hash | 20 bytes | bytes                  |
  +----------------------+----------+------------------------+


  alpha.inlined.endorsement
  *************************

  +------------+----------+---------------------------------------------+
  | Name       | Size     | Contents                                    |
  +============+==========+=============================================+
  | branch     | 32 bytes | bytes                                       |
  +------------+----------+---------------------------------------------+
  | operations | 43 bytes | $alpha.inlined.endorsement_mempool.contents |
  +------------+----------+---------------------------------------------+
  | signature  | Variable | bytes                                       |
  +------------+----------+---------------------------------------------+


  alpha.inlined.endorsement_mempool.contents (43 bytes, 8-bit tag)
  ****************************************************************

  Endorsement (tag 21)
  ====================

  +--------------------+----------+-------------------------+
  | Name               | Size     | Contents                |
  +====================+==========+=========================+
  | Tag                | 1 byte   | unsigned 8-bit integer  |
  +--------------------+----------+-------------------------+
  | slot               | 2 bytes  | unsigned 16-bit integer |
  +--------------------+----------+-------------------------+
  | level              | 4 bytes  | signed 32-bit integer   |
  +--------------------+----------+-------------------------+
  | round              | 4 bytes  | signed 32-bit integer   |
  +--------------------+----------+-------------------------+
  | block_payload_hash | 32 bytes | bytes                   |
  +--------------------+----------+-------------------------+


  alpha.block_header.alpha.full_header
  ************************************

  +---------------------------------------+----------+-------------------------------------+
  | Name                                  | Size     | Contents                            |
  +=======================================+==========+=====================================+
  | level                                 | 4 bytes  | signed 32-bit integer               |
  +---------------------------------------+----------+-------------------------------------+
  | proto                                 | 1 byte   | unsigned 8-bit integer              |
  +---------------------------------------+----------+-------------------------------------+
  | predecessor                           | 32 bytes | bytes                               |
  +---------------------------------------+----------+-------------------------------------+
  | timestamp                             | 8 bytes  | signed 64-bit integer               |
  +---------------------------------------+----------+-------------------------------------+
  | validation_pass                       | 1 byte   | unsigned 8-bit integer              |
  +---------------------------------------+----------+-------------------------------------+
  | operations_hash                       | 32 bytes | bytes                               |
  +---------------------------------------+----------+-------------------------------------+
  | # bytes in field "fitness"            | 4 bytes  | unsigned 30-bit integer             |
  +---------------------------------------+----------+-------------------------------------+
  | fitness                               | Variable | sequence of $fitness.elem           |
  +---------------------------------------+----------+-------------------------------------+
  | context                               | 32 bytes | bytes                               |
  +---------------------------------------+----------+-------------------------------------+
  | payload_hash                          | 32 bytes | bytes                               |
  +---------------------------------------+----------+-------------------------------------+
  | payload_round                         | 4 bytes  | signed 32-bit integer               |
  +---------------------------------------+----------+-------------------------------------+
  | proof_of_work_nonce                   | 8 bytes  | bytes                               |
  +---------------------------------------+----------+-------------------------------------+
  | ? presence of field "seed_nonce_hash" | 1 byte   | boolean (0 for false, 255 for true) |
  +---------------------------------------+----------+-------------------------------------+
  | seed_nonce_hash                       | 32 bytes | bytes                               |
  +---------------------------------------+----------+-------------------------------------+
  | liquidity_baking_escape_vote          | 1 byte   | boolean (0 for false, 255 for true) |
  +---------------------------------------+----------+-------------------------------------+
  | signature                             | 64 bytes | bytes                               |
  +---------------------------------------+----------+-------------------------------------+


  fitness.elem
  ************

  +-----------------------+----------+-------------------------+
  | Name                  | Size     | Contents                |
  +=======================+==========+=========================+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer |
  +-----------------------+----------+-------------------------+
  | Unnamed field 0       | Variable | bytes                   |
  +-----------------------+----------+-------------------------+


  alpha.inlined.preendorsement
  ****************************

  +------------+----------+----------------------------------------+
  | Name       | Size     | Contents                               |
  +============+==========+========================================+
  | branch     | 32 bytes | bytes                                  |
  +------------+----------+----------------------------------------+
  | operations | 43 bytes | $alpha.inlined.preendorsement.contents |
  +------------+----------+----------------------------------------+
  | signature  | Variable | bytes                                  |
  +------------+----------+----------------------------------------+


  alpha.inlined.preendorsement.contents (43 bytes, 8-bit tag)
  ***********************************************************

  Preendorsement (tag 20)
  =======================

  +--------------------+----------+-------------------------+
  | Name               | Size     | Contents                |
  +====================+==========+=========================+
  | Tag                | 1 byte   | unsigned 8-bit integer  |
  +--------------------+----------+-------------------------+
  | slot               | 2 bytes  | unsigned 16-bit integer |
  +--------------------+----------+-------------------------+
  | level              | 4 bytes  | signed 32-bit integer   |
  +--------------------+----------+-------------------------+
  | round              | 4 bytes  | signed 32-bit integer   |
  +--------------------+----------+-------------------------+
  | block_payload_hash | 32 bytes | bytes                   |
  +--------------------+----------+-------------------------+


  X_5544
  ******

  +-------------------------------------------------------------------+----------+--------------------------------------------------------------+
  | Name                                                              | Size     | Contents                                                     |
  +===================================================================+==========+==============================================================+
  | # bytes in field "alpha.operation_metadata.alpha.balance_updates" | 4 bytes  | unsigned 30-bit integer                                      |
  +-------------------------------------------------------------------+----------+--------------------------------------------------------------+
  | balance_updates                                                   | Variable | sequence of $X_6                                             |
  +-------------------------------------------------------------------+----------+--------------------------------------------------------------+
  | delegate                                                          | 21 bytes | $public_key_hash                                             |
  +-------------------------------------------------------------------+----------+--------------------------------------------------------------+
  | preendorsement_power                                              | 4 bytes  | signed 31-bit integer in the range -1073741824 to 1073741823 |
  +-------------------------------------------------------------------+----------+--------------------------------------------------------------+


  X_5540
  ******

  +-------------------------------------------------------------------+----------+--------------------------------------------------------------+
  | Name                                                              | Size     | Contents                                                     |
  +===================================================================+==========+==============================================================+
  | # bytes in field "alpha.operation_metadata.alpha.balance_updates" | 4 bytes  | unsigned 30-bit integer                                      |
  +-------------------------------------------------------------------+----------+--------------------------------------------------------------+
  | balance_updates                                                   | Variable | sequence of $X_6                                             |
  +-------------------------------------------------------------------+----------+--------------------------------------------------------------+
  | delegate                                                          | 21 bytes | $public_key_hash                                             |
  +-------------------------------------------------------------------+----------+--------------------------------------------------------------+
  | endorsement_power                                                 | 4 bytes  | signed 31-bit integer in the range -1073741824 to 1073741823 |
  +-------------------------------------------------------------------+----------+--------------------------------------------------------------+


  X_4985
  ******

  +-------------------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | Name                                                              | Size                 | Contents                                                     |
  +===================================================================+======================+==============================================================+
  | # bytes in field "alpha.operation_metadata.alpha.balance_updates" | 4 bytes              | unsigned 30-bit integer                                      |
  +-------------------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | balance_updates                                                   | Variable             | sequence of $X_6                                             |
  +-------------------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | operation_result                                                  | Determined from data | $alpha.operation.alpha.operation_result.set_deposits_limit   |
  +-------------------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | # bytes in next field                                             | 4 bytes              | unsigned 30-bit integer                                      |
  +-------------------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | internal_operation_results                                        | Variable             | sequence of $alpha.operation.alpha.internal_operation_result |
  +-------------------------------------------------------------------+----------------------+--------------------------------------------------------------+


  N.t
  ***

  A variable-length sequence of bytes encoding a Zarith natural number. Each byte has a running unary size bit: the most significant bit of each byte indicates whether this is the last byte in the sequence (0) or whether the sequence continues (1). Size bits ignored, the data is the binary representation of the number in little-endian order.

  +------+----------------------+----------+
  | Name | Size                 | Contents |
  +======+======================+==========+
  | N.t  | Determined from data | bytes    |
  +------+----------------------+----------+


  alpha.error
  ***********

  +-----------------------+----------+-------------------------+
  | Name                  | Size     | Contents                |
  +=======================+==========+=========================+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer |
  +-----------------------+----------+-------------------------+
  | Unnamed field 0       | Variable | bytes                   |
  +-----------------------+----------+-------------------------+


  X_5539
  ******

  +-----------------------+----------+--------------------------+
  | Name                  | Size     | Contents                 |
  +=======================+==========+==========================+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer  |
  +-----------------------+----------+--------------------------+
  | Unnamed field 0       | Variable | sequence of $alpha.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                  |
  +-----------------+----------+------------------------+


  alpha.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_50                               |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | ? presence of field "big_map_diff"                                | 1 byte               | boolean (0 for false, 255 for true) |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | big_map_diff                                                      | Determined from data | $X_41                               |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | # bytes in field "alpha.operation_metadata.alpha.balance_updates" | 4 bytes              | unsigned 30-bit integer             |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | balance_updates                                                   | Variable             | sequence of $X_6                    |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | # bytes in next field                                             | 4 bytes              | unsigned 30-bit integer             |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | originated_contracts                                              | Variable             | sequence of $alpha.contract_id      |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | consumed_gas                                                      | Determined from data | $N.t                                |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | consumed_milligas                                                 | Determined from data | $N.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) |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | ? presence of field "lazy_storage_diff"                           | 1 byte               | boolean (0 for false, 255 for true) |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | lazy_storage_diff                                                 | Determined from data | $alpha.lazy_storage_diff            |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+


  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 $alpha.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_5539                             |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | ? presence of field "storage"                                     | 1 byte               | boolean (0 for false, 255 for true) |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | storage                                                           | Determined from data | $X_50                               |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | ? presence of field "big_map_diff"                                | 1 byte               | boolean (0 for false, 255 for true) |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | big_map_diff                                                      | Determined from data | $X_41                               |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | # bytes in field "alpha.operation_metadata.alpha.balance_updates" | 4 bytes              | unsigned 30-bit integer             |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | balance_updates                                                   | Variable             | sequence of $X_6                    |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | # bytes in next field                                             | 4 bytes              | unsigned 30-bit integer             |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | originated_contracts                                              | Variable             | sequence of $alpha.contract_id      |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | consumed_gas                                                      | Determined from data | $N.t                                |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | consumed_milligas                                                 | Determined from data | $N.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) |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | ? presence of field "lazy_storage_diff"                           | 1 byte               | boolean (0 for false, 255 for true) |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | lazy_storage_diff                                                 | Determined from data | $alpha.lazy_storage_diff            |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+


  X_5538 (Determined from data, 8-bit tag)
  ****************************************

  big_map (tag 0)
  ===============

  +------+----------------------+------------------------+
  | Name | Size                 | Contents               |
  +======+======================+========================+
  | Tag  | 1 byte               | unsigned 8-bit integer |
  +------+----------------------+------------------------+
  | id   | Determined from data | $Z.t                   |
  +------+----------------------+------------------------+
  | diff | Determined from data | $X_164                 |
  +------+----------------------+------------------------+


  sapling_state (tag 1)
  =====================

  +------+----------------------+------------------------+
  | Name | Size                 | Contents               |
  +======+======================+========================+
  | Tag  | 1 byte               | unsigned 8-bit integer |
  +------+----------------------+------------------------+
  | id   | Determined from data | $Z.t                   |
  +------+----------------------+------------------------+
  | diff | Determined from data | $X_5461                |
  +------+----------------------+------------------------+


  X_5518
  ******

  +-----------------------------+----------------------+-------------------------------------+
  | Name                        | Size                 | Contents                            |
  +=============================+======================+=====================================+
  | key_hash                    | 32 bytes             | bytes                               |
  +-----------------------------+----------------------+-------------------------------------+
  | key                         | Determined from data | $X_50                               |
  +-----------------------------+----------------------+-------------------------------------+
  | ? presence of field "value" | 1 byte               | boolean (0 for false, 255 for true) |
  +-----------------------------+----------------------+-------------------------------------+
  | value                       | Determined from data | $X_50                               |
  +-----------------------------+----------------------+-------------------------------------+


  Z.t
  ***

  A variable-length sequence of bytes encoding a Zarith integer. Each byte has a running unary size bit: the most significant bit of each byte indicates whether this is the last byte in the sequence (0) or whether the sequence continues (1). The second most significant bit of the first byte is reserved for the sign (0 for positive, 1 for negative). Size and sign bits ignored, the data is the binary representation of the absolute value of the number in little-endian order.

  +------+----------------------+----------+
  | Name | Size                 | Contents |
  +======+======================+==========+
  | Z.t  | Determined from data | bytes    |
  +------+----------------------+----------+


  alpha.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         | DIG                   |
  +-------------+-----------------------+
  | 113         | DUG                   |
  +-------------+-----------------------+
  | 114         | EMPTY_BIG_MAP         |
  +-------------+-----------------------+
  | 115         | APPLY                 |
  +-------------+-----------------------+
  | 116         | chain_id              |
  +-------------+-----------------------+
  | 117         | CHAIN_ID              |
  +-------------+-----------------------+
  | 118         | LEVEL                 |
  +-------------+-----------------------+
  | 119         | SELF_ADDRESS          |
  +-------------+-----------------------+
  | 120         | never                 |
  +-------------+-----------------------+
  | 121         | NEVER                 |
  +-------------+-----------------------+
  | 12