RPCs - Index

Shell and Protocol

The protocol-independent RPCs are described here.

Protocol 010 Granada

  • ../<block_id> (GET)

    • ../<block_id>/context

      • ../<block_id>/context/big_maps

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

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

      • ../<block_id>/context/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>/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/liquidity_baking

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

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

      • ../<block_id>/context/nonces

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

      • ../<block_id>/context/raw

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

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

      • ../<block_id>/context/sapling

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

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

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

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

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

      • ../<block_id>/helpers/preapply

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

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

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

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

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

    • ../<block_id>/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>/votes

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

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

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

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

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

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

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

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

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

RPCs - Full description

Protocol 010 Granada

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": "PtGRANADsDU8R9daYKAgWnQYAJ64omN1o3KMGVCykShA97vQbvV",
    "chain_id": $Chain_id,
    "hash": $block_hash,
    "header": $raw_block_header,
    "metadata"?: $block_header_metadata,
    "operations": [ [ $operation ... ] ... ] }
  $010-PtGRANAD.big_map_id:
    /* Big map identifier
       A big map identifier */
    $bignum
  $010-PtGRANAD.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][a-zA-Z0-9])*$/,
      "seed_nonce_hash"?: $cycle_nonce,
      "liquidity_baking_escape_vote": boolean,
      "signature": $Signature }
  $010-PtGRANAD.contract_id:
    /* A contract handle
       A contract notation as given to an RPC or inside scripts. Can be a
       base58 implicit contract hash or a base58 originated contract hash. */
    $unistring
  $010-PtGRANAD.entrypoint:
    /* entrypoint
       Named entrypoint to a Michelson smart contract */
    "default"
    || "root"
    || "do"
    || "set_delegate"
    || "remove_delegate"
    || string
    /* named */
  $010-PtGRANAD.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
  $010-PtGRANAD.inlined.endorsement:
    /* An operation's shell header. */
    { "branch": $block_hash,
      "operations": $010-PtGRANAD.inlined.endorsement.contents,
      "signature"?: $Signature }
  $010-PtGRANAD.inlined.endorsement.contents:
    { /* Endorsement */
      "kind": "endorsement",
      "level": integer ∈ [-2^31-1, 2^31] }
  $010-PtGRANAD.lazy_storage_diff:
    [ { /* big_map */
        "kind": "big_map",
        "id": $010-PtGRANAD.big_map_id,
        "diff":
          { /* update */
            "action": "update",
            "updates":
              [ { "key_hash": $script_expr,
                  "key":
                    { /* Int */
                      "int": $bignum }
                    || { /* String */
                         "string": $unistring }
                    || { /* Bytes */
                         "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                    || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
                    /* Sequence */
                    || { /* Generic prim (any number of args with or without
                            annot) */
                         "prim": $010-PtGRANAD.michelson.v1.primitives,
                         "args"?:
                           [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
                         "annots"?: [ string ... ] },
                  "value"?:
                    { /* Int */
                      "int": $bignum }
                    || { /* String */
                         "string": $unistring }
                    || { /* Bytes */
                         "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                    || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
                    /* Sequence */
                    || { /* Generic prim (any number of args with or without
                            annot) */
                         "prim": $010-PtGRANAD.michelson.v1.primitives,
                         "args"?:
                           [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
                         "annots"?: [ string ... ] } } ... ] }
          || { /* remove */
               "action": "remove" }
          || { /* copy */
               "action": "copy",
               "source": $010-PtGRANAD.big_map_id,
               "updates":
                 [ { "key_hash": $script_expr,
                     "key":
                       { /* Int */
                         "int": $bignum }
                       || { /* String */
                            "string": $unistring }
                       || { /* Bytes */
                            "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                       || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
                       /* Sequence */
                       || { /* Generic prim (any number of args with or
                               without annot) */
                            "prim": $010-PtGRANAD.michelson.v1.primitives,
                            "args"?:
                              [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
                            "annots"?: [ string ... ] },
                     "value"?:
                       { /* Int */
                         "int": $bignum }
                       || { /* String */
                            "string": $unistring }
                       || { /* Bytes */
                            "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                       || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
                       /* Sequence */
                       || { /* Generic prim (any number of args with or
                               without annot) */
                            "prim": $010-PtGRANAD.michelson.v1.primitives,
                            "args"?:
                              [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
                            "annots"?: [ string ... ] } } ... ] }
          || { /* alloc */
               "action": "alloc",
               "updates":
                 [ { "key_hash": $script_expr,
                     "key":
                       { /* Int */
                         "int": $bignum }
                       || { /* String */
                            "string": $unistring }
                       || { /* Bytes */
                            "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                       || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
                       /* Sequence */
                       || { /* Generic prim (any number of args with or
                               without annot) */
                            "prim": $010-PtGRANAD.michelson.v1.primitives,
                            "args"?:
                              [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
                            "annots"?: [ string ... ] },
                     "value"?:
                       { /* Int */
                         "int": $bignum }
                       || { /* String */
                            "string": $unistring }
                       || { /* Bytes */
                            "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                       || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
                       /* Sequence */
                       || { /* Generic prim (any number of args with or
                               without annot) */
                            "prim": $010-PtGRANAD.michelson.v1.primitives,
                            "args"?:
                              [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
                            "annots"?: [ string ... ] } } ... ],
               "key_type":
                 { /* Int */
                   "int": $bignum }
                 || { /* String */
                      "string": $unistring }
                 || { /* Bytes */
                      "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                 || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
                 /* Sequence */
                 || { /* Generic prim (any number of args with or without
                         annot) */
                      "prim": $010-PtGRANAD.michelson.v1.primitives,
                      "args"?:
                        [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
                      "annots"?: [ string ... ] },
               "value_type":
                 { /* Int */
                   "int": $bignum }
                 || { /* String */
                      "string": $unistring }
                 || { /* Bytes */
                      "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                 || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
                 /* Sequence */
                 || { /* Generic prim (any number of args with or without
                         annot) */
                      "prim": $010-PtGRANAD.michelson.v1.primitives,
                      "args"?:
                        [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
                      "annots"?: [ string ... ] } } }
      || { /* sapling_state */
           "kind": "sapling_state",
           "id": $010-PtGRANAD.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": $010-PtGRANAD.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] } } ... ]
  $010-PtGRANAD.michelson.v1.primitives:
    "ADD"
    | "IF_LEFT"
    | "SELF_ADDRESS"
    | "KECCAK"
    | "Elt"
    | "TOTAL_VOTING_POWER"
    | "VOTING_POWER"
    | "SHA256"
    | "option"
    | "Right"
    | "LE"
    | "set"
    | "ticket"
    | "storage"
    | "SOURCE"
    | "False"
    | "SHA512"
    | "BALANCE"
    | "EMPTY_BIG_MAP"
    | "operation"
    | "NOT"
    | "or"
    | "TRANSFER_TOKENS"
    | "DUG"
    | "COMPARE"
    | "SHA3"
    | "chain_id"
    | "MUL"
    | "signature"
    | "AMOUNT"
    | "DIP"
    | "ABS"
    | "list"
    | "LT"
    | "bls12_381_g1"
    | "CONCAT"
    | "UNIT"
    | "SWAP"
    | "DUP"
    | "bytes"
    | "CAR"
    | "CONS"
    | "NEQ"
    | "GET"
    | "Left"
    | "nat"
    | "UNPAIR"
    | "DROP"
    | "NEG"
    | "CONTRACT"
    | "big_map"
    | "ADDRESS"
    | "True"
    | "parameter"
    | "never"
    | "EQ"
    | "Pair"
    | "UPDATE"
    | "string"
    | "AND"
    | "timestamp"
    | "READ_TICKET"
    | "unit"
    | "CHECK_SIGNATURE"
    | "IF_CONS"
    | "INT"
    | "CREATE_CONTRACT"
    | "MEM"
    | "PAIRING_CHECK"
    | "BLAKE2B"
    | "bool"
    | "STEPS_TO_QUOTA"
    | "sapling_transaction"
    | "XOR"
    | "SELF"
    | "LEVEL"
    | "IMPLICIT_ACCOUNT"
    | "PACK"
    | "NEVER"
    | "NOW"
    | "RENAME"
    | "GET_AND_UPDATE"
    | "SENDER"
    | "map"
    | "mutez"
    | "SLICE"
    | "CDR"
    | "OR"
    | "sapling_state"
    | "CHAIN_ID"
    | "ISNAT"
    | "SPLIT_TICKET"
    | "SOME"
    | "LOOP"
    | "SAPLING_VERIFY_UPDATE"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "IF_NONE"
    | "TICKET"
    | "ITER"
    | "EXEC"
    | "NONE"
    | "LEFT"
    | "address"
    | "JOIN_TICKETS"
    | "LSR"
    | "None"
    | "lambda"
    | "EMPTY_SET"
    | "MAP"
    | "int"
    | "bls12_381_g2"
    | "LSL"
    | "RIGHT"
    | "contract"
    | "SIZE"
    | "pair"
    | "IF"
    | "bls12_381_fr"
    | "PAIR"
    | "LAMBDA"
    | "HASH_KEY"
    | "PUSH"
    | "LOOP_LEFT"
    | "SAPLING_EMPTY_STATE"
    | "key"
    | "DIG"
    | "EMPTY_MAP"
    | "APPLY"
    | "CAST"
    | "key_hash"
    | "FAILWITH"
    | "GT"
    | "NIL"
    | "SUB"
    | "EDIV"
    | "CREATE_ACCOUNT"
    | "GE"
    | "SET_DELEGATE"
    | "code"
  $010-PtGRANAD.mutez: $positive_bignum
  $010-PtGRANAD.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][a-zA-Z0-9])*$/ }
    || { /* Endorsement_with_slot */
         "kind": "endorsement_with_slot",
         "endorsement": $010-PtGRANAD.inlined.endorsement,
         "slot": integer ∈ [0, 2^16-1] }
    || { /* Double_endorsement_evidence */
         "kind": "double_endorsement_evidence",
         "op1": $010-PtGRANAD.inlined.endorsement,
         "op2": $010-PtGRANAD.inlined.endorsement,
         "slot": integer ∈ [0, 2^16-1] }
    || { /* Double_baking_evidence */
         "kind": "double_baking_evidence",
         "bh1": $010-PtGRANAD.block_header.alpha.full_header,
         "bh2": $010-PtGRANAD.block_header.alpha.full_header }
    || { /* Activate_account */
         "kind": "activate_account",
         "pkh": $Ed25519.Public_key_hash,
         "secret": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
    || { /* Proposals */
         "kind": "proposals",
         "source": $Signature.Public_key_hash,
         "period": integer ∈ [-2^31-1, 2^31],
         "proposals": [ $Protocol_hash ... ] }
    || { /* Ballot */
         "kind": "ballot",
         "source": $Signature.Public_key_hash,
         "period": integer ∈ [-2^31-1, 2^31],
         "proposal": $Protocol_hash,
         "ballot": "nay" | "yay" | "pass" }
    || { /* Reveal */
         "kind": "reveal",
         "source": $Signature.Public_key_hash,
         "fee": $010-PtGRANAD.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": $010-PtGRANAD.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "amount": $010-PtGRANAD.mutez,
         "destination": $010-PtGRANAD.contract_id,
         "parameters"?:
           { "entrypoint": $010-PtGRANAD.entrypoint,
             "value":
               { /* Int */
                 "int": $bignum }
               || { /* String */
                    "string": $unistring }
               || { /* Bytes */
                    "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
               || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
               /* Sequence */
               || { /* Generic prim (any number of args with or without
                       annot) */
                    "prim": $010-PtGRANAD.michelson.v1.primitives,
                    "args"?:
                      [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
                    "annots"?: [ string ... ] } } }
    || { /* Origination */
         "kind": "origination",
         "source": $Signature.Public_key_hash,
         "fee": $010-PtGRANAD.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "balance": $010-PtGRANAD.mutez,
         "delegate"?: $Signature.Public_key_hash,
         "script": $010-PtGRANAD.scripted.contracts }
    || { /* Delegation */
         "kind": "delegation",
         "source": $Signature.Public_key_hash,
         "fee": $010-PtGRANAD.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "delegate"?: $Signature.Public_key_hash }
    || { /* Failing_noop */
         "kind": "failing_noop",
         "arbitrary": $unistring }
  $010-PtGRANAD.operation.alpha.contents_and_signature:
    { "contents": [ $010-PtGRANAD.operation.alpha.contents ... ],
      "signature": $Signature }
  $010-PtGRANAD.operation.alpha.internal_operation_result:
    { /* reveal */
      "kind": "reveal",
      "source": $010-PtGRANAD.contract_id,
      "nonce": integer ∈ [0, 2^16-1],
      "public_key": $Signature.Public_key,
      "result": $010-PtGRANAD.operation.alpha.operation_result.reveal }
    || { /* transaction */
         "kind": "transaction",
         "source": $010-PtGRANAD.contract_id,
         "nonce": integer ∈ [0, 2^16-1],
         "amount": $010-PtGRANAD.mutez,
         "destination": $010-PtGRANAD.contract_id,
         "parameters"?:
           { "entrypoint": $010-PtGRANAD.entrypoint,
             "value":
               { /* Int */
                 "int": $bignum }
               || { /* String */
                    "string": $unistring }
               || { /* Bytes */
                    "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
               || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
               /* Sequence */
               || { /* Generic prim (any number of args with or without
                       annot) */
                    "prim": $010-PtGRANAD.michelson.v1.primitives,
                    "args"?:
                      [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
                    "annots"?: [ string ... ] } },
         "result": $010-PtGRANAD.operation.alpha.operation_result.transaction }
    || { /* origination */
         "kind": "origination",
         "source": $010-PtGRANAD.contract_id,
         "nonce": integer ∈ [0, 2^16-1],
         "balance": $010-PtGRANAD.mutez,
         "delegate"?: $Signature.Public_key_hash,
         "script": $010-PtGRANAD.scripted.contracts,
         "result": $010-PtGRANAD.operation.alpha.operation_result.origination }
    || { /* delegation */
         "kind": "delegation",
         "source": $010-PtGRANAD.contract_id,
         "nonce": integer ∈ [0, 2^16-1],
         "delegate"?: $Signature.Public_key_hash,
         "result": $010-PtGRANAD.operation.alpha.operation_result.delegation }
  $010-PtGRANAD.operation.alpha.operation_contents_and_result:
    { /* Endorsement */
      "kind": "endorsement",
      "level": integer ∈ [-2^31-1, 2^31],
      "metadata":
        { "balance_updates":
            $010-PtGRANAD.operation_metadata.alpha.balance_updates,
          "delegate": $Signature.Public_key_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][a-zA-Z0-9])*$/,
         "metadata":
           { "balance_updates":
               $010-PtGRANAD.operation_metadata.alpha.balance_updates } }
    || { /* Endorsement_with_slot */
         "kind": "endorsement_with_slot",
         "endorsement": $010-PtGRANAD.inlined.endorsement,
         "slot": integer ∈ [0, 2^16-1],
         "metadata":
           { "balance_updates":
               $010-PtGRANAD.operation_metadata.alpha.balance_updates,
             "delegate": $Signature.Public_key_hash,
             "slots": [ integer ∈ [0, 2^16-1] ... ] } }
    || { /* Double_endorsement_evidence */
         "kind": "double_endorsement_evidence",
         "op1": $010-PtGRANAD.inlined.endorsement,
         "op2": $010-PtGRANAD.inlined.endorsement,
         "slot": integer ∈ [0, 2^16-1],
         "metadata":
           { "balance_updates":
               $010-PtGRANAD.operation_metadata.alpha.balance_updates } }
    || { /* Double_baking_evidence */
         "kind": "double_baking_evidence",
         "bh1": $010-PtGRANAD.block_header.alpha.full_header,
         "bh2": $010-PtGRANAD.block_header.alpha.full_header,
         "metadata":
           { "balance_updates":
               $010-PtGRANAD.operation_metadata.alpha.balance_updates } }
    || { /* Activate_account */
         "kind": "activate_account",
         "pkh": $Ed25519.Public_key_hash,
         "secret": /^([a-zA-Z0-9][a-zA-Z0-9])*$/,
         "metadata":
           { "balance_updates":
               $010-PtGRANAD.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": $010-PtGRANAD.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "public_key": $Signature.Public_key,
         "metadata":
           { "balance_updates":
               $010-PtGRANAD.operation_metadata.alpha.balance_updates,
             "operation_result":
               $010-PtGRANAD.operation.alpha.operation_result.reveal,
             "internal_operation_results"?:
               [ $010-PtGRANAD.operation.alpha.internal_operation_result ... ] } }
    || { /* Transaction */
         "kind": "transaction",
         "source": $Signature.Public_key_hash,
         "fee": $010-PtGRANAD.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "amount": $010-PtGRANAD.mutez,
         "destination": $010-PtGRANAD.contract_id,
         "parameters"?:
           { "entrypoint": $010-PtGRANAD.entrypoint,
             "value":
               { /* Int */
                 "int": $bignum }
               || { /* String */
                    "string": $unistring }
               || { /* Bytes */
                    "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
               || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
               /* Sequence */
               || { /* Generic prim (any number of args with or without
                       annot) */
                    "prim": $010-PtGRANAD.michelson.v1.primitives,
                    "args"?:
                      [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
                    "annots"?: [ string ... ] } },
         "metadata":
           { "balance_updates":
               $010-PtGRANAD.operation_metadata.alpha.balance_updates,
             "operation_result":
               $010-PtGRANAD.operation.alpha.operation_result.transaction,
             "internal_operation_results"?:
               [ $010-PtGRANAD.operation.alpha.internal_operation_result ... ] } }
    || { /* Origination */
         "kind": "origination",
         "source": $Signature.Public_key_hash,
         "fee": $010-PtGRANAD.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "balance": $010-PtGRANAD.mutez,
         "delegate"?: $Signature.Public_key_hash,
         "script": $010-PtGRANAD.scripted.contracts,
         "metadata":
           { "balance_updates":
               $010-PtGRANAD.operation_metadata.alpha.balance_updates,
             "operation_result":
               $010-PtGRANAD.operation.alpha.operation_result.origination,
             "internal_operation_results"?:
               [ $010-PtGRANAD.operation.alpha.internal_operation_result ... ] } }
    || { /* Delegation */
         "kind": "delegation",
         "source": $Signature.Public_key_hash,
         "fee": $010-PtGRANAD.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "delegate"?: $Signature.Public_key_hash,
         "metadata":
           { "balance_updates":
               $010-PtGRANAD.operation_metadata.alpha.balance_updates,
             "operation_result":
               $010-PtGRANAD.operation.alpha.operation_result.delegation,
             "internal_operation_results"?:
               [ $010-PtGRANAD.operation.alpha.internal_operation_result ... ] } }
  $010-PtGRANAD.operation.alpha.operation_result.delegation:
    { /* Applied */
      "status": "applied",
      "consumed_gas"?: $positive_bignum,
      "consumed_milligas"?: $positive_bignum }
    || { /* Failed */
         "status": "failed",
         "errors": [ $010-PtGRANAD.error ... ] }
    || { /* Skipped */
         "status": "skipped" }
    || { /* Backtracked */
         "status": "backtracked",
         "errors"?: [ $010-PtGRANAD.error ... ],
         "consumed_gas"?: $positive_bignum,
         "consumed_milligas"?: $positive_bignum }
  $010-PtGRANAD.operation.alpha.operation_result.origination:
    { /* Applied */
      "status": "applied",
      "big_map_diff"?:
        [ { /* update */
            "action": "update",
            "big_map": $bignum,
            "key_hash": $script_expr,
            "key":
              { /* Int */
                "int": $bignum }
              || { /* String */
                   "string": $unistring }
              || { /* Bytes */
                   "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
              || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
              /* Sequence */
              || { /* Generic prim (any number of args with or without annot) */
                   "prim": $010-PtGRANAD.michelson.v1.primitives,
                   "args"?:
                     [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
                   "annots"?: [ string ... ] },
            "value"?:
              { /* Int */
                "int": $bignum }
              || { /* String */
                   "string": $unistring }
              || { /* Bytes */
                   "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
              || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
              /* Sequence */
              || { /* Generic prim (any number of args with or without annot) */
                   "prim": $010-PtGRANAD.michelson.v1.primitives,
                   "args"?:
                     [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
                   "annots"?: [ string ... ] } }
          || { /* remove */
               "action": "remove",
               "big_map": $bignum }
          || { /* copy */
               "action": "copy",
               "source_big_map": $bignum,
               "destination_big_map": $bignum }
          || { /* alloc */
               "action": "alloc",
               "big_map": $bignum,
               "key_type":
                 { /* Int */
                   "int": $bignum }
                 || { /* String */
                      "string": $unistring }
                 || { /* Bytes */
                      "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                 || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
                 /* Sequence */
                 || { /* Generic prim (any number of args with or without
                         annot) */
                      "prim": $010-PtGRANAD.michelson.v1.primitives,
                      "args"?:
                        [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
                      "annots"?: [ string ... ] },
               "value_type":
                 { /* Int */
                   "int": $bignum }
                 || { /* String */
                      "string": $unistring }
                 || { /* Bytes */
                      "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                 || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
                 /* Sequence */
                 || { /* Generic prim (any number of args with or without
                         annot) */
                      "prim": $010-PtGRANAD.michelson.v1.primitives,
                      "args"?:
                        [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
                      "annots"?: [ string ... ] } } ... ],
      "balance_updates"?:
        $010-PtGRANAD.operation_metadata.alpha.balance_updates,
      "originated_contracts"?: [ $010-PtGRANAD.contract_id ... ],
      "consumed_gas"?: $positive_bignum,
      "consumed_milligas"?: $positive_bignum,
      "storage_size"?: $bignum,
      "paid_storage_size_diff"?: $bignum,
      "lazy_storage_diff"?: $010-PtGRANAD.lazy_storage_diff }
    || { /* Failed */
         "status": "failed",
         "errors": [ $010-PtGRANAD.error ... ] }
    || { /* Skipped */
         "status": "skipped" }
    || { /* Backtracked */
         "status": "backtracked",
         "errors"?: [ $010-PtGRANAD.error ... ],
         "big_map_diff"?:
           [ { /* update */
               "action": "update",
               "big_map": $bignum,
               "key_hash": $script_expr,
               "key":
                 { /* Int */
                   "int": $bignum }
                 || { /* String */
                      "string": $unistring }
                 || { /* Bytes */
                      "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                 || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
                 /* Sequence */
                 || { /* Generic prim (any number of args with or without
                         annot) */
                      "prim": $010-PtGRANAD.michelson.v1.primitives,
                      "args"?:
                        [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
                      "annots"?: [ string ... ] },
               "value"?:
                 { /* Int */
                   "int": $bignum }
                 || { /* String */
                      "string": $unistring }
                 || { /* Bytes */
                      "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                 || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
                 /* Sequence */
                 || { /* Generic prim (any number of args with or without
                         annot) */
                      "prim": $010-PtGRANAD.michelson.v1.primitives,
                      "args"?:
                        [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
                      "annots"?: [ string ... ] } }
             || { /* remove */
                  "action": "remove",
                  "big_map": $bignum }
             || { /* copy */
                  "action": "copy",
                  "source_big_map": $bignum,
                  "destination_big_map": $bignum }
             || { /* alloc */
                  "action": "alloc",
                  "big_map": $bignum,
                  "key_type":
                    { /* Int */
                      "int": $bignum }
                    || { /* String */
                         "string": $unistring }
                    || { /* Bytes */
                         "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                    || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
                    /* Sequence */
                    || { /* Generic prim (any number of args with or without
                            annot) */
                         "prim": $010-PtGRANAD.michelson.v1.primitives,
                         "args"?:
                           [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
                         "annots"?: [ string ... ] },
                  "value_type":
                    { /* Int */
                      "int": $bignum }
                    || { /* String */
                         "string": $unistring }
                    || { /* Bytes */
                         "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                    || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
                    /* Sequence */
                    || { /* Generic prim (any number of args with or without
                            annot) */
                         "prim": $010-PtGRANAD.michelson.v1.primitives,
                         "args"?:
                           [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
                         "annots"?: [ string ... ] } } ... ],
         "balance_updates"?:
           $010-PtGRANAD.operation_metadata.alpha.balance_updates,
         "originated_contracts"?: [ $010-PtGRANAD.contract_id ... ],
         "consumed_gas"?: $positive_bignum,
         "consumed_milligas"?: $positive_bignum,
         "storage_size"?: $bignum,
         "paid_storage_size_diff"?: $bignum,
         "lazy_storage_diff"?: $010-PtGRANAD.lazy_storage_diff }
  $010-PtGRANAD.operation.alpha.operation_result.reveal:
    { /* Applied */
      "status": "applied",
      "consumed_gas"?: $positive_bignum,
      "consumed_milligas"?: $positive_bignum }
    || { /* Failed */
         "status": "failed",
         "errors": [ $010-PtGRANAD.error ... ] }
    || { /* Skipped */
         "status": "skipped" }
    || { /* Backtracked */
         "status": "backtracked",
         "errors"?: [ $010-PtGRANAD.error ... ],
         "consumed_gas"?: $positive_bignum,
         "consumed_milligas"?: $positive_bignum }
  $010-PtGRANAD.operation.alpha.operation_result.transaction:
    { /* Applied */
      "status": "applied",
      "storage"?:
        { /* Int */
          "int": $bignum }
        || { /* String */
             "string": $unistring }
        || { /* Bytes */
             "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
        || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
        /* Sequence */
        || { /* Generic prim (any number of args with or without annot) */
             "prim": $010-PtGRANAD.michelson.v1.primitives,
             "args"?: [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
             "annots"?: [ string ... ] },
      "big_map_diff"?:
        [ { /* update */
            "action": "update",
            "big_map": $bignum,
            "key_hash": $script_expr,
            "key":
              { /* Int */
                "int": $bignum }
              || { /* String */
                   "string": $unistring }
              || { /* Bytes */
                   "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
              || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
              /* Sequence */
              || { /* Generic prim (any number of args with or without annot) */
                   "prim": $010-PtGRANAD.michelson.v1.primitives,
                   "args"?:
                     [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
                   "annots"?: [ string ... ] },
            "value"?:
              { /* Int */
                "int": $bignum }
              || { /* String */
                   "string": $unistring }
              || { /* Bytes */
                   "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
              || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
              /* Sequence */
              || { /* Generic prim (any number of args with or without annot) */
                   "prim": $010-PtGRANAD.michelson.v1.primitives,
                   "args"?:
                     [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
                   "annots"?: [ string ... ] } }
          || { /* remove */
               "action": "remove",
               "big_map": $bignum }
          || { /* copy */
               "action": "copy",
               "source_big_map": $bignum,
               "destination_big_map": $bignum }
          || { /* alloc */
               "action": "alloc",
               "big_map": $bignum,
               "key_type":
                 { /* Int */
                   "int": $bignum }
                 || { /* String */
                      "string": $unistring }
                 || { /* Bytes */
                      "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                 || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
                 /* Sequence */
                 || { /* Generic prim (any number of args with or without
                         annot) */
                      "prim": $010-PtGRANAD.michelson.v1.primitives,
                      "args"?:
                        [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
                      "annots"?: [ string ... ] },
               "value_type":
                 { /* Int */
                   "int": $bignum }
                 || { /* String */
                      "string": $unistring }
                 || { /* Bytes */
                      "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                 || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
                 /* Sequence */
                 || { /* Generic prim (any number of args with or without
                         annot) */
                      "prim": $010-PtGRANAD.michelson.v1.primitives,
                      "args"?:
                        [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
                      "annots"?: [ string ... ] } } ... ],
      "balance_updates"?:
        $010-PtGRANAD.operation_metadata.alpha.balance_updates,
      "originated_contracts"?: [ $010-PtGRANAD.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"?: $010-PtGRANAD.lazy_storage_diff }
    || { /* Failed */
         "status": "failed",
         "errors": [ $010-PtGRANAD.error ... ] }
    || { /* Skipped */
         "status": "skipped" }
    || { /* Backtracked */
         "status": "backtracked",
         "errors"?: [ $010-PtGRANAD.error ... ],
         "storage"?:
           { /* Int */
             "int": $bignum }
           || { /* String */
                "string": $unistring }
           || { /* Bytes */
                "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
           || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
           /* Sequence */
           || { /* Generic prim (any number of args with or without annot) */
                "prim": $010-PtGRANAD.michelson.v1.primitives,
                "args"?:
                  [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
                "annots"?: [ string ... ] },
         "big_map_diff"?:
           [ { /* update */
               "action": "update",
               "big_map": $bignum,
               "key_hash": $script_expr,
               "key":
                 { /* Int */
                   "int": $bignum }
                 || { /* String */
                      "string": $unistring }
                 || { /* Bytes */
                      "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                 || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
                 /* Sequence */
                 || { /* Generic prim (any number of args with or without
                         annot) */
                      "prim": $010-PtGRANAD.michelson.v1.primitives,
                      "args"?:
                        [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
                      "annots"?: [ string ... ] },
               "value"?:
                 { /* Int */
                   "int": $bignum }
                 || { /* String */
                      "string": $unistring }
                 || { /* Bytes */
                      "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                 || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
                 /* Sequence */
                 || { /* Generic prim (any number of args with or without
                         annot) */
                      "prim": $010-PtGRANAD.michelson.v1.primitives,
                      "args"?:
                        [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
                      "annots"?: [ string ... ] } }
             || { /* remove */
                  "action": "remove",
                  "big_map": $bignum }
             || { /* copy */
                  "action": "copy",
                  "source_big_map": $bignum,
                  "destination_big_map": $bignum }
             || { /* alloc */
                  "action": "alloc",
                  "big_map": $bignum,
                  "key_type":
                    { /* Int */
                      "int": $bignum }
                    || { /* String */
                         "string": $unistring }
                    || { /* Bytes */
                         "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                    || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
                    /* Sequence */
                    || { /* Generic prim (any number of args with or without
                            annot) */
                         "prim": $010-PtGRANAD.michelson.v1.primitives,
                         "args"?:
                           [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
                         "annots"?: [ string ... ] },
                  "value_type":
                    { /* Int */
                      "int": $bignum }
                    || { /* String */
                         "string": $unistring }
                    || { /* Bytes */
                         "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                    || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
                    /* Sequence */
                    || { /* Generic prim (any number of args with or without
                            annot) */
                         "prim": $010-PtGRANAD.michelson.v1.primitives,
                         "args"?:
                           [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
                         "annots"?: [ string ... ] } } ... ],
         "balance_updates"?:
           $010-PtGRANAD.operation_metadata.alpha.balance_updates,
         "originated_contracts"?: [ $010-PtGRANAD.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"?: $010-PtGRANAD.lazy_storage_diff }
  $010-PtGRANAD.operation.alpha.operation_with_metadata:
    { /* Operation_with_metadata */
      "contents":
        [ $010-PtGRANAD.operation.alpha.operation_contents_and_result ... ],
      "signature"?: $Signature }
    || { /* Operation_without_metadata */
         "contents": [ $010-PtGRANAD.operation.alpha.contents ... ],
         "signature"?: $Signature }
  $010-PtGRANAD.operation.alpha.successful_manager_operation_result:
    { /* reveal */
      "kind": "reveal",
      "consumed_gas"?: $positive_bignum,
      "consumed_milligas"?: $positive_bignum }
    || { /* transaction */
         "kind": "transaction",
         "storage"?:
           { /* Int */
             "int": $bignum }
           || { /* String */
                "string": $unistring }
           || { /* Bytes */
                "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
           || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
           /* Sequence */
           || { /* Generic prim (any number of args with or without annot) */
                "prim": $010-PtGRANAD.michelson.v1.primitives,
                "args"?:
                  [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
                "annots"?: [ string ... ] },
         "big_map_diff"?:
           [ { /* update */
               "action": "update",
               "big_map": $bignum,
               "key_hash": $script_expr,
               "key":
                 { /* Int */
                   "int": $bignum }
                 || { /* String */
                      "string": $unistring }
                 || { /* Bytes */
                      "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                 || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
                 /* Sequence */
                 || { /* Generic prim (any number of args with or without
                         annot) */
                      "prim": $010-PtGRANAD.michelson.v1.primitives,
                      "args"?:
                        [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
                      "annots"?: [ string ... ] },
               "value"?:
                 { /* Int */
                   "int": $bignum }
                 || { /* String */
                      "string": $unistring }
                 || { /* Bytes */
                      "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                 || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
                 /* Sequence */
                 || { /* Generic prim (any number of args with or without
                         annot) */
                      "prim": $010-PtGRANAD.michelson.v1.primitives,
                      "args"?:
                        [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
                      "annots"?: [ string ... ] } }
             || { /* remove */
                  "action": "remove",
                  "big_map": $bignum }
             || { /* copy */
                  "action": "copy",
                  "source_big_map": $bignum,
                  "destination_big_map": $bignum }
             || { /* alloc */
                  "action": "alloc",
                  "big_map": $bignum,
                  "key_type":
                    { /* Int */
                      "int": $bignum }
                    || { /* String */
                         "string": $unistring }
                    || { /* Bytes */
                         "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                    || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
                    /* Sequence */
                    || { /* Generic prim (any number of args with or without
                            annot) */
                         "prim": $010-PtGRANAD.michelson.v1.primitives,
                         "args"?:
                           [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
                         "annots"?: [ string ... ] },
                  "value_type":
                    { /* Int */
                      "int": $bignum }
                    || { /* String */
                         "string": $unistring }
                    || { /* Bytes */
                         "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                    || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
                    /* Sequence */
                    || { /* Generic prim (any number of args with or without
                            annot) */
                         "prim": $010-PtGRANAD.michelson.v1.primitives,
                         "args"?:
                           [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
                         "annots"?: [ string ... ] } } ... ],
         "balance_updates"?:
           $010-PtGRANAD.operation_metadata.alpha.balance_updates,
         "originated_contracts"?: [ $010-PtGRANAD.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"?: $010-PtGRANAD.lazy_storage_diff }
    || { /* origination */
         "kind": "origination",
         "big_map_diff"?:
           [ { /* update */
               "action": "update",
               "big_map": $bignum,
               "key_hash": $script_expr,
               "key":
                 { /* Int */
                   "int": $bignum }
                 || { /* String */
                      "string": $unistring }
                 || { /* Bytes */
                      "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                 || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
                 /* Sequence */
                 || { /* Generic prim (any number of args with or without
                         annot) */
                      "prim": $010-PtGRANAD.michelson.v1.primitives,
                      "args"?:
                        [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
                      "annots"?: [ string ... ] },
               "value"?:
                 { /* Int */
                   "int": $bignum }
                 || { /* String */
                      "string": $unistring }
                 || { /* Bytes */
                      "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                 || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
                 /* Sequence */
                 || { /* Generic prim (any number of args with or without
                         annot) */
                      "prim": $010-PtGRANAD.michelson.v1.primitives,
                      "args"?:
                        [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
                      "annots"?: [ string ... ] } }
             || { /* remove */
                  "action": "remove",
                  "big_map": $bignum }
             || { /* copy */
                  "action": "copy",
                  "source_big_map": $bignum,
                  "destination_big_map": $bignum }
             || { /* alloc */
                  "action": "alloc",
                  "big_map": $bignum,
                  "key_type":
                    { /* Int */
                      "int": $bignum }
                    || { /* String */
                         "string": $unistring }
                    || { /* Bytes */
                         "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                    || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
                    /* Sequence */
                    || { /* Generic prim (any number of args with or without
                            annot) */
                         "prim": $010-PtGRANAD.michelson.v1.primitives,
                         "args"?:
                           [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
                         "annots"?: [ string ... ] },
                  "value_type":
                    { /* Int */
                      "int": $bignum }
                    || { /* String */
                         "string": $unistring }
                    || { /* Bytes */
                         "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                    || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
                    /* Sequence */
                    || { /* Generic prim (any number of args with or without
                            annot) */
                         "prim": $010-PtGRANAD.michelson.v1.primitives,
                         "args"?:
                           [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
                         "annots"?: [ string ... ] } } ... ],
         "balance_updates"?:
           $010-PtGRANAD.operation_metadata.alpha.balance_updates,
         "originated_contracts"?: [ $010-PtGRANAD.contract_id ... ],
         "consumed_gas"?: $positive_bignum,
         "consumed_milligas"?: $positive_bignum,
         "storage_size"?: $bignum,
         "paid_storage_size_diff"?: $bignum,
         "lazy_storage_diff"?: $010-PtGRANAD.lazy_storage_diff }
    || { /* delegation */
         "kind": "delegation",
         "consumed_gas"?: $positive_bignum,
         "consumed_milligas"?: $positive_bignum }
  $010-PtGRANAD.operation_metadata.alpha.balance_updates:
    [ { /* Contract */
        "kind": "contract",
        "contract": $010-PtGRANAD.contract_id,
        "change": $int64,
        "origin": "block" || "migration" || "subsidy" }
      || { /* Rewards */
           "kind": "freezer",
           "category": "rewards",
           "delegate": $Signature.Public_key_hash,
           "cycle": integer ∈ [-2^31-1, 2^31],
           "change": $int64,
           "origin": "block" || "migration" || "subsidy" }
      || { /* Fees */
           "kind": "freezer",
           "category": "fees",
           "delegate": $Signature.Public_key_hash,
           "cycle": integer ∈ [-2^31-1, 2^31],
           "change": $int64,
           "origin": "block" || "migration" || "subsidy" }
      || { /* Deposits */
           "kind": "freezer",
           "category": "deposits",
           "delegate": $Signature.Public_key_hash,
           "cycle": integer ∈ [-2^31-1, 2^31],
           "change": $int64,
           "origin": "block" || "migration" || "subsidy" } ... ]
  $010-PtGRANAD.sapling_state_id:
    /* Sapling state identifier
       A sapling state identifier */
    $bignum
  $010-PtGRANAD.scripted.contracts:
    { "code":
        { /* Int */
          "int": $bignum }
        || { /* String */
             "string": $unistring }
        || { /* Bytes */
             "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
        || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
        /* Sequence */
        || { /* Generic prim (any number of args with or without annot) */
             "prim": $010-PtGRANAD.michelson.v1.primitives,
             "args"?: [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
             "annots"?: [ string ... ] },
      "storage":
        { /* Int */
          "int": $bignum }
        || { /* String */
             "string": $unistring }
        || { /* Bytes */
             "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
        || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
        /* Sequence */
        || { /* Generic prim (any number of args with or without annot) */
             "prim": $010-PtGRANAD.michelson.v1.primitives,
             "args"?: [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
             "annots"?: [ string ... ] } }
  $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
  $bignum:
    /* Big number
       Decimal representation of a big number */
    string
  $block_hash:
    /* A block identifier (Base58Check-encoded) */
    $unistring
  $block_header_metadata:
    { "protocol": "PtGRANADsDU8R9daYKAgWnQYAJ64omN1o3KMGVCykShA97vQbvV",
      "next_protocol": "PtGRANADsDU8R9daYKAgWnQYAJ64omN1o3KMGVCykShA97vQbvV",
      "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": $Signature.Public_key_hash,
      "level_info":
        { "level":
            integer ∈ [-2^31-1, 2^31]
            /* The level of the block relative to genesis. This is also the
               Shell's notion of level */,
          "level_position":
            integer ∈ [-2^31-1, 2^31]
            /* The level of the block relative to the 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 whether the baker of this block has to commit a seed
               nonce hash. */ },
      "voting_period_info":
        { "voting_period":
            { /* The voting period to which the block belongs. */
              "index":
                integer ∈ [-2^31-1, 2^31]
                /* The voting period's index. Starts at 0 with the first
                   block of the Alpha family of protocols. */,
              "kind":
                /* One of the several kinds of periods in the voting
                   procedure. */
                "proposal"
                || "exploration"
                || "cooldown"
                || "promotion"
                || "adoption",
              "start_position":
                integer ∈ [-2^31-1, 2^31]
                /* The relative position of the first level of the period
                   with respect to the first level of the Alpha family of
                   protocols. */ },
          "position":
            integer ∈ [-2^31-1, 2^31]
            /* The position of the block within the voting period. */,
          "remaining":
            integer ∈ [-2^31-1, 2^31]
            /* The number of blocks remaining till the end of the voting
               period. */ },
      "nonce_hash": $cycle_nonce /* Some */ || null /* None */,
      "consumed_gas": $positive_bignum,
      "deactivated": [ $Signature.Public_key_hash ... ],
      "balance_updates":
        $010-PtGRANAD.operation_metadata.alpha.balance_updates,
      "liquidity_baking_escape_ema": integer ∈ [-2^31-1, 2^31],
      "implicit_operations_results":
        [ $010-PtGRANAD.operation.alpha.successful_manager_operation_result ... ] }
  $cycle_nonce:
    /* A nonce hash (Base58Check-encoded) */
    $unistring
  $fitness:
    /* Block fitness
       The fitness, or score, of a block, that allow the Tezos to decide
       which chain is the best. A fitness value is a list of byte sequences.
       They are compared as follows: shortest lists are smaller; lists of the
       same length are compared according to the lexicographical order. */
    [ /^([a-zA-Z0-9][a-zA-Z0-9])*$/ ... ]
  $int64:
    /* 64 bit integers
       Decimal representation of 64 bit integers */
    string
  $micheline.010-PtGRANAD.michelson_v1.expression:
    { /* Int */
      "int": $bignum }
    || { /* String */
         "string": $unistring }
    || { /* Bytes */
         "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
    || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
    /* Sequence */
    || { /* Generic prim (any number of args with or without annot) */
         "prim": $010-PtGRANAD.michelson.v1.primitives,
         "args"?: [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
         "annots"?: [ string ... ] }
  $operation:
    { /* An operation's shell header. */
      "protocol": "PtGRANADsDU8R9daYKAgWnQYAJ64omN1o3KMGVCykShA97vQbvV",
      "chain_id": $Chain_id,
      "hash": $Operation_hash,
      "branch": $block_hash,
      "contents":
        [ $010-PtGRANAD.operation.alpha.operation_contents_and_result ... ],
      "signature"?: $Signature }
    || { /* An operation's shell header. */
         "protocol": "PtGRANADsDU8R9daYKAgWnQYAJ64omN1o3KMGVCykShA97vQbvV",
         "chain_id": $Chain_id,
         "hash": $Operation_hash,
         "branch": $block_hash,
         "contents": [ $010-PtGRANAD.operation.alpha.contents ... ],
         "signature"?: $Signature }
    || { /* An operation's shell header. */
         "protocol": "PtGRANADsDU8R9daYKAgWnQYAJ64omN1o3KMGVCykShA97vQbvV",
         "chain_id": $Chain_id,
         "hash": $Operation_hash,
         "branch": $block_hash,
         "contents": [ $010-PtGRANAD.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][a-zA-Z0-9])*$/,
      "seed_nonce_hash"?: $cycle_nonce,
      "liquidity_baking_escape_vote": boolean,
      "signature": $Signature }
  $sapling.DH.epk: /^([a-zA-Z0-9][a-zA-Z0-9])*$/
  $sapling.transaction.ciphertext:
    { "cv": $sapling.transaction.commitment_value,
      "epk": $sapling.DH.epk,
      "payload_enc": /^([a-zA-Z0-9][a-zA-Z0-9])*$/,
      "nonce_enc": /^([a-zA-Z0-9][a-zA-Z0-9])*$/,
      "payload_out": /^([a-zA-Z0-9][a-zA-Z0-9])*$/,
      "nonce_out": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
  $sapling.transaction.commitment: /^([a-zA-Z0-9][a-zA-Z0-9])*$/
  $sapling.transaction.commitment_value: /^([a-zA-Z0-9][a-zA-Z0-9])*$/
  $sapling.transaction.nullifier: /^([a-zA-Z0-9][a-zA-Z0-9])*$/
  $script_expr:
    /* A script expression ID (Base58Check-encoded) */
    $unistring
  $test_chain_status:
    /* The status of the test chain: not_running (there is no test chain at
       the moment), forking (the test chain is being setup), running (the
       test chain is running). */
    { /* Not_running */
      "status": "not_running" }
    || { /* Forking */
         "status": "forking",
         "protocol": $Protocol_hash,
         "expiration": $timestamp.protocol }
    || { /* Running */
         "status": "running",
         "chain_id": $Chain_id,
         "genesis": $block_hash,
         "protocol": $Protocol_hash,
         "expiration": $timestamp.protocol }
  $timestamp.protocol:
    /* A timestamp as seen by the protocol: second-level precision, epoch
       based. */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
  +--------------------------------+----------------------+-------------------------------------+
  | 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_270                  |
  +--------------------------------+----------------------+-------------------------------------+


  X_270
  *****

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


  X_2925 (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_2924                |
  +-----------------+----------------------+------------------------+


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

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


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


  Operation_without_metadata (tag 1)
  ==================================

  +---------------------------------+----------+----------------------------------------------------+
  | Name                            | Size     | Contents                                           |
  +=================================+==========+====================================================+
  | Tag                             | 1 byte   | unsigned 8-bit integer                             |
  +---------------------------------+----------+----------------------------------------------------+
  | # bytes in next field           | 4 bytes  | unsigned 30-bit integer                            |
  +---------------------------------+----------+----------------------------------------------------+
  | contents                        | Variable | sequence of $010-PtGRANAD.operation.alpha.contents |
  +---------------------------------+----------+----------------------------------------------------+
  | ? presence of field "signature" | 1 byte   | boolean (0 for false, 255 for true)                |
  +---------------------------------+----------+----------------------------------------------------+
  | signature                       | 64 bytes | bytes                                              |
  +---------------------------------+----------+----------------------------------------------------+


  010-PtGRANAD.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_2920                |
  +----------+----------------------+------------------------+


  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 | $010-PtGRANAD.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             | $010-PtGRANAD.inlined.endorsement                      |
  +-----------------------+----------------------+--------------------------------------------------------+
  | # bytes in next field | 4 bytes              | unsigned 30-bit integer                                |
  +-----------------------+----------------------+--------------------------------------------------------+
  | op2                   | Variable             | $010-PtGRANAD.inlined.endorsement                      |
  +-----------------------+----------------------+--------------------------------------------------------+
  | slot                  | 2 bytes              | unsigned 16-bit integer                                |
  +-----------------------+----------------------+--------------------------------------------------------+
  | metadata              | Determined from data | $010-PtGRANAD.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 | $010-PtGRANAD.block_header.alpha.full_header           |
  +-----------------------+----------------------+--------------------------------------------------------+
  | # bytes in next field | 4 bytes              | unsigned 30-bit integer                                |
  +-----------------------+----------------------+--------------------------------------------------------+
  | bh2                   | Determined from data | $010-PtGRANAD.block_header.alpha.full_header           |
  +-----------------------+----------------------+--------------------------------------------------------+
  | metadata              | Determined from data | $010-PtGRANAD.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 | $010-PtGRANAD.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             | $010-PtGRANAD.inlined.endorsement |
  +-----------------------+----------------------+-----------------------------------+
  | slot                  | 2 bytes              | unsigned 16-bit integer           |
  +-----------------------+----------------------+-----------------------------------+
  | metadata              | Determined from data | $X_2920                           |
  +-----------------------+----------------------+-----------------------------------+


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


  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             | $010-PtGRANAD.contract_id           |
  +----------------------------------+----------------------+-------------------------------------+
  | ? presence of field "parameters" | 1 byte               | boolean (0 for false, 255 for true) |
  +----------------------------------+----------------------+-------------------------------------+
  | parameters                       | Determined from data | $X_2633                             |
  +----------------------------------+----------------------+-------------------------------------+
  | metadata                         | Determined from data | $X_1580                             |
  +----------------------------------+----------------------+-------------------------------------+


  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 | $010-PtGRANAD.scripted.contracts    |
  +--------------------------------+----------------------+-------------------------------------+
  | metadata                       | Determined from data | $X_801                              |
  +--------------------------------+----------------------+-------------------------------------+


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


  X_2920
  ******

  +--------------------------------------------------------------------------+----------+-------------------------------------+
  | Name                                                                     | Size     | Contents                            |
  +==========================================================================+==========+=====================================+
  | # bytes in field "010-PtGRANAD.operation_metadata.alpha.balance_updates" | 4 bytes  | unsigned 30-bit integer             |
  +--------------------------------------------------------------------------+----------+-------------------------------------+
  | balance_updates                                                          | Variable | sequence of $X_8                    |
  +--------------------------------------------------------------------------+----------+-------------------------------------+
  | delegate                                                                 | 21 bytes | $public_key_hash                    |
  +--------------------------------------------------------------------------+----------+-------------------------------------+
  | # bytes in next field                                                    | 4 bytes  | unsigned 30-bit integer             |
  +--------------------------------------------------------------------------+----------+-------------------------------------+
  | slots                                                                    | Variable | sequence of unsigned 16-bit integer |
  +--------------------------------------------------------------------------+----------+-------------------------------------+


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

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

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


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

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


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

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


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

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

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


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

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


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

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


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

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

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


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

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


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

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


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

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


  010-PtGRANAD.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                |
  +---------------+----------+------------------------+


  010-PtGRANAD.operation_metadata.alpha.balance_updates
  *****************************************************

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


  010-PtGRANAD.inlined.endorsement
  ********************************

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


  010-PtGRANAD.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  |
  +-------+---------+------------------------+


  010-PtGRANAD.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                               |
  +---------------------------------------+----------+-------------------------------------+
  | liquidity_baking_escape_vote          | 1 byte   | boolean (0 for false, 255 for true) |
  +---------------------------------------+----------+-------------------------------------+
  | signature                             | 64 bytes | bytes                               |
  +---------------------------------------+----------+-------------------------------------+


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

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


  X_2376
  ******

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


  N.t
  ***

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

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


  010-PtGRANAD.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_2903
  ******

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


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

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

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


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

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


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

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


  010-PtGRANAD.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_20                                 |
  +--------------------------------------------------------------------------+----------------------+---------------------------------------+
  | ? presence of field "big_map_diff"                                       | 1 byte               | boolean (0 for false, 255 for true)   |
  +--------------------------------------------------------------------------+----------------------+---------------------------------------+
  | big_map_diff                                                             | Determined from data | $X_11                                 |
  +--------------------------------------------------------------------------+----------------------+---------------------------------------+
  | # bytes in field "010-PtGRANAD.operation_metadata.alpha.balance_updates" | 4 bytes              | unsigned 30-bit integer               |
  +--------------------------------------------------------------------------+----------------------+---------------------------------------+
  | balance_updates                                                          | Variable             | sequence of $X_8                      |
  +--------------------------------------------------------------------------+----------------------+---------------------------------------+
  | # bytes in next field                                                    | 4 bytes              | unsigned 30-bit integer               |
  +--------------------------------------------------------------------------+----------------------+---------------------------------------+
  | originated_contracts                                                     | Variable             | sequence of $010-PtGRANAD.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 | $010-PtGRANAD.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 $010-PtGRANAD.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_2903                               |
  +--------------------------------------------------------------------------+----------------------+---------------------------------------+
  | ? presence of field "storage"                                            | 1 byte               | boolean (0 for false, 255 for true)   |
  +--------------------------------------------------------------------------+----------------------+---------------------------------------+
  | storage                                                                  | Determined from data | $X_20                                 |
  +--------------------------------------------------------------------------+----------------------+---------------------------------------+
  | ? presence of field "big_map_diff"                                       | 1 byte               | boolean (0 for false, 255 for true)   |
  +--------------------------------------------------------------------------+----------------------+---------------------------------------+
  | big_map_diff                                                             | Determined from data | $X_11                                 |
  +--------------------------------------------------------------------------+----------------------+---------------------------------------+
  | # bytes in field "010-PtGRANAD.operation_metadata.alpha.balance_updates" | 4 bytes              | unsigned 30-bit integer               |
  +--------------------------------------------------------------------------+----------------------+---------------------------------------+
  | balance_updates                                                          | Variable             | sequence of $X_8                      |
  +--------------------------------------------------------------------------+----------------------+---------------------------------------+
  | # bytes in next field                                                    | 4 bytes              | unsigned 30-bit integer               |
  +--------------------------------------------------------------------------+----------------------+---------------------------------------+
  | originated_contracts                                                     | Variable             | sequence of $010-PtGRANAD.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 | $010-PtGRANAD.lazy_storage_diff       |
  +--------------------------------------------------------------------------+----------------------+---------------------------------------+


  X_2902 (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_134                 |
  +------+----------------------+------------------------+


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


  X_2882
  ******

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


  Z.t
  ***

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

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


  010-PtGRANAD.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        |
  +-------------+-----------------------+


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

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

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


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


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

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


  X_2824
  ******

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


  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_20                  |
  +------------+----------------------+------------------------+
  | value_type | Determined from data | $X_20                  |
  +------------+----------------------+------------------------+


  X_2633
  ******

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


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

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

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


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

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


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

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


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

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


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

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


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

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


  010-PtGRANAD.operation.alpha.operation_result.origination (Determined from data, 8-bit tag)
  *******************************************************************************************

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

  +--------------------------------------------------------------------------+----------------------+---------------------------------------+
  | Name                                                                     | Size                 | Contents                              |
  +==========================================================================+======================+=======================================+
  | Tag                                                                      | 1 byte               | unsigned 8-bit integer                |
  +--------------------------------------------------------------------------+----------------------+---------------------------------------+
  | ? presence of field "big_map_diff"                                       | 1 byte               | boolean (0 for false, 255 for true)   |
  +--------------------------------------------------------------------------+----------------------+---------------------------------------+
  | big_map_diff                                                             | Determined from data | $X_11                                 |
  +--------------------------------------------------------------------------+----------------------+---------------------------------------+
  | # bytes in field "010-PtGRANAD.operation_metadata.alpha.balance_updates" | 4 bytes              | unsigned 30-bit integer               |
  +--------------------------------------------------------------------------+----------------------+---------------------------------------+
  | balance_updates                                                          | Variable             | sequence of $X_8                      |
  +--------------------------------------------------------------------------+----------------------+---------------------------------------+
  | # bytes in next field                                                    | 4 bytes              | unsigned 30-bit integer               |
  +--------------------------------------------------------------------------+----------------------+---------------------------------------+
  | originated_contracts                                                     | Variable             | sequence of $010-PtGRANAD.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 | $010-PtGRANAD.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 $010-PtGRANAD.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_2903                               |
  +--------------------------------------------------------------------------+----------------------+---------------------------------------+
  | ? presence of field "big_map_diff"                                       | 1 byte               | boolean (0 for false, 255 for true)   |
  +--------------------------------------------------------------------------+----------------------+---------------------------------------+
  | big_map_diff                                                             | Determined from data | $X_11                                 |
  +--------------------------------------------------------------------------+----------------------+---------------------------------------+
  | # bytes in field "010-PtGRANAD.operation_metadata.alpha.balance_updates" | 4 bytes              | unsigned 30-bit integer               |
  +--------------------------------------------------------------------------+----------------------+---------------------------------------+
  | balance_updates                                                          | Variable             | sequence of $X_8                      |
  +--------------------------------------------------------------------------+----------------------+---------------------------------------+
  | # bytes in next field                                                    | 4 bytes              | unsigned 30-bit integer               |
  +--------------------------------------------------------------------------+----------------------+---------------------------------------+
  | originated_contracts                                                     | Variable             | sequence of $010-PtGRANAD.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 | $010-PtGRANAD.lazy_storage_diff       |
  +--------------------------------------------------------------------------+----------------------+---------------------------------------+


  010-PtGRANAD.scripted.contracts
  *******************************

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


  X_1580
  ******

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


  X_801
  *****

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


  010-PtGRANAD.operation.alpha.internal_operation_result (Determined from data, 8-bit tag)
  ****************************************************************************************

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

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


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

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


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

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


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

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


  010-PtGRANAD.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 $010-PtGRANAD.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_2903                             |
  +------------------------------+----------------------+-------------------------------------+
  | consumed_gas                 | Determined from data | $N.t                                |
  +------------------------------+----------------------+-------------------------------------+
  | consumed_milligas            | Determined from data | $N.t                                |
  +------------------------------+----------------------+-------------------------------------+


  010-PtGRANAD.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 | $010-PtGRANAD.inlined.endorsement |
  +-----------------------+----------+-----------------------------------+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer           |
  +-----------------------+----------+-----------------------------------+
  | op2                   | Variable | $010-PtGRANAD.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 | $010-PtGRANAD.block_header.alpha.full_header |
  +-----------------------+----------------------+----------------------------------------------+
  | # bytes in next field | 4 bytes              | unsigned 30-bit integer                      |
  +-----------------------+----------------------+----------------------------------------------+
  | bh2                   | Determined from data | $010-PtGRANAD.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 | $010-PtGRANAD.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             | $010-PtGRANAD.contract_id           |
  +----------------------------------+----------------------+-------------------------------------+
  | ? presence of field "parameters" | 1 byte               | boolean (0 for false, 255 for true) |
  +----------------------------------+----------------------+-------------------------------------+
  | parameters                       | Determined from data | $X_2633                             |
  +----------------------------------+----------------------+-------------------------------------+


  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 | $010-PtGRANAD.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                    |
  +--------------------------------+----------------------+-------------------------------------+


  X_0
  ***

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


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

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

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


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

  +--------------------------------------------------------------------------+----------------------+---------------------------------------+
  | Name                                                                     | Size                 | Contents                              |
  +==========================================================================+======================+=======================================+
  | Tag                                                                      | 1 byte               | unsigned 8-bit integer                |
  +--------------------------------------------------------------------------+----------------------+---------------------------------------+
  | ? presence of field "storage"                                            | 1 byte               | boolean (0 for false, 255 for true)   |
  +--------------------------------------------------------------------------+----------------------+---------------------------------------+
  | storage                                                                  | Determined from data | $X_20                                 |
  +--------------------------------------------------------------------------+----------------------+---------------------------------------+
  | ? presence of field "big_map_diff"                                       | 1 byte               | boolean (0 for false, 255 for true)   |
  +--------------------------------------------------------------------------+----------------------+---------------------------------------+
  | big_map_diff                                                             | Determined from data | $X_11                                 |
  +--------------------------------------------------------------------------+----------------------+---------------------------------------+
  | # bytes in field "010-PtGRANAD.operation_metadata.alpha.balance_updates" | 4 bytes              | unsigned 30-bit integer               |
  +--------------------------------------------------------------------------+----------------------+---------------------------------------+
  | balance_updates                                                          | Variable             | sequence of $X_8                      |
  +--------------------------------------------------------------------------+----------------------+---------------------------------------+
  | # bytes in next field                                                    | 4 bytes              | unsigned 30-bit integer               |
  +--------------------------------------------------------------------------+----------------------+---------------------------------------+
  | originated_contracts                                                     | Variable             | sequence of $010-PtGRANAD.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 | $010-PtGRANAD.lazy_storage_diff       |
  +--------------------------------------------------------------------------+----------------------+---------------------------------------+


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

  +--------------------------------------------------------------------------+----------------------+---------------------------------------+
  | Name                                                                     | Size                 | Contents                              |
  +==========================================================================+======================+=======================================+
  | Tag                                                                      | 1 byte               | unsigned 8-bit integer                |
  +--------------------------------------------------------------------------+----------------------+---------------------------------------+
  | ? presence of field "big_map_diff"                                       | 1 byte               | boolean (0 for false, 255 for true)   |
  +--------------------------------------------------------------------------+----------------------+---------------------------------------+
  | big_map_diff                                                             | Determined from data | $X_11                                 |
  +--------------------------------------------------------------------------+----------------------+---------------------------------------+
  | # bytes in field "010-PtGRANAD.operation_metadata.alpha.balance_updates" | 4 bytes              | unsigned 30-bit integer               |
  +--------------------------------------------------------------------------+----------------------+---------------------------------------+
  | balance_updates                                                          | Variable             | sequence of $X_8                      |
  +--------------------------------------------------------------------------+----------------------+---------------------------------------+
  | # bytes in next field                                                    | 4 bytes              | unsigned 30-bit integer               |
  +--------------------------------------------------------------------------+----------------------+---------------------------------------+
  | originated_contracts                                                     | Variable             | sequence of $010-PtGRANAD.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 | $010-PtGRANAD.lazy_storage_diff       |
  +--------------------------------------------------------------------------+----------------------+---------------------------------------+


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

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


  010-PtGRANAD.lazy_storage_diff
  ******************************

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


  X_134 (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_2882     |
  +-----------------------+----------+-------------------------+


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


  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_2882     |
  +-----------------------+----------------------+-------------------------+
  | key_type              | Determined from data | $X_20                   |
  +-----------------------+----------------------+-------------------------+
  | value_type            | Determined from data | $X_20                   |
  +-----------------------+----------------------+-------------------------+


  X_52
  ****

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


  X_11
  ****

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


  X_20 (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_20       |
  +-----------------------+----------+-------------------------+


  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 010-PtGRANAD.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 010-PtGRANAD.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 010-PtGRANAD.michelson.v1.primitives) |
  +------+----------------------+-------------------------------------------------------------------------------------------+
  | arg  | Determined from data | $X_20                                                                                     |
  +------+----------------------+-------------------------------------------------------------------------------------------+


  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 010-PtGRANAD.michelson.v1.primitives) |
  +-----------------------+----------------------+-------------------------------------------------------------------------------------------+
  | arg                   | Determined from data | $X_20                                                                                     |
  +-----------------------+----------------------+-------------------------------------------------------------------------------------------+
  | # 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 010-PtGRANAD.michelson.v1.primitives) |
  +------+----------------------+-------------------------------------------------------------------------------------------+
  | arg1 | Determined from data | $X_20                                                                                     |
  +------+----------------------+-------------------------------------------------------------------------------------------+
  | arg2 | Determined from data | $X_20                                                                                     |
  +------+----------------------+-------------------------------------------------------------------------------------------+


  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 010-PtGRANAD.michelson.v1.primitives) |
  +-----------------------+----------------------+-------------------------------------------------------------------------------------------+
  | arg1                  | Determined from data | $X_20                                                                                     |
  +-----------------------+----------------------+-------------------------------------------------------------------------------------------+
  | arg2                  | Determined from data | $X_20                                                                                     |
  +-----------------------+----------------------+-------------------------------------------------------------------------------------------+
  | # 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 010-PtGRANAD.michelson.v1.primitives) |
  +-----------------------+----------+-------------------------------------------------------------------------------------------+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer                                                                   |
  +-----------------------+----------+-------------------------------------------------------------------------------------------+
  | args                  | Variable | sequence of $X_20                                                                         |
  +-----------------------+----------+-------------------------------------------------------------------------------------------+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer                                                                   |
  +-----------------------+----------+-------------------------------------------------------------------------------------------+
  | annots                | Variable | bytes                                                                                     |
  +-----------------------+----------+-------------------------------------------------------------------------------------------+


  Bytes (tag 10)
  ==============

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


  X_8
  ***

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


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

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

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


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

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


  X_4
  ***

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


  X_5
  ***

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


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

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

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


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

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


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

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


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

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


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

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


  X_3
  ***

  +---------------------+---------+-------------------------------------+
  | Name                | Size    | Contents                            |
  +=====================+=========+=====================================+
  | level               | 4 bytes | signed 32-bit integer               |
  +---------------------+---------+-------------------------------------+
  | level_position      | 4 bytes | signed 32-bit integer               |
  +---------------------+---------+-------------------------------------+
  | cycle               | 4 bytes | signed 32-bit integer               |
  +---------------------+---------+-------------------------------------+
  | cycle_position      | 4 bytes | signed 32-bit integer               |
  +---------------------+---------+-------------------------------------+
  | expected_commitment | 1 byte  | boolean (0 for false, 255 for true) |
  +---------------------+---------+-------------------------------------+


  X_1
  ***

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


  X_2
  ***

  +------------------------------+---------+--------------------------------------------------------------+
  | Name                         | Size    | Contents                                                     |
  +==============================+=========+==============================================================+
  | max_size                     | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 |
  +------------------------------+---------+--------------------------------------------------------------+
  | ? presence of field "max_op" | 1 byte  | boolean (0 for false, 255 for true)                          |
  +------------------------------+---------+--------------------------------------------------------------+
  | max_op                       | 4 bytes | signed 31-bit integer in the range -1073741824 to 1073741823 |
  +------------------------------+---------+--------------------------------------------------------------+


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

  Not_running (tag 0)
  ===================

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


  Forking (tag 1)
  ===============

  +------------+----------+------------------------+
  | Name       | Size     | Contents               |
  +============+==========+========================+
  | Tag        | 1 byte   | unsigned 8-bit integer |
  +------------+----------+------------------------+
  | protocol   | 32 bytes | bytes                  |
  +------------+----------+------------------------+
  | expiration | 8 bytes  | signed 64-bit integer  |
  +------------+----------+------------------------+


  Running (tag 2)
  ===============

  +------------+----------+------------------------+
  | Name       | Size     | Contents               |
  +============+==========+========================+
  | Tag        | 1 byte   | unsigned 8-bit integer |
  +------------+----------+------------------------+
  | chain_id   | 4 bytes  | bytes                  |
  +------------+----------+------------------------+
  | genesis    | 32 bytes | bytes                  |
  +------------+----------+------------------------+
  | protocol   | 32 bytes | bytes                  |
  +------------+----------+------------------------+
  | expiration | 8 bytes  | signed 64-bit integer  |
  +------------+----------+------------------------+

  

GET ../<block_id>/context/big_maps/<big_map_id>?[offset=<uint>]&[length=<uint>]

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

Optional query arguments :

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

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


  Z.t
  ***

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

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


  micheline.010-PtGRANAD.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.010-PtGRANAD.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 010-PtGRANAD.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 010-PtGRANAD.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 010-PtGRANAD.michelson.v1.primitives) |
  +------+----------------------+-------------------------------------------------------------------------------------------+
  | arg  | Determined from data | $micheline.010-PtGRANAD.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 010-PtGRANAD.michelson.v1.primitives) |
  +-----------------------+----------------------+-------------------------------------------------------------------------------------------+
  | arg                   | Determined from data | $micheline.010-PtGRANAD.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 010-PtGRANAD.michelson.v1.primitives) |
  +------+----------------------+-------------------------------------------------------------------------------------------+
  | arg1 | Determined from data | $micheline.010-PtGRANAD.michelson_v1.expression                                           |
  +------+----------------------+-------------------------------------------------------------------------------------------+
  | arg2 | Determined from data | $micheline.010-PtGRANAD.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 010-PtGRANAD.michelson.v1.primitives) |
  +-----------------------+----------------------+-------------------------------------------------------------------------------------------+
  | arg1                  | Determined from data | $micheline.010-PtGRANAD.michelson_v1.expression                                           |
  +-----------------------+----------------------+-------------------------------------------------------------------------------------------+
  | arg2                  | Determined from data | $micheline.010-PtGRANAD.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 010-PtGRANAD.michelson.v1.primitives) |
  +-----------------------+----------+-------------------------------------------------------------------------------------------+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer                                                                   |
  +-----------------------+----------+-------------------------------------------------------------------------------------------+
  | args                  | Variable | sequence of $micheline.010-PtGRANAD.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                   |
  +-----------------------+----------+-------------------------+


  010-PtGRANAD.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        |
  +-------------+-----------------------+

  

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

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

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


  Z.t
  ***

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

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


  micheline.010-PtGRANAD.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.010-PtGRANAD.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 010-PtGRANAD.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 010-PtGRANAD.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 010-PtGRANAD.michelson.v1.primitives) |
  +------+----------------------+-------------------------------------------------------------------------------------------+
  | arg  | Determined from data | $micheline.010-PtGRANAD.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 010-PtGRANAD.michelson.v1.primitives) |
  +-----------------------+----------------------+-------------------------------------------------------------------------------------------+
  | arg                   | Determined from data | $micheline.010-PtGRANAD.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 010-PtGRANAD.michelson.v1.primitives) |
  +------+----------------------+-------------------------------------------------------------------------------------------+
  | arg1 | Determined from data | $micheline.010-PtGRANAD.michelson_v1.expression                                           |
  +------+----------------------+-------------------------------------------------------------------------------------------+
  | arg2 | Determined from data | $micheline.010-PtGRANAD.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 010-PtGRANAD.michelson.v1.primitives) |
  +-----------------------+----------------------+-------------------------------------------------------------------------------------------+
  | arg1                  | Determined from data | $micheline.010-PtGRANAD.michelson_v1.expression                                           |
  +-----------------------+----------------------+-------------------------------------------------------------------------------------------+
  | arg2                  | Determined from data | $micheline.010-PtGRANAD.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 010-PtGRANAD.michelson.v1.primitives) |
  +-----------------------+----------+-------------------------------------------------------------------------------------------+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer                                                                   |
  +-----------------------+----------+-------------------------------------------------------------------------------------------+
  | args                  | Variable | sequence of $micheline.010-PtGRANAD.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                   |
  +-----------------------+----------+-------------------------+


  010-PtGRANAD.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        |
  +-------------+-----------------------+

  

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": $010-PtGRANAD.mutez,
    "michelson_maximum_type_size": integer ∈ [0, 2^16-1],
    "seed_nonce_revelation_tip": $010-PtGRANAD.mutez,
    "origination_size": integer ∈ [-2^30, 2^30],
    "block_security_deposit": $010-PtGRANAD.mutez,
    "endorsement_security_deposit": $010-PtGRANAD.mutez,
    "baking_reward_per_endorsement": [ $010-PtGRANAD.mutez ... ],
    "endorsement_reward": [ $010-PtGRANAD.mutez ... ],
    "cost_per_byte": $010-PtGRANAD.mutez,
    "hard_storage_limit_per_operation": $bignum,
    "quorum_min": integer ∈ [-2^31-1, 2^31],
    "quorum_max": integer ∈ [-2^31-1, 2^31],
    "min_proposal_quorum": integer ∈ [-2^31-1, 2^31],
    "initial_endorsers": integer ∈ [0, 2^16-1],
    "delay_per_missing_endorsement": $int64,
    "minimal_block_delay": $int64,
    "liquidity_baking_subsidy": $010-PtGRANAD.mutez,
    "liquidity_baking_sunset_level": integer ∈ [-2^31-1, 2^31],
    "liquidity_baking_escape_ema_threshold": integer ∈ [-2^31-1, 2^31] }
  $010-PtGRANAD.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                                                         |
  +---------------------------------------+----------------------+--------------------------------------------------------------+
  | 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                                        |
  +---------------------------------------+----------------------+--------------------------------------------------------------+
  | minimal_block_delay                   | 8 bytes              | signed 64-bit integer                                        |
  +---------------------------------------+----------------------+--------------------------------------------------------------+
  | liquidity_baking_subsidy              | Determined from data | $N.t                                                         |
  +---------------------------------------+----------------------+--------------------------------------------------------------+
  | liquidity_baking_sunset_level         | 4 bytes              | signed 32-bit integer                                        |
  +---------------------------------------+----------------------+--------------------------------------------------------------+
  | liquidity_baking_escape_ema_threshold | 4 bytes              | signed 32-bit integer                                        |
  +---------------------------------------+----------------------+--------------------------------------------------------------+


  Z.t
  ***

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

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


  N.t
  ***

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

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

  

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).

  [ $010-PtGRANAD.contract_id ... ]
  $010-PtGRANAD.contract_id:
    /* A contract handle
       A contract notation as given to an RPC or inside scripts. Can be a
       base58 implicit contract hash or a base58 originated contract hash. */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
  +-----------------------+----------+---------------------------------------+
  | Name                  | Size     | Contents                              |
  +=======================+==========+=======================================+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer               |
  +-----------------------+----------+---------------------------------------+
  | Unnamed field 0       | Variable | sequence of $010-PtGRANAD.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                  |
  +----------------------+----------+------------------------+


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

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

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


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

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

  

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

Access the complete status of a contract.

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


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

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

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


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

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


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

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


  010-PtGRANAD.scripted.contracts
  *******************************

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


  N.t
  ***

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

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

  

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

Access the balance of a contract.

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


  N.t
  ***

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

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

  

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

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

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


  Z.t
  ***

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

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


  010-PtGRANAD.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        |
  +-------------+-----------------------+


  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 010-PtGRANAD.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 010-PtGRANAD.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 010-PtGRANAD.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 010-PtGRANAD.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 010-PtGRANAD.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 010-PtGRANAD.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 010-PtGRANAD.michelson.v1.primitives) |
  +-----------------------+----------+-------------------------------------------------------------------------------------------+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer                                                                   |
  +-----------------------+----------+-------------------------------------------------------------------------------------------+
  | args                  | Variable | sequence of $X_8                                                                          |
  +-----------------------+----------+-------------------------------------------------------------------------------------------+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer                                                                   |
  +-----------------------+----------+-------------------------------------------------------------------------------------------+
  | annots                | Variable | bytes                                                                                     |
  +-----------------------+----------+-------------------------------------------------------------------------------------------+


  Bytes (tag 10)
  ==============

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

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


  Z.t
  ***

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

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


  micheline.010-PtGRANAD.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.010-PtGRANAD.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 010-PtGRANAD.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 010-PtGRANAD.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 010-PtGRANAD.michelson.v1.primitives) |
  +------+----------------------+-------------------------------------------------------------------------------------------+
  | arg  | Determined from data | $micheline.010-PtGRANAD.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 010-PtGRANAD.michelson.v1.primitives) |
  +-----------------------+----------------------+-------------------------------------------------------------------------------------------+
  | arg                   | Determined from data | $micheline.010-PtGRANAD.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 010-PtGRANAD.michelson.v1.primitives) |
  +------+----------------------+-------------------------------------------------------------------------------------------+
  | arg1 | Determined from data | $micheline.010-PtGRANAD.michelson_v1.expression                                           |
  +------+----------------------+-------------------------------------------------------------------------------------------+
  | arg2 | Determined from data | $micheline.010-PtGRANAD.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 010-PtGRANAD.michelson.v1.primitives) |
  +-----------------------+----------------------+-------------------------------------------------------------------------------------------+
  | arg1                  | Determined from data | $micheline.010-PtGRANAD.michelson_v1.expression                                           |
  +-----------------------+----------------------+-------------------------------------------------------------------------------------------+
  | arg2                  | Determined from data | $micheline.010-PtGRANAD.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 010-PtGRANAD.michelson.v1.primitives) |
  +-----------------------+----------+-------------------------------------------------------------------------------------------+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer                                                                   |
  +-----------------------+----------+-------------------------------------------------------------------------------------------+
  | args                  | Variable | sequence of $micheline.010-PtGRANAD.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                   |
  +-----------------------+----------+-------------------------+


  010-PtGRANAD.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        |
  +-------------+-----------------------+

  

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

Access the counter of a contract, if any.

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


  Z.t
  ***

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

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

  

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

Access the delegate of a contract, if any.

  $Signature.Public_key_hash
  $Signature.Public_key_hash:
    /* A Ed25519, Secp256k1, or P256 public key hash (Base58Check-encoded) */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
  +---------------------------+----------+------------------+
  | Name                      | Size     | Contents         |
  +===========================+==========+==================+
  | Signature.Public_key_hash | 21 bytes | $public_key_hash |
  +---------------------------+----------+------------------+


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

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

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


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

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


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

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

  

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

Return the list of entrypoints of the contract

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


  Z.t
  ***

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

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


  micheline.010-PtGRANAD.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.010-PtGRANAD.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 010-PtGRANAD.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 010-PtGRANAD.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 010-PtGRANAD.michelson.v1.primitives) |
  +------+----------------------+-------------------------------------------------------------------------------------------+
  | arg  | Determined from data | $micheline.010-PtGRANAD.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 010-PtGRANAD.michelson.v1.primitives) |
  +-----------------------+----------------------+-------------------------------------------------------------------------------------------+
  | arg                   | Determined from data | $micheline.010-PtGRANAD.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 010-PtGRANAD.michelson.v1.primitives) |
  +------+----------------------+-------------------------------------------------------------------------------------------+
  | arg1 | Determined from data | $micheline.010-PtGRANAD.michelson_v1.expression                                           |
  +------+----------------------+-------------------------------------------------------------------------------------------+
  | arg2 | Determined from data | $micheline.010-PtGRANAD.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 010-PtGRANAD.michelson.v1.primitives) |
  +-----------------------+----------------------+-------------------------------------------------------------------------------------------+
  | arg1                  | Determined from data | $micheline.010-PtGRANAD.michelson_v1.expression                                           |
  +-----------------------+----------------------+-------------------------------------------------------------------------------------------+
  | arg2                  | Determined from data | $micheline.010-PtGRANAD.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 010-PtGRANAD.michelson.v1.primitives) |
  +-----------------------+----------+-------------------------------------------------------------------------------------------+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer                                                                   |
  +-----------------------+----------+-------------------------------------------------------------------------------------------+
  | args                  | Variable | sequence of $micheline.010-PtGRANAD.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                   |
  +-----------------------+----------+-------------------------+


  010-PtGRANAD.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        |
  +-------------+-----------------------+


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


  Z.t
  ***

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

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


  micheline.010-PtGRANAD.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.010-PtGRANAD.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 010-PtGRANAD.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 010-PtGRANAD.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 010-PtGRANAD.michelson.v1.primitives) |
  +------+----------------------+-------------------------------------------------------------------------------------------+
  | arg  | Determined from data | $micheline.010-PtGRANAD.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 010-PtGRANAD.michelson.v1.primitives) |
  +-----------------------+----------------------+-------------------------------------------------------------------------------------------+
  | arg                   | Determined from data | $micheline.010-PtGRANAD.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 010-PtGRANAD.michelson.v1.primitives) |
  +------+----------------------+-------------------------------------------------------------------------------------------+
  | arg1 | Determined from data | $micheline.010-PtGRANAD.michelson_v1.expression                                           |
  +------+----------------------+-------------------------------------------------------------------------------------------+
  | arg2 | Determined from data | $micheline.010-PtGRANAD.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 010-PtGRANAD.michelson.v1.primitives) |
  +-----------------------+----------------------+-------------------------------------------------------------------------------------------+
  | arg1                  | Determined from data | $micheline.010-PtGRANAD.michelson_v1.expression                                           |
  +-----------------------+----------------------+-------------------------------------------------------------------------------------------+
  | arg2                  | Determined from data | $micheline.010-PtGRANAD.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 010-PtGRANAD.michelson.v1.primitives) |
  +-----------------------+----------+-------------------------------------------------------------------------------------------+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer                                                                   |
  +-----------------------+----------+-------------------------------------------------------------------------------------------+
  | args                  | Variable | sequence of $micheline.010-PtGRANAD.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                   |
  +-----------------------+----------+-------------------------+


  010-PtGRANAD.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        |
  +-------------+-----------------------+

  

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

Access the manager of a contract.

  $Signature.Public_key /* Some */ || null /* None */
  $Signature.Public_key:
    /* A Ed25519, Secp256k1, or P256 public key (Base58Check-encoded) */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
  +-----------------+----------------------+----------+
  | Name            | Size                 | Contents |
  +=================+======================+==========+
  | Unnamed field 0 | Determined from data | $X_0     |
  +-----------------+----------------------+----------+


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

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

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


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

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


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

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


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

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

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


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

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

  

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

Access the code and data of the contract.

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


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

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


  X_0
  ***

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

  

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

Access the data of the contract.

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


  Z.t
  ***

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

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


  micheline.010-PtGRANAD.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.010-PtGRANAD.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 010-PtGRANAD.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 010-PtGRANAD.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 010-PtGRANAD.michelson.v1.primitives) |
  +------+----------------------+-------------------------------------------------------------------------------------------+
  | arg  | Determined from data | $micheline.010-PtGRANAD.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 010-PtGRANAD.michelson.v1.primitives) |
  +-----------------------+----------------------+-------------------------------------------------------------------------------------------+
  | arg                   | Determined from data | $micheline.010-PtGRANAD.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 010-PtGRANAD.michelson.v1.primitives) |
  +------+----------------------+-------------------------------------------------------------------------------------------+
  | arg1 | Determined from data | $micheline.010-PtGRANAD.michelson_v1.expression                                           |
  +------+----------------------+-------------------------------------------------------------------------------------------+
  | arg2 | Determined from data | $micheline.010-PtGRANAD.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 010-PtGRANAD.michelson.v1.primitives) |
  +-----------------------+----------------------+-------------------------------------------------------------------------------------------+
  | arg1                  | Determined from data | $micheline.010-PtGRANAD.michelson_v1.expression                                           |
  +-----------------------+----------------------+-------------------------------------------------------------------------------------------+
  | arg2                  | Determined from data | $micheline.010-PtGRANAD.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 010-PtGRANAD.michelson.v1.primitives) |
  +-----------------------+----------+-------------------------------------------------------------------------------------------+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer                                                                   |
  +-----------------------+----------+-------------------------------------------------------------------------------------------+
  | args                  | Variable | sequence of $micheline.010-PtGRANAD.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                   |
  +-----------------------+----------+-------------------------+


  010-PtGRANAD.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        |
  +-------------+-----------------------+

  

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

Lists all registered delegates.

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.

  { "balance": $010-PtGRANAD.mutez,
    "frozen_balance": $010-PtGRANAD.mutez,
    "frozen_balance_by_cycle":
      [ { "cycle": integer ∈ [-2^31-1, 2^31],
          "deposits": $010-PtGRANAD.mutez,
          "fees": $010-PtGRANAD.mutez,
          "rewards": $010-PtGRANAD.mutez } ... ],
    "staking_balance": $010-PtGRANAD.mutez,
    "delegated_contracts": [ $010-PtGRANAD.contract_id ... ],
    "delegated_balance": $010-PtGRANAD.mutez,
    "deactivated": boolean,
    "grace_period": integer ∈ [-2^31-1, 2^31],
    "voting_power": integer ∈ [-2^31-1, 2^31] }
  $010-PtGRANAD.contract_id:
    /* A contract handle
       A contract notation as given to an RPC or inside scripts. Can be a
       base58 implicit contract hash or a base58 originated contract hash. */
    $unistring
  $010-PtGRANAD.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 $010-PtGRANAD.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 |
  +----------+----------------------+-----------------------+
  | deposits | 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                  |
  +----------------------+----------+------------------------+


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

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

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


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

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


  N.t
  ***

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

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

  

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

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

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


  N.t
  ***

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

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

  

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

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

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


  

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

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

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


  N.t
  ***

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

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

  

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

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

  [ $010-PtGRANAD.contract_id ... ]
  $010-PtGRANAD.contract_id:
    /* A contract handle
       A contract notation as given to an RPC or inside scripts. Can be a
       base58 implicit contract hash or a base58 originated contract hash. */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
  +-----------------------+----------+---------------------------------------+
  | Name                  | Size     | Contents                              |
  +=======================+==========+=======================================+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer               |
  +-----------------------+----------+---------------------------------------+
  | Unnamed field 0       | Variable | sequence of $010-PtGRANAD.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                  |
  +----------------------+----------+------------------------+


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

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

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


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

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

  

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

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

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


  N.t
  ***

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

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

  

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

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

  [ { "cycle": integer ∈ [-2^31-1, 2^31],
      "deposits": $010-PtGRANAD.mutez,
      "fees": $010-PtGRANAD.mutez,
      "rewards": $010-PtGRANAD.mutez } ... ]
  $010-PtGRANAD.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 natural number. Each byte has a running unary size bit: the most significant bit of each byte indicates whether this is the last byte in the sequence (0) or whether the sequence continues (1). Size bits ignored, the data is the binary representation of the number in little-endian order.

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


  X_0
  ***

  +----------+----------------------+-----------------------+
  | Name     | Size                 | Contents              |
  +==========+======================+=======================+
  | cycle    | 4 bytes              | signed 32-bit integer |
  +----------+----------------------+-----------------------+
  | deposits | 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) by simply re-registering as a delegate. For deactivated delegates, 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/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.

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


  N.t
  ***

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

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

  

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

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

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


  

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

Liquidity baking CPMM address

  $010-PtGRANAD.contract_id
  $010-PtGRANAD.contract_id:
    /* A contract handle
       A contract notation as given to an RPC or inside scripts. Can be a
       base58 implicit contract hash or a base58 originated contract hash. */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
  +-----------------+----------+----------+
  | Name            | Size     | Contents |
  +=================+==========+==========+
  | Unnamed field 0 | 22 bytes | $X_0     |
  +-----------------+----------+----------+


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

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

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


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

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


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

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


  X_0 (22 bytes, 8-bit tag)
  *************************

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

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


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

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

  

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

Returns the merkle tree of a piece of context.

Optional query arguments :

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

  [ [ $unistring,
      [ boolean, $unistring ]
      /* Hash */
      || /* Data */
      /^([a-zA-Z0-9][a-zA-Z0-9])*$/
      /* Key */
      || { /* Dir */
           *: $raw_context }
      || null
      /* Cut */
      || $merkle_tree
      /* Continue */ ] ... ]
  /* Some */
  || null
  /* None */
  $merkle_tree:
    [ [ $unistring,
        [ boolean, $unistring ]
        /* Hash */
        || /* Data */
        /^([a-zA-Z0-9][a-zA-Z0-9])*$/
        /* Key */
        || { /* Dir */
             *: $raw_context }
        || null
        /* Cut */
        || $merkle_tree
        /* Continue */ ] ... ]
  $raw_context:
    /^([a-zA-Z0-9][a-zA-Z0-9])*$/
    /* Key */
    || { /* Dir */
         *: $raw_context }
    || null
    /* Cut */
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
  +-----------------+----------------------+----------+
  | Name            | Size                 | Contents |
  +=================+======================+==========+
  | Unnamed field 0 | Determined from data | $X_21    |
  +-----------------+----------------------+----------+


  X_7
  ***

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


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

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

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


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

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


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

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


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

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


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

  Key (tag 0)
  ===========

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


  Dir (tag 1)
  ===========

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


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

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


  X_19
  ****

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


  X_0
  ***

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


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

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

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


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

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

  

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

Info about the nonce of a previous block.

  { /* Revealed */
    "nonce": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
  || { /* Missing */
       "hash": $cycle_nonce }
  || { /* Forgotten */
        }
  $cycle_nonce:
    /* A nonce hash (Base58Check-encoded) */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
  +-----------------+----------------------+----------+
  | Name            | Size                 | Contents |
  +=================+======================+==========+
  | Unnamed field 0 | Determined from data | $X_0     |
  +-----------------+----------------------+----------+


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

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

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


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

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


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

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

  

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

Returns the raw context.

Optional query arguments :

  • depth = <int>

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


  X_3
  ***

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


  X_2
  ***

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


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

  Key (tag 0)
  ===========

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


  Dir (tag 1)
  ===========

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


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

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

  

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


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

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


  X_0
  ***

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

  

POST ../<block_id>/context/seed

Seed of the cycle to which the block belongs.

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



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


  

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": [ $010-PtGRANAD.operation.alpha.contents ... ],
        "signature": $Signature },
    "chain_id": $Chain_id }
  $010-PtGRANAD.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][a-zA-Z0-9])*$/,
      "seed_nonce_hash"?: $cycle_nonce,
      "liquidity_baking_escape_vote": boolean,
      "signature": $Signature }
  $010-PtGRANAD.contract_id:
    /* A contract handle
       A contract notation as given to an RPC or inside scripts. Can be a
       base58 implicit contract hash or a base58 originated contract hash. */
    $unistring
  $010-PtGRANAD.entrypoint:
    /* entrypoint
       Named entrypoint to a Michelson smart contract */
    "default"
    || "root"
    || "do"
    || "set_delegate"
    || "remove_delegate"
    || string
    /* named */
  $010-PtGRANAD.inlined.endorsement:
    /* An operation's shell header. */
    { "branch": $block_hash,
      "operations": $010-PtGRANAD.inlined.endorsement.contents,
      "signature"?: $Signature }
  $010-PtGRANAD.inlined.endorsement.contents:
    { /* Endorsement */
      "kind": "endorsement",
      "level": integer ∈ [-2^31-1, 2^31] }
  $010-PtGRANAD.michelson.v1.primitives:
    "ADD"
    | "IF_LEFT"
    | "SELF_ADDRESS"
    | "KECCAK"
    | "Elt"
    | "TOTAL_VOTING_POWER"
    | "VOTING_POWER"
    | "SHA256"
    | "option"
    | "Right"
    | "LE"
    | "set"
    | "ticket"
    | "storage"
    | "SOURCE"
    | "False"
    | "SHA512"
    | "BALANCE"
    | "EMPTY_BIG_MAP"
    | "operation"
    | "NOT"
    | "or"
    | "TRANSFER_TOKENS"
    | "DUG"
    | "COMPARE"
    | "SHA3"
    | "chain_id"
    | "MUL"
    | "signature"
    | "AMOUNT"
    | "DIP"
    | "ABS"
    | "list"
    | "LT"
    | "bls12_381_g1"
    | "CONCAT"
    | "UNIT"
    | "SWAP"
    | "DUP"
    | "bytes"
    | "CAR"
    | "CONS"
    | "NEQ"
    | "GET"
    | "Left"
    | "nat"
    | "UNPAIR"
    | "DROP"
    | "NEG"
    | "CONTRACT"
    | "big_map"
    | "ADDRESS"
    | "True"
    | "parameter"
    | "never"
    | "EQ"
    | "Pair"
    | "UPDATE"
    | "string"
    | "AND"
    | "timestamp"
    | "READ_TICKET"
    | "unit"
    | "CHECK_SIGNATURE"
    | "IF_CONS"
    | "INT"
    | "CREATE_CONTRACT"
    | "MEM"
    | "PAIRING_CHECK"
    | "BLAKE2B"
    | "bool"
    | "STEPS_TO_QUOTA"
    | "sapling_transaction"
    | "XOR"
    | "SELF"
    | "LEVEL"
    | "IMPLICIT_ACCOUNT"
    | "PACK"
    | "NEVER"
    | "NOW"
    | "RENAME"
    | "GET_AND_UPDATE"
    | "SENDER"
    | "map"
    | "mutez"
    | "SLICE"
    | "CDR"
    | "OR"
    | "sapling_state"
    | "CHAIN_ID"
    | "ISNAT"
    | "SPLIT_TICKET"
    | "SOME"
    | "LOOP"
    | "SAPLING_VERIFY_UPDATE"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "IF_NONE"
    | "TICKET"
    | "ITER"
    | "EXEC"
    | "NONE"
    | "LEFT"
    | "address"
    | "JOIN_TICKETS"
    | "LSR"
    | "None"
    | "lambda"
    | "EMPTY_SET"
    | "MAP"
    | "int"
    | "bls12_381_g2"
    | "LSL"
    | "RIGHT"
    | "contract"
    | "SIZE"
    | "pair"
    | "IF"
    | "bls12_381_fr"
    | "PAIR"
    | "LAMBDA"
    | "HASH_KEY"
    | "PUSH"
    | "LOOP_LEFT"
    | "SAPLING_EMPTY_STATE"
    | "key"
    | "DIG"
    | "EMPTY_MAP"
    | "APPLY"
    | "CAST"
    | "key_hash"
    | "FAILWITH"
    | "GT"
    | "NIL"
    | "SUB"
    | "EDIV"
    | "CREATE_ACCOUNT"
    | "GE"
    | "SET_DELEGATE"
    | "code"
  $010-PtGRANAD.mutez: $positive_bignum
  $010-PtGRANAD.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][a-zA-Z0-9])*$/ }
    || { /* Endorsement_with_slot */
         "kind": "endorsement_with_slot",
         "endorsement": $010-PtGRANAD.inlined.endorsement,
         "slot": integer ∈ [0, 2^16-1] }
    || { /* Double_endorsement_evidence */
         "kind": "double_endorsement_evidence",
         "op1": $010-PtGRANAD.inlined.endorsement,
         "op2": $010-PtGRANAD.inlined.endorsement,
         "slot": integer ∈ [0, 2^16-1] }
    || { /* Double_baking_evidence */
         "kind": "double_baking_evidence",
         "bh1": $010-PtGRANAD.block_header.alpha.full_header,
         "bh2": $010-PtGRANAD.block_header.alpha.full_header }
    || { /* Activate_account */
         "kind": "activate_account",
         "pkh": $Ed25519.Public_key_hash,
         "secret": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
    || { /* Proposals */
         "kind": "proposals",
         "source": $Signature.Public_key_hash,
         "period": integer ∈ [-2^31-1, 2^31],
         "proposals": [ $Protocol_hash ... ] }
    || { /* Ballot */
         "kind": "ballot",
         "source": $Signature.Public_key_hash,
         "period": integer ∈ [-2^31-1, 2^31],
         "proposal": $Protocol_hash,
         "ballot": "nay" | "yay" | "pass" }
    || { /* Reveal */
         "kind": "reveal",
         "source": $Signature.Public_key_hash,
         "fee": $010-PtGRANAD.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": $010-PtGRANAD.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "amount": $010-PtGRANAD.mutez,
         "destination": $010-PtGRANAD.contract_id,
         "parameters"?:
           { "entrypoint": $010-PtGRANAD.entrypoint,
             "value":
               { /* Int */
                 "int": $bignum }
               || { /* String */
                    "string": $unistring }
               || { /* Bytes */
                    "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
               || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
               /* Sequence */
               || { /* Generic prim (any number of args with or without
                       annot) */
                    "prim": $010-PtGRANAD.michelson.v1.primitives,
                    "args"?:
                      [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
                    "annots"?: [ string ... ] } } }
    || { /* Origination */
         "kind": "origination",
         "source": $Signature.Public_key_hash,
         "fee": $010-PtGRANAD.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "balance": $010-PtGRANAD.mutez,
         "delegate"?: $Signature.Public_key_hash,
         "script": $010-PtGRANAD.scripted.contracts }
    || { /* Delegation */
         "kind": "delegation",
         "source": $Signature.Public_key_hash,
         "fee": $010-PtGRANAD.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "delegate"?: $Signature.Public_key_hash }
    || { /* Failing_noop */
         "kind": "failing_noop",
         "arbitrary": $unistring }
  $010-PtGRANAD.scripted.contracts:
    { "code":
        { /* Int */
          "int": $bignum }
        || { /* String */
             "string": $unistring }
        || { /* Bytes */
             "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
        || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
        /* Sequence */
        || { /* Generic prim (any number of args with or without annot) */
             "prim": $010-PtGRANAD.michelson.v1.primitives,
             "args"?: [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
             "annots"?: [ string ... ] },
      "storage":
        { /* Int */
          "int": $bignum }
        || { /* String */
             "string": $unistring }
        || { /* Bytes */
             "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
        || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
        /* Sequence */
        || { /* Generic prim (any number of args with or without annot) */
             "prim": $010-PtGRANAD.michelson.v1.primitives,
             "args"?: [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
             "annots"?: [ string ... ] } }
  $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
  $bignum:
    /* Big number
       Decimal representation of a big number */
    string
  $block_hash:
    /* A block identifier (Base58Check-encoded) */
    $unistring
  $cycle_nonce:
    /* A nonce hash (Base58Check-encoded) */
    $unistring
  $fitness:
    /* Block fitness
       The fitness, or score, of a block, that allow the Tezos to decide
       which chain is the best. A fitness value is a list of byte sequences.
       They are compared as follows: shortest lists are smaller; lists of the
       same length are compared according to the lexicographical order. */
    [ /^([a-zA-Z0-9][a-zA-Z0-9])*$/ ... ]
  $micheline.010-PtGRANAD.michelson_v1.expression:
    { /* Int */
      "int": $bignum }
    || { /* String */
         "string": $unistring }
    || { /* Bytes */
         "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
    || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
    /* Sequence */
    || { /* Generic prim (any number of args with or without annot) */
         "prim": $010-PtGRANAD.michelson.v1.primitives,
         "args"?: [ $micheline.010-PtGRANAD.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    |
  +-----------------------+----------+----------+


  010-PtGRANAD.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                   |
  +-----------------------+----------+-------------------------+


  010-PtGRANAD.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                |
  +---------------+----------+------------------------+


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

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

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


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

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


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

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


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

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


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

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


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

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


  X_1
  ***

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


  N.t
  ***

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

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


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

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

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


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

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


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

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


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


  010-PtGRANAD.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                               |
  +---------------------------------------+----------+-------------------------------------+
  | liquidity_baking_escape_vote          | 1 byte   | boolean (0 for false, 255 for true) |
  +---------------------------------------+----------+-------------------------------------+
  | signature                             | 64 bytes | bytes                               |
  +---------------------------------------+----------+-------------------------------------+


  010-PtGRANAD.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  |
  +-------+---------+------------------------+


  010-PtGRANAD.inlined.endorsement
  ********************************

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


  010-PtGRANAD.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 | $010-PtGRANAD.inlined.endorsement |
  +-----------------------+----------+-----------------------------------+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer           |
  +-----------------------+----------+-----------------------------------+
  | op2                   | Variable | $010-PtGRANAD.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 | $010-PtGRANAD.block_header.alpha.full_header |
  +-----------------------+----------------------+----------------------------------------------+
  | # bytes in next field | 4 bytes              | unsigned 30-bit integer                      |
  +-----------------------+----------------------+----------------------------------------------+
  | bh2                   | Determined from data | $010-PtGRANAD.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 | $010-PtGRANAD.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             | $010-PtGRANAD.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 | $010-PtGRANAD.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                    |
  +--------------------------------+----------------------+-------------------------------------+


  X_0
  ***

  +-----------+----------+----------------------------------------------------+
  | Name      | Size     | Contents                                           |
  +===========+==========+====================================================+
  | branch    | 32 bytes | bytes                                              |
  +-----------+----------+----------------------------------------------------+
  | contents  | Variable | sequence of $010-PtGRANAD.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": "PtGRANADsDU8R9daYKAgWnQYAJ64omN1o3KMGVCykShA97vQbvV",
      "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][a-zA-Z0-9])*$/,
      "seed_nonce_hash"?: $cycle_nonce,
      "liquidity_baking_escape_vote": boolean,
      "signature": $Signature }
  $cycle_nonce:
    /* A nonce hash (Base58Check-encoded) */
    $unistring
  $fitness:
    /* Block fitness
       The fitness, or score, of a block, that allow the Tezos to decide
       which chain is the best. A fitness value is a list of byte sequences.
       They are compared as follows: shortest lists are smaller; lists of the
       same length are compared according to the lexicographical order. */
    [ /^([a-zA-Z0-9][a-zA-Z0-9])*$/ ... ]
  $timestamp.protocol:
    /* A timestamp as seen by the protocol: second-level precision, epoch
       based. */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
  +---------------------------------------+----------+-------------------------------------+
  | 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                               |
  +---------------------------------------+----------+-------------------------------------+
  | liquidity_baking_escape_vote          | 1 byte   | boolean (0 for false, 255 for true) |
  +---------------------------------------+----------+-------------------------------------+
  | signature                             | 64 bytes | bytes                               |
  +---------------------------------------+----------+-------------------------------------+


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

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

  

GET ../<block_id>/header/protocol_data

The version-specific fragment of the block header.

  { "protocol": "PtGRANADsDU8R9daYKAgWnQYAJ64omN1o3KMGVCykShA97vQbvV",
    "priority": integer ∈ [0, 2^16-1],
    "proof_of_work_nonce": /^([a-zA-Z0-9][a-zA-Z0-9])*$/,
    "seed_nonce_hash"?: $cycle_nonce,
    "liquidity_baking_escape_vote": boolean,
    "signature": $Signature }
  $Signature:
    /* A Ed25519, Secp256k1 or P256 signature (Base58Check-encoded) */
    $unistring
  $cycle_nonce:
    /* A nonce hash (Base58Check-encoded) */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
  +---------------------------------------+----------+-------------------------------------+
  | 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                               |
  +---------------------------------------+----------+-------------------------------------+
  | liquidity_baking_escape_vote          | 1 byte   | boolean (0 for false, 255 for true) |
  +---------------------------------------+----------+-------------------------------------+
  | signature                             | 64 bytes | bytes                               |
  +---------------------------------------+----------+-------------------------------------+


  

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

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

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


  

GET ../<block_id>/header/raw

The whole block header (unparsed).

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


  

GET ../<block_id>/header/shell

The shell-specific fragment of the block header.

  $block_header.shell
  $Context_hash:
    /* A hash of context (Base58Check-encoded) */
    $unistring
  $Operation_list_list_hash:
    /* A list of list of operations (Base58Check-encoded) */
    $unistring
  $block_hash:
    /* A block identifier (Base58Check-encoded) */
    $unistring
  $block_header.shell:
    /* Shell header
       Block header's shell-related content. It contains information such as
       the block level, its predecessor and timestamp. */
    { "level": integer ∈ [-2^31-1, 2^31],
      "proto": integer ∈ [0, 255],
      "predecessor": $block_hash,
      "timestamp": $timestamp.protocol,
      "validation_pass": integer ∈ [0, 255],
      "operations_hash": $Operation_list_list_hash,
      "fitness": $fitness,
      "context": $Context_hash }
  $fitness:
    /* Block fitness
       The fitness, or score, of a block, that allow the Tezos to decide
       which chain is the best. A fitness value is a list of byte sequences.
       They are compared as follows: shortest lists are smaller; lists of the
       same length are compared according to the lexicographical order. */
    [ /^([a-zA-Z0-9][a-zA-Z0-9])*$/ ... ]
  $timestamp.protocol:
    /* A timestamp as seen by the protocol: second-level precision, epoch
       based. */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
  +----------------------------+----------+---------------------------+
  | Name                       | Size     | Contents                  |
  +============================+==========+===========================+
  | level                      | 4 bytes  | signed 32-bit integer     |
  +----------------------------+----------+---------------------------+
  | proto                      | 1 byte   | unsigned 8-bit integer    |
  +----------------------------+----------+---------------------------+
  | predecessor                | 32 bytes | bytes                     |
  +----------------------------+----------+---------------------------+
  | timestamp                  | 8 bytes  | signed 64-bit integer     |
  +----------------------------+----------+---------------------------+
  | validation_pass            | 1 byte   | unsigned 8-bit integer    |
  +----------------------------+----------+---------------------------+
  | operations_hash            | 32 bytes | bytes                     |
  +----------------------------+----------+---------------------------+
  | # bytes in field "fitness" | 4 bytes  | unsigned 30-bit integer   |
  +----------------------------+----------+---------------------------+
  | fitness                    | Variable | sequence of $fitness.elem |
  +----------------------------+----------+---------------------------+
  | context                    | 32 bytes | bytes                     |
  +----------------------------+----------+---------------------------+


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

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

  

GET ../<block_id>/helpers/baking_rights?(level=<block_level>)*&(cycle=<block_cycle>)*&(delegate=<pkh>)*&[max_priority=<int>]&[all]

Retrieves the list of delegates 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. When asked for (a) whole cycle(s), baking opportunities are given by default up to the priority 8. Parameter `delegate` can be used to restrict the results to the given delegates. 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 that 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>
  • delegate = <pkh>
  • max_priority = <int>
  • all

  [ { "level": integer ∈ [-2^31-1, 2^31],
      "delegate": $Signature.Public_key_hash,
      "priority": integer ∈ [0, 2^16-1],
      "estimated_time"?: $timestamp.protocol } ... ]
  $Signature.Public_key_hash:
    /* A Ed25519, Secp256k1, or P256 public key hash (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        |
  +-----------------------+----------+-------------------------+


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

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

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


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

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


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

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


  X_0
  ***

  +--------------------------------------+----------+-------------------------------------+
  | Name                                 | Size     | Contents                            |
  +======================================+==========+=====================================+
  | level                                | 4 bytes  | signed 32-bit integer               |
  +--------------------------------------+----------+-------------------------------------+
  | delegate                             | 21 bytes | $public_key_hash                    |
  +--------------------------------------+----------+-------------------------------------+
  | 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/endorsing_rights?(level=<block_level>)*&(cycle=<block_cycle>)*&(delegate=<pkh>)*

Retrieves the delegates allowed to endorse a block. By default, it gives the endorsement slots for delegates 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 `delegate` can be used to restrict the results to the given delegates. 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 that 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>
  • delegate = <pkh>

  [ { "level": integer ∈ [-2^31-1, 2^31],
      "delegate": $Signature.Public_key_hash,
      "slots": [ integer ∈ [0, 2^16-1] ... ],
      "estimated_time"?: $timestamp.protocol } ... ]
  $Signature.Public_key_hash:
    /* A Ed25519, Secp256k1, or P256 public key hash (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        |
  +-----------------------+----------+-------------------------+


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

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

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


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

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


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

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


  X_0
  ***

  +--------------------------------------+----------+-------------------------------------+
  | Name                                 | Size     | Contents                            |
  +======================================+==========+=====================================+
  | level                                | 4 bytes  | signed 32-bit integer               |
  +--------------------------------------+----------+-------------------------------------+
  | delegate                             | 21 bytes | $public_key_hash                    |
  +--------------------------------------+----------+-------------------------------------+
  | # 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_block_header

Forge a block header

  $block_header
  $Context_hash:
    /* A hash of context (Base58Check-encoded) */
    $unistring
  $Operation_list_list_hash:
    /* A list of list of operations (Base58Check-encoded) */
    $unistring
  $block_hash:
    /* A block identifier (Base58Check-encoded) */
    $unistring
  $block_header:
    /* Block header
       Block header. It contains both shell and protocol specific data. */
    { "level": integer ∈ [-2^31-1, 2^31],
      "proto": integer ∈ [0, 255],
      "predecessor": $block_hash,
      "timestamp": $timestamp.protocol,
      "validation_pass": integer ∈ [0, 255],
      "operations_hash": $Operation_list_list_hash,
      "fitness": $fitness,
      "context": $Context_hash,
      "protocol_data": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
  $fitness:
    /* Block fitness
       The fitness, or score, of a block, that allow the Tezos to decide
       which chain is the best. A fitness value is a list of byte sequences.
       They are compared as follows: shortest lists are smaller; lists of the
       same length are compared according to the lexicographical order. */
    [ /^([a-zA-Z0-9][a-zA-Z0-9])*$/ ... ]
  $timestamp.protocol:
    /* A timestamp as seen by the protocol: second-level precision, epoch
       based. */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
  +----------------------------+----------+---------------------------+
  | Name                       | Size     | Contents                  |
  +============================+==========+===========================+
  | level                      | 4 bytes  | signed 32-bit integer     |
  +----------------------------+----------+---------------------------+
  | proto                      | 1 byte   | unsigned 8-bit integer    |
  +----------------------------+----------+---------------------------+
  | predecessor                | 32 bytes | bytes                     |
  +----------------------------+----------+---------------------------+
  | timestamp                  | 8 bytes  | signed 64-bit integer     |
  +----------------------------+----------+---------------------------+
  | validation_pass            | 1 byte   | unsigned 8-bit integer    |
  +----------------------------+----------+---------------------------+
  | operations_hash            | 32 bytes | bytes                     |
  +----------------------------+----------+---------------------------+
  | # bytes in field "fitness" | 4 bytes  | unsigned 30-bit integer   |
  +----------------------------+----------+---------------------------+
  | fitness                    | Variable | sequence of $fitness.elem |
  +----------------------------+----------+---------------------------+
  | context                    | 32 bytes | bytes                     |
  +----------------------------+----------+---------------------------+
  | protocol_data              | Variable | bytes                     |
  +----------------------------+----------+---------------------------+


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

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

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


  

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

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

Optional query arguments :

  • sort
  • timestamp = <date>

  { "protocol_data":
      { "protocol": "PtGRANADsDU8R9daYKAgWnQYAJ64omN1o3KMGVCykShA97vQbvV",
        "priority": integer ∈ [0, 2^16-1],
        "proof_of_work_nonce": /^([a-zA-Z0-9][a-zA-Z0-9])*$/,
        "seed_nonce_hash"?: $cycle_nonce,
        "liquidity_baking_escape_vote": boolean,
        "signature": $Signature },
    "operations": [ [ $next_operation ... ] ... ] }
  $010-PtGRANAD.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][a-zA-Z0-9])*$/,
      "seed_nonce_hash"?: $cycle_nonce,
      "liquidity_baking_escape_vote": boolean,
      "signature": $Signature }
  $010-PtGRANAD.contract_id:
    /* A contract handle
       A contract notation as given to an RPC or inside scripts. Can be a
       base58 implicit contract hash or a base58 originated contract hash. */
    $unistring
  $010-PtGRANAD.entrypoint:
    /* entrypoint
       Named entrypoint to a Michelson smart contract */
    "default"
    || "root"
    || "do"
    || "set_delegate"
    || "remove_delegate"
    || string
    /* named */
  $010-PtGRANAD.inlined.endorsement:
    /* An operation's shell header. */
    { "branch": $block_hash,
      "operations": $010-PtGRANAD.inlined.endorsement.contents,
      "signature"?: $Signature }
  $010-PtGRANAD.inlined.endorsement.contents:
    { /* Endorsement */
      "kind": "endorsement",
      "level": integer ∈ [-2^31-1, 2^31] }
  $010-PtGRANAD.michelson.v1.primitives:
    "ADD"
    | "IF_LEFT"
    | "SELF_ADDRESS"
    | "KECCAK"
    | "Elt"
    | "TOTAL_VOTING_POWER"
    | "VOTING_POWER"
    | "SHA256"
    | "option"
    | "Right"
    | "LE"
    | "set"
    | "ticket"
    | "storage"
    | "SOURCE"
    | "False"
    | "SHA512"
    | "BALANCE"
    | "EMPTY_BIG_MAP"
    | "operation"
    | "NOT"
    | "or"
    | "TRANSFER_TOKENS"
    | "DUG"
    | "COMPARE"
    | "SHA3"
    | "chain_id"
    | "MUL"
    | "signature"
    | "AMOUNT"
    | "DIP"
    | "ABS"
    | "list"
    | "LT"
    | "bls12_381_g1"
    | "CONCAT"
    | "UNIT"
    | "SWAP"
    | "DUP"
    | "bytes"
    | "CAR"
    | "CONS"
    | "NEQ"
    | "GET"
    | "Left"
    | "nat"
    | "UNPAIR"
    | "DROP"
    | "NEG"
    | "CONTRACT"
    | "big_map"
    | "ADDRESS"
    | "True"
    | "parameter"
    | "never"
    | "EQ"
    | "Pair"
    | "UPDATE"
    | "string"
    | "AND"
    | "timestamp"
    | "READ_TICKET"
    | "unit"
    | "CHECK_SIGNATURE"
    | "IF_CONS"
    | "INT"
    | "CREATE_CONTRACT"
    | "MEM"
    | "PAIRING_CHECK"
    | "BLAKE2B"
    | "bool"
    | "STEPS_TO_QUOTA"
    | "sapling_transaction"
    | "XOR"
    | "SELF"
    | "LEVEL"
    | "IMPLICIT_ACCOUNT"
    | "PACK"
    | "NEVER"
    | "NOW"
    | "RENAME"
    | "GET_AND_UPDATE"
    | "SENDER"
    | "map"
    | "mutez"
    | "SLICE"
    | "CDR"
    | "OR"
    | "sapling_state"
    | "CHAIN_ID"
    | "ISNAT"
    | "SPLIT_TICKET"
    | "SOME"
    | "LOOP"
    | "SAPLING_VERIFY_UPDATE"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "IF_NONE"
    | "TICKET"
    | "ITER"
    | "EXEC"
    | "NONE"
    | "LEFT"
    | "address"
    | "JOIN_TICKETS"
    | "LSR"
    | "None"
    | "lambda"
    | "EMPTY_SET"
    | "MAP"
    | "int"
    | "bls12_381_g2"
    | "LSL"
    | "RIGHT"
    | "contract"
    | "SIZE"
    | "pair"
    | "IF"
    | "bls12_381_fr"
    | "PAIR"
    | "LAMBDA"
    | "HASH_KEY"
    | "PUSH"
    | "LOOP_LEFT"
    | "SAPLING_EMPTY_STATE"
    | "key"
    | "DIG"
    | "EMPTY_MAP"
    | "APPLY"
    | "CAST"
    | "key_hash"
    | "FAILWITH"
    | "GT"
    | "NIL"
    | "SUB"
    | "EDIV"
    | "CREATE_ACCOUNT"
    | "GE"
    | "SET_DELEGATE"
    | "code"
  $010-PtGRANAD.mutez: $positive_bignum
  $010-PtGRANAD.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][a-zA-Z0-9])*$/ }
    || { /* Endorsement_with_slot */
         "kind": "endorsement_with_slot",
         "endorsement": $010-PtGRANAD.inlined.endorsement,
         "slot": integer ∈ [0, 2^16-1] }
    || { /* Double_endorsement_evidence */
         "kind": "double_endorsement_evidence",
         "op1": $010-PtGRANAD.inlined.endorsement,
         "op2": $010-PtGRANAD.inlined.endorsement,
         "slot": integer ∈ [0, 2^16-1] }
    || { /* Double_baking_evidence */
         "kind": "double_baking_evidence",
         "bh1": $010-PtGRANAD.block_header.alpha.full_header,
         "bh2": $010-PtGRANAD.block_header.alpha.full_header }
    || { /* Activate_account */
         "kind": "activate_account",
         "pkh": $Ed25519.Public_key_hash,
         "secret": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
    || { /* Proposals */
         "kind": "proposals",
         "source": $Signature.Public_key_hash,
         "period": integer ∈ [-2^31-1, 2^31],
         "proposals": [ $Protocol_hash ... ] }
    || { /* Ballot */
         "kind": "ballot",
         "source": $Signature.Public_key_hash,
         "period": integer ∈ [-2^31-1, 2^31],
         "proposal": $Protocol_hash,
         "ballot": "nay" | "yay" | "pass" }
    || { /* Reveal */
         "kind": "reveal",
         "source": $Signature.Public_key_hash,
         "fee": $010-PtGRANAD.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": $010-PtGRANAD.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "amount": $010-PtGRANAD.mutez,
         "destination": $010-PtGRANAD.contract_id,
         "parameters"?:
           { "entrypoint": $010-PtGRANAD.entrypoint,
             "value":
               { /* Int */
                 "int": $bignum }
               || { /* String */
                    "string": $unistring }
               || { /* Bytes */
                    "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
               || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
               /* Sequence */
               || { /* Generic prim (any number of args with or without
                       annot) */
                    "prim": $010-PtGRANAD.michelson.v1.primitives,
                    "args"?:
                      [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
                    "annots"?: [ string ... ] } } }
    || { /* Origination */
         "kind": "origination",
         "source": $Signature.Public_key_hash,
         "fee": $010-PtGRANAD.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "balance": $010-PtGRANAD.mutez,
         "delegate"?: $Signature.Public_key_hash,
         "script": $010-PtGRANAD.scripted.contracts }
    || { /* Delegation */
         "kind": "delegation",
         "source": $Signature.Public_key_hash,
         "fee": $010-PtGRANAD.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "delegate"?: $Signature.Public_key_hash }
    || { /* Failing_noop */
         "kind": "failing_noop",
         "arbitrary": $unistring }
  $010-PtGRANAD.scripted.contracts:
    { "code":
        { /* Int */
          "int": $bignum }
        || { /* String */
             "string": $unistring }
        || { /* Bytes */
             "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
        || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
        /* Sequence */
        || { /* Generic prim (any number of args with or without annot) */
             "prim": $010-PtGRANAD.michelson.v1.primitives,
             "args"?: [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
             "annots"?: [ string ... ] },
      "storage":
        { /* Int */
          "int": $bignum }
        || { /* String */
             "string": $unistring }
        || { /* Bytes */
             "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
        || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
        /* Sequence */
        || { /* Generic prim (any number of args with or without annot) */
             "prim": $010-PtGRANAD.michelson.v1.primitives,
             "args"?: [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
             "annots"?: [ string ... ] } }
  $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
  $bignum:
    /* Big number
       Decimal representation of a big number */
    string
  $block_hash:
    /* A block identifier (Base58Check-encoded) */
    $unistring
  $cycle_nonce:
    /* A nonce hash (Base58Check-encoded) */
    $unistring
  $fitness:
    /* Block fitness
       The fitness, or score, of a block, that allow the Tezos to decide
       which chain is the best. A fitness value is a list of byte sequences.
       They are compared as follows: shortest lists are smaller; lists of the
       same length are compared according to the lexicographical order. */
    [ /^([a-zA-Z0-9][a-zA-Z0-9])*$/ ... ]
  $micheline.010-PtGRANAD.michelson_v1.expression:
    { /* Int */
      "int": $bignum }
    || { /* String */
         "string": $unistring }
    || { /* Bytes */
         "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
    || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
    /* Sequence */
    || { /* Generic prim (any number of args with or without annot) */
         "prim": $010-PtGRANAD.michelson.v1.primitives,
         "args"?: [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
         "annots"?: [ string ... ] }
  $next_operation:
    /* An operation's shell header. */
    { "protocol": "PtGRANADsDU8R9daYKAgWnQYAJ64omN1o3KMGVCykShA97vQbvV",
      "branch": $block_hash,
      "contents": [ $010-PtGRANAD.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 6 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                               |
  +---------------------------------------+----------+-------------------------------------+
  | liquidity_baking_escape_vote          | 1 byte   | boolean (0 for false, 255 for true) |
  +---------------------------------------+----------+-------------------------------------+
  | signature                             | 64 bytes | bytes                               |
  +---------------------------------------+----------+-------------------------------------+


  010-PtGRANAD.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                   |
  +-----------------------+----------+-------------------------+


  010-PtGRANAD.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                |
  +---------------+----------+------------------------+


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

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

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


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

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


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

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


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

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


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

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


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

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


  X_2
  ***

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


  N.t
  ***

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

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


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

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

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


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

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


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

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


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


  010-PtGRANAD.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                               |
  +---------------------------------------+----------+-------------------------------------+
  | liquidity_baking_escape_vote          | 1 byte   | boolean (0 for false, 255 for true) |
  +---------------------------------------+----------+-------------------------------------+
  | signature                             | 64 bytes | bytes                               |
  +---------------------------------------+----------+-------------------------------------+


  010-PtGRANAD.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  |
  +-------+---------+------------------------+


  010-PtGRANAD.inlined.endorsement
  ********************************

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


  010-PtGRANAD.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 | $010-PtGRANAD.inlined.endorsement |
  +-----------------------+----------+-----------------------------------+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer           |
  +-----------------------+----------+-----------------------------------+
  | op2                   | Variable | $010-PtGRANAD.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 | $010-PtGRANAD.block_header.alpha.full_header |
  +-----------------------+----------------------+----------------------------------------------+
  | # bytes in next field | 4 bytes              | unsigned 30-bit integer                      |
  +-----------------------+----------------------+----------------------------------------------+
  | bh2                   | Determined from data | $010-PtGRANAD.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 | $010-PtGRANAD.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             | $010-PtGRANAD.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 | $010-PtGRANAD.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                    |
  +--------------------------------+----------------------+-------------------------------------+


  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 $010-PtGRANAD.operation.alpha.contents |
  +--------------------------+----------+----------------------------------------------------+
  | signature                | 64 bytes | bytes                                              |
  +--------------------------+----------+----------------------------------------------------+


  X_1
  ***

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

  
  { "shell_header": $block_header.shell,
    "operations":
      [ { "applied":
            [ { /* An operation. The shell_header part indicates a block an
                   operation is meant to apply on top of. The proto part is
                   protocol-specific and appears as a binary blob. */
                "hash": $Operation_hash,
                "branch": $block_hash,
                "data": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ } ... ],
          "refused":
            [ { /* An operation. The shell_header part indicates a block an
                   operation is meant to apply on top of. The proto part is
                   protocol-specific and appears as a binary blob. */
                "hash": $Operation_hash,
                "branch": $block_hash,
                "data": /^([a-zA-Z0-9][a-zA-Z0-9])*$/,
                "error": $error } ... ],
          "branch_refused":
            [ { /* An operation. The shell_header part indicates a block an
                   operation is meant to apply on top of. The proto part is
                   protocol-specific and appears as a binary blob. */
                "hash": $Operation_hash,
                "branch": $block_hash,
                "data": /^([a-zA-Z0-9][a-zA-Z0-9])*$/,
                "error": $error } ... ],
          "branch_delayed":
            [ { /* An operation. The shell_header part indicates a block an
                   operation is meant to apply on top of. The proto part is
                   protocol-specific and appears as a binary blob. */
                "hash": $Operation_hash,
                "branch": $block_hash,
                "data": /^([a-zA-Z0-9][a-zA-Z0-9])*$/,
                "error": $error } ... ] } ... ] }
  $Context_hash:
    /* A hash of context (Base58Check-encoded) */
    $unistring
  $Operation_hash:
    /* A Tezos operation ID (Base58Check-encoded) */
    $unistring
  $Operation_list_list_hash:
    /* A list of list of operations (Base58Check-encoded) */
    $unistring
  $block_hash:
    /* A block identifier (Base58Check-encoded) */
    $unistring
  $block_header.shell:
    /* Shell header
       Block header's shell-related content. It contains information such as
       the block level, its predecessor and timestamp. */
    { "level": integer ∈ [-2^31-1, 2^31],
      "proto": integer ∈ [0, 255],
      "predecessor": $block_hash,
      "timestamp": $timestamp.protocol,
      "validation_pass": integer ∈ [0, 255],
      "operations_hash": $Operation_list_list_hash,
      "fitness": $fitness,
      "context": $Context_hash }
  $error:
    /* The full list of 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][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 ... ]
  $010-PtGRANAD.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][a-zA-Z0-9])*$/,
      "seed_nonce_hash"?: $cycle_nonce,
      "liquidity_baking_escape_vote": boolean,
      "signature": $Signature }
  $010-PtGRANAD.contract_id:
    /* A contract handle
       A contract notation as given to an RPC or inside scripts. Can be a
       base58 implicit contract hash or a base58 originated contract hash. */
    $unistring
  $010-PtGRANAD.entrypoint:
    /* entrypoint
       Named entrypoint to a Michelson smart contract */
    "default"
    || "root"
    || "do"
    || "set_delegate"
    || "remove_delegate"
    || string
    /* named */
  $010-PtGRANAD.inlined.endorsement:
    /* An operation's shell header. */
    { "branch": $block_hash,
      "operations": $010-PtGRANAD.inlined.endorsement.contents,
      "signature"?: $Signature }
  $010-PtGRANAD.inlined.endorsement.contents:
    { /* Endorsement */
      "kind": "endorsement",
      "level": integer ∈ [-2^31-1, 2^31] }
  $010-PtGRANAD.michelson.v1.primitives:
    "ADD"
    | "IF_LEFT"
    | "SELF_ADDRESS"
    | "KECCAK"
    | "Elt"
    | "TOTAL_VOTING_POWER"
    | "VOTING_POWER"
    | "SHA256"
    | "option"
    | "Right"
    | "LE"
    | "set"
    | "ticket"
    | "storage"
    | "SOURCE"
    | "False"
    | "SHA512"
    | "BALANCE"
    | "EMPTY_BIG_MAP"
    | "operation"
    | "NOT"
    | "or"
    | "TRANSFER_TOKENS"
    | "DUG"
    | "COMPARE"
    | "SHA3"
    | "chain_id"
    | "MUL"
    | "signature"
    | "AMOUNT"
    | "DIP"
    | "ABS"
    | "list"
    | "LT"
    | "bls12_381_g1"
    | "CONCAT"
    | "UNIT"
    | "SWAP"
    | "DUP"
    | "bytes"
    | "CAR"
    | "CONS"
    | "NEQ"
    | "GET"
    | "Left"
    | "nat"
    | "UNPAIR"
    | "DROP"
    | "NEG"
    | "CONTRACT"
    | "big_map"
    | "ADDRESS"
    | "True"
    | "parameter"
    | "never"
    | "EQ"
    | "Pair"
    | "UPDATE"
    | "string"
    | "AND"
    | "timestamp"
    | "READ_TICKET"
    | "unit"
    | "CHECK_SIGNATURE"
    | "IF_CONS"
    | "INT"
    | "CREATE_CONTRACT"
    | "MEM"
    | "PAIRING_CHECK"
    | "BLAKE2B"
    | "bool"
    | "STEPS_TO_QUOTA"
    | "sapling_transaction"
    | "XOR"
    | "SELF"
    | "LEVEL"
    | "IMPLICIT_ACCOUNT"
    | "PACK"
    | "NEVER"
    | "NOW"
    | "RENAME"
    | "GET_AND_UPDATE"
    | "SENDER"
    | "map"
    | "mutez"
    | "SLICE"
    | "CDR"
    | "OR"
    | "sapling_state"
    | "CHAIN_ID"
    | "ISNAT"
    | "SPLIT_TICKET"
    | "SOME"
    | "LOOP"
    | "SAPLING_VERIFY_UPDATE"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "IF_NONE"
    | "TICKET"
    | "ITER"
    | "EXEC"
    | "NONE"
    | "LEFT"
    | "address"
    | "JOIN_TICKETS"
    | "LSR"
    | "None"
    | "lambda"
    | "EMPTY_SET"
    | "MAP"
    | "int"
    | "bls12_381_g2"
    | "LSL"
    | "RIGHT"
    | "contract"
    | "SIZE"
    | "pair"
    | "IF"
    | "bls12_381_fr"
    | "PAIR"
    | "LAMBDA"
    | "HASH_KEY"
    | "PUSH"
    | "LOOP_LEFT"
    | "SAPLING_EMPTY_STATE"
    | "key"
    | "DIG"
    | "EMPTY_MAP"
    | "APPLY"
    | "CAST"
    | "key_hash"
    | "FAILWITH"
    | "GT"
    | "NIL"
    | "SUB"
    | "EDIV"
    | "CREATE_ACCOUNT"
    | "GE"
    | "SET_DELEGATE"
    | "code"
  $010-PtGRANAD.mutez: $positive_bignum
  $010-PtGRANAD.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][a-zA-Z0-9])*$/ }
    || { /* Endorsement_with_slot */
         "kind": "endorsement_with_slot",
         "endorsement": $010-PtGRANAD.inlined.endorsement,
         "slot": integer ∈ [0, 2^16-1] }
    || { /* Double_endorsement_evidence */
         "kind": "double_endorsement_evidence",
         "op1": $010-PtGRANAD.inlined.endorsement,
         "op2": $010-PtGRANAD.inlined.endorsement,
         "slot": integer ∈ [0, 2^16-1] }
    || { /* Double_baking_evidence */
         "kind": "double_baking_evidence",
         "bh1": $010-PtGRANAD.block_header.alpha.full_header,
         "bh2": $010-PtGRANAD.block_header.alpha.full_header }
    || { /* Activate_account */
         "kind": "activate_account",
         "pkh": $Ed25519.Public_key_hash,
         "secret": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
    || { /* Proposals */
         "kind": "proposals",
         "source": $Signature.Public_key_hash,
         "period": integer ∈ [-2^31-1, 2^31],
         "proposals": [ $Protocol_hash ... ] }
    || { /* Ballot */
         "kind": "ballot",
         "source": $Signature.Public_key_hash,
         "period": integer ∈ [-2^31-1, 2^31],
         "proposal": $Protocol_hash,
         "ballot": "nay" | "yay" | "pass" }
    || { /* Reveal */
         "kind": "reveal",
         "source": $Signature.Public_key_hash,
         "fee": $010-PtGRANAD.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": $010-PtGRANAD.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "amount": $010-PtGRANAD.mutez,
         "destination": $010-PtGRANAD.contract_id,
         "parameters"?:
           { "entrypoint": $010-PtGRANAD.entrypoint,
             "value":
               { /* Int */
                 "int": $bignum }
               || { /* String */
                    "string": $unistring }
               || { /* Bytes */
                    "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
               || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
               /* Sequence */
               || { /* Generic prim (any number of args with or without
                       annot) */
                    "prim": $010-PtGRANAD.michelson.v1.primitives,
                    "args"?:
                      [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
                    "annots"?: [ string ... ] } } }
    || { /* Origination */
         "kind": "origination",
         "source": $Signature.Public_key_hash,
         "fee": $010-PtGRANAD.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "balance": $010-PtGRANAD.mutez,
         "delegate"?: $Signature.Public_key_hash,
         "script": $010-PtGRANAD.scripted.contracts }
    || { /* Delegation */
         "kind": "delegation",
         "source": $Signature.Public_key_hash,
         "fee": $010-PtGRANAD.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "delegate"?: $Signature.Public_key_hash }
    || { /* Failing_noop */
         "kind": "failing_noop",
         "arbitrary": $unistring }
  $010-PtGRANAD.scripted.contracts:
    { "code":
        { /* Int */
          "int": $bignum }
        || { /* String */
             "string": $unistring }
        || { /* Bytes */
             "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
        || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
        /* Sequence */
        || { /* Generic prim (any number of args with or without annot) */
             "prim": $010-PtGRANAD.michelson.v1.primitives,
             "args"?: [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
             "annots"?: [ string ... ] },
      "storage":
        { /* Int */
          "int": $bignum }
        || { /* String */
             "string": $unistring }
        || { /* Bytes */
             "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
        || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
        /* Sequence */
        || { /* Generic prim (any number of args with or without annot) */
             "prim": $010-PtGRANAD.michelson.v1.primitives,
             "args"?: [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
             "annots"?: [ string ... ] } }
  $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
  $bignum:
    /* Big number
       Decimal representation of a big number */
    string
  $block_hash:
    /* A block identifier (Base58Check-encoded) */
    $unistring
  $cycle_nonce:
    /* A nonce hash (Base58Check-encoded) */
    $unistring
  $fitness:
    /* Block fitness
       The fitness, or score, of a block, that allow the Tezos to decide
       which chain is the best. A fitness value is a list of byte sequences.
       They are compared as follows: shortest lists are smaller; lists of the
       same length are compared according to the lexicographical order. */
    [ /^([a-zA-Z0-9][a-zA-Z0-9])*$/ ... ]
  $micheline.010-PtGRANAD.michelson_v1.expression:
    { /* Int */
      "int": $bignum }
    || { /* String */
         "string": $unistring }
    || { /* Bytes */
         "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
    || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
    /* Sequence */
    || { /* Generic prim (any number of args with or without annot) */
         "prim": $010-PtGRANAD.michelson.v1.primitives,
         "args"?: [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
         "annots"?: [ string ... ] }
  $next_operation:
    /* An operation's shell header. */
    { "protocol": "PtGRANADsDU8R9daYKAgWnQYAJ64omN1o3KMGVCykShA97vQbvV",
      "branch": $block_hash,
      "contents": [ $010-PtGRANAD.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 |
  +-----------------------+----------+-----------------------------+


  010-PtGRANAD.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                   |
  +-----------------------+----------+-------------------------+


  010-PtGRANAD.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                |
  +---------------+----------+------------------------+


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

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

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


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

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


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

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


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

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


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

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


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

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


  X_0
  ***

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


  N.t
  ***

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

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


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

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

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


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

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


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

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


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


  010-PtGRANAD.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                               |
  +---------------------------------------+----------+-------------------------------------+
  | liquidity_baking_escape_vote          | 1 byte   | boolean (0 for false, 255 for true) |
  +---------------------------------------+----------+-------------------------------------+
  | signature                             | 64 bytes | bytes                               |
  +---------------------------------------+----------+-------------------------------------+


  010-PtGRANAD.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  |
  +-------+---------+------------------------+


  010-PtGRANAD.inlined.endorsement
  ********************************

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


  010-PtGRANAD.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 | $010-PtGRANAD.inlined.endorsement |
  +-----------------------+----------+-----------------------------------+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer           |
  +-----------------------+----------+-----------------------------------+
  | op2                   | Variable | $010-PtGRANAD.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 | $010-PtGRANAD.block_header.alpha.full_header |
  +-----------------------+----------------------+----------------------------------------------+
  | # bytes in next field | 4 bytes              | unsigned 30-bit integer                      |
  +-----------------------+----------------------+----------------------------------------------+
  | bh2                   | Determined from data | $010-PtGRANAD.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 | $010-PtGRANAD.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             | $010-PtGRANAD.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 | $010-PtGRANAD.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                    |
  +--------------------------------+----------------------+-------------------------------------+


  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 $010-PtGRANAD.operation.alpha.contents |
  +--------------------------+----------+----------------------------------------------------+
  | signature                | 64 bytes | bytes                                              |
  +--------------------------+----------+----------------------------------------------------+

  
  [ $010-PtGRANAD.operation.alpha.operation_with_metadata ... ]
  $010-PtGRANAD.big_map_id:
    /* Big map identifier
       A big map identifier */
    $bignum
  $010-PtGRANAD.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][a-zA-Z0-9])*$/,
      "seed_nonce_hash"?: $cycle_nonce,
      "liquidity_baking_escape_vote": boolean,
      "signature": $Signature }
  $010-PtGRANAD.contract_id:
    /* A contract handle
       A contract notation as given to an RPC or inside scripts. Can be a
       base58 implicit contract hash or a base58 originated contract hash. */
    $unistring
  $010-PtGRANAD.entrypoint:
    /* entrypoint
       Named entrypoint to a Michelson smart contract */
    "default"
    || "root"
    || "do"
    || "set_delegate"
    || "remove_delegate"
    || string
    /* named */
  $010-PtGRANAD.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
  $010-PtGRANAD.inlined.endorsement:
    /* An operation's shell header. */
    { "branch": $block_hash,
      "operations": $010-PtGRANAD.inlined.endorsement.contents,
      "signature"?: $Signature }
  $010-PtGRANAD.inlined.endorsement.contents:
    { /* Endorsement */
      "kind": "endorsement",
      "level": integer ∈ [-2^31-1, 2^31] }
  $010-PtGRANAD.lazy_storage_diff:
    [ { /* big_map */
        "kind": "big_map",
        "id": $010-PtGRANAD.big_map_id,
        "diff":
          { /* update */
            "action": "update",
            "updates":
              [ { "key_hash": $script_expr,
                  "key":
                    { /* Int */
                      "int": $bignum }
                    || { /* String */
                         "string": $unistring }
                    || { /* Bytes */
                         "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                    || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
                    /* Sequence */
                    || { /* Generic prim (any number of args with or without
                            annot) */
                         "prim": $010-PtGRANAD.michelson.v1.primitives,
                         "args"?:
                           [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
                         "annots"?: [ string ... ] },
                  "value"?:
                    { /* Int */
                      "int": $bignum }
                    || { /* String */
                         "string": $unistring }
                    || { /* Bytes */
                         "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                    || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
                    /* Sequence */
                    || { /* Generic prim (any number of args with or without
                            annot) */
                         "prim": $010-PtGRANAD.michelson.v1.primitives,
                         "args"?:
                           [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
                         "annots"?: [ string ... ] } } ... ] }
          || { /* remove */
               "action": "remove" }
          || { /* copy */
               "action": "copy",
               "source": $010-PtGRANAD.big_map_id,
               "updates":
                 [ { "key_hash": $script_expr,
                     "key":
                       { /* Int */
                         "int": $bignum }
                       || { /* String */
                            "string": $unistring }
                       || { /* Bytes */
                            "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                       || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
                       /* Sequence */
                       || { /* Generic prim (any number of args with or
                               without annot) */
                            "prim": $010-PtGRANAD.michelson.v1.primitives,
                            "args"?:
                              [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
                            "annots"?: [ string ... ] },
                     "value"?:
                       { /* Int */
                         "int": $bignum }
                       || { /* String */
                            "string": $unistring }
                       || { /* Bytes */
                            "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                       || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
                       /* Sequence */
                       || { /* Generic prim (any number of args with or
                               without annot) */
                            "prim": $010-PtGRANAD.michelson.v1.primitives,
                            "args"?:
                              [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
                            "annots"?: [ string ... ] } } ... ] }
          || { /* alloc */
               "action": "alloc",
               "updates":
                 [ { "key_hash": $script_expr,
                     "key":
                       { /* Int */
                         "int": $bignum }
                       || { /* String */
                            "string": $unistring }
                       || { /* Bytes */
                            "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                       || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
                       /* Sequence */
                       || { /* Generic prim (any number of args with or
                               without annot) */
                            "prim": $010-PtGRANAD.michelson.v1.primitives,
                            "args"?:
                              [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
                            "annots"?: [ string ... ] },
                     "value"?:
                       { /* Int */
                         "int": $bignum }
                       || { /* String */
                            "string": $unistring }
                       || { /* Bytes */
                            "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                       || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
                       /* Sequence */
                       || { /* Generic prim (any number of args with or
                               without annot) */
                            "prim": $010-PtGRANAD.michelson.v1.primitives,
                            "args"?:
                              [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
                            "annots"?: [ string ... ] } } ... ],
               "key_type":
                 { /* Int */
                   "int": $bignum }
                 || { /* String */
                      "string": $unistring }
                 || { /* Bytes */
                      "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                 || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
                 /* Sequence */
                 || { /* Generic prim (any number of args with or without
                         annot) */
                      "prim": $010-PtGRANAD.michelson.v1.primitives,
                      "args"?:
                        [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
                      "annots"?: [ string ... ] },
               "value_type":
                 { /* Int */
                   "int": $bignum }
                 || { /* String */
                      "string": $unistring }
                 || { /* Bytes */
                      "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                 || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
                 /* Sequence */
                 || { /* Generic prim (any number of args with or without
                         annot) */
                      "prim": $010-PtGRANAD.michelson.v1.primitives,
                      "args"?:
                        [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
                      "annots"?: [ string ... ] } } }
      || { /* sapling_state */
           "kind": "sapling_state",
           "id": $010-PtGRANAD.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": $010-PtGRANAD.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] } } ... ]
  $010-PtGRANAD.michelson.v1.primitives:
    "ADD"
    | "IF_LEFT"
    | "SELF_ADDRESS"
    | "KECCAK"
    | "Elt"
    | "TOTAL_VOTING_POWER"
    | "VOTING_POWER"
    | "SHA256"
    | "option"
    | "Right"
    | "LE"
    | "set"
    | "ticket"
    | "storage"
    | "SOURCE"
    | "False"
    | "SHA512"
    | "BALANCE"
    | "EMPTY_BIG_MAP"
    | "operation"
    | "NOT"
    | "or"
    | "TRANSFER_TOKENS"
    | "DUG"
    | "COMPARE"
    | "SHA3"
    | "chain_id"
    | "MUL"
    | "signature"
    | "AMOUNT"
    | "DIP"
    | "ABS"
    | "list"
    | "LT"
    | "bls12_381_g1"
    | "CONCAT"
    | "UNIT"
    | "SWAP"
    | "DUP"
    | "bytes"
    | "CAR"
    | "CONS"
    | "NEQ"
    | "GET"
    | "Left"
    | "nat"
    | "UNPAIR"
    | "DROP"
    | "NEG"
    | "CONTRACT"
    | "big_map"
    | "ADDRESS"
    | "True"
    | "parameter"
    | "never"
    | "EQ"
    | "Pair"
    | "UPDATE"
    | "string"
    | "AND"
    | "timestamp"
    | "READ_TICKET"
    | "unit"
    | "CHECK_SIGNATURE"
    | "IF_CONS"
    | "INT"
    | "CREATE_CONTRACT"
    | "MEM"
    | "PAIRING_CHECK"
    | "BLAKE2B"
    | "bool"
    | "STEPS_TO_QUOTA"
    | "sapling_transaction"
    | "XOR"
    | "SELF"
    | "LEVEL"
    | "IMPLICIT_ACCOUNT"
    | "PACK"
    | "NEVER"
    | "NOW"
    | "RENAME"
    | "GET_AND_UPDATE"
    | "SENDER"
    | "map"
    | "mutez"
    | "SLICE"
    | "CDR"
    | "OR"
    | "sapling_state"
    | "CHAIN_ID"
    | "ISNAT"
    | "SPLIT_TICKET"
    | "SOME"
    | "LOOP"
    | "SAPLING_VERIFY_UPDATE"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "IF_NONE"
    | "TICKET"
    | "ITER"
    | "EXEC"
    | "NONE"
    | "LEFT"
    | "address"
    | "JOIN_TICKETS"
    | "LSR"
    | "None"
    | "lambda"
    | "EMPTY_SET"
    | "MAP"
    | "int"
    | "bls12_381_g2"
    | "LSL"
    | "RIGHT"
    | "contract"
    | "SIZE"
    | "pair"
    | "IF"
    | "bls12_381_fr"
    | "PAIR"
    | "LAMBDA"
    | "HASH_KEY"
    | "PUSH"
    | "LOOP_LEFT"
    | "SAPLING_EMPTY_STATE"
    | "key"
    | "DIG"
    | "EMPTY_MAP"
    | "APPLY"
    | "CAST"
    | "key_hash"
    | "FAILWITH"
    | "GT"
    | "NIL"
    | "SUB"
    | "EDIV"
    | "CREATE_ACCOUNT"
    | "GE"
    | "SET_DELEGATE"
    | "code"
  $010-PtGRANAD.mutez: $positive_bignum
  $010-PtGRANAD.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][a-zA-Z0-9])*$/ }
    || { /* Endorsement_with_slot */
         "kind": "endorsement_with_slot",
         "endorsement": $010-PtGRANAD.inlined.endorsement,
         "slot": integer ∈ [0, 2^16-1] }
    || { /* Double_endorsement_evidence */
         "kind": "double_endorsement_evidence",
         "op1": $010-PtGRANAD.inlined.endorsement,
         "op2": $010-PtGRANAD.inlined.endorsement,
         "slot": integer ∈ [0, 2^16-1] }
    || { /* Double_baking_evidence */
         "kind": "double_baking_evidence",
         "bh1": $010-PtGRANAD.block_header.alpha.full_header,
         "bh2": $010-PtGRANAD.block_header.alpha.full_header }
    || { /* Activate_account */
         "kind": "activate_account",
         "pkh": $Ed25519.Public_key_hash,
         "secret": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
    || { /* Proposals */
         "kind": "proposals",
         "source": $Signature.Public_key_hash,
         "period": integer ∈ [-2^31-1, 2^31],
         "proposals": [ $Protocol_hash ... ] }
    || { /* Ballot */
         "kind": "ballot",
         "source": $Signature.Public_key_hash,
         "period": integer ∈ [-2^31-1, 2^31],
         "proposal": $Protocol_hash,
         "ballot": "nay" | "yay" | "pass" }
    || { /* Reveal */
         "kind": "reveal",
         "source": $Signature.Public_key_hash,
         "fee": $010-PtGRANAD.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": $010-PtGRANAD.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "amount": $010-PtGRANAD.mutez,
         "destination": $010-PtGRANAD.contract_id,
         "parameters"?:
           { "entrypoint": $010-PtGRANAD.entrypoint,
             "value":
               { /* Int */
                 "int": $bignum }
               || { /* String */
                    "string": $unistring }
               || { /* Bytes */
                    "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
               || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
               /* Sequence */
               || { /* Generic prim (any number of args with or without
                       annot) */
                    "prim": $010-PtGRANAD.michelson.v1.primitives,
                    "args"?:
                      [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
                    "annots"?: [ string ... ] } } }
    || { /* Origination */
         "kind": "origination",
         "source": $Signature.Public_key_hash,
         "fee": $010-PtGRANAD.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "balance": $010-PtGRANAD.mutez,
         "delegate"?: $Signature.Public_key_hash,
         "script": $010-PtGRANAD.scripted.contracts }
    || { /* Delegation */
         "kind": "delegation",
         "source": $Signature.Public_key_hash,
         "fee": $010-PtGRANAD.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "delegate"?: $Signature.Public_key_hash }
    || { /* Failing_noop */
         "kind": "failing_noop",
         "arbitrary": $unistring }
  $010-PtGRANAD.operation.alpha.internal_operation_result:
    { /* reveal */
      "kind": "reveal",
      "source": $010-PtGRANAD.contract_id,
      "nonce": integer ∈ [0, 2^16-1],
      "public_key": $Signature.Public_key,
      "result": $010-PtGRANAD.operation.alpha.operation_result.reveal }
    || { /* transaction */
         "kind": "transaction",
         "source": $010-PtGRANAD.contract_id,
         "nonce": integer ∈ [0, 2^16-1],
         "amount": $010-PtGRANAD.mutez,
         "destination": $010-PtGRANAD.contract_id,
         "parameters"?:
           { "entrypoint": $010-PtGRANAD.entrypoint,
             "value":
               { /* Int */
                 "int": $bignum }
               || { /* String */
                    "string": $unistring }
               || { /* Bytes */
                    "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
               || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
               /* Sequence */
               || { /* Generic prim (any number of args with or without
                       annot) */
                    "prim": $010-PtGRANAD.michelson.v1.primitives,
                    "args"?:
                      [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
                    "annots"?: [ string ... ] } },
         "result": $010-PtGRANAD.operation.alpha.operation_result.transaction }
    || { /* origination */
         "kind": "origination",
         "source": $010-PtGRANAD.contract_id,
         "nonce": integer ∈ [0, 2^16-1],
         "balance": $010-PtGRANAD.mutez,
         "delegate"?: $Signature.Public_key_hash,
         "script": $010-PtGRANAD.scripted.contracts,
         "result": $010-PtGRANAD.operation.alpha.operation_result.origination }
    || { /* delegation */
         "kind": "delegation",
         "source": $010-PtGRANAD.contract_id,
         "nonce": integer ∈ [0, 2^16-1],
         "delegate"?: $Signature.Public_key_hash,
         "result": $010-PtGRANAD.operation.alpha.operation_result.delegation }
  $010-PtGRANAD.operation.alpha.operation_contents_and_result:
    { /* Endorsement */
      "kind": "endorsement",
      "level": integer ∈ [-2^31-1, 2^31],
      "metadata":
        { "balance_updates":
            $010-PtGRANAD.operation_metadata.alpha.balance_updates,
          "delegate": $Signature.Public_key_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][a-zA-Z0-9])*$/,
         "metadata":
           { "balance_updates":
               $010-PtGRANAD.operation_metadata.alpha.balance_updates } }
    || { /* Endorsement_with_slot */
         "kind": "endorsement_with_slot",
         "endorsement": $010-PtGRANAD.inlined.endorsement,
         "slot": integer ∈ [0, 2^16-1],
         "metadata":
           { "balance_updates":
               $010-PtGRANAD.operation_metadata.alpha.balance_updates,
             "delegate": $Signature.Public_key_hash,
             "slots": [ integer ∈ [0, 2^16-1] ... ] } }
    || { /* Double_endorsement_evidence */
         "kind": "double_endorsement_evidence",
         "op1": $010-PtGRANAD.inlined.endorsement,
         "op2": $010-PtGRANAD.inlined.endorsement,
         "slot": integer ∈ [0, 2^16-1],
         "metadata":
           { "balance_updates":
               $010-PtGRANAD.operation_metadata.alpha.balance_updates } }
    || { /* Double_baking_evidence */
         "kind": "double_baking_evidence",
         "bh1": $010-PtGRANAD.block_header.alpha.full_header,
         "bh2": $010-PtGRANAD.block_header.alpha.full_header,
         "metadata":
           { "balance_updates":
               $010-PtGRANAD.operation_metadata.alpha.balance_updates } }
    || { /* Activate_account */
         "kind": "activate_account",
         "pkh": $Ed25519.Public_key_hash,
         "secret": /^([a-zA-Z0-9][a-zA-Z0-9])*$/,
         "metadata":
           { "balance_updates":
               $010-PtGRANAD.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": $010-PtGRANAD.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "public_key": $Signature.Public_key,
         "metadata":
           { "balance_updates":
               $010-PtGRANAD.operation_metadata.alpha.balance_updates,
             "operation_result":
               $010-PtGRANAD.operation.alpha.operation_result.reveal,
             "internal_operation_results"?:
               [ $010-PtGRANAD.operation.alpha.internal_operation_result ... ] } }
    || { /* Transaction */
         "kind": "transaction",
         "source": $Signature.Public_key_hash,
         "fee": $010-PtGRANAD.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "amount": $010-PtGRANAD.mutez,
         "destination": $010-PtGRANAD.contract_id,
         "parameters"?:
           { "entrypoint": $010-PtGRANAD.entrypoint,
             "value":
               { /* Int */
                 "int": $bignum }
               || { /* String */
                    "string": $unistring }
               || { /* Bytes */
                    "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
               || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
               /* Sequence */
               || { /* Generic prim (any number of args with or without
                       annot) */
                    "prim": $010-PtGRANAD.michelson.v1.primitives,
                    "args"?:
                      [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
                    "annots"?: [ string ... ] } },
         "metadata":
           { "balance_updates":
               $010-PtGRANAD.operation_metadata.alpha.balance_updates,
             "operation_result":
               $010-PtGRANAD.operation.alpha.operation_result.transaction,
             "internal_operation_results"?:
               [ $010-PtGRANAD.operation.alpha.internal_operation_result ... ] } }
    || { /* Origination */
         "kind": "origination",
         "source": $Signature.Public_key_hash,
         "fee": $010-PtGRANAD.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "balance": $010-PtGRANAD.mutez,
         "delegate"?: $Signature.Public_key_hash,
         "script": $010-PtGRANAD.scripted.contracts,
         "metadata":
           { "balance_updates":
               $010-PtGRANAD.operation_metadata.alpha.balance_updates,
             "operation_result":
               $010-PtGRANAD.operation.alpha.operation_result.origination,
             "internal_operation_results"?:
               [ $010-PtGRANAD.operation.alpha.internal_operation_result ... ] } }
    || { /* Delegation */
         "kind": "delegation",
         "source": $Signature.Public_key_hash,
         "fee": $010-PtGRANAD.mutez,
         "counter": $positive_bignum,
         "gas_limit": $positive_bignum,
         "storage_limit": $positive_bignum,
         "delegate"?: $Signature.Public_key_hash,
         "metadata":
           { "balance_updates":
               $010-PtGRANAD.operation_metadata.alpha.balance_updates,
             "operation_result":
               $010-PtGRANAD.operation.alpha.operation_result.delegation,
             "internal_operation_results"?:
               [ $010-PtGRANAD.operation.alpha.internal_operation_result ... ] } }
  $010-PtGRANAD.operation.alpha.operation_result.delegation:
    { /* Applied */
      "status": "applied",
      "consumed_gas"?: $positive_bignum,
      "consumed_milligas"?: $positive_bignum }
    || { /* Failed */
         "status": "failed",
         "errors": [ $010-PtGRANAD.error ... ] }
    || { /* Skipped */
         "status": "skipped" }
    || { /* Backtracked */
         "status": "backtracked",
         "errors"?: [ $010-PtGRANAD.error ... ],
         "consumed_gas"?: $positive_bignum,
         "consumed_milligas"?: $positive_bignum }
  $010-PtGRANAD.operation.alpha.operation_result.origination:
    { /* Applied */
      "status": "applied",
      "big_map_diff"?:
        [ { /* update */
            "action": "update",
            "big_map": $bignum,
            "key_hash": $script_expr,
            "key":
              { /* Int */
                "int": $bignum }
              || { /* String */
                   "string": $unistring }
              || { /* Bytes */
                   "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
              || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
              /* Sequence */
              || { /* Generic prim (any number of args with or without annot) */
                   "prim": $010-PtGRANAD.michelson.v1.primitives,
                   "args"?:
                     [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
                   "annots"?: [ string ... ] },
            "value"?:
              { /* Int */
                "int": $bignum }
              || { /* String */
                   "string": $unistring }
              || { /* Bytes */
                   "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
              || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
              /* Sequence */
              || { /* Generic prim (any number of args with or without annot) */
                   "prim": $010-PtGRANAD.michelson.v1.primitives,
                   "args"?:
                     [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
                   "annots"?: [ string ... ] } }
          || { /* remove */
               "action": "remove",
               "big_map": $bignum }
          || { /* copy */
               "action": "copy",
               "source_big_map": $bignum,
               "destination_big_map": $bignum }
          || { /* alloc */
               "action": "alloc",
               "big_map": $bignum,
               "key_type":
                 { /* Int */
                   "int": $bignum }
                 || { /* String */
                      "string": $unistring }
                 || { /* Bytes */
                      "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                 || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
                 /* Sequence */
                 || { /* Generic prim (any number of args with or without
                         annot) */
                      "prim": $010-PtGRANAD.michelson.v1.primitives,
                      "args"?:
                        [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
                      "annots"?: [ string ... ] },
               "value_type":
                 { /* Int */
                   "int": $bignum }
                 || { /* String */
                      "string": $unistring }
                 || { /* Bytes */
                      "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                 || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
                 /* Sequence */
                 || { /* Generic prim (any number of args with or without
                         annot) */
                      "prim": $010-PtGRANAD.michelson.v1.primitives,
                      "args"?:
                        [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
                      "annots"?: [ string ... ] } } ... ],
      "balance_updates"?:
        $010-PtGRANAD.operation_metadata.alpha.balance_updates,
      "originated_contracts"?: [ $010-PtGRANAD.contract_id ... ],
      "consumed_gas"?: $positive_bignum,
      "consumed_milligas"?: $positive_bignum,
      "storage_size"?: $bignum,
      "paid_storage_size_diff"?: $bignum,
      "lazy_storage_diff"?: $010-PtGRANAD.lazy_storage_diff }
    || { /* Failed */
         "status": "failed",
         "errors": [ $010-PtGRANAD.error ... ] }
    || { /* Skipped */
         "status": "skipped" }
    || { /* Backtracked */
         "status": "backtracked",
         "errors"?: [ $010-PtGRANAD.error ... ],
         "big_map_diff"?:
           [ { /* update */
               "action": "update",
               "big_map": $bignum,
               "key_hash": $script_expr,
               "key":
                 { /* Int */
                   "int": $bignum }
                 || { /* String */
                      "string": $unistring }
                 || { /* Bytes */
                      "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                 || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
                 /* Sequence */
                 || { /* Generic prim (any number of args with or without
                         annot) */
                      "prim": $010-PtGRANAD.michelson.v1.primitives,
                      "args"?:
                        [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
                      "annots"?: [ string ... ] },
               "value"?:
                 { /* Int */
                   "int": $bignum }
                 || { /* String */
                      "string": $unistring }
                 || { /* Bytes */
                      "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                 || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
                 /* Sequence */
                 || { /* Generic prim (any number of args with or without
                         annot) */
                      "prim": $010-PtGRANAD.michelson.v1.primitives,
                      "args"?:
                        [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
                      "annots"?: [ string ... ] } }
             || { /* remove */
                  "action": "remove",
                  "big_map": $bignum }
             || { /* copy */
                  "action": "copy",
                  "source_big_map": $bignum,
                  "destination_big_map": $bignum }
             || { /* alloc */
                  "action": "alloc",
                  "big_map": $bignum,
                  "key_type":
                    { /* Int */
                      "int": $bignum }
                    || { /* String */
                         "string": $unistring }
                    || { /* Bytes */
                         "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                    || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
                    /* Sequence */
                    || { /* Generic prim (any number of args with or without
                            annot) */
                         "prim": $010-PtGRANAD.michelson.v1.primitives,
                         "args"?:
                           [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
                         "annots"?: [ string ... ] },
                  "value_type":
                    { /* Int */
                      "int": $bignum }
                    || { /* String */
                         "string": $unistring }
                    || { /* Bytes */
                         "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                    || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
                    /* Sequence */
                    || { /* Generic prim (any number of args with or without
                            annot) */
                         "prim": $010-PtGRANAD.michelson.v1.primitives,
                         "args"?:
                           [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
                         "annots"?: [ string ... ] } } ... ],
         "balance_updates"?:
           $010-PtGRANAD.operation_metadata.alpha.balance_updates,
         "originated_contracts"?: [ $010-PtGRANAD.contract_id ... ],
         "consumed_gas"?: $positive_bignum,
         "consumed_milligas"?: $positive_bignum,
         "storage_size"?: $bignum,
         "paid_storage_size_diff"?: $bignum,
         "lazy_storage_diff"?: $010-PtGRANAD.lazy_storage_diff }
  $010-PtGRANAD.operation.alpha.operation_result.reveal:
    { /* Applied */
      "status": "applied",
      "consumed_gas"?: $positive_bignum,
      "consumed_milligas"?: $positive_bignum }
    || { /* Failed */
         "status": "failed",
         "errors": [ $010-PtGRANAD.error ... ] }
    || { /* Skipped */
         "status": "skipped" }
    || { /* Backtracked */
         "status": "backtracked",
         "errors"?: [ $010-PtGRANAD.error ... ],
         "consumed_gas"?: $positive_bignum,
         "consumed_milligas"?: $positive_bignum }
  $010-PtGRANAD.operation.alpha.operation_result.transaction:
    { /* Applied */
      "status": "applied",
      "storage"?:
        { /* Int */
          "int": $bignum }
        || { /* String */
             "string": $unistring }
        || { /* Bytes */
             "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
        || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
        /* Sequence */
        || { /* Generic prim (any number of args with or without annot) */
             "prim": $010-PtGRANAD.michelson.v1.primitives,
             "args"?: [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
             "annots"?: [ string ... ] },
      "big_map_diff"?:
        [ { /* update */
            "action": "update",
            "big_map": $bignum,
            "key_hash": $script_expr,
            "key":
              { /* Int */
                "int": $bignum }
              || { /* String */
                   "string": $unistring }
              || { /* Bytes */
                   "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
              || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
              /* Sequence */
              || { /* Generic prim (any number of args with or without annot) */
                   "prim": $010-PtGRANAD.michelson.v1.primitives,
                   "args"?:
                     [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
                   "annots"?: [ string ... ] },
            "value"?:
              { /* Int */
                "int": $bignum }
              || { /* String */
                   "string": $unistring }
              || { /* Bytes */
                   "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
              || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
              /* Sequence */
              || { /* Generic prim (any number of args with or without annot) */
                   "prim": $010-PtGRANAD.michelson.v1.primitives,
                   "args"?:
                     [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
                   "annots"?: [ string ... ] } }
          || { /* remove */
               "action": "remove",
               "big_map": $bignum }
          || { /* copy */
               "action": "copy",
               "source_big_map": $bignum,
               "destination_big_map": $bignum }
          || { /* alloc */
               "action": "alloc",
               "big_map": $bignum,
               "key_type":
                 { /* Int */
                   "int": $bignum }
                 || { /* String */
                      "string": $unistring }
                 || { /* Bytes */
                      "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                 || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
                 /* Sequence */
                 || { /* Generic prim (any number of args with or without
                         annot) */
                      "prim": $010-PtGRANAD.michelson.v1.primitives,
                      "args"?:
                        [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
                      "annots"?: [ string ... ] },
               "value_type":
                 { /* Int */
                   "int": $bignum }
                 || { /* String */
                      "string": $unistring }
                 || { /* Bytes */
                      "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                 || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
                 /* Sequence */
                 || { /* Generic prim (any number of args with or without
                         annot) */
                      "prim": $010-PtGRANAD.michelson.v1.primitives,
                      "args"?:
                        [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
                      "annots"?: [ string ... ] } } ... ],
      "balance_updates"?:
        $010-PtGRANAD.operation_metadata.alpha.balance_updates,
      "originated_contracts"?: [ $010-PtGRANAD.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"?: $010-PtGRANAD.lazy_storage_diff }
    || { /* Failed */
         "status": "failed",
         "errors": [ $010-PtGRANAD.error ... ] }
    || { /* Skipped */
         "status": "skipped" }
    || { /* Backtracked */
         "status": "backtracked",
         "errors"?: [ $010-PtGRANAD.error ... ],
         "storage"?:
           { /* Int */
             "int": $bignum }
           || { /* String */
                "string": $unistring }
           || { /* Bytes */
                "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
           || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
           /* Sequence */
           || { /* Generic prim (any number of args with or without annot) */
                "prim": $010-PtGRANAD.michelson.v1.primitives,
                "args"?:
                  [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
                "annots"?: [ string ... ] },
         "big_map_diff"?:
           [ { /* update */
               "action": "update",
               "big_map": $bignum,
               "key_hash": $script_expr,
               "key":
                 { /* Int */
                   "int": $bignum }
                 || { /* String */
                      "string": $unistring }
                 || { /* Bytes */
                      "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                 || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
                 /* Sequence */
                 || { /* Generic prim (any number of args with or without
                         annot) */
                      "prim": $010-PtGRANAD.michelson.v1.primitives,
                      "args"?:
                        [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
                      "annots"?: [ string ... ] },
               "value"?:
                 { /* Int */
                   "int": $bignum }
                 || { /* String */
                      "string": $unistring }
                 || { /* Bytes */
                      "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                 || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
                 /* Sequence */
                 || { /* Generic prim (any number of args with or without
                         annot) */
                      "prim": $010-PtGRANAD.michelson.v1.primitives,
                      "args"?:
                        [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
                      "annots"?: [ string ... ] } }
             || { /* remove */
                  "action": "remove",
                  "big_map": $bignum }
             || { /* copy */
                  "action": "copy",
                  "source_big_map": $bignum,
                  "destination_big_map": $bignum }
             || { /* alloc */
                  "action": "alloc",
                  "big_map": $bignum,
                  "key_type":
                    { /* Int */
                      "int": $bignum }
                    || { /* String */
                         "string": $unistring }
                    || { /* Bytes */
                         "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                    || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
                    /* Sequence */
                    || { /* Generic prim (any number of args with or without
                            annot) */
                         "prim": $010-PtGRANAD.michelson.v1.primitives,
                         "args"?:
                           [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
                         "annots"?: [ string ... ] },
                  "value_type":
                    { /* Int */
                      "int": $bignum }
                    || { /* String */
                         "string": $unistring }
                    || { /* Bytes */
                         "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
                    || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
                    /* Sequence */
                    || { /* Generic prim (any number of args with or without
                            annot) */
                         "prim": $010-PtGRANAD.michelson.v1.primitives,
                         "args"?:
                           [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
                         "annots"?: [ string ... ] } } ... ],
         "balance_updates"?:
           $010-PtGRANAD.operation_metadata.alpha.balance_updates,
         "originated_contracts"?: [ $010-PtGRANAD.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"?: $010-PtGRANAD.lazy_storage_diff }
  $010-PtGRANAD.operation.alpha.operation_with_metadata:
    { /* Operation_with_metadata */
      "contents":
        [ $010-PtGRANAD.operation.alpha.operation_contents_and_result ... ],
      "signature"?: $Signature }
    || { /* Operation_without_metadata */
         "contents": [ $010-PtGRANAD.operation.alpha.contents ... ],
         "signature"?: $Signature }
  $010-PtGRANAD.operation_metadata.alpha.balance_updates:
    [ { /* Contract */
        "kind": "contract",
        "contract": $010-PtGRANAD.contract_id,
        "change": $int64,
        "origin": "block" || "migration" || "subsidy" }
      || { /* Rewards */
           "kind": "freezer",
           "category": "rewards",
           "delegate": $Signature.Public_key_hash,
           "cycle": integer ∈ [-2^31-1, 2^31],
           "change": $int64,
           "origin": "block" || "migration" || "subsidy" }
      || { /* Fees */
           "kind": "freezer",
           "category": "fees",
           "delegate": $Signature.Public_key_hash,
           "cycle": integer ∈ [-2^31-1, 2^31],
           "change": $int64,
           "origin": "block" || "migration" || "subsidy" }
      || { /* Deposits */
           "kind": "freezer",
           "category": "deposits",
           "delegate": $Signature.Public_key_hash,
           "cycle": integer ∈ [-2^31-1, 2^31],
           "change": $int64,
           "origin": "block" || "migration" || "subsidy" } ... ]
  $010-PtGRANAD.sapling_state_id:
    /* Sapling state identifier
       A sapling state identifier */
    $bignum
  $010-PtGRANAD.scripted.contracts:
    { "code":
        { /* Int */
          "int": $bignum }
        || { /* String */
             "string": $unistring }
        || { /* Bytes */
             "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
        || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
        /* Sequence */
        || { /* Generic prim (any number of args with or without annot) */
             "prim": $010-PtGRANAD.michelson.v1.primitives,
             "args"?: [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
             "annots"?: [ string ... ] },
      "storage":
        { /* Int */
          "int": $bignum }
        || { /* String */
             "string": $unistring }
        || { /* Bytes */
             "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
        || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
        /* Sequence */
        || { /* Generic prim (any number of args with or without annot) */
             "prim": $010-PtGRANAD.michelson.v1.primitives,
             "args"?: [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
             "annots"?: [ string ... ] } }
  $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
  $bignum:
    /* Big number
       Decimal representation of a big number */
    string
  $block_hash:
    /* A block identifier (Base58Check-encoded) */
    $unistring
  $cycle_nonce:
    /* A nonce hash (Base58Check-encoded) */
    $unistring
  $fitness:
    /* Block fitness
       The fitness, or score, of a block, that allow the Tezos to decide
       which chain is the best. A fitness value is a list of byte sequences.
       They are compared as follows: shortest lists are smaller; lists of the
       same length are compared according to the lexicographical order. */
    [ /^([a-zA-Z0-9][a-zA-Z0-9])*$/ ... ]
  $int64:
    /* 64 bit integers
       Decimal representation of 64 bit integers */
    string
  $micheline.010-PtGRANAD.michelson_v1.expression:
    { /* Int */
      "int": $bignum }
    || { /* String */
         "string": $unistring }
    || { /* Bytes */
         "bytes": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
    || [ $micheline.010-PtGRANAD.michelson_v1.expression ... ]
    /* Sequence */
    || { /* Generic prim (any number of args with or without annot) */
         "prim": $010-PtGRANAD.michelson.v1.primitives,
         "args"?: [ $micheline.010-PtGRANAD.michelson_v1.expression ... ],
         "annots"?: [ string ... ] }
  $positive_bignum:
    /* Positive big number
       Decimal representation of a positive big number */
    string
  $sapling.DH.epk: /^([a-zA-Z0-9][a-zA-Z0-9])*$/
  $sapling.transaction.ciphertext:
    { "cv": $sapling.transaction.commitment_value,
      "epk": $sapling.DH.epk,
      "payload_enc": /^([a-zA-Z0-9][a-zA-Z0-9])*$/,
      "nonce_enc": /^([a-zA-Z0-9][a-zA-Z0-9])*$/,
      "payload_out": /^([a-zA-Z0-9][a-zA-Z0-9])*$/,
      "nonce_out": /^([a-zA-Z0-9][a-zA-Z0-9])*$/ }
  $sapling.transaction.commitment: /^([a-zA-Z0-9][a-zA-Z0-9])*$/
  $sapling.transaction.commitment_value: /^([a-zA-Z0-9][a-zA-Z0-9])*$/
  $sapling.transaction.nullifier: /^([a-zA-Z0-9][a-zA-Z0-9])*$/
  $script_expr:
    /* A script expression ID (Base58Check-encoded) */
    $unistring
  $timestamp.protocol:
    /* A timestamp as seen by the protocol: second-level precision, epoch
       based. */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }
  +-----------------------+----------+-------------------------+
  | Name                  | Size     | Contents                |
  +=======================+==========+=========================+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer |
  +-----------------------+----------+-------------------------+
  | Unnamed field 0       | Variable | sequence of $X_0        |
  +-----------------------+----------+-------------------------+


  X_0
  ***

  +-----------------------+----------------------+-------------------------+
  | Name                  | Size                 | Contents                |
  +=======================+======================+=========================+
  | # bytes in next field | 4 bytes              | unsigned 30-bit integer |
  +-----------------------+----------------------+-------------------------+
  | Unnamed field 0       | Determined from data | $X_2653                 |
  +-----------------------+----------------------+-------------------------+


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


  Operation_without_metadata (tag 1)
  ==================================

  +---------------------------------+----------+----------------------------------------------------+
  | Name                            | Size     | Contents                                           |
  +=================================+==========+====================================================+
  | Tag                             | 1 byte   | unsigned 8-bit integer                             |
  +---------------------------------+----------+----------------------------------------------------+
  | # bytes in next field           | 4 bytes  | unsigned 30-bit integer                            |
  +---------------------------------+----------+----------------------------------------------------+
  | contents                        | Variable | sequence of $010-PtGRANAD.operation.alpha.contents |
  +---------------------------------+----------+----------------------------------------------------+
  | ? presence of field "signature" | 1 byte   | boolean (0 for false, 255 for true)                |
  +---------------------------------+----------+----------------------------------------------------+
  | signature                       | 64 bytes | bytes                                              |
  +---------------------------------+----------+----------------------------------------------------+


  010-PtGRANAD.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_2649                |
  +----------+----------------------+------------------------+


  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 | $010-PtGRANAD.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             | $010-PtGRANAD.inlined.endorsement                      |
  +-----------------------+----------------------+--------------------------------------------------------+
  | # bytes in next field | 4 bytes              | unsigned 30-bit integer                                |
  +-----------------------+----------------------+--------------------------------------------------------+
  | op2                   | Variable             | $010-PtGRANAD.inlined.endorsement                      |
  +-----------------------+----------------------+--------------------------------------------------------+
  | slot                  | 2 bytes              | unsigned 16-bit integer                                |
  +-----------------------+----------------------+--------------------------------------------------------+
  | metadata              | Determined from data | $010-PtGRANAD.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 | $010-PtGRANAD.block_header.alpha.full_header           |
  +-----------------------+----------------------+--------------------------------------------------------+
  | # bytes in next field | 4 bytes              | unsigned 30-bit integer                                |
  +-----------------------+----------------------+--------------------------------------------------------+
  | bh2                   | Determined from data | $010-PtGRANAD.block_header.alpha.full_header           |
  +-----------------------+----------------------+--------------------------------------------------------+
  | metadata              | Determined from data | $010-PtGRANAD.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 | $010-PtGRANAD.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             | $010-PtGRANAD.inlined.endorsement |
  +-----------------------+----------------------+-----------------------------------+
  | slot                  | 2 bytes              | unsigned 16-bit integer           |
  +-----------------------+----------------------+-----------------------------------+
  | metadata              | Determined from data | $X_2649                           |
  +-----------------------+----------------------+-----------------------------------+


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


  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             | $010-PtGRANAD.contract_id           |
  +----------------------------------+----------------------+-------------------------------------+
  | ? presence of field "parameters" | 1 byte               | boolean (0 for false, 255 for true) |
  +----------------------------------+----------------------+-------------------------------------+
  | parameters                       | Determined from data | $X_2362                             |
  +----------------------------------+----------------------+-------------------------------------+
  | metadata                         | Determined from data | $X_1309                             |
  +----------------------------------+----------------------+-------------------------------------+


  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 | $010-PtGRANAD.scripted.contracts    |
  +--------------------------------+----------------------+-------------------------------------+
  | metadata                       | Determined from data | $X_530                              |
  +--------------------------------+----------------------+-------------------------------------+


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


  X_2649
  ******

  +--------------------------------------------------------------------------+----------+-------------------------------------+
  | Name                                                                     | Size     | Contents                            |
  +==========================================================================+==========+=====================================+
  | # bytes in field "010-PtGRANAD.operation_metadata.alpha.balance_updates" | 4 bytes  | unsigned 30-bit integer             |
  +--------------------------------------------------------------------------+----------+-------------------------------------+
  | balance_updates                                                          | Variable | sequence of $X_3                    |
  +--------------------------------------------------------------------------+----------+-------------------------------------+
  | delegate                                                                 | 21 bytes | $public_key_hash                    |
  +--------------------------------------------------------------------------+----------+-------------------------------------+
  | # bytes in next field                                                    | 4 bytes  | unsigned 30-bit integer             |
  +--------------------------------------------------------------------------+----------+-------------------------------------+
  | slots                                                                    | Variable | sequence of unsigned 16-bit integer |
  +--------------------------------------------------------------------------+----------+-------------------------------------+


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

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

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


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

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


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

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


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

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

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


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

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


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

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


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

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

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


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

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


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

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


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

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


  010-PtGRANAD.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                |
  +---------------+----------+------------------------+


  010-PtGRANAD.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_3        |
  +-----------------------+----------+-------------------------+


  010-PtGRANAD.inlined.endorsement
  ********************************

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


  010-PtGRANAD.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  |
  +-------+---------+------------------------+


  010-PtGRANAD.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                               |
  +---------------------------------------+----------+-------------------------------------+
  | liquidity_baking_escape_vote          | 1 byte   | boolean (0 for false, 255 for true) |
  +---------------------------------------+----------+-------------------------------------+
  | signature                             | 64 bytes | bytes                               |
  +---------------------------------------+----------+-------------------------------------+


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

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


  X_2105
  ******

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


  N.t
  ***

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

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


  010-PtGRANAD.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_2632
  ******

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


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

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

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


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

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


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

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


  010-PtGRANAD.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_18                                 |
  +--------------------------------------------------------------------------+----------------------+---------------------------------------+
  | ? presence of field "big_map_diff"                                       | 1 byte               | boolean (0 for false, 255 for true)   |
  +--------------------------------------------------------------------------+----------------------+---------------------------------------+
  | big_map_diff                                                             | Determined from data | $X_9                                  |
  +--------------------------------------------------------------------------+----------------------+---------------------------------------+
  | # bytes in field "010-PtGRANAD.operation_metadata.alpha.balance_updates" | 4 bytes              | unsigned 30-bit integer               |
  +--------------------------------------------------------------------------+----------------------+---------------------------------------+
  | balance_updates                                                          | Variable             | sequence of $X_3                      |
  +--------------------------------------------------------------------------+----------------------+---------------------------------------+
  | # bytes in next field                                                    | 4 bytes              | unsigned 30-bit integer               |
  +--------------------------------------------------------------------------+----------------------+---------------------------------------+
  | originated_contracts                                                     | Variable             | sequence of $010-PtGRANAD.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 | $010-PtGRANAD.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 $010-PtGRANAD.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_2632                               |
  +--------------------------------------------------------------------------+----------------------+---------------------------------------+
  | ? presence of field "storage"                                            | 1 byte               | boolean (0 for false, 255 for true)   |
  +--------------------------------------------------------------------------+----------------------+---------------------------------------+
  | storage                                                                  | Determined from data | $X_18                                 |
  +--------------------------------------------------------------------------+----------------------+---------------------------------------+
  | ? presence of field "big_map_diff"                                       | 1 byte               | boolean (0 for false, 255 for true)   |
  +--------------------------------------------------------------------------+----------------------+---------------------------------------+
  | big_map_diff                                                             | Determined from data | $X_9                                  |
  +--------------------------------------------------------------------------+----------------------+---------------------------------------+
  | # bytes in field "010-PtGRANAD.operation_metadata.alpha.balance_updates" | 4 bytes              | unsigned 30-bit integer               |
  +--------------------------------------------------------------------------+----------------------+---------------------------------------+
  | balance_updates                                                          | Variable             | sequence of $X_3                      |
  +--------------------------------------------------------------------------+----------------------+---------------------------------------+
  | # bytes in next field                                                    | 4 bytes              | unsigned 30-bit integer               |
  +--------------------------------------------------------------------------+----------------------+---------------------------------------+
  | originated_contracts                                                     | Variable             | sequence of $010-PtGRANAD.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 | $010-PtGRANAD.lazy_storage_diff       |
  +--------------------------------------------------------------------------+----------------------+---------------------------------------+


  X_2631 (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_132                 |
  +------+----------------------+------------------------+


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


  X_2611
  ******

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


  Z.t
  ***

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

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


  010-PtGRANAD.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        |
  +-------------+-----------------------+


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

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

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


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


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

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


  X_2553
  ******

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


  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_18                  |
  +------------+----------------------+------------------------+
  | value_type | Determined from data | $X_18                  |
  +------------+----------------------+------------------------+


  X_2362
  ******

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


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

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

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


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

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


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

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


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

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


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

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


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

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


  010-PtGRANAD.operation.alpha.operation_result.origination (Determined from data, 8-bit tag)
  *******************************************************************************************

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

  +--------------------------------------------------------------------------+----------------------+---------------------------------------+
  | Name                                                                     | Size                 | Contents                              |
  +==========================================================================+======================+=======================================+
  | Tag                                                                      | 1 byte               | unsigned 8-bit integer                |
  +--------------------------------------------------------------------------+----------------------+---------------------------------------+
  | ? presence of field "big_map_diff"                                       | 1 byte               | boolean (0 for false, 255 for true)   |
  +--------------------------------------------------------------------------+----------------------+---------------------------------------+
  | big_map_diff                                                             | Determined from data | $X_9                                  |
  +--------------------------------------------------------------------------+----------------------+---------------------------------------+
  | # bytes in field "010-PtGRANAD.operation_metadata.alpha.balance_updates" | 4 bytes              | unsigned 30-bit integer               |
  +--------------------------------------------------------------------------+----------------------+---------------------------------------+
  | balance_updates                                                          | Variable             | sequence of $X_3                      |
  +--------------------------------------------------------------------------+----------------------+---------------------------------------+
  | # bytes in next field                                                    | 4 bytes              | unsigned 30-bit integer               |
  +--------------------------------------------------------------------------+----------------------+---------------------------------------+
  | originated_contracts                                                     | Variable             | sequence of $010-PtGRANAD.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 | $010-PtGRANAD.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 $010-PtGRANAD.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_2632                               |
  +--------------------------------------------------------------------------+----------------------+---------------------------------------+
  | ? presence of field "big_map_diff"                                       | 1 byte               | boolean (0 for false, 255 for true)   |
  +--------------------------------------------------------------------------+----------------------+---------------------------------------+
  | big_map_diff                                                             | Determined from data | $X_9                                  |
  +--------------------------------------------------------------------------+----------------------+---------------------------------------+
  | # bytes in field "010-PtGRANAD.operation_metadata.alpha.balance_updates" | 4 bytes              | unsigned 30-bit integer               |
  +--------------------------------------------------------------------------+----------------------+---------------------------------------+
  | balance_updates                                                          | Variable             | sequence of $X_3                      |
  +--------------------------------------------------------------------------+----------------------+---------------------------------------+
  | # bytes in next field                                                    | 4 bytes              | unsigned 30-bit integer               |
  +--------------------------------------------------------------------------+----------------------+---------------------------------------+
  | originated_contracts                                                     | Variable             | sequence of $010-PtGRANAD.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 | $010-PtGRANAD.lazy_storage_diff       |
  +--------------------------------------------------------------------------+----------------------+---------------------------------------+


  010-PtGRANAD.scripted.contracts
  *******************************

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


  X_1309
  ******

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


  X_530
  *****

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


  010-PtGRANAD.operation.alpha.internal_operation_result (Determined from data, 8-bit tag)
  ****************************************************************************************

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

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


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

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


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

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


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

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


  010-PtGRANAD.lazy_storage_diff
  ******************************

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


  X_132 (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_2611     |
  +-----------------------+----------+-------------------------+


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


  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_2611     |
  +-----------------------+----------------------+-------------------------+
  | key_type              | Determined from data | $X_18                   |
  +-----------------------+----------------------+-------------------------+
  | value_type            | Determined from data | $X_18                   |
  +-----------------------+----------------------+-------------------------+


  X_50
  ****

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


  X_9
  ***

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


  X_18 (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_18       |
  +-----------------------+----------+-------------------------+


  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 010-PtGRANAD.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 010-PtGRANAD.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 010-PtGRANAD.michelson.v1.primitives) |
  +------+----------------------+-------------------------------------------------------------------------------------------+
  | arg  | Determined from data | $X_18                                                                                     |
  +------+----------------------+-------------------------------------------------------------------------------------------+


  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 010-PtGRANAD.michelson.v1.primitives) |
  +-----------------------+----------------------+-------------------------------------------------------------------------------------------+
  | arg                   | Determined from data | $X_18                                                                                     |
  +-----------------------+----------------------+-------------------------------------------------------------------------------------------+
  | # 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 010-PtGRANAD.michelson.v1.primitives) |
  +------+----------------------+-------------------------------------------------------------------------------------------+
  | arg1 | Determined from data | $X_18                                                                                     |
  +------+----------------------+-------------------------------------------------------------------------------------------+
  | arg2 | Determined from data | $X_18                                                                                     |
  +------+----------------------+-------------------------------------------------------------------------------------------+


  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 010-PtGRANAD.michelson.v1.primitives) |
  +-----------------------+----------------------+-------------------------------------------------------------------------------------------+
  | arg1                  | Determined from data | $X_18                                                                                     |
  +-----------------------+----------------------+-------------------------------------------------------------------------------------------+
  | arg2                  | Determined from data | $X_18                                                                                     |
  +-----------------------+----------------------+-------------------------------------------------------------------------------------------+
  | # 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 010-PtGRANAD.michelson.v1.primitives) |
  +-----------------------+----------+-------------------------------------------------------------------------------------------+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer                                                                   |
  +-----------------------+----------+-------------------------------------------------------------------------------------------+
  | args                  | Variable | sequence of $X_18                                                                         |
  +-----------------------+----------+-------------------------------------------------------------------------------------------+
  | # 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                   |
  +-----------------------+----------+-------------------------+


  010-PtGRANAD.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 $010-PtGRANAD.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_2632                             |
  +------------------------------+----------------------+-------------------------------------+
  | consumed_gas                 | Determined from data | $N.t                                |
  +------------------------------+----------------------+-------------------------------------+
  | consumed_milligas            | Determined from data | $N.t                                |
  +------------------------------+----------------------+-------------------------------------+


  X_3
  ***

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


  010-PtGRANAD.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 | $010-PtGRANAD.inlined.endorsement |
  +-----------------------+----------+-----------------------------------+
  | # bytes in next field | 4 bytes  | unsigned 30-bit integer           |
  +-----------------------+----------+-----------------------------------+
  | op2                   | Variable | $010-PtGRANAD.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 | $010-PtGRANAD.block_header.alpha.full_header |
  +-----------------------+----------------------+----------------------------------------------+
  | # bytes in next field | 4 bytes              | unsigned 30-bit integer                      |
  +-----------------------+----------------------+----------------------------------------------+
  | bh2                   | Determined from data | $010-PtGRANAD.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 | $010-PtGRANAD.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             | $010-PtGRANAD.contract_id           |
  +----------------------------------+----------------------+-------------------------------------+
  | ? presence of field "parameters" | 1 byte               | boolean (0 for false, 255 for true) |
  +----------------------------------+----------------------+-------------------------------------+
  | parameters                       | Determined from data | $X_2362                             |
  +----------------------------------+----------------------+-------------------------------------+


  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 | $010-PtGRANAD.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                    |
  +--------------------------------+----------------------+-------------------------------------+

  

GET ../<block_id>/live_blocks

List the ancestors of the given block which, if referred to as the branch in an operation header, are recent enough for that operation to be included in the current block.

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


  

GET ../<block_id>/metadata