RPCs - Index

Shell and Protocol

The protocol-independent RPCs are described here.

Protocol Alpha

  • ../<block_id> (GET)

    • ../<block_id>/context

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

        • ../<block_id>/context/bakers/<Baker_hash> (GET)

          • ../<block_id>/context/bakers/<Baker_hash>/balance (GET)

          • ../<block_id>/context/bakers/<Baker_hash>/consensus_key (GET)

          • ../<block_id>/context/bakers/<Baker_hash>/deactivated (GET)

          • ../<block_id>/context/bakers/<Baker_hash>/delegated_balance (GET)

          • ../<block_id>/context/bakers/<Baker_hash>/delegated_contracts (GET)

          • ../<block_id>/context/bakers/<Baker_hash>/frozen_balance (GET)

          • ../<block_id>/context/bakers/<Baker_hash>/frozen_balance_by_cycle (GET)

          • ../<block_id>/context/bakers/<Baker_hash>/grace_period (GET)

          • ../<block_id>/context/bakers/<Baker_hash>/pending_consensus_key (GET)

          • ../<block_id>/context/bakers/<Baker_hash>/staking_balance (GET)

          • ../<block_id>/context/bakers/<Baker_hash>/voting_power (GET)

      • ../<block_id>/context/big_maps

        • ../<block_id>/context/big_maps/<big_map_id>

          • ../<block_id>/context/big_maps/<big_map_id>/<script_expr> (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/<string> (GET)

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

          • ../<block_id>/context/contracts/<contract_id>/public_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>/balance (GET)

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

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

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

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

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

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

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

          • ../<block_id>/context/delegates/<pkh>/voting_power (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>/endorsing_power (POST)

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

      • ../<block_id>/helpers/complete

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

      • ../<block_id>/helpers/current_level (GET)

      • ../<block_id>/helpers/endorsing_rights (GET)

      • ../<block_id>/helpers/forge

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

        • ../<block_id>/helpers/forge/protocol_data (POST)

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

      • ../<block_id>/helpers/is_baker_consensus_key

        • ../<block_id>/helpers/is_baker_consensus_key/<pkh> (GET)

      • ../<block_id>/helpers/levels_in_current_cycle (GET)

      • ../<block_id>/helpers/parse

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

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

      • ../<block_id>/helpers/preapply

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

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

      • ../<block_id>/helpers/scripts

        • ../<block_id>/helpers/scripts/entrypoint (POST)

        • ../<block_id>/helpers/scripts/entrypoints (POST)

        • ../<block_id>/helpers/scripts/normalize_data (POST)

        • ../<block_id>/helpers/scripts/normalize_script (POST)

        • ../<block_id>/helpers/scripts/pack_data (POST)

        • ../<block_id>/helpers/scripts/run_baker_code (POST)

        • ../<block_id>/helpers/scripts/run_baker_code_contract (GET)

        • ../<block_id>/helpers/scripts/run_code (POST)

        • ../<block_id>/helpers/scripts/run_operation (POST)

        • ../<block_id>/helpers/scripts/trace_baker_code (POST)

        • ../<block_id>/helpers/scripts/trace_code (POST)

        • ../<block_id>/helpers/scripts/typecheck_code (POST)

        • ../<block_id>/helpers/scripts/typecheck_data (POST)

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

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

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

    • ../<block_id>/minimal_valid_time (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>/required_endorsements (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_period_kind (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 ... ] ... ] }
  $An element of secp256k1:
    /* Secp256k1_group.Group (Base58Check-encoded) */
    $unistring
  $Baker_hash:
    /* A baker ID (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
  $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,
      "priority": integer ∈ [0, 2^16-1],
      "proof_of_work_nonce": /^[a-zA-Z0-9]+$/,
      "seed_nonce_hash"?: $cycle_nonce,
      "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, a base58 originated contract hash, or a
       base58 baker contract hash. */
    $unistring
  $alpha.entrypoint:
    /* entrypoint
       Named entrypoint to a Michelson smart contract */
    "default"
    || "root"
    || "do"
    || "set_delegate"
    || "remove_delegate"
    || "main"
    || 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.contents,
      "signature"?: $Signature }
  $alpha.inlined.endorsement.contents:
    { /* Endorsement */
      "kind": "endorsement",
      "level": integer ∈ [-2^31-1, 2^31] }
  $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]+$/ }
                    || [ $micheline.alpha.michelson_v1.expression ... ]
                    /* Sequence */
                    || { /* Generic prim (any number of args with or without
                            annot) */
                         "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]+$/ }
                    || [ $micheline.alpha.michelson_v1.expression ... ]
                    /* Sequence */
                    || { /* Generic prim (any number of args with or without
                            annot) */
                         "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]+$/ }
                       || [ $micheline.alpha.michelson_v1.expression ... ]
                       /* Sequence */
                       || { /* Generic prim (any number of args with or
                               without annot) */
                            "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]+$/ }
                       || [ $micheline.alpha.michelson_v1.expression ... ]
                       /* Sequence */
                       || { /* Generic prim (any number of args with or
                               without annot) */
                            "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]+$/ }
                       || [ $micheline.alpha.michelson_v1.expression ... ]
                       /* Sequence */
                       || { /* Generic prim (any number of args with or
                               without annot) */
                            "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]+$/ }
                       || [ $micheline.alpha.michelson_v1.expression ... ]
                       /* Sequence */
                       || { /* Generic prim (any number of args with or
                               without annot) */
                            "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]+$/ }
                 || [ $micheline.alpha.michelson_v1.expression ... ]
                 /* Sequence */
                 || { /* Generic prim (any number of args with or without
                         annot) */
                      "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]+$/ }
                 || [ $micheline.alpha.michelson_v1.expression ... ]
                 /* Sequence */
                 || { /* Generic prim (any number of args with or without
                         annot) */
                      "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.mapped_key:
    { "consensus_key": $Signature.Public_key_hash,
      "baker": $Baker_hash }
  $alpha.michelson.v1.primitives:
    "ADD"
    | "IF_LEFT"
    | "SELF_ADDRESS"
    | "KECCAK"
    | "Elt"
    | "TOTAL_VOTING_POWER"
    | "VOTING_POWER"
    | "bls12_381_fr"
    | "SHA256"
    | "key_hash"
    | "chain_id"
    | "Right"
    | "LE"
    | "map"
    | "sapling_state"
    | "storage"
    | "SOURCE"
    | "False"
    | "SHA512"
    | "BALANCE"
    | "EMPTY_BIG_MAP"
    | "signature"
    | "NOT"
    | "lambda"
    | "TRANSFER_TOKENS"
    | "DUG"
    | "COMPARE"
    | "SHA3"
    | "timestamp"
    | "MUL"
    | "big_map"
    | "bls12_381_g1"
    | "AMOUNT"
    | "DIP"
    | "ABS"
    | "bool"
    | "LT"
    | "never"
    | "bls12_381_g2"
    | "operation"
    | "CONCAT"
    | "UNIT"
    | "SWAP"
    | "DUP"
    | "option"
    | "CAR"
    | "CONS"
    | "baker_operation"
    | "NEQ"
    | "GET"
    | "Left"
    | "key"
    | "UNPAIR"
    | "DROP"
    | "NEG"
    | "CONTRACT"
    | "int"
    | "ADDRESS"
    | "True"
    | "parameter"
    | "unit"
    | "EQ"
    | "Pair"
    | "UPDATE"
    | "nat"
    | "AND"
    | "pair"
    | "READ_TICKET"
    | "set"
    | "CHECK_SIGNATURE"
    | "IF_CONS"
    | "INT"
    | "CREATE_CONTRACT"
    | "MEM"
    | "PAIRING_CHECK"
    | "BLAKE2B"
    | "SUBMIT_PROPOSALS"
    | "STEPS_TO_QUOTA"
    | "bytes"
    | "XOR"
    | "SELF"
    | "LEVEL"
    | "IMPLICIT_ACCOUNT"
    | "PACK"
    | "NEVER"
    | "NOW"
    | "RENAME"
    | "GET_AND_UPDATE"
    | "SENDER"
    | "contract"
    | "or"
    | "SLICE"
    | "CDR"
    | "OR"
    | "mutez"
    | "CHAIN_ID"
    | "ISNAT"
    | "SPLIT_TICKET"
    | "SOME"
    | "LOOP"
    | "SAPLING_VERIFY_UPDATE"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "IF_NONE"
    | "TICKET"
    | "ticket"
    | "ITER"
    | "EXEC"
    | "NONE"
    | "LEFT"
    | "string"
    | "JOIN_TICKETS"
    | "LSR"
    | "None"
    | "SET_BAKER_PVSS_KEY"
    | "EMPTY_SET"
    | "MAP"
    | "address"
    | "SET_BAKER_ACTIVE"
    | "LSL"
    | "RIGHT"
    | "SUBMIT_BALLOT"
    | "SIZE"
    | "list"
    | "IF"
    | "sapling_transaction"
    | "baker_hash"
    | "PAIR"
    | "LAMBDA"
    | "HASH_KEY"
    | "PUSH"
    | "LOOP_LEFT"
    | "SAPLING_EMPTY_STATE"
    | "DIG"
    | "TOGGLE_BAKER_DELEGATIONS"
    | "EMPTY_MAP"
    | "APPLY"
    | "CAST"
    | "pvss_key"
    | "SET_BAKER_CONSENSUS_KEY"
    | "FAILWITH"
    | "GT"
    | "NIL"
    | "SUB"
    | "EDIV"
    | "CREATE_ACCOUNT"
    | "GE"
    | "SET_DELEGATE"
    | "code"
  $alpha.mutez: $positive_bignum
  $alpha.operation.alpha.contents:
    { /* Endorsement */
      "kind": "endorsement",
      "level": integer ∈ [-2^31-1, 2^31] }
    || { /* Seed_nonce_revelation */
         "kind": "seed_nonce_revelation",
         "level": integer ∈ [-2^31-1, 2^31],
         "nonce": /^[a-zA-Z0-9]+$/ }
    || { /* Endorsement_with_slot */
         "kind": "endorsement_with_slot",
         "endorsement": $alpha.inlined.endorsement,
         "slot": integer ∈ [0, 2^16-1] }
    || { /* Double_endorsement_evidence */
         "kind": "double_endorsement_evidence",
         "op1": $alpha.inlined.endorsement,
         "op2": $alpha.inlined.endorsement,
         "slot": integer ∈ [0, 2^16-1] }
    || { /* 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]+$/ }
    || { /* 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]+$/ }
               || [ $micheline.alpha.michelson_v1.expression ... ]
               /* Sequence */
               || { /* Generic prim (any number of args with or without
                       annot) */
                    "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 }
    || { /* 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"?: $Baker_hash,
         "script": $alpha.scripted.contracts,
         "version": "1" }
    || { /* 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 }
    || { /* Delegation */
         "kind": "delegation",
         "source": $Signature.Public_key_hash,
         "fee": $alpha.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "delegate"?: $Baker_hash,
         "version": "1" }
    || { /* Failing_noop */
         "kind": "failing_noop",
         "arbitrary": $unistring }
    || { /* Baker_registration */
         "kind": "baker_registration",
         "source": $Signature.Public_key_hash,
         "fee": $alpha.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "credit": $alpha.mutez,
         "consensus_key": $Signature.Public_key,
         "proof": $Signature,
         "threshold": integer ∈ [0, 2^16-1],
         "owner_keys": [ $Signature.Public_key ... ] }
  $alpha.operation.alpha.contents_and_signature:
    { "contents": [ $alpha.operation.alpha.contents ... ],
      "signature": $Signature }
  $alpha.operation.alpha.internal_baker_operation_result:
    { /* baker_proposals */
      "kind": "baker_proposals",
      "baker": $Baker_hash,
      "nonce": integer ∈ [0, 2^16-1],
      "period": integer ∈ [-2^31-1, 2^31],
      "proposals": [ $unistring ... ],
      "result": $alpha.operation.alpha.operation_result.baker_proposals }
    || { /* baker_ballot */
         "kind": "baker_ballot",
         "baker": $Baker_hash,
         "nonce": integer ∈ [0, 2^16-1],
         "period": integer ∈ [-2^31-1, 2^31],
         "proposal": $unistring,
         "ballot": "nay" | "yay" | "pass",
         "result": $alpha.operation.alpha.operation_result.baker_ballot }
    || { /* set_baker_active */
         "kind": "set_baker_active",
         "baker": $Baker_hash,
         "nonce": integer ∈ [0, 2^16-1],
         "active": boolean,
         "result": $alpha.operation.alpha.operation_result.set_baker_active }
    || { /* toggle_baker_delegations */
         "kind": "toggle_baker_delegations",
         "baker": $Baker_hash,
         "nonce": integer ∈ [0, 2^16-1],
         "accept_delegations": boolean,
         "result":
           $alpha.operation.alpha.operation_result.toggle_baker_delegations }
    || { /* set_baker_consensus_key */
         "kind": "set_baker_consensus_key",
         "baker": $Baker_hash,
         "nonce": integer ∈ [0, 2^16-1],
         "key": $Signature.Public_key,
         "proof": $Signature,
         "result":
           $alpha.operation.alpha.operation_result.set_baker_consensus_key }
    || { /* set_baker_pvss_key */
         "kind": "set_baker_pvss_key",
         "baker": $Baker_hash,
         "nonce": integer ∈ [0, 2^16-1],
         "key": $An element of secp256k1,
         "result": $alpha.operation.alpha.operation_result.set_baker_pvss_key }
  $alpha.operation.alpha.internal_manager_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]+$/ }
               || [ $micheline.alpha.michelson_v1.expression ... ]
               /* Sequence */
               || { /* Generic prim (any number of args with or without
                       annot) */
                    "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.legacy }
    || { /* origination */
         "kind": "origination",
         "source": $alpha.contract_id,
         "nonce": integer ∈ [0, 2^16-1],
         "balance": $alpha.mutez,
         "delegate"?: $Baker_hash,
         "script": $alpha.scripted.contracts,
         "version": "1",
         "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.legacy }
    || { /* delegation */
         "kind": "delegation",
         "source": $alpha.contract_id,
         "nonce": integer ∈ [0, 2^16-1],
         "delegate"?: $Baker_hash,
         "version": "1",
         "result": $alpha.operation.alpha.operation_result.delegation }
    || { /* baker_registration */
         "kind": "baker_registration",
         "source": $alpha.contract_id,
         "nonce": integer ∈ [0, 2^16-1],
         "credit": $alpha.mutez,
         "consensus_key": $Signature.Public_key,
         "proof": $Signature,
         "threshold": integer ∈ [0, 2^16-1],
         "owner_keys": [ $Signature.Public_key ... ],
         "result": $alpha.operation.alpha.operation_result.baker_registration }
  $alpha.operation.alpha.internal_operation_result:
    $alpha.operation.alpha.internal_manager_operation_result
    /* internal_manager_operation */
    || $alpha.operation.alpha.internal_baker_operation_result
    /* internal_baker_operation */
  $alpha.operation.alpha.operation_contents_and_result:
    { /* Endorsement */
      "kind": "endorsement",
      "level": integer ∈ [-2^31-1, 2^31],
      "metadata":
        { "balance_updates": $alpha.operation_metadata.alpha.balance_updates,
          "baker": $Baker_hash,
          "slots": [ integer ∈ [0, 2^16-1] ... ] } }
    || { /* Seed_nonce_revelation */
         "kind": "seed_nonce_revelation",
         "level": integer ∈ [-2^31-1, 2^31],
         "nonce": /^[a-zA-Z0-9]+$/,
         "metadata":
           { "balance_updates":
               $alpha.operation_metadata.alpha.balance_updates } }
    || { /* Endorsement_with_slot */
         "kind": "endorsement_with_slot",
         "endorsement": $alpha.inlined.endorsement,
         "slot": integer ∈ [0, 2^16-1],
         "metadata":
           { "balance_updates":
               $alpha.operation_metadata.alpha.balance_updates,
             "baker": $Baker_hash,
             "slots": [ integer ∈ [0, 2^16-1] ... ] } }
    || { /* Double_endorsement_evidence */
         "kind": "double_endorsement_evidence",
         "op1": $alpha.inlined.endorsement,
         "op2": $alpha.inlined.endorsement,
         "slot": integer ∈ [0, 2^16-1],
         "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]+$/,
         "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]+$/ }
               || [ $micheline.alpha.michelson_v1.expression ... ]
               /* Sequence */
               || { /* Generic prim (any number of args with or without
                       annot) */
                    "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.legacy,
             "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"?: $Baker_hash,
         "script": $alpha.scripted.contracts,
         "version": "1",
         "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.legacy,
             "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"?: $Baker_hash,
         "version": "1",
         "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 ... ] } }
    || { /* Baker_registration */
         "kind": "baker_registration",
         "source": $Signature.Public_key_hash,
         "fee": $alpha.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "credit": $alpha.mutez,
         "consensus_key": $Signature.Public_key,
         "proof": $Signature,
         "threshold": integer ∈ [0, 2^16-1],
         "owner_keys": [ $Signature.Public_key ... ],
         "metadata":
           { "balance_updates":
               $alpha.operation_metadata.alpha.balance_updates,
             "operation_result":
               $alpha.operation.alpha.operation_result.baker_registration,
             "internal_operation_results"?:
               [ $alpha.operation.alpha.internal_operation_result ... ] } }
  $alpha.operation.alpha.operation_result.baker_ballot:
    { /* Applied */
      "status": "applied",
      "consumed_gas"?: $positive_bignum }
    || { /* Failed */
         "status": "failed",
         "errors": [ $alpha.error ... ] }
    || { /* Skipped */
         "status": "skipped" }
    || { /* Backtracked */
         "status": "backtracked",
         "errors"?: [ $alpha.error ... ],
         "consumed_gas"?: $positive_bignum }
  $alpha.operation.alpha.operation_result.baker_proposals:
    { /* Applied */
      "status": "applied",
      "consumed_gas"?: $positive_bignum }
    || { /* Failed */
         "status": "failed",
         "errors": [ $alpha.error ... ] }
    || { /* Skipped */
         "status": "skipped" }
    || { /* Backtracked */
         "status": "backtracked",
         "errors"?: [ $alpha.error ... ],
         "consumed_gas"?: $positive_bignum }
  $alpha.operation.alpha.operation_result.baker_registration:
    { /* Applied */
      "status": "applied",
      "balance_updates"?: $alpha.operation_metadata.alpha.balance_updates,
      "registered_baker": $Baker_hash,
      "consumed_gas"?: $positive_bignum,
      "storage_size"?: $bignum,
      "paid_storage_size_diff"?: $bignum }
    || { /* Failed */
         "status": "failed",
         "errors": [ $alpha.error ... ] }
    || { /* Skipped */
         "status": "skipped" }
    || { /* Backtracked */
         "status": "backtracked",
         "errors"?: [ $alpha.error ... ],
         "balance_updates"?: $alpha.operation_metadata.alpha.balance_updates,
         "registered_baker": $Baker_hash,
         "consumed_gas"?: $positive_bignum,
         "storage_size"?: $bignum,
         "paid_storage_size_diff"?: $bignum }
  $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.delegation.legacy:
    { /* 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]+$/ }
              || [ $micheline.alpha.michelson_v1.expression ... ]
              /* Sequence */
              || { /* Generic prim (any number of args with or without annot) */
                   "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]+$/ }
              || [ $micheline.alpha.michelson_v1.expression ... ]
              /* Sequence */
              || { /* Generic prim (any number of args with or without annot) */
                   "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]+$/ }
                 || [ $micheline.alpha.michelson_v1.expression ... ]
                 /* Sequence */
                 || { /* Generic prim (any number of args with or without
                         annot) */
                      "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]+$/ }
                 || [ $micheline.alpha.michelson_v1.expression ... ]
                 /* Sequence */
                 || { /* Generic prim (any number of args with or without
                         annot) */
                      "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]+$/ }
                 || [ $micheline.alpha.michelson_v1.expression ... ]
                 /* Sequence */
                 || { /* Generic prim (any number of args with or without
                         annot) */
                      "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]+$/ }
                 || [ $micheline.alpha.michelson_v1.expression ... ]
                 /* Sequence */
                 || { /* Generic prim (any number of args with or without
                         annot) */
                      "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]+$/ }
                    || [ $micheline.alpha.michelson_v1.expression ... ]
                    /* Sequence */
                    || { /* Generic prim (any number of args with or without
                            annot) */
                         "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]+$/ }
                    || [ $micheline.alpha.michelson_v1.expression ... ]
                    /* Sequence */
                    || { /* Generic prim (any number of args with or without
                            annot) */
                         "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.origination.legacy:
    { /* 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]+$/ }
              || [ $micheline.alpha.michelson_v1.expression ... ]
              /* Sequence */
              || { /* Generic prim (any number of args with or without annot) */
                   "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]+$/ }
              || [ $micheline.alpha.michelson_v1.expression ... ]
              /* Sequence */
              || { /* Generic prim (any number of args with or without annot) */
                   "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]+$/ }
                 || [ $micheline.alpha.michelson_v1.expression ... ]
                 /* Sequence */
                 || { /* Generic prim (any number of args with or without
                         annot) */
                      "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]+$/ }
                 || [ $micheline.alpha.michelson_v1.expression ... ]
                 /* Sequence */
                 || { /* Generic prim (any number of args with or without
                         annot) */
                      "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]+$/ }
                 || [ $micheline.alpha.michelson_v1.expression ... ]
                 /* Sequence */
                 || { /* Generic prim (any number of args with or without
                         annot) */
                      "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]+$/ }
                 || [ $micheline.alpha.michelson_v1.expression ... ]
                 /* Sequence */
                 || { /* Generic prim (any number of args with or without
                         annot) */
                      "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]+$/ }
                    || [ $micheline.alpha.michelson_v1.expression ... ]
                    /* Sequence */
                    || { /* Generic prim (any number of args with or without
                            annot) */
                         "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]+$/ }
                    || [ $micheline.alpha.michelson_v1.expression ... ]
                    /* Sequence */
                    || { /* Generic prim (any number of args with or without
                            annot) */
                         "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.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.set_baker_active:
    { /* Applied */
      "status": "applied",
      "active": boolean,
      "consumed_gas"?: $positive_bignum }
    || { /* Failed */
         "status": "failed",
         "errors": [ $alpha.error ... ] }
    || { /* Skipped */
         "status": "skipped" }
    || { /* Backtracked */
         "status": "backtracked",
         "errors"?: [ $alpha.error ... ],
         "active": boolean,
         "consumed_gas"?: $positive_bignum }
  $alpha.operation.alpha.operation_result.set_baker_consensus_key:
    { /* Applied */
      "status": "applied",
      "consumed_gas"?: $positive_bignum }
    || { /* Failed */
         "status": "failed",
         "errors": [ $alpha.error ... ] }
    || { /* Skipped */
         "status": "skipped" }
    || { /* Backtracked */
         "status": "backtracked",
         "errors"?: [ $alpha.error ... ],
         "consumed_gas"?: $positive_bignum }
  $alpha.operation.alpha.operation_result.set_baker_pvss_key:
    { /* Applied */
      "status": "applied",
      "consumed_gas"?: $positive_bignum }
    || { /* Failed */
         "status": "failed",
         "errors": [ $alpha.error ... ] }
    || { /* Skipped */
         "status": "skipped" }
    || { /* Backtracked */
         "status": "backtracked",
         "errors"?: [ $alpha.error ... ],
         "consumed_gas"?: $positive_bignum }
  $alpha.operation.alpha.operation_result.toggle_baker_delegations:
    { /* Applied */
      "status": "applied",
      "accept": boolean,
      "consumed_gas"?: $positive_bignum }
    || { /* Failed */
         "status": "failed",
         "errors": [ $alpha.error ... ] }
    || { /* Skipped */
         "status": "skipped" }
    || { /* Backtracked */
         "status": "backtracked",
         "errors"?: [ $alpha.error ... ],
         "accept": boolean,
         "consumed_gas"?: $positive_bignum }
  $alpha.operation.alpha.operation_result.transaction:
    { /* Applied */
      "status": "applied",
      "storage"?:
        { /* Int */
          "int": $bignum }
        || { /* String */
             "string": $unistring }
        || { /* Bytes */
             "bytes": /^[a-zA-Z0-9]+$/ }
        || [ $micheline.alpha.michelson_v1.expression ... ]
        /* Sequence */
        || { /* Generic prim (any number of args with or without annot) */
             "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]+$/ }
              || [ $micheline.alpha.michelson_v1.expression ... ]
              /* Sequence */
              || { /* Generic prim (any number of args with or without annot) */
                   "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]+$/ }
              || [ $micheline.alpha.michelson_v1.expression ... ]
              /* Sequence */
              || { /* Generic prim (any number of args with or without annot) */
                   "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]+$/ }
                 || [ $micheline.alpha.michelson_v1.expression ... ]
                 /* Sequence */
                 || { /* Generic prim (any number of args with or without
                         annot) */
                      "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]+$/ }
                 || [ $micheline.alpha.michelson_v1.expression ... ]
                 /* Sequence */
                 || { /* Generic prim (any number of args with or without
                         annot) */
                      "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]+$/ }
           || [ $micheline.alpha.michelson_v1.expression ... ]
           /* Sequence */
           || { /* Generic prim (any number of args with or without annot) */
                "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]+$/ }
                 || [ $micheline.alpha.michelson_v1.expression ... ]
                 /* Sequence */
                 || { /* Generic prim (any number of args with or without
                         annot) */
                      "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]+$/ }
                 || [ $micheline.alpha.michelson_v1.expression ... ]
                 /* Sequence */
                 || { /* Generic prim (any number of args with or without
                         annot) */
                      "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]+$/ }
                    || [ $micheline.alpha.michelson_v1.expression ... ]
                    /* Sequence */
                    || { /* Generic prim (any number of args with or without
                            annot) */
                         "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]+$/ }
                    || [ $micheline.alpha.michelson_v1.expression ... ]
                    /* Sequence */
                    || { /* Generic prim (any number of args with or without
                            annot) */
                         "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_with_metadata:
    { /* Operation_with_metadata */
      "contents":
        [ $alpha.operation.alpha.operation_contents_and_result ... ],
      "signature"?: $Signature,
      "mapped_keys"?: [ $alpha.mapped_key ... ] }
    || { /* 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" }
      || { /* Rewards */
           "kind": "freezer",
           "category": "rewards",
           "baker": $Baker_hash,
           "cycle": integer ∈ [-2^31-1, 2^31],
           "change": $int64,
           "origin": "block" || "migration" }
      || { /* Fees */
           "kind": "freezer",
           "category": "fees",
           "baker": $Baker_hash,
           "cycle": integer ∈ [-2^31-1, 2^31],
           "change": $int64,
           "origin": "block" || "migration" }
      || { /* Deposits */
           "kind": "freezer",
           "category": "deposits",
           "baker": $Baker_hash,
           "cycle": integer ∈ [-2^31-1, 2^31],
           "change": $int64,
           "origin": "block" || "migration" } ... ]
  $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]+$/ }
        || [ $micheline.alpha.michelson_v1.expression ... ]
        /* Sequence */
        || { /* Generic prim (any number of args with or without annot) */
             "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]+$/ }
        || [ $micheline.alpha.michelson_v1.expression ... ]
        /* Sequence */
        || { /* Generic prim (any number of args with or without annot) */
             "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
  $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] } ... ],
      "baker": $Baker_hash,
      "level":
        { /* This field is DEPRECATED: use level_info instead */
          "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 block that starts
               protocol alpha. This is specific to the protocol alpha. Other
               protocols might or might not include a similar notion. */,
          "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 protocol alpha. */,
          "cycle_position":
            integer ∈ [-2^31-1, 2^31]
            /* The current level of the block relative to the first block of
               the current cycle. */,
          "voting_period":
            integer ∈ [-2^31-1, 2^31]
            /* The current voting period's index. Note that cycles are a
               protocol-specific notion. As a result, the voting period index
               starts at 0 with the first block of protocol alpha. This field
               is DEPRECATED: use `../votes/voting_period` RPC
               instead. */,
          "voting_period_position":
            integer ∈ [-2^31-1, 2^31]
            /* The current level of the block relative to the first block of
               the current voting period. This field is DEPRECATED: use
               `../votes/voting_period` RPC instead. */,
          "expected_commitment":
            boolean
            /* Tells wether the baker of this block has to commit a seed
               nonce 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 block that starts
               protocol alpha. This is specific to the protocol alpha. Other
               protocols might or might not include a similar notion. */,
          "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 protocol alpha. */,
          "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 wether the baker of this block has to commit a seed
               nonce hash. */ },
      "voting_period_kind":
        /* This field is DEPRECATED: use voting_period_info instead */
        "proposal"
        || "exploration"
        || "cooldown"
        || "promotion"
        || "adoption",
      "voting_period_info":
        { "voting_period":
            { "index":
                integer ∈ [-2^31-1, 2^31]
                /* The voting period's index. Starts at 0 with the first
                   block of protocol alpha. */,
              "kind":
                "proposal"
                || "exploration"
                || "cooldown"
                || "promotion"
                || "adoption",
              "start_position": integer ∈ [-2^31-1, 2^31] },
          "position": integer ∈ [-2^31-1, 2^31],
          "remaining": integer ∈ [-2^31-1, 2^31] },
      "nonce_hash": $cycle_nonce /* Some */ || null /* None */,
      "consumed_gas": $positive_bignum,
      "deactivated": [ $Baker_hash ... ],
      "balance_updates": $alpha.operation_metadata.alpha.balance_updates }
  $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]+$/ ... ]
  $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]+$/ }
    || [ $micheline.alpha.michelson_v1.expression ... ]
    /* Sequence */
    || { /* Generic prim (any number of args with or without annot) */
         "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,
      "mapped_keys"?: [ $alpha.mapped_key ... ] }
    || { /* 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,
      "priority": integer ∈ [0, 2^16-1],
      "proof_of_work_nonce": /^[a-zA-Z0-9]+$/,
      "seed_nonce_hash"?: $cycle_nonce,
      "signature": $Signature }
  $sapling.DH.epk: /^[a-zA-Z0-9]+$/
  $sapling.transaction.ciphertext:
    { "cv": $sapling.transaction.commitment_value,
      "epk": $sapling.DH.epk,
      "payload_enc": /^[a-zA-Z0-9]+$/,
      "nonce_enc": /^[a-zA-Z0-9]+$/,
      "payload_out": /^[a-zA-Z0-9]+$/,
      "nonce_out": /^[a-zA-Z0-9]+$/ }
  $sapling.transaction.commitment: /^[a-zA-Z0-9]+$/
  $sapling.transaction.commitment_value: /^[a-zA-Z0-9]+$/
  $sapling.transaction.nullifier: /^[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] ... ] }
  +--------------------------------+----------------------+-------------------------------------+
  | 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_13                   |
  +--------------------------------+----------------------+-------------------------------------+


  X_13
  ****

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


  X_6391 (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_6390                |
  +-----------------+----------------------+------------------------+


  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_6390 (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                                                            |
  +---------------------------------+----------+------------------------------------------------------------------+
  | # bytes in next field           | 4 bytes  | unsigned 30-bit integer                                          |
  +---------------------------------+----------+------------------------------------------------------------------+
  | mapped_keys                     | Variable | sequence of $alpha.mapped_key                                    |
  +---------------------------------+----------+------------------------------------------------------------------+


  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.mapped_key
  ****************

  +---------------+----------+------------------+
  | Name          | Size     | Contents         |
  +===============+==========+==================+
  | consensus_key | 21 bytes | $public_key_hash |
  +---------------+----------+------------------+
  | baker         | 20 bytes | bytes            |
  +---------------+----------+------------------+


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

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

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


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

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


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

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


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

  Endorsement (tag 0)
  ===================

  +----------+----------------------+------------------------+
  | Name     | Size                 | Contents               |
  +==========+======================+========================+
  | Tag      | 1 byte               | unsigned 8-bit integer |
  +----------+----------------------+------------------------+
  | level    | 4 bytes              | signed 32-bit integer  |
  +----------+----------------------+------------------------+
  | metadata | Determined from data | $X_6386                |
  +----------+----------------------+------------------------+


  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                      |
  +-----------------------+----------------------+-------------------------------------------------+
  | slot                  | 2 bytes              | unsigned 16-bit integer                         |
  +-----------------------+----------------------+-------------------------------------------------+
  | 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   |
  +----------+----------+------------------------+


  Endorsement_with_slot (tag 10)
  ==============================

  +-----------------------+----------------------+----------------------------+
  | Name                  | Size                 | Contents                   |
  +=======================+======================+============================+
  | Tag                   | 1 byte               | unsigned 8-bit integer     |
  +-----------------------+----------------------+----------------------------+
  | # bytes in next field | 4 bytes              | unsigned 30-bit integer    |
  +-----------------------+----------------------+----------------------------+
  | endorsement           | Variable             | $alpha.inlined.endorsement |
  +-----------------------+----------------------+----------------------------+
  | slot                  | 2 bytes              | unsigned 16-bit integer    |
  +-----------------------+----------------------+----------------------------+
  | metadata              | Determined from data | $X_6386                    |
  +-----------------------+----------------------+----------------------------+


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


  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_6098                             |
  +----------------------------------+----------------------+-------------------------------------+
  | metadata                         | Determined from data | $X_4508                             |
  +----------------------------------+----------------------+-------------------------------------+


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


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


  Baker_registration (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                    |
  +-----------------------+----------------------+-------------------------+
  | credit                | Determined from data | $N.t                    |
  +-----------------------+----------------------+-------------------------+
  | consensus_key         | Determined from data | $public_key             |
  +-----------------------+----------------------+-------------------------+
  | proof                 | 64 bytes             | bytes                   |
  +-----------------------+----------------------+-------------------------+
  | threshold             | 2 bytes              | unsigned 16-bit integer |
  +-----------------------+----------------------+-------------------------+
  | # bytes in next field | 4 bytes              | unsigned 30-bit integer |
  +-----------------------+----------------------+-------------------------+
  | owner_keys            | Variable             | sequence of $public_key |
  +-----------------------+----------------------+-------------------------+
  | metadata              | Determined from data | $X_1860                 |
  +-----------------------+----------------------+-------------------------+


  Origination (tag 209)
  =====================

  +--------------------------------+----------------------+-------------------------------------+
  | 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                       | 20 bytes             | bytes                               |
  +--------------------------------+----------------------+-------------------------------------+
  | script                         | Determined from data | $alpha.scripted.contracts           |
  +--------------------------------+----------------------+-------------------------------------+
  | metadata                       | Determined from data | $X_813                              |
  +--------------------------------+----------------------+-------------------------------------+


  Delegation (tag 210)
  ====================

  +--------------------------------+----------------------+-------------------------------------+
  | 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                       | 20 bytes             | bytes                               |
  +--------------------------------+----------------------+-------------------------------------+
  | metadata                       | Determined from data | $X_5573                             |
  +--------------------------------+----------------------+-------------------------------------+


  X_6386
  ******

  +-------------------------------------------------------------------+----------+-------------------------------------+
  | Name                                                              | Size     | Contents                            |
  +===================================================================+==========+=====================================+
  | # bytes in field "alpha.operation_metadata.alpha.balance_updates" | 4 bytes  | unsigned 30-bit integer             |
  +-------------------------------------------------------------------+----------+-------------------------------------+
  | balance_updates                                                   | Variable | sequence of $X_10                   |
  +-------------------------------------------------------------------+----------+-------------------------------------+
  | baker                                                             | 20 bytes | bytes                               |
  +-------------------------------------------------------------------+----------+-------------------------------------+
  | # bytes in next field                                             | 4 bytes  | unsigned 30-bit integer             |
  +-------------------------------------------------------------------+----------+-------------------------------------+
  | slots                                                             | Variable | sequence of unsigned 16-bit integer |
  +-------------------------------------------------------------------+----------+-------------------------------------+


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


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


  Rewards (tag 1)
  ===============

  +-------+----------+------------------------+
  | Name  | Size     | Contents               |
  +=======+==========+========================+
  | Tag   | 1 byte   | unsigned 8-bit integer |
  +-------+----------+------------------------+
  | baker | 20 bytes | bytes                  |
  +-------+----------+------------------------+
  | cycle | 4 bytes  | signed 32-bit integer  |
  +-------+----------+------------------------+


  Fees (tag 2)
  ============

  +-------+----------+------------------------+
  | Name  | Size     | Contents               |
  +=======+==========+========================+
  | Tag   | 1 byte   | unsigned 8-bit integer |
  +-------+----------+------------------------+
  | baker | 20 bytes | bytes                  |
  +-------+----------+------------------------+
  | cycle | 4 bytes  | signed 32-bit integer  |
  +-------+----------+------------------------+


  Deposits (tag 3)
  ================

  +-------+----------+------------------------+
  | Name  | Size     | Contents               |
  +=======+==========+========================+
  | Tag   | 1 byte   | unsigned 8-bit integer |
  +-------+----------+------------------------+
  | baker | 20 bytes | bytes                  |
  +-------+----------+------------------------+
  | cycle | 4 bytes  | signed 32-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                |
  +---------------+----------+------------------------+


  Baker (tag 2)
  =============

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


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


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

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


  alpha.inlined.endorsement.contents (5 bytes, 8-bit tag)
  *******************************************************

  Endorsement (tag 0)
  ===================

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


  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                               |
  +---------------------------------------+----------+-------------------------------------+
  | priority                              | 2 bytes  | unsigned 16-bit integer             |
  +---------------------------------------+----------+-------------------------------------+
  | proof_of_work_nonce                   | 8 bytes  | bytes                               |
  +---------------------------------------+----------+-------------------------------------+
  | ? presence of field "seed_nonce_hash" | 1 byte   | boolean (0 for false, 255 for true) |
  +---------------------------------------+----------+-------------------------------------+
  | seed_nonce_hash                       | 32 bytes | bytes                               |
  +---------------------------------------+----------+-------------------------------------+
  | signature                             | 64 bytes | bytes                               |
  +---------------------------------------+----------+-------------------------------------+


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

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


  X_5573
  ******

  +-------------------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | Name                                                              | Size                 | Contents                                                     |
  +===================================================================+======================+==============================================================+
  | # bytes in field "alpha.operation_metadata.alpha.balance_updates" | 4 bytes              | unsigned 30-bit integer                                      |
  +-------------------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | balance_updates                                                   | Variable             | sequence of $X_10                                            |
  +-------------------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | operation_result                                                  | Determined from data | $alpha.operation.alpha.operation_result.delegation           |
  +-------------------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | # 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)
  *********************************************************************************

  internal_manager_operation (tag 0)
  ==================================

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


  internal_baker_operation (tag 1)
  ================================

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


  N.t
  ***

  A variable length sequence of bytes, encoding a Zarith number. Each byte has a running unary size bit: the most significant bit of each byte tells is this is the last byte in the sequence (0) or if there is more to read (1). Size bits ignored, data is then the binary representation of the absolute value of the number in little endian order.

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


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

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


  X_6368
  ******

  +-----------------------+----------+--------------------------+
  | 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 |
  +-----------------+----------+------------------------+
  | Unnamed field 0 | 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_41                               |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | ? presence of field "big_map_diff"                                | 1 byte               | boolean (0 for false, 255 for true) |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | big_map_diff                                                      | Determined from data | $X_32                               |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | # bytes in field "alpha.operation_metadata.alpha.balance_updates" | 4 bytes              | unsigned 30-bit integer             |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | balance_updates                                                   | Variable             | sequence of $X_10                   |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | # 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_6368                             |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | ? presence of field "storage"                                     | 1 byte               | boolean (0 for false, 255 for true) |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | storage                                                           | Determined from data | $X_41                               |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | ? presence of field "big_map_diff"                                | 1 byte               | boolean (0 for false, 255 for true) |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | big_map_diff                                                      | Determined from data | $X_32                               |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | # bytes in field "alpha.operation_metadata.alpha.balance_updates" | 4 bytes              | unsigned 30-bit integer             |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | balance_updates                                                   | Variable             | sequence of $X_10                   |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | # 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_6367 (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_155                 |
  +------+----------------------+------------------------+


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


  X_6347
  ******

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


  Z.t
  ***

  A variable length sequence of bytes, encoding a Zarith number. Each byte has a running unary size bit: the most significant bit of each byte tells is this is the last byte in the sequence (0) or if there is more to read (1). The second most significant bit of the first byte is reserved for the sign (positive if zero). Size and sign bits ignored, data is then the binary representation of the absolute value of the number in little endian order.

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


  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         | baker_hash               |
  +-------------+--------------------------+
  | 142         | baker_operation          |
  +-------------+--------------------------+
  | 143         | pvss_key                 |
  +-------------+--------------------------+
  | 144         | SUBMIT_PROPOSALS         |
  +-------------+--------------------------+
  | 145         | SUBMIT_BALLOT            |
  +-------------+--------------------------+
  | 146         | SET_BAKER_ACTIVE         |
  +-------------+--------------------------+
  | 147         | TOGGLE_BAKER_DELEGATIONS |
  +-------------+--------------------------+
  | 148         | SET_BAKER_CONSENSUS_KEY  |
  +-------------+--------------------------+
  | 149         | SET_BAKER_PVSS_KEY       |
  +-------------+--------------------------+


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

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

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


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


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

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


  X_6289
  ******

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


  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_41                  |
  +------------+----------------------+------------------------+
  | value_type | Determined from data | $X_41                  |
  +------------+----------------------+------------------------+


  X_6098
  ******

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


  main (tag 5)
  ============

  +------+--------+------------------------+
  | 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.legacy (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_32                               |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | # bytes in field "alpha.operation_metadata.alpha.balance_updates" | 4 bytes              | unsigned 30-bit integer             |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | balance_updates                                                   | Variable             | sequence of $X_10                   |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | # 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_6368                             |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | ? presence of field "big_map_diff"                                | 1 byte               | boolean (0 for false, 255 for true) |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | big_map_diff                                                      | Determined from data | $X_32                               |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | # bytes in field "alpha.operation_metadata.alpha.balance_updates" | 4 bytes              | unsigned 30-bit integer             |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | balance_updates                                                   | Variable             | sequence of $X_10                   |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | # 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.baker_registration (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_10       |
  +-------------------------------------------------------------------+----------------------+-------------------------+
  | registered_baker                                                  | 20 bytes             | bytes                   |
  +-------------------------------------------------------------------+----------------------+-------------------------+
  | consumed_gas                                                      | Determined from data | $N.t                    |
  +-------------------------------------------------------------------+----------------------+-------------------------+
  | storage_size                                                      | Determined from data | $Z.t                    |
  +-------------------------------------------------------------------+----------------------+-------------------------+
  | paid_storage_size_diff                                            | Determined from data | $Z.t                    |
  +-------------------------------------------------------------------+----------------------+-------------------------+


  Failed (tag 1)
  ==============

  +-----------------------+----------+--------------------------+
  | Name                  | Size     | Contents                 |
  +=======================+==========+==========================+
  | Tag                   | 1 byte   | unsigned 8-bit integer   |
  +-----------------------+----------+--------------------------+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer  |
  +-----------------------+----------+--------------------------+
  | errors                | Variable | sequence of $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_6368                             |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | # bytes in field "alpha.operation_metadata.alpha.balance_updates" | 4 bytes              | unsigned 30-bit integer             |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | balance_updates                                                   | Variable             | sequence of $X_10                   |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | registered_baker                                                  | 20 bytes             | bytes                               |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | consumed_gas                                                      | Determined from data | $N.t                                |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | storage_size                                                      | Determined from data | $Z.t                                |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+
  | paid_storage_size_diff                                            | Determined from data | $Z.t                                |
  +-------------------------------------------------------------------+----------------------+-------------------------------------+


  X_5584
  ******

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


  X_4508
  ******

  +-------------------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | Name                                                              | Size                 | Contents                                                     |
  +===================================================================+======================+==============================================================+
  | # bytes in field "alpha.operation_metadata.alpha.balance_updates" | 4 bytes              | unsigned 30-bit integer                                      |
  +-------------------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | balance_updates                                                   | Variable             | sequence of $X_10                                            |
  +-------------------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | 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_1860
  ******

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


  X_813
  *****

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


  X_812 (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.delegation |
  +------------+----------------------+----------------------------------------------------+


  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_6098                                             |
  +----------------------------------+----------------------+-----------------------------------------------------+
  | 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.legacy |
  +--------------------------------+----------------------+------------------------------------------------------------+


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


  baker_registration (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                                    |
  +-----------------------+----------------------+------------------------------------------------------------+
  | credit                | Determined from data | $N.t                                                       |
  +-----------------------+----------------------+------------------------------------------------------------+
  | consensus_key         | Determined from data | $public_key                                                |
  +-----------------------+----------------------+------------------------------------------------------------+
  | proof                 | 64 bytes             | bytes                                                      |
  +-----------------------+----------------------+------------------------------------------------------------+
  | threshold             | 2 bytes              | unsigned 16-bit integer                                    |
  +-----------------------+----------------------+------------------------------------------------------------+
  | # bytes in next field | 4 bytes              | unsigned 30-bit integer                                    |
  +-----------------------+----------------------+------------------------------------------------------------+
  | owner_keys            | Variable             | sequence of $public_key                                    |
  +-----------------------+----------------------+------------------------------------------------------------+
  | result                | Determined from data | $alpha.operation.alpha.operation_result.baker_registration |
  +-----------------------+----------------------+------------------------------------------------------------+


  origination (tag 202)
  =====================

  +--------------------------------+----------------------+------------------------------------------------------------+
  | 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                       | 20 bytes             | bytes                                                      |
  +--------------------------------+----------------------+------------------------------------------------------------+
  | script                         | Determined from data | $alpha.scripted.contracts                                  |
  +--------------------------------+----------------------+------------------------------------------------------------+
  | result                         | Determined from data | $alpha.operation.alpha.operation_result.origination.legacy |
  +--------------------------------+----------------------+------------------------------------------------------------+


  delegation (tag 203)
  ====================

  +--------------------------------+----------------------+----------------------------------------------------+
  | 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                       | 20 bytes             | bytes                                              |
  +--------------------------------+----------------------+----------------------------------------------------+
  | result                         | Determined from data | $alpha.operation.alpha.operation_result.delegation |
  +--------------------------------+----------------------+----------------------------------------------------+


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

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


  X_155 (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_6347     |
  +-----------------------+----------+-------------------------+


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


  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_6347     |
  +-----------------------+----------------------+-------------------------+
  | key_type              | Determined from data | $X_41                   |
  +-----------------------+----------------------+-------------------------+
  | value_type            | Determined from data | $X_41                   |
  +-----------------------+----------------------+-------------------------+


  X_73
  ****

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


  X_32
  ****

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


  X_41 (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_41       |
  +-----------------------+----------+-------------------------+


  Prim (no args, annot) (tag 3)
  =============================

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


  Prim (no args + annot) (tag 4)
  ==============================

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


  Prim (1 arg, no annot) (tag 5)
  ==============================

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


  Prim (1 arg + annot) (tag 6)
  ============================

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


  Prim (2 args, no annot) (tag 7)
  ===============================

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


  Prim (2 args + annot) (tag 8)
  =============================

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


  Generic prim (any number of args with or without annot) (tag 9)
  ===============================================================

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

  baker_proposals (tag 0)
  =======================

  +-----------------------+----------------------+------------------------------------------------------------+
  | Name                  | Size                 | Contents                                                   |
  +=======================+======================+============================================================+
  | Tag                   | 1 byte               | unsigned 8-bit integer                                     |
  +-----------------------+----------------------+------------------------------------------------------------+
  | baker                 | 20 bytes             | bytes                                                      |
  +-----------------------+----------------------+------------------------------------------------------------+
  | nonce                 | 2 bytes              | unsigned 16-bit integer                                    |
  +-----------------------+----------------------+------------------------------------------------------------+
  | period                | 4 bytes              | signed 32-bit integer                                      |
  +-----------------------+----------------------+------------------------------------------------------------+
  | # bytes in next field | 4 bytes              | unsigned 30-bit integer                                    |
  +-----------------------+----------------------+------------------------------------------------------------+
  | proposals             | Variable             | sequence of $X_5584                                        |
  +-----------------------+----------------------+------------------------------------------------------------+
  | result                | Determined from data | $alpha.operation.alpha.operation_result.set_baker_pvss_key |
  +-----------------------+----------------------+------------------------------------------------------------+


  baker_ballot (tag 1)
  ====================

  +-----------------------+----------------------+------------------------------------------------------------+
  | Name                  | Size                 | Contents                                                   |
  +=======================+======================+============================================================+
  | Tag                   | 1 byte               | unsigned 8-bit integer                                     |
  +-----------------------+----------------------+------------------------------------------------------------+
  | baker                 | 20 bytes             | bytes                                                      |
  +-----------------------+----------------------+------------------------------------------------------------+
  | nonce                 | 2 bytes              | unsigned 16-bit integer                                    |
  +-----------------------+----------------------+------------------------------------------------------------+
  | period                | 4 bytes              | signed 32-bit integer                                      |
  +-----------------------+----------------------+------------------------------------------------------------+
  | # bytes in next field | 4 bytes              | unsigned 30-bit integer                                    |
  +-----------------------+----------------------+------------------------------------------------------------+
  | proposal              | Variable             | bytes                                                      |
  +-----------------------+----------------------+------------------------------------------------------------+
  | ballot                | 1 byte               | signed 8-bit integer                                       |
  +-----------------------+----------------------+------------------------------------------------------------+
  | result                | Determined from data | $alpha.operation.alpha.operation_result.set_baker_pvss_key |
  +-----------------------+----------------------+------------------------------------------------------------+


  set_baker_active (tag 2)
  ========================

  +--------+----------------------+----------------------------------------------------------+
  | Name   | Size                 | Contents                                                 |
  +========+======================+==========================================================+
  | Tag    | 1 byte               | unsigned 8-bit integer                                   |
  +--------+----------------------+----------------------------------------------------------+
  | baker  | 20 bytes             | bytes                                                    |
  +--------+----------------------+----------------------------------------------------------+
  | nonce  | 2 bytes              | unsigned 16-bit integer                                  |
  +--------+----------------------+----------------------------------------------------------+
  | active | 1 byte               | boolean (0 for false, 255 for true)                      |
  +--------+----------------------+----------------------------------------------------------+
  | result | Determined from data | $alpha.operation.alpha.operation_result.set_baker_active |
  +--------+----------------------+----------------------------------------------------------+


  toggle_baker_delegations (tag 3)
  ================================

  +--------------------+----------------------+------------------------------------------------------------------+
  | Name               | Size                 | Contents                                                         |
  +====================+======================+==================================================================+
  | Tag                | 1 byte               | unsigned 8-bit integer                                           |
  +--------------------+----------------------+------------------------------------------------------------------+
  | baker              | 20 bytes             | bytes                                                            |
  +--------------------+----------------------+------------------------------------------------------------------+
  | nonce              | 2 bytes              | unsigned 16-bit integer                                          |
  +--------------------+----------------------+------------------------------------------------------------------+
  | accept_delegations | 1 byte               | boolean (0 for false, 255 for true)                              |
  +--------------------+----------------------+------------------------------------------------------------------+
  | result             | Determined from data | $alpha.operation.alpha.operation_result.toggle_baker_delegations |
  +--------------------+----------------------+------------------------------------------------------------------+


  set_baker_consensus_key (tag 4)
  ===============================

  +--------+----------------------+------------------------------------------------------------+
  | Name   | Size                 | Contents                                                   |
  +========+======================+============================================================+
  | Tag    | 1 byte               | unsigned 8-bit integer                                     |
  +--------+----------------------+------------------------------------------------------------+
  | baker  | 20 bytes             | bytes                                                      |
  +--------+----------------------+------------------------------------------------------------+
  | nonce  | 2 bytes              | unsigned 16-bit integer                                    |
  +--------+----------------------+------------------------------------------------------------+
  | key    | Determined from data | $public_key                                                |
  +--------+----------------------+------------------------------------------------------------+
  | proof  | 64 bytes             | bytes                                                      |
  +--------+----------------------+------------------------------------------------------------+
  | result | Determined from data | $alpha.operation.alpha.operation_result.set_baker_pvss_key |
  +--------+----------------------+------------------------------------------------------------+


  set_baker_pvss_key (tag 5)
  ==========================

  +--------+----------------------+------------------------------------------------------------+
  | Name   | Size                 | Contents                                                   |
  +========+======================+============================================================+
  | Tag    | 1 byte               | unsigned 8-bit integer                                     |
  +--------+----------------------+------------------------------------------------------------+
  | baker  | 20 bytes             | bytes                                                      |
  +--------+----------------------+------------------------------------------------------------+
  | nonce  | 2 bytes              | unsigned 16-bit integer                                    |
  +--------+----------------------+------------------------------------------------------------+
  | key    | Determined from data | $X_5584                                                    |
  +--------+----------------------+------------------------------------------------------------+
  | result | Determined from data | $alpha.operation.alpha.operation_result.set_baker_pvss_key |
  +--------+----------------------+------------------------------------------------------------+


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

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

  +--------------+----------------------+-------------------------------------+
  | Name         | Size                 | Contents                            |
  +==============+======================+=====================================+
  | Tag          | 1 byte               | unsigned 8-bit integer              |
  +--------------+----------------------+-------------------------------------+
  | active       | 1 byte               | boolean (0 for false, 255 for true) |
  +--------------+----------------------+-------------------------------------+
  | consumed_gas | 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_6368                             |
  +------------------------------+----------------------+-------------------------------------+
  | active                       | 1 byte               | boolean (0 for false, 255 for true) |
  +------------------------------+----------------------+-------------------------------------+
  | consumed_gas                 | Determined from data | $N.t                                |
  +------------------------------+----------------------+-------------------------------------+


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

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

  +--------------+----------------------+-------------------------------------+
  | Name         | Size                 | Contents                            |
  +==============+======================+=====================================+
  | Tag          | 1 byte               | unsigned 8-bit integer              |
  +--------------+----------------------+-------------------------------------+
  | accept       | 1 byte               | boolean (0 for false, 255 for true) |
  +--------------+----------------------+-------------------------------------+
  | consumed_gas | 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_6368                             |
  +------------------------------+----------------------+-------------------------------------+
  | accept                       | 1 byte               | boolean (0 for false, 255 for true) |
  +------------------------------+----------------------+-------------------------------------+
  | consumed_gas                 | Determined from data | $N.t                                |
  +------------------------------+----------------------+-------------------------------------+


  alpha.operation.alpha.operation_result.set_baker_pvss_key (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                   |
  +--------------+----------------------+------------------------+


  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_6368                             |
  +------------------------------+----------------------+-------------------------------------+
  | consumed_gas                 | Determined from data | $N.t                                |
  +------------------------------+----------------------+-------------------------------------+


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

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

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


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

  Endorsement (tag 0)
  ===================

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


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

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


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

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


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


  Endorsement_with_slot (tag 10)
  ==============================

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


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


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


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


  Baker_registration (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                    |
  +-----------------------+----------------------+-------------------------+
  | credit                | Determined from data | $N.t                    |
  +-----------------------+----------------------+-------------------------+
  | consensus_key         | Determined from data | $public_key             |
  +-----------------------+----------------------+-------------------------+
  | proof                 | 64 bytes             | bytes                   |
  +-----------------------+----------------------+-------------------------+
  | threshold             | 2 bytes              | unsigned 16-bit integer |
  +-----------------------+----------------------+-------------------------+
  | # bytes in next field | 4 bytes              | unsigned 30-bit integer |
  +-----------------------+----------------------+-------------------------+
  | owner_keys            | Variable             | sequence of $public_key |
  +-----------------------+----------------------+-------------------------+


  Origination (tag 209)
  =====================

  +--------------------------------+----------------------+-------------------------------------+
  | 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                       | 20 bytes             | bytes                               |
  +--------------------------------+----------------------+-------------------------------------+
  | script                         | Determined from data | $alpha.scripted.contracts           |
  +--------------------------------+----------------------+-------------------------------------+


  Delegation (tag 210)
  ====================

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


  X_0
  ***

  +-------------------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | Name                                                              | Size                 | Contents                                                     |
  +===================================================================+======================+==============================================================+
  | # bytes in next 17 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                                                         |
  +-------------------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | baker                                                             | 20 bytes             | bytes                                                        |
  +-------------------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | level                                                             | 25 bytes             | $X_3                                                         |
  +-------------------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | level_info                                                        | 17 bytes             | $X_4                                                         |
  +-------------------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | voting_period_kind                                                | 1 byte               | $X_8                                                         |
  +-------------------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | voting_period_info                                                | 17 bytes             | $X_6                                                         |
  +-------------------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | nonce_hash                                                        | Determined from data | $X_9                                                         |
  +-------------------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | consumed_gas                                                      | Determined from data | $N.t                                                         |
  +-------------------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | # bytes in next field                                             | 4 bytes              | unsigned 30-bit integer                                      |
  +-------------------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | deactivated                                                       | Variable             | sequence of bytes                                            |
  +-------------------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | # bytes in field "alpha.operation_metadata.alpha.balance_updates" | 4 bytes              | unsigned 30-bit integer                                      |
  +-------------------------------------------------------------------+----------------------+--------------------------------------------------------------+
  | balance_updates                                                   | Variable             | sequence of $X_10                                            |
  +-------------------------------------------------------------------+----------------------+--------------------------------------------------------------+


  X_10
  ****

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


  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 |
  +-------------+----------+------------------------+
  | cycle_nonce | 32 bytes | bytes                  |
  +-------------+----------+------------------------+


  X_6
  ***

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


  X_7
  ***

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


  X_8 (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_4
  ***

  +---------------------+---------+-------------------------------------+
  | 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_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               |
  +------------------------+---------+-------------------------------------+
  | voting_period          | 4 bytes | signed 32-bit integer               |
  +------------------------+---------+-------------------------------------+
  | voting_period_position | 4 bytes | signed 32-bit integer               |
  +------------------------+---------+-------------------------------------+
  | expected_commitment    | 1 byte  | boolean (0 for false, 255 for true) |
  +------------------------+---------+-------------------------------------+


  X_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/bakers?[active]&[inactive]

Lists all registered bakers.

Optional query arguments :

  • active
  • inactive

  [ $Baker_hash ... ]
  $Baker_hash:
    /* A baker ID (Base58Check-encoded) */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
  +-----------------------+----------+-------------------------+
  | Name                  | Size     | Contents                |
  +=======================+==========+=========================+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer |
  +-----------------------+----------+-------------------------+
  | Unnamed field 0       | Variable | sequence of bytes       |
  +-----------------------+----------+-------------------------+


  

GET ../<block_id>/context/bakers/<Baker_hash>

Everything about a baker.

  { "balance": $alpha.mutez,
    "frozen_balance": $alpha.mutez,
    "frozen_balance_by_cycle":
      [ { "cycle": integer ∈ [-2^31-1, 2^31],
          "deposit": $alpha.mutez,
          "fees": $alpha.mutez,
          "rewards": $alpha.mutez } ... ],
    "staking_balance": $alpha.mutez,
    "delegated_contracts": [ $alpha.contract_id ... ],
    "delegated_balance": $alpha.mutez,
    "deactivated": boolean,
    "grace_period": integer ∈ [-2^31-1, 2^31],
    "consensus_key": $Signature.Public_key,
    "pending_consensus_key"?:
      [ $Signature.Public_key, integer ∈ [-2^31-1, 2^31] ],
    "voting_power": integer ∈ [-2^31-1, 2^31] }
  $Signature.Public_key:
    /* A Ed25519, Secp256k1, or P256 public key (Base58Check-encoded) */
    $unistring
  $alpha.contract_id:
    /* A contract handle
       A contract notation as given to an RPC or inside scripts. Can be a
       base58 implicit contract hash, a base58 originated contract hash, or a
       base58 baker 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                            |
  +=============================================+======================+=====================================+
  | balance                                     | Determined from data | $N.t                                |
  +---------------------------------------------+----------------------+-------------------------------------+
  | frozen_balance                              | Determined from data | $N.t                                |
  +---------------------------------------------+----------------------+-------------------------------------+
  | # bytes in next field                       | 4 bytes              | unsigned 30-bit integer             |
  +---------------------------------------------+----------------------+-------------------------------------+
  | frozen_balance_by_cycle                     | Variable             | sequence of $X_0                    |
  +---------------------------------------------+----------------------+-------------------------------------+
  | staking_balance                             | 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               |
  +---------------------------------------------+----------------------+-------------------------------------+
  | consensus_key                               | Determined from data | $public_key                         |
  +---------------------------------------------+----------------------+-------------------------------------+
  | ? presence of field "pending_consensus_key" | 1 byte               | boolean (0 for false, 255 for true) |
  +---------------------------------------------+----------------------+-------------------------------------+
  | pending_consensus_key                       | Determined from data | $X_1                                |
  +---------------------------------------------+----------------------+-------------------------------------+
  | voting_power                                | 4 bytes              | signed 32-bit integer               |
  +---------------------------------------------+----------------------+-------------------------------------+


  X_0
  ***

  +---------+----------------------+-----------------------+
  | Name    | Size                 | Contents              |
  +=========+======================+=======================+
  | cycle   | 4 bytes              | signed 32-bit integer |
  +---------+----------------------+-----------------------+
  | deposit | Determined from data | $N.t                  |
  +---------+----------------------+-----------------------+
  | fees    | Determined from data | $N.t                  |
  +---------+----------------------+-----------------------+
  | rewards | 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.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                |
  +---------------+----------+------------------------+


  Baker (tag 2)
  =============

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


  N.t
  ***

  A variable length sequence of bytes, encoding a Zarith number. Each byte has a running unary size bit: the most significant bit of each byte tells is this is the last byte in the sequence (0) or if there is more to read (1). Size bits ignored, data is then the binary representation of the absolute value of the number in little endian order.

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


  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 |
  +-----------------+----------+------------------------+
  | Unnamed field 0 | 33 bytes | bytes                  |
  +-----------------+----------+------------------------+


  X_1
  ***

  +-----------------+----------------------+-----------------------+
  | Name            | Size                 | Contents              |
  +=================+======================+=======================+
  | Unnamed field 0 | Determined from data | $public_key           |
  +-----------------+----------------------+-----------------------+
  | Unnamed field 1 | 4 bytes              | signed 32-bit integer |
  +-----------------+----------------------+-----------------------+

  

GET ../<block_id>/context/bakers/<Baker_hash>/balance

Returns the full balance of a given baker, including the frozen balances.

  $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 number. Each byte has a running unary size bit: the most significant bit of each byte tells is this is the last byte in the sequence (0) or if there is more to read (1). Size bits ignored, data is then the binary representation of the absolute value of the number in little endian order.

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

  

GET ../<block_id>/context/bakers/<Baker_hash>/consensus_key?[offset=<int32>]&[level=<int32>]

Get baker's consensus key that is being used for baking and endorsing.

Optional query arguments :

  • offset = <int32>
  • level = <int32>

  $Signature.Public_key
  $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    |
  +======================+======================+=============+
  | Signature.Public_key | Determined from data | $public_key |
  +----------------------+----------------------+-------------+


  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 |
  +-----------------+----------+------------------------+
  | Unnamed field 0 | 33 bytes | bytes                  |
  +-----------------+----------+------------------------+

  

GET ../<block_id>/context/bakers/<Baker_hash>/deactivated

Tells whether the baker 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/bakers/<Baker_hash>/delegated_balance

Returns the balances of all the contracts that delegate to a given baker. This excludes the baker's own balance and its frozen balances.

  $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 number. Each byte has a running unary size bit: the most significant bit of each byte tells is this is the last byte in the sequence (0) or if there is more to read (1). Size bits ignored, data is then the binary representation of the absolute value of the number in little endian order.

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

  

GET ../<block_id>/context/bakers/<Baker_hash>/delegated_contracts

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

  [ $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, a base58 originated contract hash, or a
       base58 baker 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                |
  +---------------+----------+------------------------+


  Baker (tag 2)
  =============

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

  

GET ../<block_id>/context/bakers/<Baker_hash>/frozen_balance

Returns the total frozen balances of a given baker, this includes the frozen deposits, rewards and fees.

  $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 number. Each byte has a running unary size bit: the most significant bit of each byte tells is this is the last byte in the sequence (0) or if there is more to read (1). Size bits ignored, data is then the binary representation of the absolute value of the number in little endian order.

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

  

GET ../<block_id>/context/bakers/<Baker_hash>/frozen_balance_by_cycle

Returns the frozen balances of a given baker, indexed by the cycle by which it will be unfrozen.

  [ { "cycle": integer ∈ [-2^31-1, 2^31],
      "deposit": $alpha.mutez,
      "fees": $alpha.mutez,
      "rewards": $alpha.mutez } ... ]
  $alpha.mutez: $positive_bignum
  $positive_bignum:
    /* Positive big number
       Decimal representation of a positive big number */
    string
  +-----------------------+----------+-------------------------+
  | Name                  | Size     | Contents                |
  +=======================+==========+=========================+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer |
  +-----------------------+----------+-------------------------+
  | Unnamed field 0       | Variable | sequence of $X_0        |
  +-----------------------+----------+-------------------------+


  N.t
  ***

  A variable length sequence of bytes, encoding a Zarith number. Each byte has a running unary size bit: the most significant bit of each byte tells is this is the last byte in the sequence (0) or if there is more to read (1). Size bits ignored, data is then the binary representation of the absolute value of the number in little endian order.

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


  X_0
  ***

  +---------+----------------------+-----------------------+
  | Name    | Size                 | Contents              |
  +=========+======================+=======================+
  | cycle   | 4 bytes              | signed 32-bit integer |
  +---------+----------------------+-----------------------+
  | deposit | Determined from data | $N.t                  |
  +---------+----------------------+-----------------------+
  | fees    | Determined from data | $N.t                  |
  +---------+----------------------+-----------------------+
  | rewards | Determined from data | $N.t                  |
  +---------+----------------------+-----------------------+

  

GET ../<block_id>/context/bakers/<Baker_hash>/grace_period

Returns the cycle by the end of which the baker might be deactivated if she fails to execute any baker action. A deactivated baker might be reactivated (without loosing any rolls) with a call to baker script. For deactivated bakers, this value contains the cycle by 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/bakers/<Baker_hash>/pending_consensus_key

Get baker's pending consensus key and its activation cycle, if any. If the pending consensus key doesn't get changed before its activation cycle, it will become active and it will be used for baking and endorsing.

  [ $Signature.Public_key, integer ∈ [-2^31-1, 2^31] ]
  /* 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 |
  +-----------------+----------+------------------------+
  | Unnamed field 0 | 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 |
  +-----------------+----------------------+------------------------+
  | Unnamed field 0 | Determined from data | $public_key            |
  +-----------------+----------------------+------------------------+
  | Unnamed field 1 | 4 bytes              | signed 32-bit integer  |
  +-----------------+----------------------+------------------------+

  

GET ../<block_id>/context/bakers/<Baker_hash>/staking_balance

Returns the total amount of tokens delegated to a given baker. This includes the balances of all the contracts that delegate to it, but also the balance of the baker itself and its frozen fees and deposits. The rewards do not count in the delegated balance until they are unfrozen.

  $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 number. Each byte has a running unary size bit: the most significant bit of each byte tells is this is the last byte in the sequence (0) or if there is more to read (1). Size bits ignored, data is then the binary representation of the absolute value of the number in little endian order.

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

  

GET ../<block_id>/context/bakers/<Baker_hash>/voting_power

The number of rolls in the vote listings for a given baker.

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


  

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]+$/ }
  || [ $micheline.alpha.michelson_v1.expression ... ]
  /* Sequence */
  || { /* Generic prim (any number of args with or without annot) */
       "prim": $alpha.michelson.v1.primitives,
       "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
       "annots"?: [ string ... ] }
  $alpha.michelson.v1.primitives:
    "ADD"
    | "IF_LEFT"
    | "SELF_ADDRESS"
    | "KECCAK"
    | "Elt"
    | "TOTAL_VOTING_POWER"
    | "VOTING_POWER"
    | "bls12_381_fr"
    | "SHA256"
    | "key_hash"
    | "chain_id"
    | "Right"
    | "LE"
    | "map"
    | "sapling_state"
    | "storage"
    | "SOURCE"
    | "False"
    | "SHA512"
    | "BALANCE"
    | "EMPTY_BIG_MAP"
    | "signature"
    | "NOT"
    | "lambda"
    | "TRANSFER_TOKENS"
    | "DUG"
    | "COMPARE"
    | "SHA3"
    | "timestamp"
    | "MUL"
    | "big_map"
    | "bls12_381_g1"
    | "AMOUNT"
    | "DIP"
    | "ABS"
    | "bool"
    | "LT"
    | "never"
    | "bls12_381_g2"
    | "operation"
    | "CONCAT"
    | "UNIT"
    | "SWAP"
    | "DUP"
    | "option"
    | "CAR"
    | "CONS"
    | "baker_operation"
    | "NEQ"
    | "GET"
    | "Left"
    | "key"
    | "UNPAIR"
    | "DROP"
    | "NEG"
    | "CONTRACT"
    | "int"
    | "ADDRESS"
    | "True"
    | "parameter"
    | "unit"
    | "EQ"
    | "Pair"
    | "UPDATE"
    | "nat"
    | "AND"
    | "pair"
    | "READ_TICKET"
    | "set"
    | "CHECK_SIGNATURE"
    | "IF_CONS"
    | "INT"
    | "CREATE_CONTRACT"
    | "MEM"
    | "PAIRING_CHECK"
    | "BLAKE2B"
    | "SUBMIT_PROPOSALS"
    | "STEPS_TO_QUOTA"
    | "bytes"
    | "XOR"
    | "SELF"
    | "LEVEL"
    | "IMPLICIT_ACCOUNT"
    | "PACK"
    | "NEVER"
    | "NOW"
    | "RENAME"
    | "GET_AND_UPDATE"
    | "SENDER"
    | "contract"
    | "or"
    | "SLICE"
    | "CDR"
    | "OR"
    | "mutez"
    | "CHAIN_ID"
    | "ISNAT"
    | "SPLIT_TICKET"
    | "SOME"
    | "LOOP"
    | "SAPLING_VERIFY_UPDATE"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "IF_NONE"
    | "TICKET"
    | "ticket"
    | "ITER"
    | "EXEC"
    | "NONE"
    | "LEFT"
    | "string"
    | "JOIN_TICKETS"
    | "LSR"
    | "None"
    | "SET_BAKER_PVSS_KEY"
    | "EMPTY_SET"
    | "MAP"
    | "address"
    | "SET_BAKER_ACTIVE"
    | "LSL"
    | "RIGHT"
    | "SUBMIT_BALLOT"
    | "SIZE"
    | "list"
    | "IF"
    | "sapling_transaction"
    | "baker_hash"
    | "PAIR"
    | "LAMBDA"
    | "HASH_KEY"
    | "PUSH"
    | "LOOP_LEFT"
    | "SAPLING_EMPTY_STATE"
    | "DIG"
    | "TOGGLE_BAKER_DELEGATIONS"
    | "EMPTY_MAP"
    | "APPLY"
    | "CAST"
    | "pvss_key"
    | "SET_BAKER_CONSENSUS_KEY"
    | "FAILWITH"
    | "GT"
    | "NIL"
    | "SUB"
    | "EDIV"
    | "CREATE_ACCOUNT"
    | "GE"
    | "SET_DELEGATE"
    | "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]+$/ }
    || [ $micheline.alpha.michelson_v1.expression ... ]
    /* Sequence */
    || { /* Generic prim (any number of args with or without annot) */
         "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 number. Each byte has a running unary size bit: the most significant bit of each byte tells is this is the last byte in the sequence (0) or if there is more to read (1). The second most significant bit of the first byte is reserved for the sign (positive if zero). Size and sign bits ignored, data is then the binary representation of the absolute value of the number in little endian order.

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


  micheline.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, annot) (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 + annot) (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 annot) (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 + annot) (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 annot) (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 + annot) (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                                                                              |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+


  Generic prim (any number of args with or without annot) (tag 9)
  ===============================================================

  +-----------------------+----------+------------------------------------------------------------------------------------+
  | Name                  | Size     | Contents                                                                           |
  +=======================+==========+====================================================================================+
  | Tag                   | 1 byte   | unsigned 8-bit integer                                                             |
  +-----------------------+----------+------------------------------------------------------------------------------------+
  | prim                  | 1 byte   | unsigned 8-bit integer encoding an enumeration (see 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         | baker_hash               |
  +-------------+--------------------------+
  | 142         | baker_operation          |
  +-------------+--------------------------+
  | 143         | pvss_key                 |
  +-------------+--------------------------+
  | 144         | SUBMIT_PROPOSALS         |
  +-------------+--------------------------+
  | 145         | SUBMIT_BALLOT            |
  +-------------+--------------------------+
  | 146         | SET_BAKER_ACTIVE         |
  +-------------+--------------------------+
  | 147         | TOGGLE_BAKER_DELEGATIONS |
  +-------------+--------------------------+
  | 148         | SET_BAKER_CONSENSUS_KEY  |
  +-------------+--------------------------+
  | 149         | SET_BAKER_PVSS_KEY       |
  +-------------+--------------------------+

  

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],
    "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_roll_snapshot": integer ∈ [-2^31-1, 2^31],
    "blocks_per_voting_period": integer ∈ [-2^31-1, 2^31],
    "time_between_blocks": [ $int64 ... ],
    "endorsers_per_block": integer ∈ [0, 2^16-1],
    "hard_gas_limit_per_operation": $bignum,
    "hard_gas_limit_per_block": $bignum,
    "proof_of_work_threshold": $int64,
    "tokens_per_roll": $alpha.mutez,
    "michelson_maximum_type_size": integer ∈ [0, 2^16-1],
    "seed_nonce_revelation_tip": $alpha.mutez,
    "origination_size": integer ∈ [-2^30, 2^30],
    "block_security_deposit": $alpha.mutez,
    "endorsement_security_deposit": $alpha.mutez,
    "baking_reward_per_endorsement": [ $alpha.mutez ... ],
    "endorsement_reward": [ $alpha.mutez ... ],
    "cost_per_byte": $alpha.mutez,
    "hard_storage_limit_per_operation": $bignum,
    "test_chain_duration": $int64,
    "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],
    "initial_endorsers": integer ∈ [0, 2^16-1],
    "delay_per_missing_endorsement": $int64 }
  $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
  +----------------------------------+----------------------+--------------------------------------------------------------+
  | 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                                       |
  +----------------------------------+----------------------+--------------------------------------------------------------+
  | 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_roll_snapshot         | 4 bytes              | signed 32-bit integer                                        |
  +----------------------------------+----------------------+--------------------------------------------------------------+
  | blocks_per_voting_period         | 4 bytes              | signed 32-bit integer                                        |
  +----------------------------------+----------------------+--------------------------------------------------------------+
  | # bytes in next field            | 4 bytes              | unsigned 30-bit integer                                      |
  +----------------------------------+----------------------+--------------------------------------------------------------+
  | time_between_blocks              | Variable             | sequence of signed 64-bit integer                            |
  +----------------------------------+----------------------+--------------------------------------------------------------+
  | endorsers_per_block              | 2 bytes              | unsigned 16-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                                                         |
  +----------------------------------+----------------------+--------------------------------------------------------------+
  | michelson_maximum_type_size      | 2 bytes              | unsigned 16-bit integer                                      |
  +----------------------------------+----------------------+--------------------------------------------------------------+
  | seed_nonce_revelation_tip        | Determined from data | $N.t                                                         |
  +----------------------------------+----------------------+--------------------------------------------------------------+
  | origination_size                 | 4 bytes              | signed 31-bit integer in the range -1073741824 to 1073741823 |
  +----------------------------------+----------------------+--------------------------------------------------------------+
  | block_security_deposit           | Determined from data | $N.t                                                         |
  +----------------------------------+----------------------+--------------------------------------------------------------+
  | endorsement_security_deposit     | Determined from data | $N.t                                                         |
  +----------------------------------+----------------------+--------------------------------------------------------------+
  | # bytes in next field            | 4 bytes              | unsigned 30-bit integer                                      |
  +----------------------------------+----------------------+--------------------------------------------------------------+
  | baking_reward_per_endorsement    | Variable             | sequence of $N.t                                             |
  +----------------------------------+----------------------+--------------------------------------------------------------+
  | # bytes in next field            | 4 bytes              | unsigned 30-bit integer                                      |
  +----------------------------------+----------------------+--------------------------------------------------------------+
  | endorsement_reward               | Variable             | sequence of $N.t                                             |
  +----------------------------------+----------------------+--------------------------------------------------------------+
  | cost_per_byte                    | Determined from data | $N.t                                                         |
  +----------------------------------+----------------------+--------------------------------------------------------------+
  | hard_storage_limit_per_operation | Determined from data | $Z.t                                                         |
  +----------------------------------+----------------------+--------------------------------------------------------------+
  | test_chain_duration              | 8 bytes              | signed 64-bit integer                                        |
  +----------------------------------+----------------------+--------------------------------------------------------------+
  | 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                                        |
  +----------------------------------+----------------------+--------------------------------------------------------------+
  | initial_endorsers                | 2 bytes              | unsigned 16-bit integer                                      |
  +----------------------------------+----------------------+--------------------------------------------------------------+
  | delay_per_missing_endorsement    | 8 bytes              | signed 64-bit integer                                        |
  +----------------------------------+----------------------+--------------------------------------------------------------+


  N.t
  ***

  A variable length sequence of bytes, encoding a Zarith number. Each byte has a running unary size bit: the most significant bit of each byte tells is this is the last byte in the sequence (0) or if there is more to read (1). Size bits ignored, data is then the binary representation of the absolute value of the number in little endian order.

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


  Z.t
  ***

  A variable length sequence of bytes, encoding a Zarith number. Each byte has a running unary size bit: the most significant bit of each byte tells is this is the last byte in the sequence (0) or if there is more to read (1). The second most significant bit of the first byte is reserved for the sign (positive if zero). Size and sign bits ignored, data is then the binary representation of the absolute value of the number in little endian order.

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

  

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, a base58 originated contract hash, or a
       base58 baker 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                |
  +---------------+----------+------------------------+


  Baker (tag 2)
  =============

  +------------+----------+------------------------+
  | Name       | Size     | Contents               |
  +============+==========+========================+
  | Tag        | 1 byte   | unsigned 8-bit integer |
  +------------+----------+------------------------+
  | Baker_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"?: $Baker_hash,
    "script"?: $alpha.scripted.contracts,
    "counter"?: $positive_bignum }
  $Baker_hash:
    /* A baker ID (Base58Check-encoded) */
    $unistring
  $alpha.michelson.v1.primitives:
    "ADD"
    | "IF_LEFT"
    | "SELF_ADDRESS"
    | "KECCAK"
    | "Elt"
    | "TOTAL_VOTING_POWER"
    | "VOTING_POWER"
    | "bls12_381_fr"
    | "SHA256"
    | "key_hash"
    | "chain_id"
    | "Right"
    | "LE"
    | "map"
    | "sapling_state"
    | "storage"
    | "SOURCE"
    | "False"
    | "SHA512"
    | "BALANCE"
    | "EMPTY_BIG_MAP"
    | "signature"
    | "NOT"
    | "lambda"
    | "TRANSFER_TOKENS"
    | "DUG"
    | "COMPARE"
    | "SHA3"
    | "timestamp"
    | "MUL"
    | "big_map"
    | "bls12_381_g1"
    | "AMOUNT"
    | "DIP"
    | "ABS"
    | "bool"
    | "LT"
    | "never"
    | "bls12_381_g2"
    | "operation"
    | "CONCAT"
    | "UNIT"
    | "SWAP"
    | "DUP"
    | "option"
    | "CAR"
    | "CONS"
    | "baker_operation"
    | "NEQ"
    | "GET"
    | "Left"
    | "key"
    | "UNPAIR"
    | "DROP"
    | "NEG"
    | "CONTRACT"
    | "int"
    | "ADDRESS"
    | "True"
    | "parameter"
    | "unit"
    | "EQ"
    | "Pair"
    | "UPDATE"
    | "nat"
    | "AND"
    | "pair"
    | "READ_TICKET"
    | "set"
    | "CHECK_SIGNATURE"
    | "IF_CONS"
    | "INT"
    | "CREATE_CONTRACT"
    | "MEM"
    | "PAIRING_CHECK"
    | "BLAKE2B"
    | "SUBMIT_PROPOSALS"
    | "STEPS_TO_QUOTA"
    | "bytes"
    | "XOR"
    | "SELF"
    | "LEVEL"
    | "IMPLICIT_ACCOUNT"
    | "PACK"
    | "NEVER"
    | "NOW"
    | "RENAME"
    | "GET_AND_UPDATE"
    | "SENDER"
    | "contract"
    | "or"
    | "SLICE"
    | "CDR"
    | "OR"
    | "mutez"
    | "CHAIN_ID"
    | "ISNAT"
    | "SPLIT_TICKET"
    | "SOME"
    | "LOOP"
    | "SAPLING_VERIFY_UPDATE"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "IF_NONE"
    | "TICKET"
    | "ticket"
    | "ITER"
    | "EXEC"
    | "NONE"
    | "LEFT"
    | "string"
    | "JOIN_TICKETS"
    | "LSR"
    | "None"
    | "SET_BAKER_PVSS_KEY"
    | "EMPTY_SET"
    | "MAP"
    | "address"
    | "SET_BAKER_ACTIVE"
    | "LSL"
    | "RIGHT"
    | "SUBMIT_BALLOT"
    | "SIZE"
    | "list"
    | "IF"
    | "sapling_transaction"
    | "baker_hash"
    | "PAIR"
    | "LAMBDA"
    | "HASH_KEY"
    | "PUSH"
    | "LOOP_LEFT"
    | "SAPLING_EMPTY_STATE"
    | "DIG"
    | "TOGGLE_BAKER_DELEGATIONS"
    | "EMPTY_MAP"
    | "APPLY"
    | "CAST"
    | "pvss_key"
    | "SET_BAKER_CONSENSUS_KEY"
    | "FAILWITH"
    | "GT"
    | "NIL"
    | "SUB"
    | "EDIV"
    | "CREATE_ACCOUNT"
    | "GE"
    | "SET_DELEGATE"
    | "code"
  $alpha.mutez: $positive_bignum
  $alpha.scripted.contracts:
    { "code":
        { /* Int */
          "int": $bignum }
        || { /* String */
             "string": $unistring }
        || { /* Bytes */
             "bytes": /^[a-zA-Z0-9]+$/ }
        || [ $micheline.alpha.michelson_v1.expression ... ]
        /* Sequence */
        || { /* Generic prim (any number of args with or without annot) */
             "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]+$/ }
        || [ $micheline.alpha.michelson_v1.expression ... ]
        /* Sequence */
        || { /* Generic prim (any number of args with or without annot) */
             "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]+$/ }
    || [ $micheline.alpha.michelson_v1.expression ... ]
    /* Sequence */
    || { /* Generic prim (any number of args with or without annot) */
         "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                       | 20 bytes             | bytes                               |
  +--------------------------------+----------------------+-------------------------------------+
  | ? 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                                |
  +--------------------------------+----------------------+-------------------------------------+


  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 number. Each byte has a running unary size bit: the most significant bit of each byte tells is this is the last byte in the sequence (0) or if there is more to read (1). Size bits ignored, data is then the binary representation of the absolute value of the number in little endian order.

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

  

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 number. Each byte has a running unary size bit: the most significant bit of each byte tells is this is the last byte in the sequence (0) or if there is more to read (1). Size bits ignored, data is then the binary representation of the absolute value of the number in little endian order.

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

  

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]+$/ }
      || [ $micheline.alpha.michelson_v1.expression ... ]
      /* Sequence */
      || { /* Generic prim (any number of args with or without annot) */
           "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]+$/ }
      || [ $micheline.alpha.michelson_v1.expression ... ]
      /* Sequence */
      || { /* Generic prim (any number of args with or without annot) */
           "prim": $alpha.michelson.v1.primitives,
           "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
           "annots"?: [ string ... ] } }
  $alpha.michelson.v1.primitives:
    "ADD"
    | "IF_LEFT"
    | "SELF_ADDRESS"
    | "KECCAK"
    | "Elt"
    | "TOTAL_VOTING_POWER"
    | "VOTING_POWER"
    | "bls12_381_fr"
    | "SHA256"
    | "key_hash"
    | "chain_id"
    | "Right"
    | "LE"
    | "map"
    | "sapling_state"
    | "storage"
    | "SOURCE"
    | "False"
    | "SHA512"
    | "BALANCE"
    | "EMPTY_BIG_MAP"
    | "signature"
    | "NOT"
    | "lambda"
    | "TRANSFER_TOKENS"
    | "DUG"
    | "COMPARE"
    | "SHA3"
    | "timestamp"
    | "MUL"
    | "big_map"
    | "bls12_381_g1"
    | "AMOUNT"
    | "DIP"
    | "ABS"
    | "bool"
    | "LT"
    | "never"
    | "bls12_381_g2"
    | "operation"
    | "CONCAT"
    | "UNIT"
    | "SWAP"
    | "DUP"
    | "option"
    | "CAR"
    | "CONS"
    | "baker_operation"
    | "NEQ"
    | "GET"
    | "Left"
    | "key"
    | "UNPAIR"
    | "DROP"
    | "NEG"
    | "CONTRACT"
    | "int"
    | "ADDRESS"
    | "True"
    | "parameter"
    | "unit"
    | "EQ"
    | "Pair"
    | "UPDATE"
    | "nat"
    | "AND"
    | "pair"
    | "READ_TICKET"
    | "set"
    | "CHECK_SIGNATURE"
    | "IF_CONS"
    | "INT"
    | "CREATE_CONTRACT"
    | "MEM"
    | "PAIRING_CHECK"
    | "BLAKE2B"
    | "SUBMIT_PROPOSALS"
    | "STEPS_TO_QUOTA"
    | "bytes"
    | "XOR"
    | "SELF"
    | "LEVEL"
    | "IMPLICIT_ACCOUNT"
    | "PACK"
    | "NEVER"
    | "NOW"
    | "RENAME"
    | "GET_AND_UPDATE"
    | "SENDER"
    | "contract"
    | "or"
    | "SLICE"
    | "CDR"
    | "OR"
    | "mutez"
    | "CHAIN_ID"
    | "ISNAT"
    | "SPLIT_TICKET"
    | "SOME"
    | "LOOP"
    | "SAPLING_VERIFY_UPDATE"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "IF_NONE"
    | "TICKET"
    | "ticket"
    | "ITER"
    | "EXEC"
    | "NONE"
    | "LEFT"
    | "string"
    | "JOIN_TICKETS"
    | "LSR"
    | "None"
    | "SET_BAKER_PVSS_KEY"
    | "EMPTY_SET"
    | "MAP"
    | "address"
    | "SET_BAKER_ACTIVE"
    | "LSL"
    | "RIGHT"
    | "SUBMIT_BALLOT"
    | "SIZE"
    | "list"
    | "IF"
    | "sapling_transaction"
    | "baker_hash"
    | "PAIR"
    | "LAMBDA"
    | "HASH_KEY"
    | "PUSH"
    | "LOOP_LEFT"
    | "SAPLING_EMPTY_STATE"
    | "DIG"
    | "TOGGLE_BAKER_DELEGATIONS"
    | "EMPTY_MAP"
    | "APPLY"
    | "CAST"
    | "pvss_key"
    | "SET_BAKER_CONSENSUS_KEY"
    | "FAILWITH"
    | "GT"
    | "NIL"
    | "SUB"
    | "EDIV"
    | "CREATE_ACCOUNT"
    | "GE"
    | "SET_DELEGATE"
    | "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]+$/ }
    || [ $micheline.alpha.michelson_v1.expression ... ]
    /* Sequence */
    || { /* Generic prim (any number of args with or without annot) */
         "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 number. Each byte has a running unary size bit: the most significant bit of each byte tells is this is the last byte in the sequence (0) or if there is more to read (1). The second most significant bit of the first byte is reserved for the sign (positive if zero). Size and sign bits ignored, data is then the binary representation of the absolute value of the number in little endian order.

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


  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         | baker_hash               |
  +-------------+--------------------------+
  | 142         | baker_operation          |
  +-------------+--------------------------+
  | 143         | pvss_key                 |
  +-------------+--------------------------+
  | 144         | SUBMIT_PROPOSALS         |
  +-------------+--------------------------+
  | 145         | SUBMIT_BALLOT            |
  +-------------+--------------------------+
  | 146         | SET_BAKER_ACTIVE         |
  +-------------+--------------------------+
  | 147         | TOGGLE_BAKER_DELEGATIONS |
  +-------------+--------------------------+
  | 148         | SET_BAKER_CONSENSUS_KEY  |
  +-------------+--------------------------+
  | 149         | SET_BAKER_PVSS_KEY       |
  +-------------+--------------------------+


  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, annot) (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 + annot) (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 annot) (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 + annot) (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 annot) (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 + annot) (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                                                                              |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+


  Generic prim (any number of args with or without annot) (tag 9)
  ===============================================================

  +-----------------------+----------+------------------------------------------------------------------------------------+
  | Name                  | Size     | Contents                                                                           |
  +=======================+==========+====================================================================================+
  | Tag                   | 1 byte   | unsigned 8-bit integer                                                             |
  +-----------------------+----------+------------------------------------------------------------------------------------+
  | prim                  | 1 byte   | unsigned 8-bit integer encoding an enumeration (see 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]+$/ }
  || [ $micheline.alpha.michelson_v1.expression ... ]
  /* Sequence */
  || { /* Generic prim (any number of args with or without annot) */
       "prim": $alpha.michelson.v1.primitives,
       "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
       "annots"?: [ string ... ] }
  || null
  /* None */
  $alpha.michelson.v1.primitives:
    "ADD"
    | "IF_LEFT"
    | "SELF_ADDRESS"
    | "KECCAK"
    | "Elt"
    | "TOTAL_VOTING_POWER"
    | "VOTING_POWER"
    | "bls12_381_fr"
    | "SHA256"
    | "key_hash"
    | "chain_id"
    | "Right"
    | "LE"
    | "map"
    | "sapling_state"
    | "storage"
    | "SOURCE"
    | "False"
    | "SHA512"
    | "BALANCE"
    | "EMPTY_BIG_MAP"
    | "signature"
    | "NOT"
    | "lambda"
    | "TRANSFER_TOKENS"
    | "DUG"
    | "COMPARE"
    | "SHA3"
    | "timestamp"
    | "MUL"
    | "big_map"
    | "bls12_381_g1"
    | "AMOUNT"
    | "DIP"
    | "ABS"
    | "bool"
    | "LT"
    | "never"
    | "bls12_381_g2"
    | "operation"
    | "CONCAT"
    | "UNIT"
    | "SWAP"
    | "DUP"
    | "option"
    | "CAR"
    | "CONS"
    | "baker_operation"
    | "NEQ"
    | "GET"
    | "Left"
    | "key"
    | "UNPAIR"
    | "DROP"
    | "NEG"
    | "CONTRACT"
    | "int"
    | "ADDRESS"
    | "True"
    | "parameter"
    | "unit"
    | "EQ"
    | "Pair"
    | "UPDATE"
    | "nat"
    | "AND"
    | "pair"
    | "READ_TICKET"
    | "set"
    | "CHECK_SIGNATURE"
    | "IF_CONS"
    | "INT"
    | "CREATE_CONTRACT"
    | "MEM"
    | "PAIRING_CHECK"
    | "BLAKE2B"
    | "SUBMIT_PROPOSALS"
    | "STEPS_TO_QUOTA"
    | "bytes"
    | "XOR"
    | "SELF"
    | "LEVEL"
    | "IMPLICIT_ACCOUNT"
    | "PACK"
    | "NEVER"
    | "NOW"
    | "RENAME"
    | "GET_AND_UPDATE"
    | "SENDER"
    | "contract"
    | "or"
    | "SLICE"
    | "CDR"
    | "OR"
    | "mutez"
    | "CHAIN_ID"
    | "ISNAT"
    | "SPLIT_TICKET"
    | "SOME"
    | "LOOP"
    | "SAPLING_VERIFY_UPDATE"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "IF_NONE"
    | "TICKET"
    | "ticket"
    | "ITER"
    | "EXEC"
    | "NONE"
    | "LEFT"
    | "string"
    | "JOIN_TICKETS"
    | "LSR"
    | "None"
    | "SET_BAKER_PVSS_KEY"
    | "EMPTY_SET"
    | "MAP"
    | "address"
    | "SET_BAKER_ACTIVE"
    | "LSL"
    | "RIGHT"
    | "SUBMIT_BALLOT"
    | "SIZE"
    | "list"
    | "IF"
    | "sapling_transaction"
    | "baker_hash"
    | "PAIR"
    | "LAMBDA"
    | "HASH_KEY"
    | "PUSH"
    | "LOOP_LEFT"
    | "SAPLING_EMPTY_STATE"
    | "DIG"
    | "TOGGLE_BAKER_DELEGATIONS"
    | "EMPTY_MAP"
    | "APPLY"
    | "CAST"
    | "pvss_key"
    | "SET_BAKER_CONSENSUS_KEY"
    | "FAILWITH"
    | "GT"
    | "NIL"
    | "SUB"
    | "EDIV"
    | "CREATE_ACCOUNT"
    | "GE"
    | "SET_DELEGATE"
    | "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]+$/ }
    || [ $micheline.alpha.michelson_v1.expression ... ]
    /* Sequence */
    || { /* Generic prim (any number of args with or without annot) */
         "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 number. Each byte has a running unary size bit: the most significant bit of each byte tells is this is the last byte in the sequence (0) or if there is more to read (1). The second most significant bit of the first byte is reserved for the sign (positive if zero). Size and sign bits ignored, data is then the binary representation of the absolute value of the number in little endian order.

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


  micheline.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, annot) (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 + annot) (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 annot) (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 + annot) (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 annot) (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 + annot) (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                                                                              |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+


  Generic prim (any number of args with or without annot) (tag 9)
  ===============================================================

  +-----------------------+----------+------------------------------------------------------------------------------------+
  | Name                  | Size     | Contents                                                                           |
  +=======================+==========+====================================================================================+
  | Tag                   | 1 byte   | unsigned 8-bit integer                                                             |
  +-----------------------+----------+------------------------------------------------------------------------------------+
  | prim                  | 1 byte   | unsigned 8-bit integer encoding an enumeration (see 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         | baker_hash               |
  +-------------+--------------------------+
  | 142         | baker_operation          |
  +-------------+--------------------------+
  | 143         | pvss_key                 |
  +-------------+--------------------------+
  | 144         | SUBMIT_PROPOSALS         |
  +-------------+--------------------------+
  | 145         | SUBMIT_BALLOT            |
  +-------------+--------------------------+
  | 146         | SET_BAKER_ACTIVE         |
  +-------------+--------------------------+
  | 147         | TOGGLE_BAKER_DELEGATIONS |
  +-------------+--------------------------+
  | 148         | SET_BAKER_CONSENSUS_KEY  |
  +-------------+--------------------------+
  | 149         | SET_BAKER_PVSS_KEY       |
  +-------------+--------------------------+

  

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 number. Each byte has a running unary size bit: the most significant bit of each byte tells is this is the last byte in the sequence (0) or if there is more to read (1). The second most significant bit of the first byte is reserved for the sign (positive if zero). Size and sign bits ignored, data is then the binary representation of the absolute value of the number in little endian order.

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

  

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

Access the delegate of a contract, if any.

  $Baker_hash
  $Baker_hash:
    /* A baker ID (Base58Check-encoded) */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
  +------------+----------+----------+
  | Name       | Size     | Contents |
  +============+==========+==========+
  | Baker_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]+$/ }
          || [ $micheline.alpha.michelson_v1.expression ... ]
          /* Sequence */
          || { /* Generic prim (any number of args with or without annot) */
               "prim": $alpha.michelson.v1.primitives,
               "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
               "annots"?: [ string ... ] } } }
  $alpha.michelson.v1.primitives:
    "ADD"
    | "IF_LEFT"
    | "SELF_ADDRESS"
    | "KECCAK"
    | "Elt"
    | "TOTAL_VOTING_POWER"
    | "VOTING_POWER"
    | "bls12_381_fr"
    | "SHA256"
    | "key_hash"
    | "chain_id"
    | "Right"
    | "LE"
    | "map"
    | "sapling_state"
    | "storage"
    | "SOURCE"
    | "False"
    | "SHA512"
    | "BALANCE"
    | "EMPTY_BIG_MAP"
    | "signature"
    | "NOT"
    | "lambda"
    | "TRANSFER_TOKENS"
    | "DUG"
    | "COMPARE"
    | "SHA3"
    | "timestamp"
    | "MUL"
    | "big_map"
    | "bls12_381_g1"
    | "AMOUNT"
    | "DIP"
    | "ABS"
    | "bool"
    | "LT"
    | "never"
    | "bls12_381_g2"
    | "operation"
    | "CONCAT"
    | "UNIT"
    | "SWAP"
    | "DUP"
    | "option"
    | "CAR"
    | "CONS"
    | "baker_operation"
    | "NEQ"
    | "GET"
    | "Left"
    | "key"
    | "UNPAIR"
    | "DROP"
    | "NEG"
    | "CONTRACT"
    | "int"
    | "ADDRESS"
    | "True"
    | "parameter"
    | "unit"
    | "EQ"
    | "Pair"
    | "UPDATE"
    | "nat"
    | "AND"
    | "pair"
    | "READ_TICKET"
    | "set"
    | "CHECK_SIGNATURE"
    | "IF_CONS"
    | "INT"
    | "CREATE_CONTRACT"
    | "MEM"
    | "PAIRING_CHECK"
    | "BLAKE2B"
    | "SUBMIT_PROPOSALS"
    | "STEPS_TO_QUOTA"
    | "bytes"
    | "XOR"
    | "SELF"
    | "LEVEL"
    | "IMPLICIT_ACCOUNT"
    | "PACK"
    | "NEVER"
    | "NOW"
    | "RENAME"
    | "GET_AND_UPDATE"
    | "SENDER"
    | "contract"
    | "or"
    | "SLICE"
    | "CDR"
    | "OR"
    | "mutez"
    | "CHAIN_ID"
    | "ISNAT"
    | "SPLIT_TICKET"
    | "SOME"
    | "LOOP"
    | "SAPLING_VERIFY_UPDATE"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "IF_NONE"
    | "TICKET"
    | "ticket"
    | "ITER"
    | "EXEC"
    | "NONE"
    | "LEFT"
    | "string"
    | "JOIN_TICKETS"
    | "LSR"
    | "None"
    | "SET_BAKER_PVSS_KEY"
    | "EMPTY_SET"
    | "MAP"
    | "address"
    | "SET_BAKER_ACTIVE"
    | "LSL"
    | "RIGHT"
    | "SUBMIT_BALLOT"
    | "SIZE"
    | "list"
    | "IF"
    | "sapling_transaction"
    | "baker_hash"
    | "PAIR"
    | "LAMBDA"
    | "HASH_KEY"
    | "PUSH"
    | "LOOP_LEFT"
    | "SAPLING_EMPTY_STATE"
    | "DIG"
    | "TOGGLE_BAKER_DELEGATIONS"
    | "EMPTY_MAP"
    | "APPLY"
    | "CAST"
    | "pvss_key"
    | "SET_BAKER_CONSENSUS_KEY"
    | "FAILWITH"
    | "GT"
    | "NIL"
    | "SUB"
    | "EDIV"
    | "CREATE_ACCOUNT"
    | "GE"
    | "SET_DELEGATE"
    | "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]+$/ }
    || [ $micheline.alpha.michelson_v1.expression ... ]
    /* Sequence */
    || { /* Generic prim (any number of args with or without annot) */
         "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 number. Each byte has a running unary size bit: the most significant bit of each byte tells is this is the last byte in the sequence (0) or if there is more to read (1). The second most significant bit of the first byte is reserved for the sign (positive if zero). Size and sign bits ignored, data is then the binary representation of the absolute value of the number in little endian order.

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


  micheline.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, annot) (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 + annot) (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 annot) (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 + annot) (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 annot) (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 + annot) (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                                                                              |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+


  Generic prim (any number of args with or without annot) (tag 9)
  ===============================================================

  +-----------------------+----------+------------------------------------------------------------------------------------+
  | Name                  | Size     | Contents                                                                           |
  +=======================+==========+====================================================================================+
  | Tag                   | 1 byte   | unsigned 8-bit integer                                                             |
  +-----------------------+----------+------------------------------------------------------------------------------------+
  | prim                  | 1 byte   | unsigned 8-bit integer encoding an enumeration (see 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         | baker_hash               |
  +-------------+--------------------------+
  | 142         | baker_operation          |
  +-------------+--------------------------+
  | 143         | pvss_key                 |
  +-------------+--------------------------+
  | 144         | SUBMIT_PROPOSALS         |
  +-------------+--------------------------+
  | 145         | SUBMIT_BALLOT            |
  +-------------+--------------------------+
  | 146         | SET_BAKER_ACTIVE         |
  +-------------+--------------------------+
  | 147         | TOGGLE_BAKER_DELEGATIONS |
  +-------------+--------------------------+
  | 148         | SET_BAKER_CONSENSUS_KEY  |
  +-------------+--------------------------+
  | 149         | SET_BAKER_PVSS_KEY       |
  +-------------+--------------------------+


  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/<string>

Return the type of the given entrypoint of the contract

  { /* Int */
    "int": $bignum }
  || { /* String */
       "string": $unistring }
  || { /* Bytes */
       "bytes": /^[a-zA-Z0-9]+$/ }
  || [ $micheline.alpha.michelson_v1.expression ... ]
  /* Sequence */
  || { /* Generic prim (any number of args with or without annot) */
       "prim": $alpha.michelson.v1.primitives,
       "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
       "annots"?: [ string ... ] }
  $alpha.michelson.v1.primitives:
    "ADD"
    | "IF_LEFT"
    | "SELF_ADDRESS"
    | "KECCAK"
    | "Elt"
    | "TOTAL_VOTING_POWER"
    | "VOTING_POWER"
    | "bls12_381_fr"
    | "SHA256"
    | "key_hash"
    | "chain_id"
    | "Right"
    | "LE"
    | "map"
    | "sapling_state"
    | "storage"
    | "SOURCE"
    | "False"
    | "SHA512"
    | "BALANCE"
    | "EMPTY_BIG_MAP"
    | "signature"
    | "NOT"
    | "lambda"
    | "TRANSFER_TOKENS"
    | "DUG"
    | "COMPARE"
    | "SHA3"
    | "timestamp"
    | "MUL"
    | "big_map"
    | "bls12_381_g1"
    | "AMOUNT"
    | "DIP"
    | "ABS"
    | "bool"
    | "LT"
    | "never"
    | "bls12_381_g2"
    | "operation"
    | "CONCAT"
    | "UNIT"
    | "SWAP"
    | "DUP"
    | "option"
    | "CAR"
    | "CONS"
    | "baker_operation"
    | "NEQ"
    | "GET"
    | "Left"
    | "key"
    | "UNPAIR"
    | "DROP"
    | "NEG"
    | "CONTRACT"
    | "int"
    | "ADDRESS"
    | "True"
    | "parameter"
    | "unit"
    | "EQ"
    | "Pair"
    | "UPDATE"
    | "nat"
    | "AND"
    | "pair"
    | "READ_TICKET"
    | "set"
    | "CHECK_SIGNATURE"
    | "IF_CONS"
    | "INT"
    | "CREATE_CONTRACT"
    | "MEM"
    | "PAIRING_CHECK"
    | "BLAKE2B"
    | "SUBMIT_PROPOSALS"
    | "STEPS_TO_QUOTA"
    | "bytes"
    | "XOR"
    | "SELF"
    | "LEVEL"
    | "IMPLICIT_ACCOUNT"
    | "PACK"
    | "NEVER"
    | "NOW"
    | "RENAME"
    | "GET_AND_UPDATE"
    | "SENDER"
    | "contract"
    | "or"
    | "SLICE"
    | "CDR"
    | "OR"
    | "mutez"
    | "CHAIN_ID"
    | "ISNAT"
    | "SPLIT_TICKET"
    | "SOME"
    | "LOOP"
    | "SAPLING_VERIFY_UPDATE"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "IF_NONE"
    | "TICKET"
    | "ticket"
    | "ITER"
    | "EXEC"
    | "NONE"
    | "LEFT"
    | "string"
    | "JOIN_TICKETS"
    | "LSR"
    | "None"
    | "SET_BAKER_PVSS_KEY"
    | "EMPTY_SET"
    | "MAP"
    | "address"
    | "SET_BAKER_ACTIVE"
    | "LSL"
    | "RIGHT"
    | "SUBMIT_BALLOT"
    | "SIZE"
    | "list"
    | "IF"
    | "sapling_transaction"
    | "baker_hash"
    | "PAIR"
    | "LAMBDA"
    | "HASH_KEY"
    | "PUSH"
    | "LOOP_LEFT"
    | "SAPLING_EMPTY_STATE"
    | "DIG"
    | "TOGGLE_BAKER_DELEGATIONS"
    | "EMPTY_MAP"
    | "APPLY"
    | "CAST"
    | "pvss_key"
    | "SET_BAKER_CONSENSUS_KEY"
    | "FAILWITH"
    | "GT"
    | "NIL"
    | "SUB"
    | "EDIV"
    | "CREATE_ACCOUNT"
    | "GE"
    | "SET_DELEGATE"
    | "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]+$/ }
    || [ $micheline.alpha.michelson_v1.expression ... ]
    /* Sequence */
    || { /* Generic prim (any number of args with or without annot) */
         "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 number. Each byte has a running unary size bit: the most significant bit of each byte tells is this is the last byte in the sequence (0) or if there is more to read (1). The second most significant bit of the first byte is reserved for the sign (positive if zero). Size and sign bits ignored, data is then the binary representation of the absolute value of the number in little endian order.

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


  micheline.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, annot) (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 + annot) (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 annot) (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 + annot) (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 annot) (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 + annot) (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                                                                              |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+


  Generic prim (any number of args with or without annot) (tag 9)
  ===============================================================

  +-----------------------+----------+------------------------------------------------------------------------------------+
  | Name                  | Size     | Contents                                                                           |
  +=======================+==========+====================================================================================+
  | Tag                   | 1 byte   | unsigned 8-bit integer                                                             |
  +-----------------------+----------+------------------------------------------------------------------------------------+
  | prim                  | 1 byte   | unsigned 8-bit integer encoding an enumeration (see 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         | baker_hash               |
  +-------------+--------------------------+
  | 142         | baker_operation          |
  +-------------+--------------------------+
  | 143         | pvss_key                 |
  +-------------+--------------------------+
  | 144         | SUBMIT_PROPOSALS         |
  +-------------+--------------------------+
  | 145         | SUBMIT_BALLOT            |
  +-------------+--------------------------+
  | 146         | SET_BAKER_ACTIVE         |
  +-------------+--------------------------+
  | 147         | TOGGLE_BAKER_DELEGATIONS |
  +-------------+--------------------------+
  | 148         | SET_BAKER_CONSENSUS_KEY  |
  +-------------+--------------------------+
  | 149         | SET_BAKER_PVSS_KEY       |
  +-------------+--------------------------+

  

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

DEPRECATED: use `public_key` instead. 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 |
  +-----------------+----------+------------------------+
  | Unnamed field 0 | 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>/public_key

Access the public key of a contract, if any. For implicit contracts, this may be their revealed key and for baker contracts it's their consensus key

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

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

Optional query arguments :

  • offset_commitment = <int64> : Commitments and ciphertexts are returned from the specified offset up to the most recent.
  • offset_nullifier = <int64> : 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]+$/
  $sapling.transaction.ciphertext:
    { "cv": $sapling.transaction.commitment_value,
      "epk": $sapling.DH.epk,
      "payload_enc": /^[a-zA-Z0-9]+$/,
      "nonce_enc": /^[a-zA-Z0-9]+$/,
      "payload_out": /^[a-zA-Z0-9]+$/,
      "nonce_out": /^[a-zA-Z0-9]+$/ }
  $sapling.transaction.commitment: /^[a-zA-Z0-9]+$/
  $sapling.transaction.commitment_hash: /^[a-zA-Z0-9]+$/
  $sapling.transaction.commitment_value: /^[a-zA-Z0-9]+$/
  $sapling.transaction.nullifier: /^[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]+$/ }
  || [ $micheline.alpha.michelson_v1.expression ... ]
  /* Sequence */
  || { /* Generic prim (any number of args with or without annot) */
       "prim": $alpha.michelson.v1.primitives,
       "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
       "annots"?: [ string ... ] }
  $alpha.michelson.v1.primitives:
    "ADD"
    | "IF_LEFT"
    | "SELF_ADDRESS"
    | "KECCAK"
    | "Elt"
    | "TOTAL_VOTING_POWER"
    | "VOTING_POWER"
    | "bls12_381_fr"
    | "SHA256"
    | "key_hash"
    | "chain_id"
    | "Right"
    | "LE"
    | "map"
    | "sapling_state"
    | "storage"
    | "SOURCE"
    | "False"
    | "SHA512"
    | "BALANCE"
    | "EMPTY_BIG_MAP"
    | "signature"
    | "NOT"
    | "lambda"
    | "TRANSFER_TOKENS"
    | "DUG"
    | "COMPARE"
    | "SHA3"
    | "timestamp"
    | "MUL"
    | "big_map"
    | "bls12_381_g1"
    | "AMOUNT"
    | "DIP"
    | "ABS"
    | "bool"
    | "LT"
    | "never"
    | "bls12_381_g2"
    | "operation"
    | "CONCAT"
    | "UNIT"
    | "SWAP"
    | "DUP"
    | "option"
    | "CAR"
    | "CONS"
    | "baker_operation"
    | "NEQ"
    | "GET"
    | "Left"
    | "key"
    | "UNPAIR"
    | "DROP"
    | "NEG"
    | "CONTRACT"
    | "int"
    | "ADDRESS"
    | "True"
    | "parameter"
    | "unit"
    | "EQ"
    | "Pair"
    | "UPDATE"
    | "nat"
    | "AND"
    | "pair"
    | "READ_TICKET"
    | "set"
    | "CHECK_SIGNATURE"
    | "IF_CONS"
    | "INT"
    | "CREATE_CONTRACT"
    | "MEM"
    | "PAIRING_CHECK"
    | "BLAKE2B"
    | "SUBMIT_PROPOSALS"
    | "STEPS_TO_QUOTA"
    | "bytes"
    | "XOR"
    | "SELF"
    | "LEVEL"
    | "IMPLICIT_ACCOUNT"
    | "PACK"
    | "NEVER"
    | "NOW"
    | "RENAME"
    | "GET_AND_UPDATE"
    | "SENDER"
    | "contract"
    | "or"
    | "SLICE"
    | "CDR"
    | "OR"
    | "mutez"
    | "CHAIN_ID"
    | "ISNAT"
    | "SPLIT_TICKET"
    | "SOME"
    | "LOOP"
    | "SAPLING_VERIFY_UPDATE"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "IF_NONE"
    | "TICKET"
    | "ticket"
    | "ITER"
    | "EXEC"
    | "NONE"
    | "LEFT"
    | "string"
    | "JOIN_TICKETS"
    | "LSR"
    | "None"
    | "SET_BAKER_PVSS_KEY"
    | "EMPTY_SET"
    | "MAP"
    | "address"
    | "SET_BAKER_ACTIVE"
    | "LSL"
    | "RIGHT"
    | "SUBMIT_BALLOT"
    | "SIZE"
    | "list"
    | "IF"
    | "sapling_transaction"
    | "baker_hash"
    | "PAIR"
    | "LAMBDA"
    | "HASH_KEY"
    | "PUSH"
    | "LOOP_LEFT"
    | "SAPLING_EMPTY_STATE"
    | "DIG"
    | "TOGGLE_BAKER_DELEGATIONS"
    | "EMPTY_MAP"
    | "APPLY"
    | "CAST"
    | "pvss_key"
    | "SET_BAKER_CONSENSUS_KEY"
    | "FAILWITH"
    | "GT"
    | "NIL"
    | "SUB"
    | "EDIV"
    | "CREATE_ACCOUNT"
    | "GE"
    | "SET_DELEGATE"
    | "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]+$/ }
    || [ $micheline.alpha.michelson_v1.expression ... ]
    /* Sequence */
    || { /* Generic prim (any number of args with or without annot) */
         "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 number. Each byte has a running unary size bit: the most significant bit of each byte tells is this is the last byte in the sequence (0) or if there is more to read (1). The second most significant bit of the first byte is reserved for the sign (positive if zero). Size and sign bits ignored, data is then the binary representation of the absolute value of the number in little endian order.

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


  micheline.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, annot) (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 + annot) (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 annot) (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 + annot) (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 annot) (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 + annot) (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                                                                              |
  +-----------------------+----------------------+------------------------------------------------------------------------------------+


  Generic prim (any number of args with or without annot) (tag 9)
  ===============================================================

  +-----------------------+----------+------------------------------------------------------------------------------------+
  | Name                  | Size     | Contents                                                                           |
  +=======================+==========+====================================================================================+
  | Tag                   | 1 byte   | unsigned 8-bit integer                                                             |
  +-----------------------+----------+------------------------------------------------------------------------------------+
  | prim                  | 1 byte   | unsigned 8-bit integer encoding an enumeration (see 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         | baker_hash               |
  +-------------+--------------------------+
  | 142         | baker_operation          |
  +-------------+--------------------------+
  | 143         | pvss_key                 |
  +-------------+--------------------------+
  | 144         | SUBMIT_PROPOSALS         |
  +-------------+--------------------------+
  | 145         | SUBMIT_BALLOT            |
  +-------------+--------------------------+
  | 146         | SET_BAKER_ACTIVE         |
  +-------------+--------------------------+
  | 147         | TOGGLE_BAKER_DELEGATIONS |
  +-------------+--------------------------+
  | 148         | SET_BAKER_CONSENSUS_KEY  |
  +-------------+--------------------------+
  | 149         | SET_BAKER_PVSS_KEY       |
  +-------------+--------------------------+

  

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

Lists all registered delegates. DEPRECATED: use new RPC endpoint at "bakers" path segment instead of "delegates", where baker hash is the new baker identifier.

Optional query arguments :

  • active
  • inactive

  [ $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. DEPRECATED: use new RPC endpoint at "bakers" path segment instead of "delegates", where baker hash is the new baker identifier.

  { "balance": $alpha.mutez,
    "frozen_balance": $alpha.mutez,
    "frozen_balance_by_cycle":
      [ { "cycle": integer ∈ [-2^31-1, 2^31],
          "deposit": $alpha.mutez,
          "fees": $alpha.mutez,
          "rewards": $alpha.mutez } ... ],
    "staking_balance": $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, a base58 originated contract hash, or a
       base58 baker 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                            |
  +=========================+======================+=====================================+
  | balance                 | Determined from data | $N.t                                |
  +-------------------------+----------------------+-------------------------------------+
  | frozen_balance          | Determined from data | $N.t                                |
  +-------------------------+----------------------+-------------------------------------+
  | # bytes in next field   | 4 bytes              | unsigned 30-bit integer             |
  +-------------------------+----------------------+-------------------------------------+
  | frozen_balance_by_cycle | Variable             | sequence of $X_0                    |
  +-------------------------+----------------------+-------------------------------------+
  | staking_balance         | 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               |
  +-------------------------+----------------------+-------------------------------------+


  X_0
  ***

  +---------+----------------------+-----------------------+
  | Name    | Size                 | Contents              |
  +=========+======================+=======================+
  | cycle   | 4 bytes              | signed 32-bit integer |
  +---------+----------------------+-----------------------+
  | deposit | Determined from data | $N.t                  |
  +---------+----------------------+-----------------------+
  | fees    | Determined from data | $N.t                  |
  +---------+----------------------+-----------------------+
  | rewards | 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.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                |
  +---------------+----------+------------------------+


  Baker (tag 2)
  =============

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


  N.t
  ***

  A variable length sequence of bytes, encoding a Zarith number. Each byte has a running unary size bit: the most significant bit of each byte tells is this is the last byte in the sequence (0) or if there is more to read (1). Size bits ignored, data is then the binary representation of the absolute value of the number in little endian order.

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

  

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

Returns the full balance of a given delegate, including the frozen balances. DEPRECATED: use new RPC endpoint at "bakers" path segment instead of "delegates", where baker hash is the new baker identifier.

  $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 number. Each byte has a running unary size bit: the most significant bit of each byte tells is this is the last byte in the sequence (0) or if there is more to read (1). Size bits ignored, data is then the binary representation of the absolute value of the number in little endian order.

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

  

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

Tells whether the delegate is currently tagged as deactivated or not. DEPRECATED: use new RPC endpoint at "bakers" path segment instead of "delegates", where baker hash is the new baker identifier.

  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 balances of all the contracts that delegate to a given delegate. This excludes the delegate's own balance and its frozen balances. DEPRECATED: use new RPC endpoint at "bakers" path segment instead of "delegates", where baker hash is the new baker identifier.

  $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 number. Each byte has a running unary size bit: the most significant bit of each byte tells is this is the last byte in the sequence (0) or if there is more to read (1). Size bits ignored, data is then the binary representation of the absolute value of the number in little endian order.

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

  

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

Returns the list of contracts that delegate to a given delegate. DEPRECATED: use new RPC endpoint at "bakers" path segment instead of "delegates", where baker hash is the new baker identifier.

  [ $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, a base58 originated contract hash, or a
       base58 baker 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                |
  +---------------+----------+------------------------+


  Baker (tag 2)
  =============

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

  

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

Returns the total frozen balances of a given delegate, this includes the frozen deposits, rewards and fees. DEPRECATED: use new RPC endpoint at "bakers" path segment instead of "delegates", where baker hash is the new baker identifier.

  $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 number. Each byte has a running unary size bit: the most significant bit of each byte tells is this is the last byte in the sequence (0) or if there is more to read (1). Size bits ignored, data is then the binary representation of the absolute value of the number in little endian order.

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

  

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

Returns the frozen balances of a given delegate, indexed by the cycle by which it will be unfrozen. DEPRECATED: use new RPC endpoint at "bakers" path segment instead of "delegates", where baker hash is the new baker identifier.

  [ { "cycle": integer ∈ [-2^31-1, 2^31],
      "deposit": $alpha.mutez,
      "fees": $alpha.mutez,
      "rewards": $alpha.mutez } ... ]
  $alpha.mutez: $positive_bignum
  $positive_bignum:
    /* Positive big number
       Decimal representation of a positive big number */
    string
  +-----------------------+----------+-------------------------+
  | Name                  | Size     | Contents                |
  +=======================+==========+=========================+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer |
  +-----------------------+----------+-------------------------+
  | Unnamed field 0       | Variable | sequence of $X_0        |
  +-----------------------+----------+-------------------------+


  N.t
  ***

  A variable length sequence of bytes, encoding a Zarith number. Each byte has a running unary size bit: the most significant bit of each byte tells is this is the last byte in the sequence (0) or if there is more to read (1). Size bits ignored, data is then the binary representation of the absolute value of the number in little endian order.

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


  X_0
  ***

  +---------+----------------------+-----------------------+
  | Name    | Size                 | Contents              |
  +=========+======================+=======================+
  | cycle   | 4 bytes              | signed 32-bit integer |
  +---------+----------------------+-----------------------+
  | deposit | Determined from data | $N.t                  |
  +---------+----------------------+-----------------------+
  | fees    | Determined from data | $N.t                  |
  +---------+----------------------+-----------------------+
  | rewards | Determined from data | $N.t                  |
  +---------+----------------------+-----------------------+

  

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 rolls) with a call to baker script. For deactivated delegates, this value contains the cycle by which they were deactivated. DEPRECATED: use new RPC endpoint at "bakers" path segment instead of "delegates", where baker hash is the new baker identifier.

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


  

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

Returns the total amount of tokens 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 fees and deposits. The rewards do not count in the delegated balance until they are unfrozen. DEPRECATED: use new RPC endpoint at "bakers" path segment instead of "delegates", where baker hash is the new baker identifier.

  $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 number. Each byte has a running unary size bit: the most significant bit of each byte tells is this is the last byte in the sequence (0) or if there is more to read (1). Size bits ignored, data is then the binary representation of the absolute value of the number in little endian order.

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

  

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

The number of rolls in the vote listings for a given delegate. DEPRECATED: use new RPC endpoint at "bakers" path segment instead of "delegates", where baker hash is the new baker identifier.

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


  

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

Info about the nonce of a previous block.

  { /* Revealed */
    "nonce": /^[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?[depth=<int>]

Returns the raw context.

Optional query arguments :

  • depth = <int>

  /^[a-zA-Z0-9]+$/
  /* Key */
  || { /* Dir */
       *: $raw_context }
  || null
  /* Cut */
  $raw_context:
    /^[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=<int64>]&[offset_nullifier=<int64>]

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

Optional query arguments :

  • offset_commitment = <int64> : Commitments and ciphertexts are returned from the specified offset up to the most recent.
  • offset_nullifier = <int64> : 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]+$/
  $sapling.transaction.ciphertext:
    { "cv": $sapling.transaction.commitment_value,
      "epk": $sapling.DH.epk,
      "payload_enc": /^[a-zA-Z0-9]+$/,
      "nonce_enc": /^[a-zA-Z0-9]+$/,
      "payload_out": /^[a-zA-Z0-9]+$/,
      "nonce_out": /^[a-zA-Z0-9]+$/ }
  $sapling.transaction.commitment: /^[a-zA-Z0-9]+$/
  $sapling.transaction.commitment_hash: /^[a-zA-Z0-9]+$/
  $sapling.transaction.commitment_value: /^[a-zA-Z0-9]+$/
  $sapling.transaction.nullifier: /^[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]+$/
  +-----------------+----------+----------+
  | Name            | Size     | Contents |
  +=================+==========+==========+
  | Unnamed field 0 | 32 bytes | bytes    |
  +-----------------+----------+----------+


  

POST ../<block_id>/endorsing_power

Get the endorsing power of an endorsement, that is, the number of slots that the endorser has

  { "endorsement_operation":
      { /* An operation's shell header. */
        "branch": $block_hash,
        "contents": [ $alpha.operation.alpha.contents ... ],
        "signature": $Signature },
    "chain_id": $Chain_id }
  $Baker_hash:
    /* A baker ID (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_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,
      "priority": integer ∈ [0, 2^16-1],
      "proof_of_work_nonce": /^[a-zA-Z0-9]+$/,
      "seed_nonce_hash"?: $cycle_nonce,
      "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, a base58 originated contract hash, or a
       base58 baker contract hash. */
    $unistring
  $alpha.entrypoint:
    /* entrypoint
       Named entrypoint to a Michelson smart contract */
    "default"
    || "root"
    || "do"
    || "set_delegate"
    || "remove_delegate"
    || "main"
    || string
    /* named */
  $alpha.inlined.endorsement:
    /* An operation's shell header. */
    { "branch": $block_hash,
      "operations": $alpha.inlined.endorsement.contents,
      "signature"?: $Signature }
  $alpha.inlined.endorsement.contents:
    { /* Endorsement */
      "kind": "endorsement",
      "level": integer ∈ [-2^31-1, 2^31] }
  $alpha.michelson.v1.primitives:
    "ADD"
    | "IF_LEFT"
    | "SELF_ADDRESS"
    | "KECCAK"
    | "Elt"
    | "TOTAL_VOTING_POWER"
    | "VOTING_POWER"
    | "bls12_381_fr"
    | "SHA256"
    | "key_hash"
    | "chain_id"
    | "Right"
    | "LE"
    | "map"
    | "sapling_state"
    | "storage"
    | "SOURCE"
    | "False"
    | "SHA512"
    | "BALANCE"
    | "EMPTY_BIG_MAP"
    | "signature"
    | "NOT"
    | "lambda"
    | "TRANSFER_TOKENS"
    | "DUG"
    | "COMPARE"
    | "SHA3"
    | "timestamp"
    | "MUL"
    | "big_map"
    | "bls12_381_g1"
    | "AMOUNT"
    | "DIP"
    | "ABS"
    | "bool"
    | "LT"
    | "never"
    | "bls12_381_g2"
    | "operation"
    | "CONCAT"
    | "UNIT"
    | "SWAP"
    | "DUP"
    | "option"
    | "CAR"
    | "CONS"
    | "baker_operation"
    | "NEQ"
    | "GET"
    | "Left"
    | "key"
    | "UNPAIR"
    | "DROP"
    | "NEG"
    | "CONTRACT"
    | "int"
    | "ADDRESS"
    | "True"
    | "parameter"
    | "unit"
    | "EQ"
    | "Pair"
    | "UPDATE"
    | "nat"
    | "AND"
    | "pair"
    | "READ_TICKET"
    | "set"
    | "CHECK_SIGNATURE"
    | "IF_CONS"
    | "INT"
    | "CREATE_CONTRACT"
    | "MEM"
    | "PAIRING_CHECK"
    | "BLAKE2B"
    | "SUBMIT_PROPOSALS"
    | "STEPS_TO_QUOTA"
    | "bytes"
    | "XOR"
    | "SELF"
    | "LEVEL"
    | "IMPLICIT_ACCOUNT"
    | "PACK"
    | "NEVER"
    | "NOW"
    | "RENAME"
    | "GET_AND_UPDATE"
    | "SENDER"
    | "contract"
    | "or"
    | "SLICE"
    | "CDR"
    | "OR"
    | "mutez"
    | "CHAIN_ID"
    | "ISNAT"
    | "SPLIT_TICKET"
    | "SOME"
    | "LOOP"
    | "SAPLING_VERIFY_UPDATE"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "IF_NONE"
    | "TICKET"
    | "ticket"
    | "ITER"
    | "EXEC"
    | "NONE"
    | "LEFT"
    | "string"
    | "JOIN_TICKETS"
    | "LSR"
    | "None"
    | "SET_BAKER_PVSS_KEY"
    | "EMPTY_SET"
    | "MAP"
    | "address"
    | "SET_BAKER_ACTIVE"
    | "LSL"
    | "RIGHT"
    | "SUBMIT_BALLOT"
    | "SIZE"
    | "list"
    | "IF"
    | "sapling_transaction"
    | "baker_hash"
    | "PAIR"
    | "LAMBDA"
    | "HASH_KEY"
    | "PUSH"
    | "LOOP_LEFT"
    | "SAPLING_EMPTY_STATE"
    | "DIG"
    | "TOGGLE_BAKER_DELEGATIONS"
    | "EMPTY_MAP"
    | "APPLY"
    | "CAST"
    | "pvss_key"
    | "SET_BAKER_CONSENSUS_KEY"
    | "FAILWITH"
    | "GT"
    | "NIL"
    | "SUB"
    | "EDIV"
    | "CREATE_ACCOUNT"
    | "GE"
    | "SET_DELEGATE"
    | "code"
  $alpha.mutez: $positive_bignum
  $alpha.operation.alpha.contents:
    { /* Endorsement */
      "kind": "endorsement",
      "level": integer ∈ [-2^31-1, 2^31] }
    || { /* Seed_nonce_revelation */
         "kind": "seed_nonce_revelation",
         "level": integer ∈ [-2^31-1, 2^31],
         "nonce": /^[a-zA-Z0-9]+$/ }
    || { /* Endorsement_with_slot */
         "kind": "endorsement_with_slot",
         "endorsement": $alpha.inlined.endorsement,
         "slot": integer ∈ [0, 2^16-1] }
    || { /* Double_endorsement_evidence */
         "kind": "double_endorsement_evidence",
         "op1": $alpha.inlined.endorsement,
         "op2": $alpha.inlined.endorsement,
         "slot": integer ∈ [0, 2^16-1] }
    || { /* 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]+$/ }
    || { /* 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]+$/ }
               || [ $micheline.alpha.michelson_v1.expression ... ]
               /* Sequence */
               || { /* Generic prim (any number of args with or without
                       annot) */
                    "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 }
    || { /* 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"?: $Baker_hash,
         "script": $alpha.scripted.contracts,
         "version": "1" }
    || { /* 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 }
    || { /* Delegation */
         "kind": "delegation",
         "source": $Signature.Public_key_hash,
         "fee": $alpha.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "delegate"?: $Baker_hash,
         "version": "1" }
    || { /* Failing_noop */
         "kind": "failing_noop",
         "arbitrary": $unistring }
    || { /* Baker_registration */
         "kind": "baker_registration",
         "source": $Signature.Public_key_hash,
         "fee": $alpha.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "credit": $alpha.mutez,
         "consensus_key": $Signature.Public_key,
         "proof": $Signature,
         "threshold": integer ∈ [0, 2^16-1],
         "owner_keys": [ $Signature.Public_key ... ] }
  $alpha.scripted.contracts:
    { "code":
        { /* Int */
          "int": $bignum }
        || { /* String */
             "string": $unistring }
        || { /* Bytes */
             "bytes": /^[a-zA-Z0-9]+$/ }
        || [ $micheline.alpha.michelson_v1.expression ... ]
        /* Sequence */
        || { /* Generic prim (any number of args with or without annot) */
             "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]+$/ }
        || [ $micheline.alpha.michelson_v1.expression ... ]
        /* Sequence */
        || { /* Generic prim (any number of args with or without annot) */
             "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]+$/ ... ]
  $micheline.alpha.michelson_v1.expression:
    { /* Int */
      "int": $bignum }
    || { /* String */
         "string": $unistring }
    || { /* Bytes */
         "bytes": /^[a-zA-Z0-9]+$/ }
    || [ $micheline.alpha.michelson_v1.expression ... ]
    /* Sequence */
    || { /* Generic prim (any number of args with or without annot) */
         "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
  $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 |
  +=======================+==========+==========+
  | endorsement_operation | Variable | $X_0     |
  +-----------------------+----------+----------+
  | chain_id              | 4 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                   |
  +-----------------------+----------+-------------------------+


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


  Baker (tag 2)
  =============

  +------------+----------+------------------------+
  | Name       | Size     | Contents               |
  +============+==========+========================+
  | Tag        | 1 byte   | unsigned 8-bit integer |
  +------------+----------+------------------------+
  | Baker_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 |
  +------+--------+------------------------+


  main (tag 5)
  ============

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

  +-----------------------+----------------------+-------------------------+
  | 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 number. Each byte has a running unary size bit: the most significant bit of each byte tells is this is the last byte in the sequence (0) or if there is more to read (1). Size bits ignored, data is then the binary representation of the absolute value of the number in little endian order.

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


  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 |
  +-----------------+----------+------------------------+
  | Unnamed field 0 | 33 bytes | 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                               |
  +---------------------------------------+----------+-------------------------------------+
  | priority                              | 2 bytes  | unsigned 16-bit integer             |
  +---------------------------------------+----------+-------------------------------------+
  | proof_of_work_nonce                   | 8 bytes  | bytes                               |
  +---------------------------------------+----------+-------------------------------------+
  | ? presence of field "seed_nonce_hash" | 1 byte   | boolean (0 for false, 255 for true) |
  +---------------------------------------+----------+-------------------------------------+
  | seed_nonce_hash                       | 32 bytes | bytes                               |
  +---------------------------------------+----------+-------------------------------------+
  | signature                             | 64 bytes | bytes                               |
  +---------------------------------------+----------+-------------------------------------+


  alpha.inlined.endorsement.contents (5 bytes, 8-bit tag)
  *******************************************************

  Endorsement (tag 0)
  ===================

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


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

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


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

  Endorsement (tag 0)
  ===================

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


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

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


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

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


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


  Endorsement_with_slot (tag 10)
  ==============================

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


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


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


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


  Baker_registration (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                    |
  +-----------------------+----------------------+-------------------------+
  | credit                | Determined from data | $N.t                    |
  +-----------------------+----------------------+-------------------------+
  | consensus_key         | Determined from data | $public_key             |
  +-----------------------+----------------------+-------------------------+
  | proof                 | 64 bytes             | bytes                   |
  +-----------------------+----------------------+-------------------------+
  | threshold             | 2 bytes              | unsigned 16-bit integer |
  +-----------------------+----------------------+-------------------------+
  | # bytes in next field | 4 bytes              | unsigned 30-bit integer |
  +-----------------------+----------------------+-------------------------+
  | owner_keys            | Variable             | sequence of $public_key |
  +-----------------------+----------------------+-------------------------+


  Origination (tag 209)
  =====================

  +--------------------------------+----------------------+-------------------------------------+
  | 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                       | 20 bytes             | bytes                               |
  +--------------------------------+----------------------+-------------------------------------+
  | script                         | Determined from data | $alpha.scripted.contracts           |
  +--------------------------------+----------------------+-------------------------------------+


  Delegation (tag 210)
  ====================

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


  X_0
  ***

  +-----------+----------+---------------------------------------------+
  | Name      | Size     | Contents                                    |
  +===========+==========+=============================================+
  | branch    | 32 bytes | bytes                                       |
  +-----------+----------+---------------------------------------------+
  | contents  | Variable | sequence of $alpha.operation.alpha.contents |
  +-----------+----------+---------------------------------------------+
  | signature | 64 bytes | bytes                                       |
  +-----------+----------+---------------------------------------------+

  
  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>/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,
      "priority": integer ∈ [0, 2^16-1],
      "proof_of_work_nonce": /^[a-zA-Z0-9]+$/,
      "seed_nonce_hash"?: $cycle_nonce,
      "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]+$/ ... ]
  $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                            |
  +=======================================+==========+=====================================+
  | 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                               |
  +---------------------------------------+----------+-------------------------------------+
  | priority                              | 2 bytes  | unsigned 16-bit integer             |
  +---------------------------------------+----------+-------------------------------------+
  | proof_of_work_nonce                   | 8 bytes  | bytes                               |
  +---------------------------------------+----------+-------------------------------------+
  | ? presence of field "seed_nonce_hash" | 1 byte   | boolean (0 for false, 255 for true) |
  +---------------------------------------+----------+-------------------------------------+
  | seed_nonce_hash                       | 32 bytes | bytes                               |
  +---------------------------------------+----------+-------------------------------------+
  | signature                             | 64 bytes | bytes                               |
  +---------------------------------------+----------+-------------------------------------+


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

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

  

GET ../<block_id>/header/protocol_data

The version-specific fragment of the block header.

  { "protocol": "ProtoALphaALphaALphaALphaALphaALphaALphaALphaDdp3zK",
    "priority": integer ∈ [0, 2^16-1],
    "proof_of_work_nonce": /^[a-zA-Z0-9]+$/,
    "seed_nonce_hash"?: $cycle_nonce,
    "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] ... ] }
  +---------------------------------------+----------+-------------------------------------+
  | Name                                  | Size     | Contents                            |
  +=======================================+==========+=====================================+
  | priority                              | 2 bytes  | unsigned 16-bit integer             |
  +---------------------------------------+----------+-------------------------------------+
  | proof_of_work_nonce                   | 8 bytes  | bytes                               |
  +---------------------------------------+----------+-------------------------------------+
  | ? presence of field "seed_nonce_hash" | 1 byte   | boolean (0 for false, 255 for true) |
  +---------------------------------------+----------+-------------------------------------+
  | seed_nonce_hash                       | 32 bytes | bytes                               |
  +---------------------------------------+----------+-------------------------------------+
  | signature                             | 64 bytes | bytes                               |
  +---------------------------------------+----------+-------------------------------------+


  

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

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

  /^[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]+$/
  +-----------------------+----------+-------------------------+
  | 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]+$/ ... ]
  $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/baking_rights?(level=<block_level>)*&(cycle=<block_cycle>)*&(baker=<Baker_hash>)*&(delegate=<pkh>)*&[max_priority=<int>]&[all]

Retrieves the list of bakers allowed to bake a block. By default, it gives the best baking priorities for bakers that have at least one opportunity below the 64th priority for the next block. Parameters `level` and `cycle` can be used to specify the (valid) level(s) in the past or future at which the baking rights have to be returned. Parameter `baker` can be used to restrict the results to the given bakers. If parameter `all` is set, all the baking opportunities for each baker at each level are returned, instead of just the first one. Returns the list of baking slots. Also returns the minimal timestamps that correspond to these slots. The timestamps are omitted for levels in the past, and are only estimates for levels later than the next block, based on the hypothesis that all predecessor blocks were baked at the first priority.

Optional query arguments :

  • level = <block_level>
  • cycle = <block_cycle>
  • baker = <Baker_hash>
  • delegate = <pkh>
  • max_priority = <int>
  • all

  [ { "level": integer ∈ [-2^31-1, 2^31],
      "baker": $Baker_hash,
      "priority": integer ∈ [0, 2^16-1],
      "estimated_time"?: $timestamp.protocol } ... ]
  $Baker_hash:
    /* A baker 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] ... ] }
  +-----------------------+----------+-------------------------+
  | 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                            |
  +======================================+==========+=====================================+
  | level                                | 4 bytes  | signed 32-bit integer               |
  +--------------------------------------+----------+-------------------------------------+
  | baker                                | 20 bytes | bytes                               |
  +--------------------------------------+----------+-------------------------------------+
  | priority                             | 2 bytes  | unsigned 16-bit integer             |
  +--------------------------------------+----------+-------------------------------------+
  | ? presence of field "estimated_time" | 1 byte   | boolean (0 for false, 255 for true) |
  +--------------------------------------+----------+-------------------------------------+
  | estimated_time                       | 8 bytes  | signed 64-bit integer               |
  +--------------------------------------+----------+-------------------------------------+

  

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

  

GET ../<block_id>/helpers/current_level?[offset=<int32>]

Returns the level of the interrogated block, or the one of a block located `offset` blocks after in the chain (or before when negative). For instance, the next block if `offset` is 1.

Optional query arguments :

  • offset = <int32>

  { "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 block that starts protocol
         alpha. This is specific to the protocol alpha. Other protocols might
         or might not include a similar notion. */,
    "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 protocol alpha. */,
    "cycle_position":
      integer ∈ [-2^31-1, 2^31]
      /* The current level of the block relative to the first block of the
         current cycle. */,
    "voting_period":
      integer ∈ [-2^31-1, 2^31]
      /* The current voting period's index. Note that cycles are a
         protocol-specific notion. As a result, the voting period index
         starts at 0 with the first block of protocol alpha. This field is
         DEPRECATED: use `../votes/voting_period` RPC instead. */,
    "voting_period_position":
      integer ∈ [-2^31-1, 2^31]
      /* The current level of the block relative to the first block of the
         current voting period. This field is DEPRECATED: use
         `../votes/voting_period` RPC instead. */,
    "expected_commitment":
      boolean
      /* Tells wether the baker of this block has to commit a seed nonce
         hash. */ }
  +------------------------+---------+-------------------------------------+
  | Name                   | Size    | Contents                            |
  +========================+=========+=====================================+
  | level                  | 4 bytes | signed 32-bit integer               |
  +------------------------+---------+-------------------------------------+
  | level_position         | 4 bytes | signed 32-bit integer               |
  +------------------------+---------+-------------------------------------+
  | cycle                  | 4 bytes | signed 32-bit integer               |
  +------------------------+---------+-------------------------------------+
  | cycle_position         | 4 bytes | signed 32-bit integer               |
  +------------------------+---------+-------------------------------------+
  | voting_period          | 4 bytes | signed 32-bit integer               |
  +------------------------+---------+-------------------------------------+
  | voting_period_position | 4 bytes | signed 32-bit integer               |
  +------------------------+---------+-------------------------------------+
  | expected_commitment    | 1 byte  | boolean (0 for false, 255 for true) |
  +------------------------+---------+-------------------------------------+


  

GET ../<block_id>/helpers/endorsing_rights?(level=<block_level>)*&(cycle=<block_cycle>)*&(baker=<Baker_hash>)*&(delegate=<pkh>)*

Retrieves the bakers allowed to endorse a block. By default, it gives the endorsement slots for bakers that have at least one in the next block. Parameters `level` and `cycle` can be used to specify the (valid) level(s) in the past or future at which the endorsement rights have to be returned. Parameter `baker` can be used to restrict the results to the given bakers. Returns the list of endorsement slots. Also returns the minimal timestamps that correspond to these slots. The timestamps are omitted for levels in the past, and are only estimates for levels later than the next block, based on the hypothesis that all predecessor blocks were baked at the first priority.

Optional query arguments :

  • level = <block_level>
  • cycle = <block_cycle>
  • baker = <Baker_hash>
  • delegate = <pkh>

  [ { "level": integer ∈ [-2^31-1, 2^31],
      "baker": $Baker_hash,
      "slots": [ integer ∈ [0, 2^16-1] ... ],
      "estimated_time"?: $timestamp.protocol } ... ]
  $Baker_hash:
    /* A baker 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] ... ] }
  +-----------------------+----------+-------------------------+
  | 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                            |
  +======================================+==========+=====================================+
  | level                                | 4 bytes  | signed 32-bit integer               |
  +--------------------------------------+----------+-------------------------------------+
  | baker                                | 20 bytes | bytes                               |
  +--------------------------------------+----------+-------------------------------------+
  | # bytes in next field                | 4 bytes  | unsigned 30-bit integer             |
  +--------------------------------------+----------+-------------------------------------+
  | slots                                | Variable | sequence of unsigned 16-bit integer |
  +--------------------------------------+----------+-------------------------------------+
  | ? presence of field "estimated_time" | 1 byte   | boolean (0 for false, 255 for true) |
  +--------------------------------------+----------+-------------------------------------+
  | estimated_time                       | 8 bytes  | signed 64-bit integer               |
  +--------------------------------------+----------+-------------------------------------+

  

POST ../<block_id>/helpers/forge/operations

Forge an operation

  $alpha.operation.alpha.unsigned_operation
  $Baker_hash:
    /* A baker ID (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
  $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,
      "priority": integer ∈ [0, 2^16-1],
      "proof_of_work_nonce": /^[a-zA-Z0-9]+$/,
      "seed_nonce_hash"?: $cycle_nonce,
      "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, a base58 originated contract hash, or a
       base58 baker contract hash. */
    $unistring
  $alpha.entrypoint:
    /* entrypoint
       Named entrypoint to a Michelson smart contract */
    "default"
    || "root"
    || "do"
    || "set_delegate"
    || "remove_delegate"
    || "main"
    || string
    /* named */
  $alpha.inlined.endorsement:
    /* An operation's shell header. */
    { "branch": $block_hash,
      "operations": $alpha.inlined.endorsement.contents,
      "signature"?: $Signature }
  $alpha.inlined.endorsement.contents:
    { /* Endorsement */
      "kind": "endorsement",
      "level": integer ∈ [-2^31-1, 2^31] }
  $alpha.michelson.v1.primitives:
    "ADD"
    | "IF_LEFT"
    | "SELF_ADDRESS"
    | "KECCAK"
    | "Elt"
    | "TOTAL_VOTING_POWER"
    | "VOTING_POWER"
    | "bls12_381_fr"
    | "SHA256"
    | "key_hash"
    | "chain_id"
    | "Right"
    | "LE"
    | "map"
    | "sapling_state"
    | "storage"
    | "SOURCE"
    | "False"
    | "SHA512"
    | "BALANCE"
    | "EMPTY_BIG_MAP"
    | "signature"
    | "NOT"
    | "lambda"
    | "TRANSFER_TOKENS"
    | "DUG"
    | "COMPARE"
    | "SHA3"
    | "timestamp"
    | "MUL"
    | "big_map"
    | "bls12_381_g1"
    | "AMOUNT"
    | "DIP"
    | "ABS"
    | "bool"
    | "LT"
    | "never"
    | "bls12_381_g2"
    | "operation"
    | "CONCAT"
    | "UNIT"
    | "SWAP"
    | "DUP"
    | "option"
    | "CAR"
    | "CONS"
    | "baker_operation"
    | "NEQ"
    | "GET"
    | "Left"
    | "key"
    | "UNPAIR"
    | "DROP"
    | "NEG"
    | "CONTRACT"
    | "int"
    | "ADDRESS"
    | "True"
    | "parameter"
    | "unit"
    | "EQ"
    | "Pair"
    | "UPDATE"
    | "nat"
    | "AND"
    | "pair"
    | "READ_TICKET"
    | "set"
    | "CHECK_SIGNATURE"
    | "IF_CONS"
    | "INT"
    | "CREATE_CONTRACT"
    | "MEM"
    | "PAIRING_CHECK"
    | "BLAKE2B"
    | "SUBMIT_PROPOSALS"
    | "STEPS_TO_QUOTA"
    | "bytes"
    | "XOR"
    | "SELF"
    | "LEVEL"
    | "IMPLICIT_ACCOUNT"
    | "PACK"
    | "NEVER"
    | "NOW"
    | "RENAME"
    | "GET_AND_UPDATE"
    | "SENDER"
    | "contract"
    | "or"
    | "SLICE"
    | "CDR"
    | "OR"
    | "mutez"
    | "CHAIN_ID"
    | "ISNAT"
    | "SPLIT_TICKET"
    | "SOME"
    | "LOOP"
    | "SAPLING_VERIFY_UPDATE"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "IF_NONE"
    | "TICKET"
    | "ticket"
    | "ITER"
    | "EXEC"
    | "NONE"
    | "LEFT"
    | "string"
    | "JOIN_TICKETS"
    | "LSR"
    | "None"
    | "SET_BAKER_PVSS_KEY"
    | "EMPTY_SET"
    | "MAP"
    | "address"
    | "SET_BAKER_ACTIVE"
    | "LSL"
    | "RIGHT"
    | "SUBMIT_BALLOT"
    | "SIZE"
    | "list"
    | "IF"
    | "sapling_transaction"
    | "baker_hash"
    | "PAIR"
    | "LAMBDA"
    | "HASH_KEY"
    | "PUSH"
    | "LOOP_LEFT"
    | "SAPLING_EMPTY_STATE"
    | "DIG"
    | "TOGGLE_BAKER_DELEGATIONS"
    | "EMPTY_MAP"
    | "APPLY"
    | "CAST"
    | "pvss_key"
    | "SET_BAKER_CONSENSUS_KEY"
    | "FAILWITH"
    | "GT"
    | "NIL"
    | "SUB"
    | "EDIV"
    | "CREATE_ACCOUNT"
    | "GE"
    | "SET_DELEGATE"
    | "code"
  $alpha.mutez: $positive_bignum
  $alpha.operation.alpha.contents:
    { /* Endorsement */
      "kind": "endorsement",
      "level": integer ∈ [-2^31-1, 2^31] }
    || { /* Seed_nonce_revelation */
         "kind": "seed_nonce_revelation",
         "level": integer ∈ [-2^31-1, 2^31],
         "nonce": /^[a-zA-Z0-9]+$/ }
    || { /* Endorsement_with_slot */
         "kind": "endorsement_with_slot",
         "endorsement": $alpha.inlined.endorsement,
         "slot": integer ∈ [0, 2^16-1] }
    || { /* Double_endorsement_evidence */
         "kind": "double_endorsement_evidence",
         "op1": $alpha.inlined.endorsement,
         "op2": $alpha.inlined.endorsement,
         "slot": integer ∈ [0, 2^16-1] }
    || { /* 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]+$/ }
    || { /* 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]+$/ }
               || [ $micheline.alpha.michelson_v1.expression ... ]
               /* Sequence */
               || { /* Generic prim (any number of args with or without
                       annot) */
                    "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 }
    || { /* 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"?: $Baker_hash,
         "script": $alpha.scripted.contracts,
         "version": "1" }
    || { /* 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 }
    || { /* Delegation */
         "kind": "delegation",
         "source": $Signature.Public_key_hash,
         "fee": $alpha.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "delegate"?: $Baker_hash,
         "version": "1" }
    || { /* Failing_noop */
         "kind": "failing_noop",
         "arbitrary": $unistring }
    || { /* Baker_registration */
         "kind": "baker_registration",
         "source": $Signature.Public_key_hash,
         "fee": $alpha.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "credit": $alpha.mutez,
         "consensus_key": $Signature.Public_key,
         "proof": $Signature,
         "threshold": integer ∈ [0, 2^16-1],
         "owner_keys": [ $Signature.Public_key ... ] }
  $alpha.operation.alpha.unsigned_operation:
    /* An operation's shell header. */
    { "branch": $block_hash,
      "contents": [ $alpha.operation.alpha.contents ... ] }
  $alpha.scripted.contracts:
    { "code":
        { /* Int */
          "int": $bignum }
        || { /* String */
             "string": $unistring }
        || { /* Bytes */
             "bytes": /^[a-zA-Z0-9]+$/ }
        || [ $micheline.alpha.michelson_v1.expression ... ]
        /* Sequence */
        || { /* Generic prim (any number of args with or without annot) */
             "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]+$/ }
        || [ $micheline.alpha.michelson_v1.expression ... ]
        /* Sequence */
        || { /* Generic prim (any number of args with or without annot) */
             "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]+$/ ... ]
  $micheline.alpha.michelson_v1.expression:
    { /* Int */
      "int": $bignum }
    || { /* String */
         "string": $unistring }
    || { /* Bytes */
         "bytes": /^[a-zA-Z0-9]+$/ }
    || [ $micheline.alpha.michelson_v1.expression ... ]
    /* Sequence */
    || { /* Generic prim (any number of args with or without annot) */
         "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
  $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                                    |
  +==========+==========+=============================================+
  | branch   | 32 bytes | bytes                                       |
  +----------+----------+---------------------------------------------+
  | contents | Variable | sequence of $alpha.operation.alpha.contents |
  +----------+----------+---------------------------------------------+


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


  Baker (tag 2)
  =============

  +------------+----------+------------------------+
  | Name       | Size     | Contents               |
  +============+==========+========================+
  | Tag        | 1 byte   | unsigned 8-bit integer |
  +------------+----------+------------------------+
  | Baker_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 |
  +------+--------+------------------------+


  main (tag 5)
  ============

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

  +-----------------------+----------------------+-------------------------+
  | 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 number. Each byte has a running unary size bit: the most significant bit of each byte tells is this is the last byte in the sequence (0) or if there is more to read (1). Size bits ignored, data is then the binary representation of the absolute value of the number in little endian order.

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


  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 |
  +-----------------+----------+------------------------+
  | Unnamed field 0 | 33 bytes | 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                               |
  +---------------------------------------+----------+-------------------------------------+
  | priority                              | 2 bytes  | unsigned 16-bit integer             |
  +---------------------------------------+----------+-------------------------------------+
  | proof_of_work_nonce                   | 8 bytes  | bytes                               |
  +---------------------------------------+----------+-------------------------------------+
  | ? presence of field "seed_nonce_hash" | 1 byte   | boolean (0 for false, 255 for true) |
  +---------------------------------------+----------+-------------------------------------+
  | seed_nonce_hash                       | 32 bytes | bytes                               |
  +---------------------------------------+----------+-------------------------------------+
  | signature                             | 64 bytes | bytes                               |
  +---------------------------------------+----------+-------------------------------------+


  alpha.inlined.endorsement.contents (5 bytes, 8-bit tag)
  *******************************************************

  Endorsement (tag 0)
  ===================

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


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

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


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

  Endorsement (tag 0)
  ===================

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


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

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


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

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


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


  Endorsement_with_slot (tag 10)
  ==============================

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


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


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


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


  Baker_registration (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                    |
  +-----------------------+----------------------+-------------------------+
  | credit                | Determined from data | $N.t                    |
  +-----------------------+----------------------+-------------------------+
  | consensus_key         | Determined from data | $public_key             |
  +-----------------------+----------------------+-------------------------+
  | proof                 | 64 bytes             | bytes                   |
  +-----------------------+----------------------+-------------------------+
  | threshold             | 2 bytes              | unsigned 16-bit integer |
  +-----------------------+----------------------+-------------------------+
  | # bytes in next field | 4 bytes              | unsigned 30-bit integer |
  +-----------------------+----------------------+-------------------------+
  | owner_keys            | Variable             | sequence of $public_key |
  +-----------------------+----------------------+-------------------------+


  Origination (tag 209)
  =====================

  +--------------------------------+----------------------+-------------------------------------+
  | 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                       | 20 bytes             | bytes                               |
  +--------------------------------+----------------------+-------------------------------------+
  | script                         | Determined from data | $alpha.scripted.contracts           |
  +--------------------------------+----------------------+-------------------------------------+


  Delegation (tag 210)
  ====================

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

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


  

POST ../<block_id>/helpers/forge/protocol_data

Forge the protocol-specific part of a block header

  { "priority": integer ∈ [0, 2^16-1],
    "nonce_hash"?: $cycle_nonce,
    "proof_of_work_nonce"?: /^[a-zA-Z0-9]+$/ }
  $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                            |
  +==================================+==========+=====================================+
  | priority                         | 2 bytes  | unsigned 16-bit integer             |
  +----------------------------------+----------+-------------------------------------+
  | ? presence of field "nonce_hash" | 1 byte   | boolean (0 for false, 255 for true) |
  +----------------------------------+----------+-------------------------------------+
  | nonce_hash                       | 32 bytes | bytes                               |
  +----------------------------------+----------+-------------------------------------+
  | proof_of_work_nonce              | 8 bytes  | bytes                               |
  +----------------------------------+----------+-------------------------------------+


  
  { "protocol_data": /^[a-zA-Z0-9]+$/ }
  +-----------------------+----------+-------------------------+
  | Name                  | Size     | Contents                |
  +=======================+==========+=========================+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer |
  +-----------------------+----------+-------------------------+
  | protocol_data         | 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]+$/ }
  $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]+$/ ... ]
  $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]+$/ }
  +-----------------------+----------+-------------------------+
  | Name                  | Size     | Contents                |
  +=======================+==========+=========================+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer |
  +-----------------------+----------+-------------------------+
  | block                 | Variable | bytes                   |
  +-----------------------+----------+-------------------------+


  

GET ../<block_id>/helpers/is_baker_consensus_key/<pkh>

Find the baker hash for a baker that uses the given key as consensus key, if any.

  $Baker_hash
  $Baker_hash:
    /* A baker ID (Base58Check-encoded) */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
  +------------+----------+----------+
  | Name       | Size     | Contents |
  +============+==========+==========+
  | Baker_hash | 20 bytes | bytes    |
  +------------+----------+----------+


  

GET ../<block_id>/helpers/levels_in_current_cycle?[offset=<int32>]

Levels of a cycle

Optional query arguments :

  • offset = <int32>

  { "first": integer ∈ [-2^31-1, 2^31],
    "last": integer ∈ [-2^31-1, 2^31] }
  +-------+---------+-----------------------+
  | Name  | Size    | Contents              |
  +=======+=========+=======================+
  | first | 4 bytes | signed 32-bit integer |
  +-------+---------+-----------------------+
  | last  | 4 bytes | signed 32-bit integer |
  +-------+---------+-----------------------+


  

POST ../<block_id>/helpers/parse/block

Parse a block

  $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]+$/ }
  $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]+$/ ... ]
  $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                   |
  +-----------------------+----------+-------------------------+

  
  $alpha.block_header.alpha.signed_contents
  $Signature:
    /* A Ed25519, Secp256k1 or P256 signature (Base58Check-encoded) */
    $unistring
  $alpha.block_header.alpha.signed_contents:
    { "priority": integer ∈ [0, 2^16-1],
      "proof_of_work_nonce": /^[a-zA-Z0-9]+$/,
      "seed_nonce_hash"?: $cycle_nonce,
      "signature": $Signature }
  $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                            |
  +=======================================+==========+=====================================+
  | priority                              | 2 bytes  | unsigned 16-bit integer             |
  +---------------------------------------+----------+-------------------------------------+
  | proof_of_work_nonce                   | 8 bytes  | bytes                               |
  +---------------------------------------+----------+-------------------------------------+
  | ? presence of field "seed_nonce_hash" | 1 byte   | boolean (0 for false, 255 for true) |
  +---------------------------------------+----------+-------------------------------------+
  | seed_nonce_hash                       | 32 bytes | bytes                               |
  +---------------------------------------+----------+-------------------------------------+
  | signature                             | 64 bytes | bytes                               |
  +---------------------------------------+----------+-------------------------------------+


  

POST ../<block_id>/helpers/parse/operations

Parse operations

  { "operations": [ $operation ... ],
    "check_signature"?: boolean }
  $block_hash:
    /* A block identifier (Base58Check-encoded) */
    $unistring
  $operation:
    /* An operation. The shell_header part indicates a block an operation is
       meant to apply on top of. The proto part is protocol-specific and
       appears as a binary blob. */
    { "branch": $block_hash,
      "data": /^[a-zA-Z0-9]+$/ }
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
  +---------------------------------------+----------+-------------------------------------+
  | Name                                  | Size     | Contents                            |
  +=======================================+==========+=====================================+
  | # bytes in next field                 | 4 bytes  | unsigned 30-bit integer             |
  +---------------------------------------+----------+-------------------------------------+
  | operations                            | Variable | sequence of $X_0                    |
  +---------------------------------------+----------+-------------------------------------+
  | ? presence of field "check_signature" | 1 byte   | boolean (0 for false, 255 for true) |
  +---------------------------------------+----------+-------------------------------------+
  | check_signature                       | 1 byte   | boolean (0 for false, 255 for true) |
  +---------------------------------------+----------+-------------------------------------+


  X_0
  ***

  +--------------------------+----------+-------------------------+
  | Name                     | Size     | Contents                |
  +==========================+==========+=========================+
  | # bytes in next 2 fields | 4 bytes  | unsigned 30-bit integer |
  +--------------------------+----------+-------------------------+
  | branch                   | 32 bytes | bytes                   |
  +--------------------------+----------+-------------------------+
  | data                     | Variable | bytes                   |
  +--------------------------+----------+-------------------------+

  
  [ { /* An operation's shell header. */
      "branch": $block_hash,
      "contents": [ $alpha.operation.alpha.contents ... ],
      "signature": $Signature } ... ]
  $Baker_hash:
    /* A baker ID (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
  $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,
      "priority": integer ∈ [0, 2^16-1],
      "proof_of_work_nonce": /^[a-zA-Z0-9]+$/,
      "seed_nonce_hash"?: $cycle_nonce,
      "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, a base58 originated contract hash, or a
       base58 baker contract hash. */
    $unistring
  $alpha.entrypoint:
    /* entrypoint
       Named entrypoint to a Michelson smart contract */
    "default"
    || "root"
    || "do"
    || "set_delegate"
    || "remove_delegate"
    || "main"
    || string
    /* named */
  $alpha.inlined.endorsement:
    /* An operation's shell header. */
    { "branch": $block_hash,
      "operations": $alpha.inlined.endorsement.contents,
      "signature"?: $Signature }
  $alpha.inlined.endorsement.contents:
    { /* Endorsement */
      "kind": "endorsement",
      "level": integer ∈ [-2^31-1, 2^31] }
  $alpha.michelson.v1.primitives:
    "ADD"
    | "IF_LEFT"
    | "SELF_ADDRESS"
    | "KECCAK"
    | "Elt"
    | "TOTAL_VOTING_POWER"
    | "VOTING_POWER"
    | "bls12_381_fr"
    | "SHA256"
    | "key_hash"
    | "chain_id"
    | "Right"
    | "LE"
    | "map"
    | "sapling_state"
    | "storage"
    | "SOURCE"
    | "False"
    | "SHA512"
    | "BALANCE"
    | "EMPTY_BIG_MAP"
    | "signature"
    | "NOT"
    | "lambda"
    | "TRANSFER_TOKENS"
    | "DUG"
    | "COMPARE"
    | "SHA3"
    | "timestamp"
    | "MUL"
    | "big_map"
    | "bls12_381_g1"
    | "AMOUNT"
    | "DIP"
    | "ABS"
    | "bool"
    | "LT"
    | "never"
    | "bls12_381_g2"
    | "operation"
    | "CONCAT"
    | "UNIT"
    | "SWAP"
    | "DUP"
    | "option"
    | "CAR"
    | "CONS"
    | "baker_operation"
    | "NEQ"
    | "GET"
    | "Left"
    | "key"
    | "UNPAIR"
    | "DROP"
    | "NEG"
    | "CONTRACT"
    | "int"
    | "ADDRESS"
    | "True"
    | "parameter"
    | "unit"
    | "EQ"
    | "Pair"
    | "UPDATE"
    | "nat"
    | "AND"
    | "pair"
    | "READ_TICKET"
    | "set"
    | "CHECK_SIGNATURE"
    | "IF_CONS"
    | "INT"
    | "CREATE_CONTRACT"
    | "MEM"
    | "PAIRING_CHECK"
    | "BLAKE2B"
    | "SUBMIT_PROPOSALS"
    | "STEPS_TO_QUOTA"
    | "bytes"
    | "XOR"
    | "SELF"
    | "LEVEL"
    | "IMPLICIT_ACCOUNT"
    | "PACK"
    | "NEVER"
    | "NOW"
    | "RENAME"
    | "GET_AND_UPDATE"
    | "SENDER"
    | "contract"
    | "or"
    | "SLICE"
    | "CDR"
    | "OR"
    | "mutez"
    | "CHAIN_ID"
    | "ISNAT"
    | "SPLIT_TICKET"
    | "SOME"
    | "LOOP"
    | "SAPLING_VERIFY_UPDATE"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "IF_NONE"
    | "TICKET"
    | "ticket"
    | "ITER"
    | "EXEC"
    | "NONE"
    | "LEFT"
    | "string"
    | "JOIN_TICKETS"
    | "LSR"
    | "None"
    | "SET_BAKER_PVSS_KEY"
    | "EMPTY_SET"
    | "MAP"
    | "address"
    | "SET_BAKER_ACTIVE"
    | "LSL"
    | "RIGHT"
    | "SUBMIT_BALLOT"
    | "SIZE"
    | "list"
    | "IF"
    | "sapling_transaction"
    | "baker_hash"
    | "PAIR"
    | "LAMBDA"
    | "HASH_KEY"
    | "PUSH"
    | "LOOP_LEFT"
    | "SAPLING_EMPTY_STATE"
    | "DIG"
    | "TOGGLE_BAKER_DELEGATIONS"
    | "EMPTY_MAP"
    | "APPLY"
    | "CAST"
    | "pvss_key"
    | "SET_BAKER_CONSENSUS_KEY"
    | "FAILWITH"
    | "GT"
    | "NIL"
    | "SUB"
    | "EDIV"
    | "CREATE_ACCOUNT"
    | "GE"
    | "SET_DELEGATE"
    | "code"
  $alpha.mutez: $positive_bignum
  $alpha.operation.alpha.contents:
    { /* Endorsement */
      "kind": "endorsement",
      "level": integer ∈ [-2^31-1, 2^31] }
    || { /* Seed_nonce_revelation */
         "kind": "seed_nonce_revelation",
         "level": integer ∈ [-2^31-1, 2^31],
         "nonce": /^[a-zA-Z0-9]+$/ }
    || { /* Endorsement_with_slot */
         "kind": "endorsement_with_slot",
         "endorsement": $alpha.inlined.endorsement,
         "slot": integer ∈ [0, 2^16-1] }
    || { /* Double_endorsement_evidence */
         "kind": "double_endorsement_evidence",
         "op1": $alpha.inlined.endorsement,
         "op2": $alpha.inlined.endorsement,
         "slot": integer ∈ [0, 2^16-1] }
    || { /* 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]+$/ }
    || { /* 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]+$/ }
               || [ $micheline.alpha.michelson_v1.expression ... ]
               /* Sequence */
               || { /* Generic prim (any number of args with or without
                       annot) */
                    "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 }
    || { /* 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"?: $Baker_hash,
         "script": $alpha.scripted.contracts,
         "version": "1" }
    || { /* 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 }
    || { /* Delegation */
         "kind": "delegation",
         "source": $Signature.Public_key_hash,
         "fee": $alpha.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "delegate"?: $Baker_hash,
         "version": "1" }
    || { /* Failing_noop */
         "kind": "failing_noop",
         "arbitrary": $unistring }
    || { /* Baker_registration */
         "kind": "baker_registration",
         "source": $Signature.Public_key_hash,
         "fee": $alpha.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "credit": $alpha.mutez,
         "consensus_key": $Signature.Public_key,
         "proof": $Signature,
         "threshold": integer ∈ [0, 2^16-1],
         "owner_keys": [ $Signature.Public_key ... ] }
  $alpha.scripted.contracts:
    { "code":
        { /* Int */
          "int": $bignum }
        || { /* String */
             "string": $unistring }
        || { /* Bytes */
             "bytes": /^[a-zA-Z0-9]+$/ }
        || [ $micheline.alpha.michelson_v1.expression ... ]
        /* Sequence */
        || { /* Generic prim (any number of args with or without annot) */
             "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]+$/ }
        || [ $micheline.alpha.michelson_v1.expression ... ]
        /* Sequence */
        || { /* Generic prim (any number of args with or without annot) */
             "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]+$/ ... ]
  $micheline.alpha.michelson_v1.expression:
    { /* Int */
      "int": $bignum }
    || { /* String */
         "string": $unistring }
    || { /* Bytes */
         "bytes": /^[a-zA-Z0-9]+$/ }
    || [ $micheline.alpha.michelson_v1.expression ... ]
    /* Sequence */
    || { /* Generic prim (any number of args with or without annot) */
         "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
  $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                |
  +=======================+==========+=========================+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer |
  +-----------------------+----------+-------------------------+
  | Unnamed field 0       | Variable | sequence of $X_0        |
  +-----------------------+----------+-------------------------+


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


  Baker (tag 2)
  =============

  +------------+----------+------------------------+
  | Name       | Size     | Contents               |
  +============+==========+========================+
  | Tag        | 1 byte   | unsigned 8-bit integer |
  +------------+----------+------------------------+
  | Baker_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 |
  +------+--------+------------------------+


  main (tag 5)
  ============

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

  +-----------------------+----------------------+-------------------------+
  | 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 number. Each byte has a running unary size bit: the most significant bit of each byte tells is this is the last byte in the sequence (0) or if there is more to read (1). Size bits ignored, data is then the binary representation of the absolute value of the number in little endian order.

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


  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 |
  +-----------------+----------+------------------------+
  | Unnamed field 0 | 33 bytes | 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                               |
  +---------------------------------------+----------+-------------------------------------+
  | priority                              | 2 bytes  | unsigned 16-bit integer             |
  +---------------------------------------+----------+-------------------------------------+
  | proof_of_work_nonce                   | 8 bytes  | bytes                               |
  +---------------------------------------+----------+-------------------------------------+
  | ? presence of field "seed_nonce_hash" | 1 byte   | boolean (0 for false, 255 for true) |
  +---------------------------------------+----------+-------------------------------------+
  | seed_nonce_hash                       | 32 bytes | bytes                               |
  +---------------------------------------+----------+-------------------------------------+
  | signature                             | 64 bytes | bytes                               |
  +---------------------------------------+----------+-------------------------------------+


  alpha.inlined.endorsement.contents (5 bytes, 8-bit tag)
  *******************************************************

  Endorsement (tag 0)
  ===================

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


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

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


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

  Endorsement (tag 0)
  ===================

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


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

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


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

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


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


  Endorsement_with_slot (tag 10)
  ==============================

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


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


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


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


  Baker_registration (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                    |
  +-----------------------+----------------------+-------------------------+
  | credit                | Determined from data | $N.t                    |
  +-----------------------+----------------------+-------------------------+
  | consensus_key         | Determined from data | $public_key             |
  +-----------------------+----------------------+-------------------------+
  | proof                 | 64 bytes             | bytes                   |
  +-----------------------+----------------------+-------------------------+
  | threshold             | 2 bytes              | unsigned 16-bit integer |
  +-----------------------+----------------------+-------------------------+
  | # bytes in next field | 4 bytes              | unsigned 30-bit integer |
  +-----------------------+----------------------+-------------------------+
  | owner_keys            | Variable             | sequence of $public_key |
  +-----------------------+----------------------+-------------------------+


  Origination (tag 209)
  =====================

  +--------------------------------+----------------------+-------------------------------------+
  | 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                       | 20 bytes             | bytes                               |
  +--------------------------------+----------------------+-------------------------------------+
  | script                         | Determined from data | $alpha.scripted.contracts           |
  +--------------------------------+----------------------+-------------------------------------+


  Delegation (tag 210)
  ====================

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


  X_0
  ***

  +--------------------------+----------+---------------------------------------------+
  | Name                     | Size     | Contents                                    |
  +==========================+==========+=============================================+
  | # bytes in next 3 fields | 4 bytes  | unsigned 30-bit integer                     |
  +--------------------------+----------+---------------------------------------------+
  | branch                   | 32 bytes | bytes                                       |
  +--------------------------+----------+---------------------------------------------+
  | contents                 | Variable | sequence of $alpha.operation.alpha.contents |
  +--------------------------+----------+---------------------------------------------+
  | signature                | 64 bytes | 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",
        "priority": integer ∈ [0, 2^16-1],
        "proof_of_work_nonce": /^[a-zA-Z0-9]+$/,
        "seed_nonce_hash"?: $cycle_nonce,
        "signature": $Signature },
    "operations": [ [ $next_operation ... ] ... ] }
  $Baker_hash:
    /* A baker ID (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
  $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,
      "priority": integer ∈ [0, 2^16-1],
      "proof_of_work_nonce": /^[a-zA-Z0-9]+$/,
      "seed_nonce_hash"?: $cycle_nonce,
      "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, a base58 originated contract hash, or a
       base58 baker contract hash. */
    $unistring
  $alpha.entrypoint:
    /* entrypoint
       Named entrypoint to a Michelson smart contract */
    "default"
    || "root"
    || "do"
    || "set_delegate"
    || "remove_delegate"
    || "main"
    || string
    /* named */
  $alpha.inlined.endorsement:
    /* An operation's shell header. */
    { "branch": $block_hash,
      "operations": $alpha.inlined.endorsement.contents,
      "signature"?: $Signature }
  $alpha.inlined.endorsement.contents:
    { /* Endorsement */
      "kind": "endorsement",
      "level": integer ∈ [-2^31-1, 2^31] }
  $alpha.michelson.v1.primitives:
    "ADD"
    | "IF_LEFT"
    | "SELF_ADDRESS"
    | "KECCAK"
    | "Elt"
    | "TOTAL_VOTING_POWER"
    | "VOTING_POWER"
    | "bls12_381_fr"
    | "SHA256"
    | "key_hash"
    | "chain_id"
    | "Right"
    | "LE"
    | "map"
    | "sapling_state"
    | "storage"
    | "SOURCE"
    | "False"
    | "SHA512"
    | "BALANCE"
    | "EMPTY_BIG_MAP"
    | "signature"
    | "NOT"
    | "lambda"
    | "TRANSFER_TOKENS"
    | "DUG"
    | "COMPARE"
    | "SHA3"
    | "timestamp"
    | "MUL"
    | "big_map"
    | "bls12_381_g1"
    | "AMOUNT"
    | "DIP"
    | "ABS"
    | "bool"
    | "LT"
    | "never"
    | "bls12_381_g2"
    | "operation"
    | "CONCAT"
    | "UNIT"
    | "SWAP"
    | "DUP"
    | "option"
    | "CAR"
    | "CONS"
    | "baker_operation"
    | "NEQ"
    | "GET"
    | "Left"
    | "key"
    | "UNPAIR"
    | "DROP"
    | "NEG"
    | "CONTRACT"
    | "int"
    | "ADDRESS"
    | "True"
    | "parameter"
    | "unit"
    | "EQ"
    | "Pair"
    | "UPDATE"
    | "nat"
    | "AND"
    | "pair"
    | "READ_TICKET"
    | "set"
    | "CHECK_SIGNATURE"
    | "IF_CONS"
    | "INT"
    | "CREATE_CONTRACT"
    | "MEM"
    | "PAIRING_CHECK"
    | "BLAKE2B"
    | "SUBMIT_PROPOSALS"
    | "STEPS_TO_QUOTA"
    | "bytes"
    | "XOR"
    | "SELF"
    | "LEVEL"
    | "IMPLICIT_ACCOUNT"
    | "PACK"
    | "NEVER"
    | "NOW"
    | "RENAME"
    | "GET_AND_UPDATE"
    | "SENDER"
    | "contract"
    | "or"
    | "SLICE"
    | "CDR"
    | "OR"
    | "mutez"
    | "CHAIN_ID"
    | "ISNAT"
    | "SPLIT_TICKET"
    | "SOME"
    | "LOOP"
    | "SAPLING_VERIFY_UPDATE"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "IF_NONE"
    | "TICKET"
    | "ticket"
    | "ITER"
    | "EXEC"
    | "NONE"
    | "LEFT"
    | "string"
    | "JOIN_TICKETS"
    | "LSR"
    | "None"
    | "SET_BAKER_PVSS_KEY"
    | "EMPTY_SET"
    | "MAP"
    | "address"
    | "SET_BAKER_ACTIVE"
    | "LSL"
    | "RIGHT"
    | "SUBMIT_BALLOT"
    | "SIZE"
    | "list"
    | "IF"
    | "sapling_transaction"
    | "baker_hash"
    | "PAIR"
    | "LAMBDA"
    | "HASH_KEY"
    | "PUSH"
    | "LOOP_LEFT"
    | "SAPLING_EMPTY_STATE"
    | "DIG"
    | "TOGGLE_BAKER_DELEGATIONS"
    | "EMPTY_MAP"
    | "APPLY"
    | "CAST"
    | "pvss_key"
    | "SET_BAKER_CONSENSUS_KEY"
    | "FAILWITH"
    | "GT"
    | "NIL"
    | "SUB"
    | "EDIV"
    | "CREATE_ACCOUNT"
    | "GE"
    | "SET_DELEGATE"
    | "code"
  $alpha.mutez: $positive_bignum
  $alpha.operation.alpha.contents:
    { /* Endorsement */
      "kind": "endorsement",
      "level": integer ∈ [-2^31-1, 2^31] }
    || { /* Seed_nonce_revelation */
         "kind": "seed_nonce_revelation",
         "level": integer ∈ [-2^31-1, 2^31],
         "nonce": /^[a-zA-Z0-9]+$/ }
    || { /* Endorsement_with_slot */
         "kind": "endorsement_with_slot",
         "endorsement": $alpha.inlined.endorsement,
         "slot": integer ∈ [0, 2^16-1] }
    || { /* Double_endorsement_evidence */
         "kind": "double_endorsement_evidence",
         "op1": $alpha.inlined.endorsement,
         "op2": $alpha.inlined.endorsement,
         "slot": integer ∈ [0, 2^16-1] }
    || { /* 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]+$/ }
    || { /* 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]+$/ }
               || [ $micheline.alpha.michelson_v1.expression ... ]
               /* Sequence */
               || { /* Generic prim (any number of args with or without
                       annot) */
                    "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 }
    || { /* 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"?: $Baker_hash,
         "script": $alpha.scripted.contracts,
         "version": "1" }
    || { /* 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 }
    || { /* Delegation */
         "kind": "delegation",
         "source": $Signature.Public_key_hash,
         "fee": $alpha.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "delegate"?: $Baker_hash,
         "version": "1" }
    || { /* Failing_noop */
         "kind": "failing_noop",
         "arbitrary": $unistring }
    || { /* Baker_registration */
         "kind": "baker_registration",
         "source": $Signature.Public_key_hash,
         "fee": $alpha.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "credit": $alpha.mutez,
         "consensus_key": $Signature.Public_key,
         "proof": $Signature,
         "threshold": integer ∈ [0, 2^16-1],
         "owner_keys": [ $Signature.Public_key ... ] }
  $alpha.scripted.contracts:
    { "code":
        { /* Int */
          "int": $bignum }
        || { /* String */
             "string": $unistring }
        || { /* Bytes */
             "bytes": /^[a-zA-Z0-9]+$/ }
        || [ $micheline.alpha.michelson_v1.expression ... ]
        /* Sequence */
        || { /* Generic prim (any number of args with or without annot) */
             "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]+$/ }
        || [ $micheline.alpha.michelson_v1.expression ... ]
        /* Sequence */
        || { /* Generic prim (any number of args with or without annot) */
             "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]+$/ ... ]
  $micheline.alpha.michelson_v1.expression:
    { /* Int */
      "int": $bignum }
    || { /* String */
         "string": $unistring }
    || { /* Bytes */
         "bytes": /^[a-zA-Z0-9]+$/ }
    || [ $micheline.alpha.michelson_v1.expression ... ]
    /* Sequence */
    || { /* Generic prim (any number of args with or without annot) */
         "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] ... ] }
  +-----------------------+----------------------+-------------------------+
  | 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 5 fields              | 4 bytes  | unsigned 30-bit integer             |
  +---------------------------------------+----------+-------------------------------------+
  | priority                              | 2 bytes  | unsigned 16-bit integer             |
  +---------------------------------------+----------+-------------------------------------+
  | proof_of_work_nonce                   | 8 bytes  | bytes                               |
  +---------------------------------------+----------+-------------------------------------+
  | ? presence of field "seed_nonce_hash" | 1 byte   | boolean (0 for false, 255 for true) |
  +---------------------------------------+----------+-------------------------------------+
  | seed_nonce_hash                       | 32 bytes | bytes                               |
  +---------------------------------------+----------+-------------------------------------+
  | signature                             | 64 bytes | bytes                               |
  +---------------------------------------+----------+-------------------------------------+


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


  Baker (tag 2)
  =============

  +------------+----------+------------------------+
  | Name       | Size     | Contents               |
  +============+==========+========================+
  | Tag        | 1 byte   | unsigned 8-bit integer |
  +------------+----------+------------------------+
  | Baker_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 |
  +------+--------+------------------------+


  main (tag 5)
  ============

  +------+--------+------------------------+
  | 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 number. Each byte has a running unary size bit: the most significant bit of each byte tells is this is the last byte in the sequence (0) or if there is more to read (1). Size bits ignored, data is then the binary representation of the absolute value of the number in little endian order.

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


  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 |
  +-----------------+----------+------------------------+
  | Unnamed field 0 | 33 bytes | 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                               |
  +---------------------------------------+----------+-------------------------------------+
  | priority                              | 2 bytes  | unsigned 16-bit integer             |
  +---------------------------------------+----------+-------------------------------------+
  | proof_of_work_nonce                   | 8 bytes  | bytes                               |
  +---------------------------------------+----------+-------------------------------------+
  | ? presence of field "seed_nonce_hash" | 1 byte   | boolean (0 for false, 255 for true) |
  +---------------------------------------+----------+-------------------------------------+
  | seed_nonce_hash                       | 32 bytes | bytes                               |
  +---------------------------------------+----------+-------------------------------------+
  | signature                             | 64 bytes | bytes                               |
  +---------------------------------------+----------+-------------------------------------+


  alpha.inlined.endorsement.contents (5 bytes, 8-bit tag)
  *******************************************************

  Endorsement (tag 0)
  ===================

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


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

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


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

  Endorsement (tag 0)
  ===================

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


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

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


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

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


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


  Endorsement_with_slot (tag 10)
  ==============================

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


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


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


  Baker_registration (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                    |
  +-----------------------+----------------------+-------------------------+
  | credit                | Determined from data | $N.t                    |
  +-----------------------+----------------------+-------------------------+
  | consensus_key         | Determined from data | $public_key             |
  +-----------------------+----------------------+-------------------------+
  | proof                 | 64 bytes             | bytes                   |
  +-----------------------+----------------------+-------------------------+
  | threshold             | 2 bytes              | unsigned 16-bit integer |
  +-----------------------+----------------------+-------------------------+
  | # bytes in next field | 4 bytes              | unsigned 30-bit integer |
  +-----------------------+----------------------+-------------------------+
  | owner_keys            | Variable             | sequence of $public_key |
  +-----------------------+----------------------+-------------------------+


  Origination (tag 209)
  =====================

  +--------------------------------+----------------------+-------------------------------------+
  | 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                       | 20 bytes             | bytes                               |
  +--------------------------------+----------------------+-------------------------------------+
  | script                         | Determined from data | $alpha.scripted.contracts           |
  +--------------------------------+----------------------+-------------------------------------+


  Delegation (tag 210)
  ====================

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


  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]+$/ } ... ],
          "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]+$/,
                "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]+$/,
                "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]+$/,
                "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 error 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]+$/ ... ]
  $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_4
  ***

  +--------------------------+----------+-------------------------+
  | 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_4        |
  +-----------------------+----------+-------------------------+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer |
  +-----------------------+----------+-------------------------+
  | branch_refused        | Variable | sequence of $X_4        |
  +-----------------------+----------+-------------------------+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer |
  +-----------------------+----------+-------------------------+
  | branch_delayed        | Variable | sequence of $X_4        |
  +-----------------------+----------+-------------------------+

  

POST ../<block_id>/helpers/preapply/operations

Simulate the validation of an operation.

  [ $next_operation ... ]
  $Baker_hash:
    /* A baker ID (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
  $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,
      "priority": integer ∈ [0, 2^16-1],
      "proof_of_work_nonce": /^[a-zA-Z0-9]+$/,
      "seed_nonce_hash"?: $cycle_nonce,
      "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, a base58 originated contract hash, or a
       base58 baker contract hash. */
    $unistring
  $alpha.entrypoint:
    /* entrypoint
       Named entrypoint to a Michelson smart contract */
    "default"
    || "root"
    || "do"
    || "set_delegate"
    || "remove_delegate"
    || "main"
    || string
    /* named */
  $alpha.inlined.endorsement:
    /* An operation's shell header. */
    { "branch": $block_hash,
      "operations": $alpha.inlined.endorsement.contents,
      "signature"?: $Signature }
  $alpha.inlined.endorsement.contents:
    { /* Endorsement */
      "kind": "endorsement",
      "level": integer ∈ [-2^31-1, 2^31] }
  $alpha.michelson.v1.primitives:
    "ADD"
    | "IF_LEFT"
    | "SELF_ADDRESS"
    | "KECCAK"
    | "Elt"
    | "TOTAL_VOTING_POWER"
    | "VOTING_POWER"
    | "bls12_381_fr"
    | "SHA256"
    | "key_hash"
    | "chain_id"
    | "Right"
    | "LE"
    | "map"
    | "sapling_state"
    | "storage"
    | "SOURCE"
    | "False"
    | "SHA512"
    | "BALANCE"
    | "EMPTY_BIG_MAP"
    | "signature"
    | "NOT"
    | "lambda"
    | "TRANSFER_TOKENS"
    | "DUG"
    | "COMPARE"
    | "SHA3"
    | "timestamp"
    | "MUL"
    | "big_map"
    | "bls12_381_g1"
    | "AMOUNT"
    | "DIP"
    | "ABS"
    | "bool"
    | "LT"
    | "never"
    | "bls12_381_g2"
    | "operation"
    | "CONCAT"
    | "UNIT"
    | "SWAP"
    | "DUP"
    | "option"
    | "CAR"
    | "CONS"
    | "baker_operation"
    | "NEQ"
    | "GET"
    | "Left"
    | "key"
    | "UNPAIR"
    | "DROP"
    | "NEG"
    | "CONTRACT"
    | "int"
    | "ADDRESS"
    | "True"
    | "parameter"
    | "unit"
    | "EQ"
    | "Pair"
    | "UPDATE"
    | "nat"
    | "AND"
    | "pair"
    | "READ_TICKET"
    | "set"
    | "CHECK_SIGNATURE"
    | "IF_CONS"
    | "INT"
    | "CREATE_CONTRACT"
    | "MEM"
    | "PAIRING_CHECK"
    | "BLAKE2B"
    | "SUBMIT_PROPOSALS"
    | "STEPS_TO_QUOTA"
    | "bytes"
    | "XOR"
    | "SELF"
    | "LEVEL"
    | "IMPLICIT_ACCOUNT"
    | "PACK"
    | "NEVER"
    | "NOW"
    | "RENAME"
    | "GET_AND_UPDATE"
    | "SENDER"
    | "contract"
    | "or"
    | "SLICE"
    | "CDR"
    | "OR"
    | "mutez"
    | "CHAIN_ID"
    | "ISNAT"
    | "SPLIT_TICKET"
    | "SOME"
    | "LOOP"
    | "SAPLING_VERIFY_UPDATE"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "IF_NONE"
    | "TICKET"
    | "ticket"
    | "ITER"
    | "EXEC"
    | "NONE"
    | "LEFT"
    | "string"
    | "JOIN_TICKETS"
    | "LSR"
    | "None"
    | "SET_BAKER_PVSS_KEY"
    | "EMPTY_SET"
    | "MAP"
    | "address"
    | "SET_BAKER_ACTIVE"
    | "LSL"
    | "RIGHT"
    | "SUBMIT_BALLOT"
    | "SIZE"
    | "list"
    | "IF"
    | "sapling_transaction"
    | "baker_hash"
    | "PAIR"
    | "LAMBDA"
    | "HASH_KEY"
    | "PUSH"
    | "LOOP_LEFT"
    | "SAPLING_EMPTY_STATE"
    | "DIG"
    | "TOGGLE_BAKER_DELEGATIONS"
    | "EMPTY_MAP"
    | "APPLY"
    | "CAST"
    | "pvss_key"
    | "SET_BAKER_CONSENSUS_KEY"
    | "FAILWITH"
    | "GT"
    | "NIL"
    | "SUB"
    | "EDIV"
    | "CREATE_ACCOUNT"
    | "GE"
    | "SET_DELEGATE"
    | "code"
  $alpha.mutez: $positive_bignum
  $alpha.operation.alpha.contents:
    { /* Endorsement */
      "kind": "endorsement",
      "level": integer ∈ [-2^31-1, 2^31] }
    || { /* Seed_nonce_revelation */
         "kind": "seed_nonce_revelation",
         "level": integer ∈ [-2^31-1, 2^31],
         "nonce": /^[a-zA-Z0-9]+$/ }
    || { /* Endorsement_with_slot */
         "kind": "endorsement_with_slot",
         "endorsement": $alpha.inlined.endorsement,
         "slot": integer ∈ [0, 2^16-1] }
    || { /* Double_endorsement_evidence */
         "kind": "double_endorsement_evidence",
         "op1": $alpha.inlined.endorsement,
         "op2": $alpha.inlined.endorsement,
         "slot": integer ∈ [0, 2^16-1] }
    || { /* 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]+$/ }
    || { /* 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]+$/ }
               || [ $micheline.alpha.michelson_v1.expression ... ]
               /* Sequence */
               || { /* Generic prim (any number of args with or without
                       annot) */
                    "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 }
    || { /* 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"?: $Baker_hash,
         "script": $alpha.scripted.contracts,
         "version": "1" }
    || { /* 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 }
    || { /* Delegation */
         "kind": "delegation",
         "source": $Signature.Public_key_hash,
         "fee": $alpha.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "delegate"?: $Baker_hash,
         "version": "1" }
    || { /* Failing_noop */
         "kind": "failing_noop",
         "arbitrary": $unistring }
    || { /* Baker_registration */
         "kind": "baker_registration",
         "source": $Signature.Public_key_hash,
         "fee": $alpha.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "credit": $alpha.mutez,
         "consensus_key": $Signature.Public_key,
         "proof": $Signature,
         "threshold": integer ∈ [0, 2^16-1],
         "owner_keys": [ $Signature.Public_key ... ] }
  $alpha.scripted.contracts:
    { "code":
        { /* Int */
          "int": $bignum }
        || { /* String */
             "string": $unistring }
        || { /* Bytes */
             "bytes": /^[a-zA-Z0-9]+$/ }
        || [ $micheline.alpha.michelson_v1.expression ... ]
        /* Sequence */
        || { /* Generic prim (any number of args with or without annot) */
             "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]+$/ }
        || [ $micheline.alpha.michelson_v1.expression ... ]
        /* Sequence */
        || { /* Generic prim (any number of args with or without annot) */
             "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]+$/ ... ]
  $micheline.alpha.michelson_v1.expression:
    { /* Int */
      "int": $bignum }
    || { /* String */
         "string": $unistring }
    || { /* Bytes */
         "bytes": /^[a-zA-Z0-9]+$/ }
    || [ $micheline.alpha.michelson_v1.expression ... ]
    /* Sequence */
    || { /* Generic prim (any number of args with or without annot) */
         "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] ... ] }
  +-----------------------+----------+-----------------------------+
  | Name                  | Size     | Contents                    |
  +=======================+==========+=============================+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer     |
  +-----------------------+----------+-----------------------------+
  | Unnamed field 0       | Variable | sequence of $next_operation |
  +-----------------------+----------+-----------------------------+


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


  Baker (tag 2)
  =============

  +------------+----------+------------------------+
  | Name       | Size     | Contents               |
  +============+==========+========================+
  | Tag        | 1 byte   | unsigned 8-bit integer |
  +------------+----------+------------------------+
  | Baker_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 |
  +------+--------+------------------------+


  main (tag 5)
  ============

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

  +-----------------------+----------------------+-------------------------+
  | 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 number. Each byte has a running unary size bit: the most significant bit of each byte tells is this is the last byte in the sequence (0) or if there is more to read (1). Size bits ignored, data is then the binary representation of the absolute value of the number in little endian order.

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


  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 |
  +-----------------+----------+------------------------+
  | Unnamed field 0 | 33 bytes | 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                               |
  +---------------------------------------+----------+-------------------------------------+
  | priority                              | 2 bytes  | unsigned 16-bit integer             |
  +---------------------------------------+----------+-------------------------------------+
  | proof_of_work_nonce                   | 8 bytes  | bytes                               |
  +---------------------------------------+----------+-------------------------------------+
  | ? presence of field "seed_nonce_hash" | 1 byte   | boolean (0 for false, 255 for true) |
  +---------------------------------------+----------+-------------------------------------+
  | seed_nonce_hash                       | 32 bytes | bytes                               |
  +---------------------------------------+----------+-------------------------------------+
  | signature                             | 64 bytes | bytes                               |
  +---------------------------------------+----------+-------------------------------------+


  alpha.inlined.endorsement.contents (5 bytes, 8-bit tag)
  *******************************************************

  Endorsement (tag 0)
  ===================

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


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

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


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

  Endorsement (tag 0)
  ===================

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


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

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


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

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


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


  Endorsement_with_slot (tag 10)
  ==============================

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


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


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


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


  Baker_registration (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                    |
  +-----------------------+----------------------+-------------------------+
  | credit                | Determined from data | $N.t                    |
  +-----------------------+----------------------+-------------------------+
  | consensus_key         | Determined from data | $public_key             |
  +-----------------------+----------------------+-------------------------+
  | proof                 | 64 bytes             | bytes                   |
  +-----------------------+----------------------+-------------------------+
  | threshold             | 2 bytes              | unsigned 16-bit integer |
  +-----------------------+----------------------+-------------------------+
  | # bytes in next field | 4 bytes              | unsigned 30-bit integer |
  +-----------------------+----------------------+-------------------------+
  | owner_keys            | Variable             | sequence of $public_key |
  +-----------------------+----------------------+-------------------------+


  Origination (tag 209)
  =====================

  +--------------------------------+----------------------+-------------------------------------+
  | 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                       | 20 bytes             | bytes                               |
  +--------------------------------+----------------------+-------------------------------------+
  | script                         | Determined from data | $alpha.scripted.contracts           |
  +--------------------------------+----------------------+-------------------------------------+


  Delegation (tag 210)
  ====================

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


  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 ... ]
  $An element of secp256k1:
    /* Secp256k1_group.Group (Base58Check-encoded) */
    $unistring
  $Baker_hash:
    /* A baker ID (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
  $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,
      "priority": integer ∈ [0, 2^16-1],
      "proof_of_work_nonce": /^[a-zA-Z0-9]+$/,
      "seed_nonce_hash"?: $cycle_nonce,
      "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, a base58 originated contract hash, or a
       base58 baker contract hash. */
    $unistring
  $alpha.entrypoint:
    /* entrypoint
       Named entrypoint to a Michelson smart contract */
    "default"
    || "root"
    || "do"
    || "set_delegate"
    || "remove_delegate"
    || "main"
    || 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.contents,
      "signature"?: $Signature }
  $alpha.inlined.endorsement.contents:
    { /* Endorsement */
      "kind": "endorsement",
      "level": integer ∈ [-2^31-1, 2^31] }
  $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]+$/ }
                    || [ $micheline.alpha.michelson_v1.expression ... ]
                    /* Sequence */
                    || { /* Generic prim (any number of args with or without
                            annot) */
                         "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]+$/ }
                    || [ $micheline.alpha.michelson_v1.expression ... ]
                    /* Sequence */
                    || { /* Generic prim (any number of args with or without
                            annot) */
                         "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]+$/ }
                       || [ $micheline.alpha.michelson_v1.expression ... ]
                       /* Sequence */
                       || { /* Generic prim (any number of args with or
                               without annot) */
                            "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]+$/ }
                       || [ $micheline.alpha.michelson_v1.expression ... ]
                       /* Sequence */
                       || { /* Generic prim (any number of args with or
                               without annot) */
                            "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]+$/ }
                       || [ $micheline.alpha.michelson_v1.expression ... ]
                       /* Sequence */
                       || { /* Generic prim (any number of args with or
                               without annot) */
                            "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]+$/ }
                       || [ $micheline.alpha.michelson_v1.expression ... ]
                       /* Sequence */
                       || { /* Generic prim (any number of args with or
                               without annot) */
                            "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]+$/ }
                 || [ $micheline.alpha.michelson_v1.expression ... ]
                 /* Sequence */
                 || { /* Generic prim (any number of args with or without
                         annot) */
                      "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]+$/ }
                 || [ $micheline.alpha.michelson_v1.expression ... ]
                 /* Sequence */
                 || { /* Generic prim (any number of args with or without
                         annot) */
                      "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.mapped_key:
    { "consensus_key": $Signature.Public_key_hash,
      "baker": $Baker_hash }
  $alpha.michelson.v1.primitives:
    "ADD"
    | "IF_LEFT"
    | "SELF_ADDRESS"
    | "KECCAK"
    | "Elt"
    | "TOTAL_VOTING_POWER"
    | "VOTING_POWER"
    | "bls12_381_fr"
    | "SHA256"
    | "key_hash"
    | "chain_id"
    | "Right"
    | "LE"
    | "map"
    | "sapling_state"
    | "storage"
    | "SOURCE"
    | "False"
    | "SHA512"
    | "BALANCE"
    | "EMPTY_BIG_MAP"
    | "signature"
    | "NOT"
    | "lambda"
    | "TRANSFER_TOKENS"
    | "DUG"
    | "COMPARE"
    | "SHA3"
    | "timestamp"
    | "MUL"
    | "big_map"
    | "bls12_381_g1"
    | "AMOUNT"
    | "DIP"
    | "ABS"
    | "bool"
    | "LT"
    | "never"
    | "bls12_381_g2"
    | "operation"
    | "CONCAT"
    | "UNIT"
    | "SWAP"
    | "DUP"
    | "option"
    | "CAR"
    | "CONS"
    | "baker_operation"
    | "NEQ"
    | "GET"
    | "Left"
    | "key"
    | "UNPAIR"
    | "DROP"
    | "NEG"
    | "CONTRACT"
    | "int"
    | "ADDRESS"
    | "True"
    | "parameter"
    | "unit"
    | "EQ"
    | "Pair"
    | "UPDATE"
    | "nat"
    | "AND"
    | "pair"
    | "READ_TICKET"
    | "set"
    | "CHECK_SIGNATURE"
    | "IF_CONS"
    | "INT"
    | "CREATE_CONTRACT"
    | "MEM"
    | "PAIRING_CHECK"
    | "BLAKE2B"
    | "SUBMIT_PROPOSALS"
    | "STEPS_TO_QUOTA"
    | "bytes"
    | "XOR"
    | "SELF"
    | "LEVEL"
    | "IMPLICIT_ACCOUNT"
    | "PACK"
    | "NEVER"
    | "NOW"
    | "RENAME"
    | "GET_AND_UPDATE"
    | "SENDER"
    | "contract"
    | "or"
    | "SLICE"
    | "CDR"
    | "OR"
    | "mutez"
    | "CHAIN_ID"
    | "ISNAT"
    | "SPLIT_TICKET"
    | "SOME"
    | "LOOP"
    | "SAPLING_VERIFY_UPDATE"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "IF_NONE"
    | "TICKET"
    | "ticket"
    | "ITER"
    | "EXEC"
    | "NONE"
    | "LEFT"
    | "string"
    | "JOIN_TICKETS"
    | "LSR"
    | "None"
    | "SET_BAKER_PVSS_KEY"
    | "EMPTY_SET"
    | "MAP"
    | "address"
    | "SET_BAKER_ACTIVE"
    | "LSL"
    | "RIGHT"
    | "SUBMIT_BALLOT"
    | "SIZE"
    | "list"
    | "IF"
    | "sapling_transaction"
    | "baker_hash"
    | "PAIR"
    | "LAMBDA"
    | "HASH_KEY"
    | "PUSH"
    | "LOOP_LEFT"
    | "SAPLING_EMPTY_STATE"
    | "DIG"
    | "TOGGLE_BAKER_DELEGATIONS"
    | "EMPTY_MAP"
    | "APPLY"
    | "CAST"
    | "pvss_key"
    | "SET_BAKER_CONSENSUS_KEY"
    | "FAILWITH"
    | "GT"
    | "NIL"
    | "SUB"
    | "EDIV"
    | "CREATE_ACCOUNT"
    | "GE"
    | "SET_DELEGATE"
    | "code"
  $alpha.mutez: $positive_bignum
  $alpha.operation.alpha.contents:
    { /* Endorsement */
      "kind": "endorsement",
      "level": integer ∈ [-2^31-1, 2^31] }
    || { /* Seed_nonce_revelation */
         "kind": "seed_nonce_revelation",
         "level": integer ∈ [-2^31-1, 2^31],
         "nonce": /^[a-zA-Z0-9]+$/ }
    || { /* Endorsement_with_slot */
         "kind": "endorsement_with_slot",
         "endorsement": $alpha.inlined.endorsement,
         "slot": integer ∈ [0, 2^16-1] }
    || { /* Double_endorsement_evidence */
         "kind": "double_endorsement_evidence",
         "op1": $alpha.inlined.endorsement,
         "op2": $alpha.inlined.endorsement,
         "slot": integer ∈ [0, 2^16-1] }
    || { /* 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]+$/ }
    || { /* 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]+$/ }
               || [ $micheline.alpha.michelson_v1.expression ... ]
               /* Sequence */
               || { /* Generic prim (any number of args with or without
                       annot) */
                    "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 }
    || { /* 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"?: $Baker_hash,
         "script": $alpha.scripted.contracts,
         "version": "1" }
    || { /* 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 }
    || { /* Delegation */
         "kind": "delegation",
         "source": $Signature.Public_key_hash,
         "fee": $alpha.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "delegate"?: $Baker_hash,
         "version": "1" }
    || { /* Failing_noop */
         "kind": "failing_noop",
         "arbitrary": $unistring }
    || { /* Baker_registration */
         "kind": "baker_registration",
         "source": $Signature.Public_key_hash,
         "fee": $alpha.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "credit": $alpha.mutez,
         "consensus_key": $Signature.Public_key,
         "proof": $Signature,
         "threshold": integer ∈ [0, 2^16-1],
         "owner_keys": [ $Signature.Public_key ... ] }
  $alpha.operation.alpha.internal_baker_operation_result:
    { /* baker_proposals */
      "kind": "baker_proposals",
      "baker": $Baker_hash,
      "nonce": integer ∈ [0, 2^16-1],
      "period": integer ∈ [-2^31-1, 2^31],
      "proposals": [ $unistring ... ],
      "result": $alpha.operation.alpha.operation_result.baker_proposals }
    || { /* baker_ballot */
         "kind": "baker_ballot",
         "baker": $Baker_hash,
         "nonce": integer ∈ [0, 2^16-1],
         "period": integer ∈ [-2^31-1, 2^31],
         "proposal": $unistring,
         "ballot": "nay" | "yay" | "pass",
         "result": $alpha.operation.alpha.operation_result.baker_ballot }
    || { /* set_baker_active */
         "kind": "set_baker_active",
         "baker": $Baker_hash,
         "nonce": integer ∈ [0, 2^16-1],
         "active": boolean,
         "result": $alpha.operation.alpha.operation_result.set_baker_active }
    || { /* toggle_baker_delegations */
         "kind": "toggle_baker_delegations",
         "baker": $Baker_hash,
         "nonce": integer ∈ [0, 2^16-1],
         "accept_delegations": boolean,
         "result":
           $alpha.operation.alpha.operation_result.toggle_baker_delegations }
    || { /* set_baker_consensus_key */
         "kind": "set_baker_consensus_key",
         "baker": $Baker_hash,
         "nonce": integer ∈ [0, 2^16-1],
         "key": $Signature.Public_key,
         "proof": $Signature,
         "result":
           $alpha.operation.alpha.operation_result.set_baker_consensus_key }
    || { /* set_baker_pvss_key */
         "kind": "set_baker_pvss_key",
         "baker": $Baker_hash,
         "nonce": integer ∈ [0, 2^16-1],
         "key": $An element of secp256k1,
         "result": $alpha.operation.alpha.operation_result.set_baker_pvss_key }
  $alpha.operation.alpha.internal_manager_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]+$/ }
               || [ $micheline.alpha.michelson_v1.expression ... ]
               /* Sequence */
               || { /* Generic prim (any number of args with or without
                       annot) */
                    "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.legacy }
    || { /* origination */
         "kind": "origination",
         "source": $alpha.contract_id,
         "nonce": integer ∈ [0, 2^16-1],
         "balance": $alpha.mutez,
         "delegate"?: $Baker_hash,
         "script": $alpha.scripted.contracts,
         "version": "1",
         "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.legacy }
    || { /* delegation */
         "kind": "delegation",
         "source": $alpha.contract_id,
         "nonce": integer ∈ [0, 2^16-1],
         "delegate"?: $Baker_hash,
         "version": "1",
         "result": $alpha.operation.alpha.operation_result.delegation }
    || { /* baker_registration */
         "kind": "baker_registration",
         "source": $alpha.contract_id,
         "nonce": integer ∈ [0, 2^16-1],
         "credit": $alpha.mutez,
         "consensus_key": $Signature.Public_key,
         "proof": $Signature,
         "threshold": integer ∈ [0, 2^16-1],
         "owner_keys": [ $Signature.Public_key ... ],
         "result": $alpha.operation.alpha.operation_result.baker_registration }
  $alpha.operation.alpha.internal_operation_result:
    $alpha.operation.alpha.internal_manager_operation_result
    /* internal_manager_operation */
    || $alpha.operation.alpha.internal_baker_operation_result
    /* internal_baker_operation */
  $alpha.operation.alpha.operation_contents_and_result:
    { /* Endorsement */
      "kind": "endorsement",
      "level": integer ∈ [-2^31-1, 2^31],
      "metadata":
        { "balance_updates": $alpha.operation_metadata.alpha.balance_updates,
          "baker": $Baker_hash,
          "slots": [ integer ∈ [0, 2^16-1] ... ] } }
    || { /* Seed_nonce_revelation */
         "kind": "seed_nonce_revelation",
         "level": integer ∈ [-2^31-1, 2^31],
         "nonce": /^[a-zA-Z0-9]+$/,
         "metadata":
           { "balance_updates":
               $alpha.operation_metadata.alpha.balance_updates } }
    || { /* Endorsement_with_slot */
         "kind": "endorsement_with_slot",
         "endorsement": $alpha.inlined.endorsement,
         "slot": integer ∈ [0, 2^16-1],
         "metadata":
           { "balance_updates":
               $alpha.operation_metadata.alpha.balance_updates,
             "baker": $Baker_hash,
             "slots": [ integer ∈ [0, 2^16-1] ... ] } }
    || { /* Double_endorsement_evidence */
         "kind": "double_endorsement_evidence",
         "op1": $alpha.inlined.endorsement,
         "op2": $alpha.inlined.endorsement,
         "slot": integer ∈ [0, 2^16-1],
         "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]+$/,
         "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]+$/ }
               || [ $micheline.alpha.michelson_v1.expression ... ]
               /* Sequence */
               || { /* Generic prim (any number of args with or without
                       annot) */
                    "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.legacy,
             "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"?: $Baker_hash,
         "script": $alpha.scripted.contracts,
         "version": "1",
         "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.legacy,
             "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"?: $Baker_hash,
         "version": "1",
         "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 ... ] } }
    || { /* Baker_registration */
         "kind": "baker_registration",
         "source": $Signature.Public_key_hash,
         "fee": $alpha.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "credit": $alpha.mutez,
         "consensus_key": $Signature.Public_key,
         "proof": $Signature,
         "threshold": integer ∈ [0, 2^16-1],
         "owner_keys": [ $Signature.Public_key ... ],
         "metadata":
           { "balance_updates":
               $alpha.operation_metadata.alpha.balance_updates,
             "operation_result":
               $alpha.operation.alpha.operation_result.baker_registration,
             "internal_operation_results"?:
               [ $alpha.operation.alpha.internal_operation_result ... ] } }
  $alpha.operation.alpha.operation_result.baker_ballot:
    { /* Applied */
      "status": "applied",
      "consumed_gas"?: $positive_bignum }
    || { /* Failed */
         "status": "failed",
         "errors": [ $alpha.error ... ] }
    || { /* Skipped */
         "status": "skipped" }
    || { /* Backtracked */
         "status": "backtracked",
         "errors"?: [ $alpha.error ... ],
         "consumed_gas"?: $positive_bignum }
  $alpha.operation.alpha.operation_result.baker_proposals:
    { /* Applied */
      "status": "applied",
      "consumed_gas"?: $positive_bignum }
    || { /* Failed */
         "status": "failed",
         "errors": [ $alpha.error ... ] }
    || { /* Skipped */
         "status": "skipped" }
    || { /* Backtracked */
         "status": "backtracked",
         "errors"?: [ $alpha.error ... ],
         "consumed_gas"?: $positive_bignum }
  $alpha.operation.alpha.operation_result.baker_registration:
    { /* Applied */
      "status": "applied",
      "balance_updates"?: $alpha.operation_metadata.alpha.balance_updates,
      "registered_baker": $Baker_hash,
      "consumed_gas"?: $positive_bignum,
      "storage_size"?: $bignum,
      "paid_storage_size_diff"?: $bignum }
    || { /* Failed */
         "status": "failed",
         "errors": [ $alpha.error ... ] }
    || { /* Skipped */
         "status": "skipped" }
    || { /* Backtracked */
         "status": "backtracked",
         "errors"?: [ $alpha.error ... ],
         "balance_updates"?: $alpha.operation_metadata.alpha.balance_updates,
         "registered_baker": $Baker_hash,
         "consumed_gas"?: $positive_bignum,
         "storage_size"?: $bignum,
         "paid_storage_size_diff"?: $bignum }
  $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.delegation.legacy:
    { /* 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]+$/ }
              || [ $micheline.alpha.michelson_v1.expression ... ]
              /* Sequence */
              || { /* Generic prim (any number of args with or without annot) */
                   "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]+$/ }
              || [ $micheline.alpha.michelson_v1.expression ... ]
              /* Sequence */
              || { /* Generic prim (any number of args with or without annot) */
                   "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]+$/ }
                 || [ $micheline.alpha.michelson_v1.expression ... ]
                 /* Sequence */
                 || { /* Generic prim (any number of args with or without
                         annot) */
                      "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]+$/ }
                 || [ $micheline.alpha.michelson_v1.expression ... ]
                 /* Sequence */
                 || { /* Generic prim (any number of args with or without
                         annot) */
                      "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]+$/ }
                 || [ $micheline.alpha.michelson_v1.expression ... ]
                 /* Sequence */
                 || { /* Generic prim (any number of args with or without
                         annot) */
                      "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]+$/ }
                 || [ $micheline.alpha.michelson_v1.expression ... ]
                 /* Sequence */
                 || { /* Generic prim (any number of args with or without
                         annot) */
                      "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]+$/ }
                    || [ $micheline.alpha.michelson_v1.expression ... ]
                    /* Sequence */
                    || { /* Generic prim (any number of args with or without
                            annot) */
                         "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]+$/ }
                    || [ $micheline.alpha.michelson_v1.expression ... ]
                    /* Sequence */
                    || { /* Generic prim (any number of args with or without
                            annot) */
                         "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.origination.legacy:
    { /* 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]+$/ }
              || [ $micheline.alpha.michelson_v1.expression ... ]
              /* Sequence */
              || { /* Generic prim (any number of args with or without annot) */
                   "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]+$/ }
              || [ $micheline.alpha.michelson_v1.expression ... ]
              /* Sequence */
              || { /* Generic prim (any number of args with or without annot) */
                   "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]+$/ }
                 || [ $micheline.alpha.michelson_v1.expression ... ]
                 /* Sequence */
                 || { /* Generic prim (any number of args with or without
                         annot) */
                      "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]+$/ }
                 || [ $micheline.alpha.michelson_v1.expression ... ]
                 /* Sequence */
                 || { /* Generic prim (any number of args with or without
                         annot) */
                      "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]+$/ }
                 || [ $micheline.alpha.michelson_v1.expression ... ]
                 /* Sequence */
                 || { /* Generic prim (any number of args with or without
                         annot) */
                      "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]+$/ }
                 || [ $micheline.alpha.michelson_v1.expression ... ]
                 /* Sequence */
                 || { /* Generic prim (any number of args with or without
                         annot) */
                      "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]+$/ }
                    || [ $micheline.alpha.michelson_v1.expression ... ]
                    /* Sequence */
                    || { /* Generic prim (any number of args with or without
                            annot) */
                         "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]+$/ }
                    || [ $micheline.alpha.michelson_v1.expression ... ]
                    /* Sequence */
                    || { /* Generic prim (any number of args with or without
                            annot) */
                         "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.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.set_baker_active:
    { /* Applied */
      "status": "applied",
      "active": boolean,
      "consumed_gas"?: $positive_bignum }
    || { /* Failed */
         "status": "failed",
         "errors": [ $alpha.error ... ] }
    || { /* Skipped */
         "status": "skipped" }
    || { /* Backtracked */
         "status": "backtracked",
         "errors"?: [ $alpha.error ... ],
         "active": boolean,
         "consumed_gas"?: $positive_bignum }
  $alpha.operation.alpha.operation_result.set_baker_consensus_key:
    { /* Applied */
      "status": "applied",
      "consumed_gas"?: $positive_bignum }
    || { /* Failed */
         "status": "failed",
         "errors": [ $alpha.error ... ] }
    || { /* Skipped */
         "status": "skipped" }
    || { /* Backtracked */
         "status": "backtracked",
         "errors"?: [ $alpha.error ... ],
         "consumed_gas"?: $positive_bignum }
  $alpha.operation.alpha.operation_result.set_baker_pvss_key:
    { /* Applied */
      "status": "applied",
      "consumed_gas"?: $positive_bignum }
    || { /* Failed */
         "status": "failed",
         "errors": [ $alpha.error ... ] }
    || { /* Skipped */
         "status": "skipped" }
    || { /* Backtracked */
         "status": "backtracked",
         "errors"?: [ $alpha.error ... ],
         "consumed_gas"?: $positive_bignum }
  $alpha.operation.alpha.operation_result.toggle_baker_delegations:
    { /* Applied */
      "status": "applied",
      "accept": boolean,
      "consumed_gas"?: $positive_bignum }
    || { /* Failed */
         "status": "failed",
         "errors": [ $alpha.error ... ] }
    || { /* Skipped */
         "status": "skipped" }
    || { /* Backtracked */
         "status": "backtracked",
         "errors"?: [ $alpha.error ... ],
         "accept": boolean,
         "consumed_gas"?: $positive_bignum }
  $alpha.operation.alpha.operation_result.transaction:
    { /* Applied */
      "status": "applied",
      "storage"?:
        { /* Int */
          "int": $bignum }
        || { /* String */
             "string": $unistring }
        || { /* Bytes */
             "bytes": /^[a-zA-Z0-9]+$/ }
        || [ $micheline.alpha.michelson_v1