RPC Errors

This document references possible errors that can come from RPC calls. It is generated from the OCaml source code (master branch).

Protocol Alpha

Inconsistent types (typechecking error)

This is the basic type clash error, that appears in several places where the equality of two types have to be proven, it is always accompanied with another error that provides more context.

Id : proto.alpha.InconsistentTypesTypeError
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.InconsistentTypesTypeError",
    "firstType": $micheline.michelson_v1.expression,
    "otherType": $micheline.michelson_v1.expression }
  $bignum:
    /* Big number
       Decimal representation of a big number */
    string
  $micheline.michelson_v1.expression:
    { "int": $bignum }
    || { "string": string }
    || { "bytes": /^[a-zA-Z0-9]+$/ }
    || [ $micheline.michelson_v1.expression ... ]
    || { "prim": $michelson.v1.primitives,
         "args"?: [ $micheline.michelson_v1.expression ... ],
         "annots"?: [ string ... ] }
  $michelson.v1.primitives:
    "ADD"
    | "LE"
    | "UPDATE"
    | "unit"
    | "string"
    | "COMPARE"
    | "LAMBDA"
    | "LOOP"
    | "Elt"
    | "IMPLICIT_ACCOUNT"
    | "NONE"
    | "signature"
    | "set"
    | "mutez"
    | "BLAKE2B"
    | "SHA256"
    | "ITER"
    | "bool"
    | "MAP"
    | "UNIT"
    | "DIP"
    | "PACK"
    | "pair"
    | "SIZE"
    | "Right"
    | "map"
    | "IF_CONS"
    | "LSR"
    | "SET_DELEGATE"
    | "storage"
    | "XOR"
    | "CDR"
    | "TRANSFER_TOKENS"
    | "SOME"
    | "False"
    | "SHA512"
    | "CHECK_SIGNATURE"
    | "BALANCE"
    | "lambda"
    | "operation"
    | "EMPTY_SET"
    | "SWAP"
    | "MEM"
    | "RIGHT"
    | "CONTRACT"
    | "or"
    | "CONCAT"
    | "nat"
    | "bytes"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "NOT"
    | "LEFT"
    | "timestamp"
    | "AMOUNT"
    | "DROP"
    | "ABS"
    | "contract"
    | "GE"
    | "PUSH"
    | "LT"
    | "address"
    | "NEQ"
    | "NEG"
    | "None"
    | "CONS"
    | "EXEC"
    | "NIL"
    | "CAST"
    | "MUL"
    | "ADDRESS"
    | "EDIV"
    | "STEPS_TO_QUOTA"
    | "SUB"
    | "INT"
    | "SOURCE"
    | "CAR"
    | "CREATE_ACCOUNT"
    | "LSL"
    | "OR"
    | "IF_NONE"
    | "SELF"
    | "IF"
    | "Left"
    | "int"
    | "big_map"
    | "SENDER"
    | "option"
    | "DUP"
    | "EQ"
    | "NOW"
    | "key_hash"
    | "GET"
    | "list"
    | "key"
    | "True"
    | "GT"
    | "parameter"
    | "IF_LEFT"
    | "FAILWITH"
    | "PAIR"
    | "LOOP_LEFT"
    | "Pair"
    | "RENAME"
    | "EMPTY_MAP"
    | "CREATE_CONTRACT"
    | "HASH_KEY"
    | "ISNAT"
    | "code"
    | "AND"

Contract supplied an invalid parameter

Either no parameter was supplied to a contract with a non-unit parameter type, a non-unit parameter was passed to an account, or a parameter was supplied of the wrong type

Id : proto.alpha.badContractParameter
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.badContractParameter",
    "contract": $contract_id }
  $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. */
    string

Bad return (typechecking error)

Unexpected stack at the end of a lambda or script.

Id : proto.alpha.badReturnTypeError
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.badReturnTypeError",
    "location": $micheline.location,
    "expectedReturnType": $micheline.michelson_v1.expression,
    "wrongStackType":
      [ { "type": $micheline.michelson_v1.expression,
          "annots"?: [ string ... ] } ... ] }
  $bignum:
    /* Big number
       Decimal representation of a big number */
    string
  $micheline.location:
    /* Canonical location in a Micheline expression
       The location of a node in a Micheline expression tree in prefix
       order, with zero being the root and adding one for every basic node,
       sequence and primitive application. */
    integer ∈ [-2^30-2, 2^30+2]
  $micheline.michelson_v1.expression:
    { "int": $bignum }
    || { "string": string }
    || { "bytes": /^[a-zA-Z0-9]+$/ }
    || [ $micheline.michelson_v1.expression ... ]
    || { "prim": $michelson.v1.primitives,
         "args"?: [ $micheline.michelson_v1.expression ... ],
         "annots"?: [ string ... ] }
  $michelson.v1.primitives:
    "ADD"
    | "LE"
    | "UPDATE"
    | "unit"
    | "string"
    | "COMPARE"
    | "LAMBDA"
    | "LOOP"
    | "Elt"
    | "IMPLICIT_ACCOUNT"
    | "NONE"
    | "signature"
    | "set"
    | "mutez"
    | "BLAKE2B"
    | "SHA256"
    | "ITER"
    | "bool"
    | "MAP"
    | "UNIT"
    | "DIP"
    | "PACK"
    | "pair"
    | "SIZE"
    | "Right"
    | "map"
    | "IF_CONS"
    | "LSR"
    | "SET_DELEGATE"
    | "storage"
    | "XOR"
    | "CDR"
    | "TRANSFER_TOKENS"
    | "SOME"
    | "False"
    | "SHA512"
    | "CHECK_SIGNATURE"
    | "BALANCE"
    | "lambda"
    | "operation"
    | "EMPTY_SET"
    | "SWAP"
    | "MEM"
    | "RIGHT"
    | "CONTRACT"
    | "or"
    | "CONCAT"
    | "nat"
    | "bytes"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "NOT"
    | "LEFT"
    | "timestamp"
    | "AMOUNT"
    | "DROP"
    | "ABS"
    | "contract"
    | "GE"
    | "PUSH"
    | "LT"
    | "address"
    | "NEQ"
    | "NEG"
    | "None"
    | "CONS"
    | "EXEC"
    | "NIL"
    | "CAST"
    | "MUL"
    | "ADDRESS"
    | "EDIV"
    | "STEPS_TO_QUOTA"
    | "SUB"
    | "INT"
    | "SOURCE"
    | "CAR"
    | "CREATE_ACCOUNT"
    | "LSL"
    | "OR"
    | "IF_NONE"
    | "SELF"
    | "IF"
    | "Left"
    | "int"
    | "big_map"
    | "SENDER"
    | "option"
    | "DUP"
    | "EQ"
    | "NOW"
    | "key_hash"
    | "GET"
    | "list"
    | "key"
    | "True"
    | "GT"
    | "parameter"
    | "IF_LEFT"
    | "FAILWITH"
    | "PAIR"
    | "LOOP_LEFT"
    | "Pair"
    | "RENAME"
    | "EMPTY_MAP"
    | "CREATE_CONTRACT"
    | "HASH_KEY"
    | "ISNAT"
    | "code"
    | "AND"

Bad stack item (typechecking error)

The type of a stack item is unexpected (this error is always accompanied by a more precise one).

Id : proto.alpha.badStackItemTypeError
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.badStackItemTypeError",
    "itemLevel": integer ∈ [-2^15, 2^15-1] }

Bad stack (typechecking error)

The stack has an unexpected length or contents.

Id : proto.alpha.badStackTypeError
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.badStackTypeError",
    "location": $micheline.location,
    "primitiveName": $michelson.v1.primitives,
    "relevantStackPortion": integer ∈ [-2^15, 2^15-1],
    "wrongStackType":
      [ { "type": $micheline.michelson_v1.expression,
          "annots"?: [ string ... ] } ... ] }
  $bignum:
    /* Big number
       Decimal representation of a big number */
    string
  $micheline.location:
    /* Canonical location in a Micheline expression
       The location of a node in a Micheline expression tree in prefix
       order, with zero being the root and adding one for every basic node,
       sequence and primitive application. */
    integer ∈ [-2^30-2, 2^30+2]
  $micheline.michelson_v1.expression:
    { "int": $bignum }
    || { "string": string }
    || { "bytes": /^[a-zA-Z0-9]+$/ }
    || [ $micheline.michelson_v1.expression ... ]
    || { "prim": $michelson.v1.primitives,
         "args"?: [ $micheline.michelson_v1.expression ... ],
         "annots"?: [ string ... ] }
  $michelson.v1.primitives:
    "ADD"
    | "LE"
    | "UPDATE"
    | "unit"
    | "string"
    | "COMPARE"
    | "LAMBDA"
    | "LOOP"
    | "Elt"
    | "IMPLICIT_ACCOUNT"
    | "NONE"
    | "signature"
    | "set"
    | "mutez"
    | "BLAKE2B"
    | "SHA256"
    | "ITER"
    | "bool"
    | "MAP"
    | "UNIT"
    | "DIP"
    | "PACK"
    | "pair"
    | "SIZE"
    | "Right"
    | "map"
    | "IF_CONS"
    | "LSR"
    | "SET_DELEGATE"
    | "storage"
    | "XOR"
    | "CDR"
    | "TRANSFER_TOKENS"
    | "SOME"
    | "False"
    | "SHA512"
    | "CHECK_SIGNATURE"
    | "BALANCE"
    | "lambda"
    | "operation"
    | "EMPTY_SET"
    | "SWAP"
    | "MEM"
    | "RIGHT"
    | "CONTRACT"
    | "or"
    | "CONCAT"
    | "nat"
    | "bytes"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "NOT"
    | "LEFT"
    | "timestamp"
    | "AMOUNT"
    | "DROP"
    | "ABS"
    | "contract"
    | "GE"
    | "PUSH"
    | "LT"
    | "address"
    | "NEQ"
    | "NEG"
    | "None"
    | "CONS"
    | "EXEC"
    | "NIL"
    | "CAST"
    | "MUL"
    | "ADDRESS"
    | "EDIV"
    | "STEPS_TO_QUOTA"
    | "SUB"
    | "INT"
    | "SOURCE"
    | "CAR"
    | "CREATE_ACCOUNT"
    | "LSL"
    | "OR"
    | "IF_NONE"
    | "SELF"
    | "IF"
    | "Left"
    | "int"
    | "big_map"
    | "SENDER"
    | "option"
    | "DUP"
    | "EQ"
    | "NOW"
    | "key_hash"
    | "GET"
    | "list"
    | "key"
    | "True"
    | "GT"
    | "parameter"
    | "IF_LEFT"
    | "FAILWITH"
    | "PAIR"
    | "LOOP_LEFT"
    | "Pair"
    | "RENAME"
    | "EMPTY_MAP"
    | "CREATE_CONTRACT"
    | "HASH_KEY"
    | "ISNAT"
    | "code"
    | "AND"

Insufficient block proof-of-work stamp

The block's proof-of-work stamp is insufficient

Id : proto.alpha.baking.insufficient_proof_of_work
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.baking.insufficient_proof_of_work" }

Invalid block signature

A block was not signed with the expected private key.

Id : proto.alpha.baking.invalid_block_signature
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.baking.invalid_block_signature",
    "block": $block_hash,
    "expected": $Signature.Public_key_hash }
  $Signature.Public_key_hash:
    /* A Ed25519, Secp256k1, or P256 public key hash (Base58Check-encoded) */
    string
  $block_hash:
    /* A block identifier (Base58Check-encoded) */
    string

Invalid fitness gap

The gap of fitness is out of bounds

Id : proto.alpha.baking.invalid_fitness_gap
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.baking.invalid_fitness_gap",
    "maximum": $int64,
    "provided": $int64 }
  $int64:
    /* 64 bit integers
       Decimal representation of 64 bit integers */
    string

Invalid block signature

The block's signature is invalid

Id : proto.alpha.baking.invalid_signature
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.baking.invalid_signature" }

Block forged too early

The block timestamp is before the first slot for this baker at this level

Id : proto.alpha.baking.timestamp_too_early
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.baking.timestamp_too_early",
    "minimum": $timestamp,
    "provided": $timestamp }
  $int64:
    /* 64 bit integers
       Decimal representation of 64 bit integers */
    string
  $timestamp: $timestamp.rfc || $int64
  $timestamp.rfc:
    /* RFC 3339 formatted timestamp
       A date in human readble form as specified in RFC 3339. */
    string

Endorsement from unexpected delegate

The operation is signed by a delegate without endorsement rights.

Id : proto.alpha.baking.unexpected_endorsement
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.baking.unexpected_endorsement",
    ... }

Inconsistent double baking evidence

A double-baking evidence is inconsistent (two distinct delegates)

Id : proto.alpha.block.inconsistent_double_baking_evidence
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.block.inconsistent_double_baking_evidence",
    "delegate1": $Signature.Public_key_hash,
    "delegate2": $Signature.Public_key_hash }
  $Signature.Public_key_hash:
    /* A Ed25519, Secp256k1, or P256 public key hash (Base58Check-encoded) */
    string

Inconsistent double endorsement evidence

A double-endorsement evidence is inconsistent (two distinct delegates)

Id : proto.alpha.block.inconsistent_double_endorsement_evidence
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.block.inconsistent_double_endorsement_evidence",
    "delegate1": $Signature.Public_key_hash,
    "delegate2": $Signature.Public_key_hash }
  $Signature.Public_key_hash:
    /* A Ed25519, Secp256k1, or P256 public key hash (Base58Check-encoded) */
    string

Invalid commitment in block header

The block header has invalid commitment.

Id : proto.alpha.block.invalid_commitment
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.block.invalid_commitment",
    "expected": boolean }

Invalid double baking evidence

A double-baking evidence is inconsistent (two distinct level)

Id : proto.alpha.block.invalid_double_baking_evidence
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.block.invalid_double_baking_evidence",
    "hash1": $block_hash,
    "level1": integer ∈ [-2^31-2, 2^31+2],
    "hash2": $block_hash,
    "level2": integer ∈ [-2^31-2, 2^31+2] }
  $block_hash:
    /* A block identifier (Base58Check-encoded) */
    string

Invalid double endorsement evidence

A double-endorsement evidence is malformed

Id : proto.alpha.block.invalid_double_endorsement_evidence
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.block.invalid_double_endorsement_evidence" }

Multiple revelations were included in a manager operation

A manager operation should not contain more than one revelation

Id : proto.alpha.block.multiple_revelation
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.block.multiple_revelation" }

Outdated double baking evidence

A double-baking evidence is outdated.

Id : proto.alpha.block.outdated_double_baking_evidence
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.block.outdated_double_baking_evidence",
    "level": integer ∈ [-2^31-2, 2^31+2],
    "last": integer ∈ [-2^31-2, 2^31+2] }

Outdated double endorsement evidence

A double-endorsement evidence is outdated.

Id : proto.alpha.block.outdated_double_endorsement_evidence
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.block.outdated_double_endorsement_evidence",
    "level": integer ∈ [-2^31-2, 2^31+2],
    "last": integer ∈ [-2^31-2, 2^31+2] }

Too early double baking evidence

A double-baking evidence is in the future

Id : proto.alpha.block.too_early_double_baking_evidence
Category : temporary

  { "kind": "temporary",
    "id": "proto.alpha.block.too_early_double_baking_evidence",
    "level": integer ∈ [-2^31-2, 2^31+2],
    "current": integer ∈ [-2^31-2, 2^31+2] }

Too early double endorsement evidence

A double-endorsement evidence is in the future

Id : proto.alpha.block.too_early_double_endorsement_evidence
Category : temporary

  { "kind": "temporary",
    "id": "proto.alpha.block.too_early_double_endorsement_evidence",
    "level": integer ∈ [-2^31-2, 2^31+2],
    "current": integer ∈ [-2^31-2, 2^31+2] }

Unrequired double baking evidence

A double-baking evidence is unrequired

Id : proto.alpha.block.unrequired_double_baking_evidence
Category : branch

  { "kind": "branch",
    "id": "proto.alpha.block.unrequired_double_baking_evidence" }

Unrequired double endorsement evidence

A double-endorsement evidence is unrequired

Id : proto.alpha.block.unrequired_double_endorsement_evidence
Category : branch

  { "kind": "branch",
    "id": "proto.alpha.block.unrequired_double_endorsement_evidence" }

Not enough gas to serialize error

The error was too big to be serialized with the provided gas

Id : proto.alpha.cannotSerializeError
Category : temporary

  { "kind": "temporary",
    "id": "proto.alpha.cannotSerializeError" }

Not enough gas to serialize argument of FAILWITH

Argument of FAILWITH was too big to be serialized with the provided gas

Id : proto.alpha.cannotSerializeFailure
Category : temporary

  { "kind": "temporary",
    "id": "proto.alpha.cannotSerializeFailure" }

Not enough gas to serialize execution trace

Execution trace with stacks was to big to be serialized with the provided gas

Id : proto.alpha.cannotSerializeLog
Category : temporary

  { "kind": "temporary",
    "id": "proto.alpha.cannotSerializeLog" }

Not enough gas to serialize execution storage

The returned storage was too big to be serialized with the provided gas

Id : proto.alpha.cannotSerializeStorage
Category : temporary

  { "kind": "temporary",
    "id": "proto.alpha.cannotSerializeStorage" }

Comparable type expected (typechecking error)

A non comparable type was used in a place where only comparable types are accepted.

Id : proto.alpha.comparableTypeExpectedTypeError
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.comparableTypeExpectedTypeError",
    "location": $micheline.location,
    "wrongType": $micheline.michelson_v1.expression }
  $bignum:
    /* Big number
       Decimal representation of a big number */
    string
  $micheline.location:
    /* Canonical location in a Micheline expression
       The location of a node in a Micheline expression tree in prefix
       order, with zero being the root and adding one for every basic node,
       sequence and primitive application. */
    integer ∈ [-2^30-2, 2^30+2]
  $micheline.michelson_v1.expression:
    { "int": $bignum }
    || { "string": string }
    || { "bytes": /^[a-zA-Z0-9]+$/ }
    || [ $micheline.michelson_v1.expression ... ]
    || { "prim": $michelson.v1.primitives,
         "args"?: [ $micheline.michelson_v1.expression ... ],
         "annots"?: [ string ... ] }
  $michelson.v1.primitives:
    "ADD"
    | "LE"
    | "UPDATE"
    | "unit"
    | "string"
    | "COMPARE"
    | "LAMBDA"
    | "LOOP"
    | "Elt"
    | "IMPLICIT_ACCOUNT"
    | "NONE"
    | "signature"
    | "set"
    | "mutez"
    | "BLAKE2B"
    | "SHA256"
    | "ITER"
    | "bool"
    | "MAP"
    | "UNIT"
    | "DIP"
    | "PACK"
    | "pair"
    | "SIZE"
    | "Right"
    | "map"
    | "IF_CONS"
    | "LSR"
    | "SET_DELEGATE"
    | "storage"
    | "XOR"
    | "CDR"
    | "TRANSFER_TOKENS"
    | "SOME"
    | "False"
    | "SHA512"
    | "CHECK_SIGNATURE"
    | "BALANCE"
    | "lambda"
    | "operation"
    | "EMPTY_SET"
    | "SWAP"
    | "MEM"
    | "RIGHT"
    | "CONTRACT"
    | "or"
    | "CONCAT"
    | "nat"
    | "bytes"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "NOT"
    | "LEFT"
    | "timestamp"
    | "AMOUNT"
    | "DROP"
    | "ABS"
    | "contract"
    | "GE"
    | "PUSH"
    | "LT"
    | "address"
    | "NEQ"
    | "NEG"
    | "None"
    | "CONS"
    | "EXEC"
    | "NIL"
    | "CAST"
    | "MUL"
    | "ADDRESS"
    | "EDIV"
    | "STEPS_TO_QUOTA"
    | "SUB"
    | "INT"
    | "SOURCE"
    | "CAR"
    | "CREATE_ACCOUNT"
    | "LSL"
    | "OR"
    | "IF_NONE"
    | "SELF"
    | "IF"
    | "Left"
    | "int"
    | "big_map"
    | "SENDER"
    | "option"
    | "DUP"
    | "EQ"
    | "NOW"
    | "key_hash"
    | "GET"
    | "list"
    | "key"
    | "True"
    | "GT"
    | "parameter"
    | "IF_LEFT"
    | "FAILWITH"
    | "PAIR"
    | "LOOP_LEFT"
    | "Pair"
    | "RENAME"
    | "EMPTY_MAP"
    | "CREATE_CONTRACT"
    | "HASH_KEY"
    | "ISNAT"
    | "code"
    | "AND"

Failed to decode parameter

Unexpected JSON object.

Id : proto.alpha.context.failed_to_decode_parameter
Category : temporary

  { "kind": "temporary",
    "id": "proto.alpha.context.failed_to_decode_parameter",
    "contents": any,
    "error": string }

Failed to parse parameter

The protocol parameters are not valid JSON.

Id : proto.alpha.context.failed_to_parse_parameter
Category : temporary

  { "kind": "temporary",
    "id": "proto.alpha.context.failed_to_parse_parameter",
    "contents": /^[a-zA-Z0-9]+$/ }

Storage error (fatal internal error)

An error that should never happen unless something has been deleted or corrupted in the database.

Id : proto.alpha.context.storage_error
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.context.storage_error",
    "incompatible_protocol_version": string }
  || { "kind": "permanent",
       "id": "proto.alpha.context.storage_error",
       "missing_key": [ string ... ],
       "function": "set" | "copy" | "get" | "del" }
  || { "kind": "permanent",
       "id": "proto.alpha.context.storage_error",
       "existing_key": [ string ... ] }
  || { "kind": "permanent",
       "id": "proto.alpha.context.storage_error",
       "corrupted_data": [ string ... ] }

Balance too low

An operation tried to spend more tokens than the contract has

Id : proto.alpha.contract.balance_too_low
Category : temporary

  { "kind": "temporary",
    "id": "proto.alpha.contract.balance_too_low",
    "contract": $contract_id,
    "balance": $mutez,
    "amount": $mutez }
  $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. */
    string
  $mutez: $positive_bignum
  $positive_bignum:
    /* Positive big number
       Decimal representation of a positive big number */
    string

Cannot pay storage fee

The storage fee is higher than the contract balance

Id : proto.alpha.contract.cannot_pay_storage_fee
Category : temporary

  { "kind": "temporary",
    "id": "proto.alpha.contract.cannot_pay_storage_fee" }

Invalid counter (not yet reached) in a manager operation

An operation assumed a contract counter in the future

Id : proto.alpha.contract.counter_in_the_future
Category : temporary

  { "kind": "temporary",
    "id": "proto.alpha.contract.counter_in_the_future",
    "contract": $contract_id,
    "expected": $bignum,
    "found": $bignum }
  $bignum:
    /* Big number
       Decimal representation of a big number */
    string
  $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. */
    string

Invalid counter (already used) in a manager operation

An operation assumed a contract counter in the past

Id : proto.alpha.contract.counter_in_the_past
Category : branch

  { "kind": "branch",
    "id": "proto.alpha.contract.counter_in_the_past",
    "contract": $contract_id,
    "expected": $bignum,
    "found": $bignum }
  $bignum:
    /* Big number
       Decimal representation of a big number */
    string
  $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. */
    string

Empty transaction

Forbidden to credit 0ꜩ to a contract without code.

Id : proto.alpha.contract.empty_transaction
Category : branch

  { "kind": "branch",
    "id": "proto.alpha.contract.empty_transaction",
    "contract": $contract_id }
  $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. */
    string

Contract storage failure

Unexpected contract storage error

Id : proto.alpha.contract.failure
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.contract.failure",
    "message": string }

Invalid contract notation

A malformed contract notation was given to an RPC or in a script.

Id : proto.alpha.contract.invalid_contract_notation
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.contract.invalid_contract_notation",
    "notation": string }

Consume roll change

Change is not enough to consume a roll.

Id : proto.alpha.contract.manager.consume_roll_change
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.contract.manager.consume_roll_change" }

Inconsistent public key hash

A revealed manager public key is inconsistent with the announced hash

Id : proto.alpha.contract.manager.inconsistent_hash
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.contract.manager.inconsistent_hash",
    "public_key": $Signature.Public_key,
    "expected_hash": $Signature.Public_key_hash,
    "provided_hash": $Signature.Public_key_hash }
  $Signature.Public_key:
    /* A Ed25519, Secp256k1, or P256 public key (Base58Check-encoded) */
    string
  $Signature.Public_key_hash:
    /* A Ed25519, Secp256k1, or P256 public key hash (Base58Check-encoded) */
    string

Inconsistent public key

A provided manager public key is different with the public key stored in the contract

Id : proto.alpha.contract.manager.inconsistent_public_key
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.contract.manager.inconsistent_public_key",
    "public_key": $Signature.Public_key,
    "expected_public_key": $Signature.Public_key }
  $Signature.Public_key:
    /* A Ed25519, Secp256k1, or P256 public key (Base58Check-encoded) */
    string

No roll for delegate

Delegate has no roll.

Id : proto.alpha.contract.manager.no_roll_for_delegate
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.contract.manager.no_roll_for_delegate" }

No roll snapshot for cycle

A snapshot of the rolls distribution does not exist for this cycle.

Id : proto.alpha.contract.manager.no_roll_snapshot_for_cycle
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.contract.manager.no_roll_snapshot_for_cycle",
    "cycle": integer ∈ [-2^31-2, 2^31+2] }

Unregistered delegate

A contract cannot be delegated to an unregistered delegate

Id : proto.alpha.contract.manager.unregistered_delegate
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.contract.manager.unregistered_delegate",
    "hash": $Signature.Public_key_hash }
  $Signature.Public_key_hash:
    /* A Ed25519, Secp256k1, or P256 public key hash (Base58Check-encoded) */
    string

Non existing contract

A contract handle is not present in the context (either it never was or it has been destroyed)

Id : proto.alpha.contract.non_existing_contract
Category : temporary

  { "kind": "temporary",
    "id": "proto.alpha.contract.non_existing_contract",
    "contract": $contract_id }
  $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. */
    string

Manager operation already revealed

One tried to revealed twice a manager public key

Id : proto.alpha.contract.previously_revealed_key
Category : branch

  { "kind": "branch",
    "id": "proto.alpha.contract.previously_revealed_key",
    "contract": $contract_id }
  $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. */
    string

Non delegatable contract

Tried to delegate an implicit contract or a non delegatable originated contract

Id : proto.alpha.contract.undelegatable_contract
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.contract.undelegatable_contract",
    "contract": $contract_id }
  $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. */
    string

Manager operation precedes key revelation

One tried to apply a manager operation without revealing the manager public key

Id : proto.alpha.contract.unrevealed_key
Category : branch

  { "kind": "branch",
    "id": "proto.alpha.contract.unrevealed_key",
    "contract": $contract_id }
  $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. */
    string

Unspendable contract

An operation tried to spend tokens from an unspendable contract

Id : proto.alpha.contract.unspendable_contract
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.contract.unspendable_contract",
    "contract": $contract_id }
  $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. */
    string

Delegate already active

Useless delegate reactivation

Id : proto.alpha.delegate.already_active
Category : temporary

  { "kind": "temporary",
    "id": "proto.alpha.delegate.already_active" }

Balance too low for deposit

Cannot freeze deposit when the balance is too low

Id : proto.alpha.delegate.balance_too_low_for_deposit
Category : temporary

  { "kind": "temporary",
    "id": "proto.alpha.delegate.balance_too_low_for_deposit",
    "delegate": $Signature.Public_key_hash,
    "balance": $mutez,
    "deposit": $mutez }
  $Signature.Public_key_hash:
    /* A Ed25519, Secp256k1, or P256 public key hash (Base58Check-encoded) */
    string
  $mutez: $positive_bignum
  $positive_bignum:
    /* Positive big number
       Decimal representation of a positive big number */
    string

Empty delegate account

Cannot register a delegate when its implicit account is empty

Id : proto.alpha.delegate.empty_delegate_account
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.delegate.empty_delegate_account",
    "delegate": $Signature.Public_key_hash }
  $Signature.Public_key_hash:
    /* A Ed25519, Secp256k1, or P256 public key hash (Base58Check-encoded) */
    string

Forbidden delegate deletion

Tried to unregister a delegate

Id : proto.alpha.delegate.no_deletion
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.delegate.no_deletion",
    "delegate": $Signature.Public_key_hash }
  $Signature.Public_key_hash:
    /* A Ed25519, Secp256k1, or P256 public key hash (Base58Check-encoded) */
    string

Unchanged delegated

Contract already delegated to the given delegate

Id : proto.alpha.delegate.unchanged
Category : temporary

  { "kind": "temporary",
    "id": "proto.alpha.delegate.unchanged" }

Duplicate map keys

Map literals cannot contain duplicated keys

Id : proto.alpha.duplicateMapKeys
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.duplicateMapKeys",
    "location": $micheline.location,
    "item": $micheline.michelson_v1.expression }
  $bignum:
    /* Big number
       Decimal representation of a big number */
    string
  $micheline.location:
    /* Canonical location in a Micheline expression
       The location of a node in a Micheline expression tree in prefix
       order, with zero being the root and adding one for every basic node,
       sequence and primitive application. */
    integer ∈ [-2^30-2, 2^30+2]
  $micheline.michelson_v1.expression:
    { "int": $bignum }
    || { "string": string }
    || { "bytes": /^[a-zA-Z0-9]+$/ }
    || [ $micheline.michelson_v1.expression ... ]
    || { "prim": $michelson.v1.primitives,
         "args"?: [ $micheline.michelson_v1.expression ... ],
         "annots"?: [ string ... ] }
  $michelson.v1.primitives:
    "ADD"
    | "LE"
    | "UPDATE"
    | "unit"
    | "string"
    | "COMPARE"
    | "LAMBDA"
    | "LOOP"
    | "Elt"
    | "IMPLICIT_ACCOUNT"
    | "NONE"
    | "signature"
    | "set"
    | "mutez"
    | "BLAKE2B"
    | "SHA256"
    | "ITER"
    | "bool"
    | "MAP"
    | "UNIT"
    | "DIP"
    | "PACK"
    | "pair"
    | "SIZE"
    | "Right"
    | "map"
    | "IF_CONS"
    | "LSR"
    | "SET_DELEGATE"
    | "storage"
    | "XOR"
    | "CDR"
    | "TRANSFER_TOKENS"
    | "SOME"
    | "False"
    | "SHA512"
    | "CHECK_SIGNATURE"
    | "BALANCE"
    | "lambda"
    | "operation"
    | "EMPTY_SET"
    | "SWAP"
    | "MEM"
    | "RIGHT"
    | "CONTRACT"
    | "or"
    | "CONCAT"
    | "nat"
    | "bytes"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "NOT"
    | "LEFT"
    | "timestamp"
    | "AMOUNT"
    | "DROP"
    | "ABS"
    | "contract"
    | "GE"
    | "PUSH"
    | "LT"
    | "address"
    | "NEQ"
    | "NEG"
    | "None"
    | "CONS"
    | "EXEC"
    | "NIL"
    | "CAST"
    | "MUL"
    | "ADDRESS"
    | "EDIV"
    | "STEPS_TO_QUOTA"
    | "SUB"
    | "INT"
    | "SOURCE"
    | "CAR"
    | "CREATE_ACCOUNT"
    | "LSL"
    | "OR"
    | "IF_NONE"
    | "SELF"
    | "IF"
    | "Left"
    | "int"
    | "big_map"
    | "SENDER"
    | "option"
    | "DUP"
    | "EQ"
    | "NOW"
    | "key_hash"
    | "GET"
    | "list"
    | "key"
    | "True"
    | "GT"
    | "parameter"
    | "IF_LEFT"
    | "FAILWITH"
    | "PAIR"
    | "LOOP_LEFT"
    | "Pair"
    | "RENAME"
    | "EMPTY_MAP"
    | "CREATE_CONTRACT"
    | "HASH_KEY"
    | "ISNAT"
    | "code"
    | "AND"

Script has a duplicated field (parse error)

When parsing script, a field was found more than once

Id : proto.alpha.duplicateScriptField
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.duplicateScriptField",
    "loc": $micheline.location,
    "prim": $michelson.v1.primitives }
  $micheline.location:
    /* Canonical location in a Micheline expression
       The location of a node in a Micheline expression tree in prefix
       order, with zero being the root and adding one for every basic node,
       sequence and primitive application. */
    integer ∈ [-2^30-2, 2^30+2]
  $michelson.v1.primitives:
    "ADD"
    | "LE"
    | "UPDATE"
    | "unit"
    | "string"
    | "COMPARE"
    | "LAMBDA"
    | "LOOP"
    | "Elt"
    | "IMPLICIT_ACCOUNT"
    | "NONE"
    | "signature"
    | "set"
    | "mutez"
    | "BLAKE2B"
    | "SHA256"
    | "ITER"
    | "bool"
    | "MAP"
    | "UNIT"
    | "DIP"
    | "PACK"
    | "pair"
    | "SIZE"
    | "Right"
    | "map"
    | "IF_CONS"
    | "LSR"
    | "SET_DELEGATE"
    | "storage"
    | "XOR"
    | "CDR"
    | "TRANSFER_TOKENS"
    | "SOME"
    | "False"
    | "SHA512"
    | "CHECK_SIGNATURE"
    | "BALANCE"
    | "lambda"
    | "operation"
    | "EMPTY_SET"
    | "SWAP"
    | "MEM"
    | "RIGHT"
    | "CONTRACT"
    | "or"
    | "CONCAT"
    | "nat"
    | "bytes"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "NOT"
    | "LEFT"
    | "timestamp"
    | "AMOUNT"
    | "DROP"
    | "ABS"
    | "contract"
    | "GE"
    | "PUSH"
    | "LT"
    | "address"
    | "NEQ"
    | "NEG"
    | "None"
    | "CONS"
    | "EXEC"
    | "NIL"
    | "CAST"
    | "MUL"
    | "ADDRESS"
    | "EDIV"
    | "STEPS_TO_QUOTA"
    | "SUB"
    | "INT"
    | "SOURCE"
    | "CAR"
    | "CREATE_ACCOUNT"
    | "LSL"
    | "OR"
    | "IF_NONE"
    | "SELF"
    | "IF"
    | "Left"
    | "int"
    | "big_map"
    | "SENDER"
    | "option"
    | "DUP"
    | "EQ"
    | "NOW"
    | "key_hash"
    | "GET"
    | "list"
    | "key"
    | "True"
    | "GT"
    | "parameter"
    | "IF_LEFT"
    | "FAILWITH"
    | "PAIR"
    | "LOOP_LEFT"
    | "Pair"
    | "RENAME"
    | "EMPTY_MAP"
    | "CREATE_CONTRACT"
    | "HASH_KEY"
    | "ISNAT"
    | "code"
    | "AND"

Sets literals cannot contain duplicate elements

Set literals cannot contain duplicate elements, but a duplicae was found while parsing.

Id : proto.alpha.duplicateSetValuesInLiteral
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.duplicateSetValuesInLiteral",
    "location": $micheline.location,
    "value": $micheline.michelson_v1.expression }
  $bignum:
    /* Big number
       Decimal representation of a big number */
    string
  $micheline.location:
    /* Canonical location in a Micheline expression
       The location of a node in a Micheline expression tree in prefix
       order, with zero being the root and adding one for every basic node,
       sequence and primitive application. */
    integer ∈ [-2^30-2, 2^30+2]
  $micheline.michelson_v1.expression:
    { "int": $bignum }
    || { "string": string }
    || { "bytes": /^[a-zA-Z0-9]+$/ }
    || [ $micheline.michelson_v1.expression ... ]
    || { "prim": $michelson.v1.primitives,
         "args"?: [ $micheline.michelson_v1.expression ... ],
         "annots"?: [ string ... ] }
  $michelson.v1.primitives:
    "ADD"
    | "LE"
    | "UPDATE"
    | "unit"
    | "string"
    | "COMPARE"
    | "LAMBDA"
    | "LOOP"
    | "Elt"
    | "IMPLICIT_ACCOUNT"
    | "NONE"
    | "signature"
    | "set"
    | "mutez"
    | "BLAKE2B"
    | "SHA256"
    | "ITER"
    | "bool"
    | "MAP"
    | "UNIT"
    | "DIP"
    | "PACK"
    | "pair"
    | "SIZE"
    | "Right"
    | "map"
    | "IF_CONS"
    | "LSR"
    | "SET_DELEGATE"
    | "storage"
    | "XOR"
    | "CDR"
    | "TRANSFER_TOKENS"
    | "SOME"
    | "False"
    | "SHA512"
    | "CHECK_SIGNATURE"
    | "BALANCE"
    | "lambda"
    | "operation"
    | "EMPTY_SET"
    | "SWAP"
    | "MEM"
    | "RIGHT"
    | "CONTRACT"
    | "or"
    | "CONCAT"
    | "nat"
    | "bytes"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "NOT"
    | "LEFT"
    | "timestamp"
    | "AMOUNT"
    | "DROP"
    | "ABS"
    | "contract"
    | "GE"
    | "PUSH"
    | "LT"
    | "address"
    | "NEQ"
    | "NEG"
    | "None"
    | "CONS"
    | "EXEC"
    | "NIL"
    | "CAST"
    | "MUL"
    | "ADDRESS"
    | "EDIV"
    | "STEPS_TO_QUOTA"
    | "SUB"
    | "INT"
    | "SOURCE"
    | "CAR"
    | "CREATE_ACCOUNT"
    | "LSL"
    | "OR"
    | "IF_NONE"
    | "SELF"
    | "IF"
    | "Left"
    | "int"
    | "big_map"
    | "SENDER"
    | "option"
    | "DUP"
    | "EQ"
    | "NOW"
    | "key_hash"
    | "GET"
    | "list"
    | "key"
    | "True"
    | "GT"
    | "parameter"
    | "IF_LEFT"
    | "FAILWITH"
    | "PAIR"
    | "LOOP_LEFT"
    | "Pair"
    | "RENAME"
    | "EMPTY_MAP"
    | "CREATE_CONTRACT"
    | "HASH_KEY"
    | "ISNAT"
    | "code"
    | "AND"

FAIL not in tail position (typechecking error)

There is non trivial garbage code after a FAIL instruction.

Id : proto.alpha.failNotInTailPositionTypeError
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.failNotInTailPositionTypeError",
    "location": $micheline.location }
  $micheline.location:
    /* Canonical location in a Micheline expression
       The location of a node in a Micheline expression tree in prefix
       order, with zero being the root and adding one for every basic node,
       sequence and primitive application. */
    integer ∈ [-2^30-2, 2^30+2]

Gas quota exceeded for the block

The sum of gas consumed by all the operations in the block exceeds the hard gas limit per block

Id : proto.alpha.gas_exhausted.block
Category : temporary

  { "kind": "temporary",
    "id": "proto.alpha.gas_exhausted.block" }

Not enough gas for initial deserialization of script expresions

Gas limit was not high enough to deserialize the transaction parameters or origination script code or initial storage, making the operation impossible to parse within the provided gas bounds.

Id : proto.alpha.gas_exhausted.init_deserialize
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.gas_exhausted.init_deserialize" }

Gas quota exceeded for the operation

A script or one of its callee took more time than the operation said it would

Id : proto.alpha.gas_exhausted.operation
Category : temporary

  { "kind": "temporary",
    "id": "proto.alpha.gas_exhausted.operation" }

Gas limit out of protocol hard bounds

A transaction tried to exceed the hard limit on gas

Id : proto.alpha.gas_limit_too_high
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.gas_limit_too_high" }

Ill formed type (typechecking error)

The toplevel error thrown when trying to parse a type expression (always followed by more precise errors).

Id : proto.alpha.illFormedTypeTypeError
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.illFormedTypeTypeError",
    "identifier"?: string,
    "illFormedExpression": $micheline.michelson_v1.expression,
    "location": $micheline.location }
  $bignum:
    /* Big number
       Decimal representation of a big number */
    string
  $micheline.location:
    /* Canonical location in a Micheline expression
       The location of a node in a Micheline expression tree in prefix
       order, with zero being the root and adding one for every basic node,
       sequence and primitive application. */
    integer ∈ [-2^30-2, 2^30+2]
  $micheline.michelson_v1.expression:
    { "int": $bignum }
    || { "string": string }
    || { "bytes": /^[a-zA-Z0-9]+$/ }
    || [ $micheline.michelson_v1.expression ... ]
    || { "prim": $michelson.v1.primitives,
         "args"?: [ $micheline.michelson_v1.expression ... ],
         "annots"?: [ string ... ] }
  $michelson.v1.primitives:
    "ADD"
    | "LE"
    | "UPDATE"
    | "unit"
    | "string"
    | "COMPARE"
    | "LAMBDA"
    | "LOOP"
    | "Elt"
    | "IMPLICIT_ACCOUNT"
    | "NONE"
    | "signature"
    | "set"
    | "mutez"
    | "BLAKE2B"
    | "SHA256"
    | "ITER"
    | "bool"
    | "MAP"
    | "UNIT"
    | "DIP"
    | "PACK"
    | "pair"
    | "SIZE"
    | "Right"
    | "map"
    | "IF_CONS"
    | "LSR"
    | "SET_DELEGATE"
    | "storage"
    | "XOR"
    | "CDR"
    | "TRANSFER_TOKENS"
    | "SOME"
    | "False"
    | "SHA512"
    | "CHECK_SIGNATURE"
    | "BALANCE"
    | "lambda"
    | "operation"
    | "EMPTY_SET"
    | "SWAP"
    | "MEM"
    | "RIGHT"
    | "CONTRACT"
    | "or"
    | "CONCAT"
    | "nat"
    | "bytes"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "NOT"
    | "LEFT"
    | "timestamp"
    | "AMOUNT"
    | "DROP"
    | "ABS"
    | "contract"
    | "GE"
    | "PUSH"
    | "LT"
    | "address"
    | "NEQ"
    | "NEG"
    | "None"
    | "CONS"
    | "EXEC"
    | "NIL"
    | "CAST"
    | "MUL"
    | "ADDRESS"
    | "EDIV"
    | "STEPS_TO_QUOTA"
    | "SUB"
    | "INT"
    | "SOURCE"
    | "CAR"
    | "CREATE_ACCOUNT"
    | "LSL"
    | "OR"
    | "IF_NONE"
    | "SELF"
    | "IF"
    | "Left"
    | "int"
    | "big_map"
    | "SENDER"
    | "option"
    | "DUP"
    | "EQ"
    | "NOW"
    | "key_hash"
    | "GET"
    | "list"
    | "key"
    | "True"
    | "GT"
    | "parameter"
    | "IF_LEFT"
    | "FAILWITH"
    | "PAIR"
    | "LOOP_LEFT"
    | "Pair"
    | "RENAME"
    | "EMPTY_MAP"
    | "CREATE_CONTRACT"
    | "HASH_KEY"
    | "ISNAT"
    | "code"
    | "AND"

Ill typed contract (typechecking error)

The toplevel error thrown when trying to typecheck a contract code against given input, output and storage types (always followed by more precise errors).

Id : proto.alpha.illTypedContractTypeError
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.illTypedContractTypeError",
    "illTypedCode": $micheline.michelson_v1.expression,
    "typeMap":
      [ { "location": $micheline.location,
          "stackBefore":
            [ [ $micheline.michelson_v1.expression, [ string ... ] ] ... ],
          "stackAfter":
            [ [ $micheline.michelson_v1.expression, [ string ... ] ] ... ] } ... ] }
  $bignum:
    /* Big number
       Decimal representation of a big number */
    string
  $micheline.location:
    /* Canonical location in a Micheline expression
       The location of a node in a Micheline expression tree in prefix
       order, with zero being the root and adding one for every basic node,
       sequence and primitive application. */
    integer ∈ [-2^30-2, 2^30+2]
  $micheline.michelson_v1.expression:
    { "int": $bignum }
    || { "string": string }
    || { "bytes": /^[a-zA-Z0-9]+$/ }
    || [ $micheline.michelson_v1.expression ... ]
    || { "prim": $michelson.v1.primitives,
         "args"?: [ $micheline.michelson_v1.expression ... ],
         "annots"?: [ string ... ] }
  $michelson.v1.primitives:
    "ADD"
    | "LE"
    | "UPDATE"
    | "unit"
    | "string"
    | "COMPARE"
    | "LAMBDA"
    | "LOOP"
    | "Elt"
    | "IMPLICIT_ACCOUNT"
    | "NONE"
    | "signature"
    | "set"
    | "mutez"
    | "BLAKE2B"
    | "SHA256"
    | "ITER"
    | "bool"
    | "MAP"
    | "UNIT"
    | "DIP"
    | "PACK"
    | "pair"
    | "SIZE"
    | "Right"
    | "map"
    | "IF_CONS"
    | "LSR"
    | "SET_DELEGATE"
    | "storage"
    | "XOR"
    | "CDR"
    | "TRANSFER_TOKENS"
    | "SOME"
    | "False"
    | "SHA512"
    | "CHECK_SIGNATURE"
    | "BALANCE"
    | "lambda"
    | "operation"
    | "EMPTY_SET"
    | "SWAP"
    | "MEM"
    | "RIGHT"
    | "CONTRACT"
    | "or"
    | "CONCAT"
    | "nat"
    | "bytes"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "NOT"
    | "LEFT"
    | "timestamp"
    | "AMOUNT"
    | "DROP"
    | "ABS"
    | "contract"
    | "GE"
    | "PUSH"
    | "LT"
    | "address"
    | "NEQ"
    | "NEG"
    | "None"
    | "CONS"
    | "EXEC"
    | "NIL"
    | "CAST"
    | "MUL"
    | "ADDRESS"
    | "EDIV"
    | "STEPS_TO_QUOTA"
    | "SUB"
    | "INT"
    | "SOURCE"
    | "CAR"
    | "CREATE_ACCOUNT"
    | "LSL"
    | "OR"
    | "IF_NONE"
    | "SELF"
    | "IF"
    | "Left"
    | "int"
    | "big_map"
    | "SENDER"
    | "option"
    | "DUP"
    | "EQ"
    | "NOW"
    | "key_hash"
    | "GET"
    | "list"
    | "key"
    | "True"
    | "GT"
    | "parameter"
    | "IF_LEFT"
    | "FAILWITH"
    | "PAIR"
    | "LOOP_LEFT"
    | "Pair"
    | "RENAME"
    | "EMPTY_MAP"
    | "CREATE_CONTRACT"
    | "HASH_KEY"
    | "ISNAT"
    | "code"
    | "AND"

Ill typed data (typechecking error)

The toplevel error thrown when trying to typecheck a data expression against a given type (always followed by more precise errors).

Id : proto.alpha.illTypedDataTypeError
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.illTypedDataTypeError",
    "identifier"?: string,
    "expectedType": $micheline.michelson_v1.expression,
    "illTypedExpression": $micheline.michelson_v1.expression }
  $bignum:
    /* Big number
       Decimal representation of a big number */
    string
  $micheline.michelson_v1.expression:
    { "int": $bignum }
    || { "string": string }
    || { "bytes": /^[a-zA-Z0-9]+$/ }
    || [ $micheline.michelson_v1.expression ... ]
    || { "prim": $michelson.v1.primitives,
         "args"?: [ $micheline.michelson_v1.expression ... ],
         "annots"?: [ string ... ] }
  $michelson.v1.primitives:
    "ADD"
    | "LE"
    | "UPDATE"
    | "unit"
    | "string"
    | "COMPARE"
    | "LAMBDA"
    | "LOOP"
    | "Elt"
    | "IMPLICIT_ACCOUNT"
    | "NONE"
    | "signature"
    | "set"
    | "mutez"
    | "BLAKE2B"
    | "SHA256"
    | "ITER"
    | "bool"
    | "MAP"
    | "UNIT"
    | "DIP"
    | "PACK"
    | "pair"
    | "SIZE"
    | "Right"
    | "map"
    | "IF_CONS"
    | "LSR"
    | "SET_DELEGATE"
    | "storage"
    | "XOR"
    | "CDR"
    | "TRANSFER_TOKENS"
    | "SOME"
    | "False"
    | "SHA512"
    | "CHECK_SIGNATURE"
    | "BALANCE"
    | "lambda"
    | "operation"
    | "EMPTY_SET"
    | "SWAP"
    | "MEM"
    | "RIGHT"
    | "CONTRACT"
    | "or"
    | "CONCAT"
    | "nat"
    | "bytes"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "NOT"
    | "LEFT"
    | "timestamp"
    | "AMOUNT"
    | "DROP"
    | "ABS"
    | "contract"
    | "GE"
    | "PUSH"
    | "LT"
    | "address"
    | "NEQ"
    | "NEG"
    | "None"
    | "CONS"
    | "EXEC"
    | "NIL"
    | "CAST"
    | "MUL"
    | "ADDRESS"
    | "EDIV"
    | "STEPS_TO_QUOTA"
    | "SUB"
    | "INT"
    | "SOURCE"
    | "CAR"
    | "CREATE_ACCOUNT"
    | "LSL"
    | "OR"
    | "IF_NONE"
    | "SELF"
    | "IF"
    | "Left"
    | "int"
    | "big_map"
    | "SENDER"
    | "option"
    | "DUP"
    | "EQ"
    | "NOW"
    | "key_hash"
    | "GET"
    | "list"
    | "key"
    | "True"
    | "GT"
    | "parameter"
    | "IF_LEFT"
    | "FAILWITH"
    | "PAIR"
    | "LOOP_LEFT"
    | "Pair"
    | "RENAME"
    | "EMPTY_MAP"
    | "CREATE_CONTRACT"
    | "HASH_KEY"
    | "ISNAT"
    | "code"
    | "AND"

Empty implicit contract

No manager operations are allowed on an empty implicit contract.

Id : proto.alpha.implicit.empty_implicit_contract
Category : branch

  { "kind": "branch",
    "id": "proto.alpha.implicit.empty_implicit_contract",
    "implicit": $Signature.Public_key_hash }
  $Signature.Public_key_hash:
    /* A Ed25519, Secp256k1, or P256 public key hash (Base58Check-encoded) */
    string

Annotations inconsistent between branches

The annotations on two types could not be merged

Id : proto.alpha.inconsistentAnnotations
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.inconsistentAnnotations",
    "annot1": string,
    "annot2": string }

Annotations for field accesses is inconsistent

The specified field does not match the field annotation in the type

Id : proto.alpha.inconsistentFieldAnnotations
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.inconsistentFieldAnnotations",
    "annot1": string,
    "annot2": string }

Inconsistent stack lengths (typechecking error)

A stack was of an unexpected length (this error is always in the context of a located error).

Id : proto.alpha.inconsistentStackLengthsTypeError
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.inconsistentStackLengthsTypeError" }

Types contain inconsistent annotations

The two types contain annotations that do not match

Id : proto.alpha.inconsistentTypeAnnotations
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.inconsistentTypeAnnotations",
    "location": $micheline.location,
    "type1": $micheline.michelson_v1.expression,
    "type2": $micheline.michelson_v1.expression }
  $bignum:
    /* Big number
       Decimal representation of a big number */
    string
  $micheline.location:
    /* Canonical location in a Micheline expression
       The location of a node in a Micheline expression tree in prefix
       order, with zero being the root and adding one for every basic node,
       sequence and primitive application. */
    integer ∈ [-2^30-2, 2^30+2]
  $micheline.michelson_v1.expression:
    { "int": $bignum }
    || { "string": string }
    || { "bytes": /^[a-zA-Z0-9]+$/ }
    || [ $micheline.michelson_v1.expression ... ]
    || { "prim": $michelson.v1.primitives,
         "args"?: [ $micheline.michelson_v1.expression ... ],
         "annots"?: [ string ... ] }
  $michelson.v1.primitives:
    "ADD"
    | "LE"
    | "UPDATE"
    | "unit"
    | "string"
    | "COMPARE"
    | "LAMBDA"
    | "LOOP"
    | "Elt"
    | "IMPLICIT_ACCOUNT"
    | "NONE"
    | "signature"
    | "set"
    | "mutez"
    | "BLAKE2B"
    | "SHA256"
    | "ITER"
    | "bool"
    | "MAP"
    | "UNIT"
    | "DIP"
    | "PACK"
    | "pair"
    | "SIZE"
    | "Right"
    | "map"
    | "IF_CONS"
    | "LSR"
    | "SET_DELEGATE"
    | "storage"
    | "XOR"
    | "CDR"
    | "TRANSFER_TOKENS"
    | "SOME"
    | "False"
    | "SHA512"
    | "CHECK_SIGNATURE"
    | "BALANCE"
    | "lambda"
    | "operation"
    | "EMPTY_SET"
    | "SWAP"
    | "MEM"
    | "RIGHT"
    | "CONTRACT"
    | "or"
    | "CONCAT"
    | "nat"
    | "bytes"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "NOT"
    | "LEFT"
    | "timestamp"
    | "AMOUNT"
    | "DROP"
    | "ABS"
    | "contract"
    | "GE"
    | "PUSH"
    | "LT"
    | "address"
    | "NEQ"
    | "NEG"
    | "None"
    | "CONS"
    | "EXEC"
    | "NIL"
    | "CAST"
    | "MUL"
    | "ADDRESS"
    | "EDIV"
    | "STEPS_TO_QUOTA"
    | "SUB"
    | "INT"
    | "SOURCE"
    | "CAR"
    | "CREATE_ACCOUNT"
    | "LSL"
    | "OR"
    | "IF_NONE"
    | "SELF"
    | "IF"
    | "Left"
    | "int"
    | "big_map"
    | "SENDER"
    | "option"
    | "DUP"
    | "EQ"
    | "NOW"
    | "key_hash"
    | "GET"
    | "list"
    | "key"
    | "True"
    | "GT"
    | "parameter"
    | "IF_LEFT"
    | "FAILWITH"
    | "PAIR"
    | "LOOP_LEFT"
    | "Pair"
    | "RENAME"
    | "EMPTY_MAP"
    | "CREATE_CONTRACT"
    | "HASH_KEY"
    | "ISNAT"
    | "code"
    | "AND"

Incorrect priority

Block priority must be non-negative.

Id : proto.alpha.incorrect_priority
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.incorrect_priority",
    ... }

Internal operation replay

An internal operation was emitted twice by a script

Id : proto.alpha.internal_operation_replay
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.internal_operation_replay",
    "source": $contract_id,
    "nonce": integer ∈ [0, 2^16-1],
    "kind": "reveal",
    "public_key": $Signature.Public_key }
  || { "kind": "permanent",
       "id": "proto.alpha.internal_operation_replay",
       "source": $contract_id,
       "nonce": integer ∈ [0, 2^16-1],
       "kind": "transaction",
       "amount": $mutez,
       "destination": $contract_id,
       "parameters"?: $micheline.michelson_v1.expression }
  || { "kind": "permanent",
       "id": "proto.alpha.internal_operation_replay",
       "source": $contract_id,
       "nonce": integer ∈ [0, 2^16-1],
       "kind": "origination",
       "managerPubkey": $Signature.Public_key_hash,
       "balance": $mutez,
       "spendable"?: boolean,
       "delegatable"?: boolean,
       "delegate"?: $Signature.Public_key_hash,
       "script"?: $scripted.contracts }
  || { "kind": "permanent",
       "id": "proto.alpha.internal_operation_replay",
       "source": $contract_id,
       "nonce": integer ∈ [0, 2^16-1],
       "kind": "delegation",
       "delegate"?: $Signature.Public_key_hash }
  $Signature.Public_key:
    /* A Ed25519, Secp256k1, or P256 public key (Base58Check-encoded) */
    string
  $Signature.Public_key_hash:
    /* A Ed25519, Secp256k1, or P256 public key hash (Base58Check-encoded) */
    string
  $bignum:
    /* Big number
       Decimal representation of a big number */
    string
  $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. */
    string
  $micheline.michelson_v1.expression:
    { "int": $bignum }
    || { "string": string }
    || { "bytes": /^[a-zA-Z0-9]+$/ }
    || [ $micheline.michelson_v1.expression ... ]
    || { "prim": $michelson.v1.primitives,
         "args"?: [ $micheline.michelson_v1.expression ... ],
         "annots"?: [ string ... ] }
  $michelson.v1.primitives:
    "ADD"
    | "LE"
    | "UPDATE"
    | "unit"
    | "string"
    | "COMPARE"
    | "LAMBDA"
    | "LOOP"
    | "Elt"
    | "IMPLICIT_ACCOUNT"
    | "NONE"
    | "signature"
    | "set"
    | "mutez"
    | "BLAKE2B"
    | "SHA256"
    | "ITER"
    | "bool"
    | "MAP"
    | "UNIT"
    | "DIP"
    | "PACK"
    | "pair"
    | "SIZE"
    | "Right"
    | "map"
    | "IF_CONS"
    | "LSR"
    | "SET_DELEGATE"
    | "storage"
    | "XOR"
    | "CDR"
    | "TRANSFER_TOKENS"
    | "SOME"
    | "False"
    | "SHA512"
    | "CHECK_SIGNATURE"
    | "BALANCE"
    | "lambda"
    | "operation"
    | "EMPTY_SET"
    | "SWAP"
    | "MEM"
    | "RIGHT"
    | "CONTRACT"
    | "or"
    | "CONCAT"
    | "nat"
    | "bytes"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "NOT"
    | "LEFT"
    | "timestamp"
    | "AMOUNT"
    | "DROP"
    | "ABS"
    | "contract"
    | "GE"
    | "PUSH"
    | "LT"
    | "address"
    | "NEQ"
    | "NEG"
    | "None"
    | "CONS"
    | "EXEC"
    | "NIL"
    | "CAST"
    | "MUL"
    | "ADDRESS"
    | "EDIV"
    | "STEPS_TO_QUOTA"
    | "SUB"
    | "INT"
    | "SOURCE"
    | "CAR"
    | "CREATE_ACCOUNT"
    | "LSL"
    | "OR"
    | "IF_NONE"
    | "SELF"
    | "IF"
    | "Left"
    | "int"
    | "big_map"
    | "SENDER"
    | "option"
    | "DUP"
    | "EQ"
    | "NOW"
    | "key_hash"
    | "GET"
    | "list"
    | "key"
    | "True"
    | "GT"
    | "parameter"
    | "IF_LEFT"
    | "FAILWITH"
    | "PAIR"
    | "LOOP_LEFT"
    | "Pair"
    | "RENAME"
    | "EMPTY_MAP"
    | "CREATE_CONTRACT"
    | "HASH_KEY"
    | "ISNAT"
    | "code"
    | "AND"
  $mutez: $positive_bignum
  $positive_bignum:
    /* Positive big number
       Decimal representation of a positive big number */
    string
  $scripted.contracts:
    { "code": $micheline.michelson_v1.expression,
      "storage": $micheline.michelson_v1.expression }

Invalid arity (typechecking error)

In a script or data expression, a primitive was applied to an unsupported number of arguments.

Id : proto.alpha.invalidArityTypeError
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.invalidArityTypeError",
    "location": $micheline.location,
    "primitiveName": $michelson.v1.primitives,
    "expectedArity": integer ∈ [-128, 127],
    "wrongArity": integer ∈ [-128, 127] }
  $micheline.location:
    /* Canonical location in a Micheline expression
       The location of a node in a Micheline expression tree in prefix
       order, with zero being the root and adding one for every basic node,
       sequence and primitive application. */
    integer ∈ [-2^30-2, 2^30+2]
  $michelson.v1.primitives:
    "ADD"
    | "LE"
    | "UPDATE"
    | "unit"
    | "string"
    | "COMPARE"
    | "LAMBDA"
    | "LOOP"
    | "Elt"
    | "IMPLICIT_ACCOUNT"
    | "NONE"
    | "signature"
    | "set"
    | "mutez"
    | "BLAKE2B"
    | "SHA256"
    | "ITER"
    | "bool"
    | "MAP"
    | "UNIT"
    | "DIP"
    | "PACK"
    | "pair"
    | "SIZE"
    | "Right"
    | "map"
    | "IF_CONS"
    | "LSR"
    | "SET_DELEGATE"
    | "storage"
    | "XOR"
    | "CDR"
    | "TRANSFER_TOKENS"
    | "SOME"
    | "False"
    | "SHA512"
    | "CHECK_SIGNATURE"
    | "BALANCE"
    | "lambda"
    | "operation"
    | "EMPTY_SET"
    | "SWAP"
    | "MEM"
    | "RIGHT"
    | "CONTRACT"
    | "or"
    | "CONCAT"
    | "nat"
    | "bytes"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "NOT"
    | "LEFT"
    | "timestamp"
    | "AMOUNT"
    | "DROP"
    | "ABS"
    | "contract"
    | "GE"
    | "PUSH"
    | "LT"
    | "address"
    | "NEQ"
    | "NEG"
    | "None"
    | "CONS"
    | "EXEC"
    | "NIL"
    | "CAST"
    | "MUL"
    | "ADDRESS"
    | "EDIV"
    | "STEPS_TO_QUOTA"
    | "SUB"
    | "INT"
    | "SOURCE"
    | "CAR"
    | "CREATE_ACCOUNT"
    | "LSL"
    | "OR"
    | "IF_NONE"
    | "SELF"
    | "IF"
    | "Left"
    | "int"
    | "big_map"
    | "SENDER"
    | "option"
    | "DUP"
    | "EQ"
    | "NOW"
    | "key_hash"
    | "GET"
    | "list"
    | "key"
    | "True"
    | "GT"
    | "parameter"
    | "IF_LEFT"
    | "FAILWITH"
    | "PAIR"
    | "LOOP_LEFT"
    | "Pair"
    | "RENAME"
    | "EMPTY_MAP"
    | "CREATE_CONTRACT"
    | "HASH_KEY"
    | "ISNAT"
    | "code"
    | "AND"

Invalid constant (typechecking error)

A data expression was invalid for its expected type.

Id : proto.alpha.invalidConstantTypeError
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.invalidConstantTypeError",
    "location": $micheline.location,
    "expectedType": $micheline.michelson_v1.expression,
    "wrongExpression": $micheline.michelson_v1.expression }
  $bignum:
    /* Big number
       Decimal representation of a big number */
    string
  $micheline.location:
    /* Canonical location in a Micheline expression
       The location of a node in a Micheline expression tree in prefix
       order, with zero being the root and adding one for every basic node,
       sequence and primitive application. */
    integer ∈ [-2^30-2, 2^30+2]
  $micheline.michelson_v1.expression:
    { "int": $bignum }
    || { "string": string }
    || { "bytes": /^[a-zA-Z0-9]+$/ }
    || [ $micheline.michelson_v1.expression ... ]
    || { "prim": $michelson.v1.primitives,
         "args"?: [ $micheline.michelson_v1.expression ... ],
         "annots"?: [ string ... ] }
  $michelson.v1.primitives:
    "ADD"
    | "LE"
    | "UPDATE"
    | "unit"
    | "string"
    | "COMPARE"
    | "LAMBDA"
    | "LOOP"
    | "Elt"
    | "IMPLICIT_ACCOUNT"
    | "NONE"
    | "signature"
    | "set"
    | "mutez"
    | "BLAKE2B"
    | "SHA256"
    | "ITER"
    | "bool"
    | "MAP"
    | "UNIT"
    | "DIP"
    | "PACK"
    | "pair"
    | "SIZE"
    | "Right"
    | "map"
    | "IF_CONS"
    | "LSR"
    | "SET_DELEGATE"
    | "storage"
    | "XOR"
    | "CDR"
    | "TRANSFER_TOKENS"
    | "SOME"
    | "False"
    | "SHA512"
    | "CHECK_SIGNATURE"
    | "BALANCE"
    | "lambda"
    | "operation"
    | "EMPTY_SET"
    | "SWAP"
    | "MEM"
    | "RIGHT"
    | "CONTRACT"
    | "or"
    | "CONCAT"
    | "nat"
    | "bytes"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "NOT"
    | "LEFT"
    | "timestamp"
    | "AMOUNT"
    | "DROP"
    | "ABS"
    | "contract"
    | "GE"
    | "PUSH"
    | "LT"
    | "address"
    | "NEQ"
    | "NEG"
    | "None"
    | "CONS"
    | "EXEC"
    | "NIL"
    | "CAST"
    | "MUL"
    | "ADDRESS"
    | "EDIV"
    | "STEPS_TO_QUOTA"
    | "SUB"
    | "INT"
    | "SOURCE"
    | "CAR"
    | "CREATE_ACCOUNT"
    | "LSL"
    | "OR"
    | "IF_NONE"
    | "SELF"
    | "IF"
    | "Left"
    | "int"
    | "big_map"
    | "SENDER"
    | "option"
    | "DUP"
    | "EQ"
    | "NOW"
    | "key_hash"
    | "GET"
    | "list"
    | "key"
    | "True"
    | "GT"
    | "parameter"
    | "IF_LEFT"
    | "FAILWITH"
    | "PAIR"
    | "LOOP_LEFT"
    | "Pair"
    | "RENAME"
    | "EMPTY_MAP"
    | "CREATE_CONTRACT"
    | "HASH_KEY"
    | "ISNAT"
    | "code"
    | "AND"

Invalid contract (typechecking error)

A script or data expression references a contract that does not exist or assumes a wrong type for an existing contract.

Id : proto.alpha.invalidContractTypeError
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.invalidContractTypeError",
    "location": $micheline.location,
    "contract": $contract_id }
  $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. */
    string
  $micheline.location:
    /* Canonical location in a Micheline expression
       The location of a node in a Micheline expression tree in prefix
       order, with zero being the root and adding one for every basic node,
       sequence and primitive application. */
    integer ∈ [-2^30-2, 2^30+2]

Invalid expression kind (typechecking error)

In a script or data expression, an expression was of the wrong kind (for instance a string where only a primitive applications can appear).

Id : proto.alpha.invalidExpressionKindTypeError
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.invalidExpressionKindTypeError",
    "location": $micheline.location,
    "expectedKinds": [ $expressionKind ... ],
    "wrongKind": $expressionKind }
  $expressionKind:
    /* Expression kind
       One of the four possible kinds of expression (integer, string,
       primitive application or sequence). */
    "string" | "integer" | "sequence" | "primitiveApplication" | "bytes"
  $micheline.location:
    /* Canonical location in a Micheline expression
       The location of a node in a Micheline expression tree in prefix
       order, with zero being the root and adding one for every basic node,
       sequence and primitive application. */
    integer ∈ [-2^30-2, 2^30+2]

ITER body returned wrong stack type

The body of an ITER instruction must result in the same stack type as before the ITER.

Id : proto.alpha.invalidIterBody
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.invalidIterBody",
    "loc": $micheline.location,
    "befStack":
      [ { "type": $micheline.michelson_v1.expression,
          "annots"?: [ string ... ] } ... ],
    "aftStack":
      [ { "type": $micheline.michelson_v1.expression,
          "annots"?: [ string ... ] } ... ] }
  $bignum:
    /* Big number
       Decimal representation of a big number */
    string
  $micheline.location:
    /* Canonical location in a Micheline expression
       The location of a node in a Micheline expression tree in prefix
       order, with zero being the root and adding one for every basic node,
       sequence and primitive application. */
    integer ∈ [-2^30-2, 2^30+2]
  $micheline.michelson_v1.expression:
    { "int": $bignum }
    || { "string": string }
    || { "bytes": /^[a-zA-Z0-9]+$/ }
    || [ $micheline.michelson_v1.expression ... ]
    || { "prim": $michelson.v1.primitives,
         "args"?: [ $micheline.michelson_v1.expression ... ],
         "annots"?: [ string ... ] }
  $michelson.v1.primitives:
    "ADD"
    | "LE"
    | "UPDATE"
    | "unit"
    | "string"
    | "COMPARE"
    | "LAMBDA"
    | "LOOP"
    | "Elt"
    | "IMPLICIT_ACCOUNT"
    | "NONE"
    | "signature"
    | "set"
    | "mutez"
    | "BLAKE2B"
    | "SHA256"
    | "ITER"
    | "bool"
    | "MAP"
    | "UNIT"
    | "DIP"
    | "PACK"
    | "pair"
    | "SIZE"
    | "Right"
    | "map"
    | "IF_CONS"
    | "LSR"
    | "SET_DELEGATE"
    | "storage"
    | "XOR"
    | "CDR"
    | "TRANSFER_TOKENS"
    | "SOME"
    | "False"
    | "SHA512"
    | "CHECK_SIGNATURE"
    | "BALANCE"
    | "lambda"
    | "operation"
    | "EMPTY_SET"
    | "SWAP"
    | "MEM"
    | "RIGHT"
    | "CONTRACT"
    | "or"
    | "CONCAT"
    | "nat"
    | "bytes"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "NOT"
    | "LEFT"
    | "timestamp"
    | "AMOUNT"
    | "DROP"
    | "ABS"
    | "contract"
    | "GE"
    | "PUSH"
    | "LT"
    | "address"
    | "NEQ"
    | "NEG"
    | "None"
    | "CONS"
    | "EXEC"
    | "NIL"
    | "CAST"
    | "MUL"
    | "ADDRESS"
    | "EDIV"
    | "STEPS_TO_QUOTA"
    | "SUB"
    | "INT"
    | "SOURCE"
    | "CAR"
    | "CREATE_ACCOUNT"
    | "LSL"
    | "OR"
    | "IF_NONE"
    | "SELF"
    | "IF"
    | "Left"
    | "int"
    | "big_map"
    | "SENDER"
    | "option"
    | "DUP"
    | "EQ"
    | "NOW"
    | "key_hash"
    | "GET"
    | "list"
    | "key"
    | "True"
    | "GT"
    | "parameter"
    | "IF_LEFT"
    | "FAILWITH"
    | "PAIR"
    | "LOOP_LEFT"
    | "Pair"
    | "RENAME"
    | "EMPTY_MAP"
    | "CREATE_CONTRACT"
    | "HASH_KEY"
    | "ISNAT"
    | "code"
    | "AND"

FAIL instruction occurred as body of map block

FAIL cannot be the only instruction in the body. The propper type of the return list cannot be inferred.

Id : proto.alpha.invalidMapBlockFail
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.invalidMapBlockFail",
    "loc": $micheline.location }
  $micheline.location:
    /* Canonical location in a Micheline expression
       The location of a node in a Micheline expression tree in prefix
       order, with zero being the root and adding one for every basic node,
       sequence and primitive application. */
    integer ∈ [-2^30-2, 2^30+2]

Invalid map body

The body of a map block did not match the expected type

Id : proto.alpha.invalidMapBody
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.invalidMapBody",
    "loc": $micheline.location,
    "bodyType":
      [ { "type": $micheline.michelson_v1.expression,
          "annots"?: [ string ... ] } ... ] }
  $bignum:
    /* Big number
       Decimal representation of a big number */
    string
  $micheline.location:
    /* Canonical location in a Micheline expression
       The location of a node in a Micheline expression tree in prefix
       order, with zero being the root and adding one for every basic node,
       sequence and primitive application. */
    integer ∈ [-2^30-2, 2^30+2]
  $micheline.michelson_v1.expression:
    { "int": $bignum }
    || { "string": string }
    || { "bytes": /^[a-zA-Z0-9]+$/ }
    || [ $micheline.michelson_v1.expression ... ]
    || { "prim": $michelson.v1.primitives,
         "args"?: [ $micheline.michelson_v1.expression ... ],
         "annots"?: [ string ... ] }
  $michelson.v1.primitives:
    "ADD"
    | "LE"
    | "UPDATE"
    | "unit"
    | "string"
    | "COMPARE"
    | "LAMBDA"
    | "LOOP"
    | "Elt"
    | "IMPLICIT_ACCOUNT"
    | "NONE"
    | "signature"
    | "set"
    | "mutez"
    | "BLAKE2B"
    | "SHA256"
    | "ITER"
    | "bool"
    | "MAP"
    | "UNIT"
    | "DIP"
    | "PACK"
    | "pair"
    | "SIZE"
    | "Right"
    | "map"
    | "IF_CONS"
    | "LSR"
    | "SET_DELEGATE"
    | "storage"
    | "XOR"
    | "CDR"
    | "TRANSFER_TOKENS"
    | "SOME"
    | "False"
    | "SHA512"
    | "CHECK_SIGNATURE"
    | "BALANCE"
    | "lambda"
    | "operation"
    | "EMPTY_SET"
    | "SWAP"
    | "MEM"
    | "RIGHT"
    | "CONTRACT"
    | "or"
    | "CONCAT"
    | "nat"
    | "bytes"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "NOT"
    | "LEFT"
    | "timestamp"
    | "AMOUNT"
    | "DROP"
    | "ABS"
    | "contract"
    | "GE"
    | "PUSH"
    | "LT"
    | "address"
    | "NEQ"
    | "NEG"
    | "None"
    | "CONS"
    | "EXEC"
    | "NIL"
    | "CAST"
    | "MUL"
    | "ADDRESS"
    | "EDIV"
    | "STEPS_TO_QUOTA"
    | "SUB"
    | "INT"
    | "SOURCE"
    | "CAR"
    | "CREATE_ACCOUNT"
    | "LSL"
    | "OR"
    | "IF_NONE"
    | "SELF"
    | "IF"
    | "Left"
    | "int"
    | "big_map"
    | "SENDER"
    | "option"
    | "DUP"
    | "EQ"
    | "NOW"
    | "key_hash"
    | "GET"
    | "list"
    | "key"
    | "True"
    | "GT"
    | "parameter"
    | "IF_LEFT"
    | "FAILWITH"
    | "PAIR"
    | "LOOP_LEFT"
    | "Pair"
    | "RENAME"
    | "EMPTY_MAP"
    | "CREATE_CONTRACT"
    | "HASH_KEY"
    | "ISNAT"
    | "code"
    | "AND"

Invalid primitive name case (typechecking error)

In a script or data expression, a primitive name is neither uppercase, lowercase or capitalized.

Id : proto.alpha.invalidPrimitiveNameCaseTypeError
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.invalidPrimitiveNameCaseTypeError",
    "wrongPrimitiveName": string }

Invalid primitive name (typechecking error)

In a script or data expression, a primitive name is unknown or has a wrong case.

Id : proto.alpha.invalidPrimitiveNameTypeErro
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.invalidPrimitiveNameTypeErro",
    "expression": $micheline.generic.expression,
    "location": $micheline.location }
  $bignum:
    /* Big number
       Decimal representation of a big number */
    string
  $micheline.generic.expression:
    { "int": $bignum }
    || { "string": string }
    || { "bytes": /^[a-zA-Z0-9]+$/ }
    || [ $micheline.generic.expression ... ]
    || { "prim": string,
         "args"?: [ $micheline.generic.expression ... ],
         "annots"?: [ string ... ] }
  $micheline.location:
    /* Canonical location in a Micheline expression
       The location of a node in a Micheline expression tree in prefix
       order, with zero being the root and adding one for every basic node,
       sequence and primitive application. */
    integer ∈ [-2^30-2, 2^30+2]

Invalid primitive namespace (typechecking error)

In a script or data expression, a primitive was of the wrong namespace.

Id : proto.alpha.invalidPrimitiveNamespaceTypeError
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.invalidPrimitiveNamespaceTypeError",
    "location": $micheline.location,
    "primitiveName": $michelson.v1.primitives,
    "expectedNamespace": $primitiveNamespace,
    "wrongNamespace": $primitiveNamespace }
  $micheline.location:
    /* Canonical location in a Micheline expression
       The location of a node in a Micheline expression tree in prefix
       order, with zero being the root and adding one for every basic node,
       sequence and primitive application. */
    integer ∈ [-2^30-2, 2^30+2]
  $michelson.v1.primitives:
    "ADD"
    | "LE"
    | "UPDATE"
    | "unit"
    | "string"
    | "COMPARE"
    | "LAMBDA"
    | "LOOP"
    | "Elt"
    | "IMPLICIT_ACCOUNT"
    | "NONE"
    | "signature"
    | "set"
    | "mutez"
    | "BLAKE2B"
    | "SHA256"
    | "ITER"
    | "bool"
    | "MAP"
    | "UNIT"
    | "DIP"
    | "PACK"
    | "pair"
    | "SIZE"
    | "Right"
    | "map"
    | "IF_CONS"
    | "LSR"
    | "SET_DELEGATE"
    | "storage"
    | "XOR"
    | "CDR"
    | "TRANSFER_TOKENS"
    | "SOME"
    | "False"
    | "SHA512"
    | "CHECK_SIGNATURE"
    | "BALANCE"
    | "lambda"
    | "operation"
    | "EMPTY_SET"
    | "SWAP"
    | "MEM"
    | "RIGHT"
    | "CONTRACT"
    | "or"
    | "CONCAT"
    | "nat"
    | "bytes"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "NOT"
    | "LEFT"
    | "timestamp"
    | "AMOUNT"
    | "DROP"
    | "ABS"
    | "contract"
    | "GE"
    | "PUSH"
    | "LT"
    | "address"
    | "NEQ"
    | "NEG"
    | "None"
    | "CONS"
    | "EXEC"
    | "NIL"
    | "CAST"
    | "MUL"
    | "ADDRESS"
    | "EDIV"
    | "STEPS_TO_QUOTA"
    | "SUB"
    | "INT"
    | "SOURCE"
    | "CAR"
    | "CREATE_ACCOUNT"
    | "LSL"
    | "OR"
    | "IF_NONE"
    | "SELF"
    | "IF"
    | "Left"
    | "int"
    | "big_map"
    | "SENDER"
    | "option"
    | "DUP"
    | "EQ"
    | "NOW"
    | "key_hash"
    | "GET"
    | "list"
    | "key"
    | "True"
    | "GT"
    | "parameter"
    | "IF_LEFT"
    | "FAILWITH"
    | "PAIR"
    | "LOOP_LEFT"
    | "Pair"
    | "RENAME"
    | "EMPTY_MAP"
    | "CREATE_CONTRACT"
    | "HASH_KEY"
    | "ISNAT"
    | "code"
    | "AND"
  $primitiveNamespace:
    /* Primitive namespace
       One of the three possible namespaces of primitive (data constructor,
       type name or instruction). */
    "constant" | "type" | "instruction"

Invalid primitive (typechecking error)

In a script or data expression, a primitive was unknown.

Id : proto.alpha.invalidPrimitiveTypeError
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.invalidPrimitiveTypeError",
    "location": $micheline.location,
    "expectedPrimitiveNames"?: [ $michelson.v1.primitives ... ],
    "wrongPrimitiveName": $michelson.v1.primitives }
  $micheline.location:
    /* Canonical location in a Micheline expression
       The location of a node in a Micheline expression tree in prefix
       order, with zero being the root and adding one for every basic node,
       sequence and primitive application. */
    integer ∈ [-2^30-2, 2^30+2]
  $michelson.v1.primitives:
    "ADD"
    | "LE"
    | "UPDATE"
    | "unit"
    | "string"
    | "COMPARE"
    | "LAMBDA"
    | "LOOP"
    | "Elt"
    | "IMPLICIT_ACCOUNT"
    | "NONE"
    | "signature"
    | "set"
    | "mutez"
    | "BLAKE2B"
    | "SHA256"
    | "ITER"
    | "bool"
    | "MAP"
    | "UNIT"
    | "DIP"
    | "PACK"
    | "pair"
    | "SIZE"
    | "Right"
    | "map"
    | "IF_CONS"
    | "LSR"
    | "SET_DELEGATE"
    | "storage"
    | "XOR"
    | "CDR"
    | "TRANSFER_TOKENS"
    | "SOME"
    | "False"
    | "SHA512"
    | "CHECK_SIGNATURE"
    | "BALANCE"
    | "lambda"
    | "operation"
    | "EMPTY_SET"
    | "SWAP"
    | "MEM"
    | "RIGHT"
    | "CONTRACT"
    | "or"
    | "CONCAT"
    | "nat"
    | "bytes"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "NOT"
    | "LEFT"
    | "timestamp"
    | "AMOUNT"
    | "DROP"
    | "ABS"
    | "contract"
    | "GE"
    | "PUSH"
    | "LT"
    | "address"
    | "NEQ"
    | "NEG"
    | "None"
    | "CONS"
    | "EXEC"
    | "NIL"
    | "CAST"
    | "MUL"
    | "ADDRESS"
    | "EDIV"
    | "STEPS_TO_QUOTA"
    | "SUB"
    | "INT"
    | "SOURCE"
    | "CAR"
    | "CREATE_ACCOUNT"
    | "LSL"
    | "OR"
    | "IF_NONE"
    | "SELF"
    | "IF"
    | "Left"
    | "int"
    | "big_map"
    | "SENDER"
    | "option"
    | "DUP"
    | "EQ"
    | "NOW"
    | "key_hash"
    | "GET"
    | "list"
    | "key"
    | "True"
    | "GT"
    | "parameter"
    | "IF_LEFT"
    | "FAILWITH"
    | "PAIR"
    | "LOOP_LEFT"
    | "Pair"
    | "RENAME"
    | "EMPTY_MAP"
    | "CREATE_CONTRACT"
    | "HASH_KEY"
    | "ISNAT"
    | "code"
    | "AND"

Invalid arg

Negative multiple of periods are not allowed.

Id : proto.alpha.invalid_arg
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.invalid_arg" }

Invalid binary format

Could not deserialize some piece of data from its binary representation

Id : proto.alpha.invalid_binary_format
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.invalid_binary_format" }

Invalid fitness

Fitness representation should be exactly 8 bytes long.

Id : proto.alpha.invalid_fitness
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.invalid_fitness" }

Invalid proposal

Ballot provided for a proposal that is not the current one.

Id : proto.alpha.invalid_proposal
Category : branch

  { "kind": "branch",
    "id": "proto.alpha.invalid_proposal" }

Malformed period

Period is negative.

Id : proto.alpha.malformed_period
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.malformed_period" }

Script is missing a field (parse error)

When parsing script, a field was expected, but not provided

Id : proto.alpha.missingScriptField
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.missingScriptField",
    "prim": $michelson.v1.primitives }
  $michelson.v1.primitives:
    "ADD"
    | "LE"
    | "UPDATE"
    | "unit"
    | "string"
    | "COMPARE"
    | "LAMBDA"
    | "LOOP"
    | "Elt"
    | "IMPLICIT_ACCOUNT"
    | "NONE"
    | "signature"
    | "set"
    | "mutez"
    | "BLAKE2B"
    | "SHA256"
    | "ITER"
    | "bool"
    | "MAP"
    | "UNIT"
    | "DIP"
    | "PACK"
    | "pair"
    | "SIZE"
    | "Right"
    | "map"
    | "IF_CONS"
    | "LSR"
    | "SET_DELEGATE"
    | "storage"
    | "XOR"
    | "CDR"
    | "TRANSFER_TOKENS"
    | "SOME"
    | "False"
    | "SHA512"
    | "CHECK_SIGNATURE"
    | "BALANCE"
    | "lambda"
    | "operation"
    | "EMPTY_SET"
    | "SWAP"
    | "MEM"
    | "RIGHT"
    | "CONTRACT"
    | "or"
    | "CONCAT"
    | "nat"
    | "bytes"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "NOT"
    | "LEFT"
    | "timestamp"
    | "AMOUNT"
    | "DROP"
    | "ABS"
    | "contract"
    | "GE"
    | "PUSH"
    | "LT"
    | "address"
    | "NEQ"
    | "NEG"
    | "None"
    | "CONS"
    | "EXEC"
    | "NIL"
    | "CAST"
    | "MUL"
    | "ADDRESS"
    | "EDIV"
    | "STEPS_TO_QUOTA"
    | "SUB"
    | "INT"
    | "SOURCE"
    | "CAR"
    | "CREATE_ACCOUNT"
    | "LSL"
    | "OR"
    | "IF_NONE"
    | "SELF"
    | "IF"
    | "Left"
    | "int"
    | "big_map"
    | "SENDER"
    | "option"
    | "DUP"
    | "EQ"
    | "NOW"
    | "key_hash"
    | "GET"
    | "list"
    | "key"
    | "True"
    | "GT"
    | "parameter"
    | "IF_LEFT"
    | "FAILWITH"
    | "PAIR"
    | "LOOP_LEFT"
    | "Pair"
    | "RENAME"
    | "EMPTY_MAP"
    | "CREATE_CONTRACT"
    | "HASH_KEY"
    | "ISNAT"
    | "code"
    | "AND"

Previously revealed nonce

Duplicated revelation for a nonce.

Id : proto.alpha.nonce.previously_revealed
Category : branch

  { "kind": "branch",
    "id": "proto.alpha.nonce.previously_revealed",
    ... }

Too early nonce revelation

Nonce revelation happens before cycle end

Id : proto.alpha.nonce.too_early_revelation
Category : temporary

  { "kind": "temporary",
    "id": "proto.alpha.nonce.too_early_revelation",
    ... }

Too late nonce revelation

Nonce revelation happens too late

Id : proto.alpha.nonce.too_late_revelation
Category : branch

  { "kind": "branch",
    "id": "proto.alpha.nonce.too_late_revelation",
    ... }

Unexpected nonce

The provided nonce is inconsistent with the committed nonce hash.

Id : proto.alpha.nonce.unexpected
Category : branch

  { "kind": "branch",
    "id": "proto.alpha.nonce.unexpected",
    ... }

Cannot parse operation

The operation is ill-formed or for another protocol version

Id : proto.alpha.operation.cannot_parse
Category : branch

  { "kind": "branch",
    "id": "proto.alpha.operation.cannot_parse",
    ... }

Duplicate endorsement

Two endorsements received from same delegate

Id : proto.alpha.operation.duplicate_endorsement
Category : branch

  { "kind": "branch",
    "id": "proto.alpha.operation.duplicate_endorsement",
    "delegate": $Signature.Public_key_hash }
  $Signature.Public_key_hash:
    /* A Ed25519, Secp256k1, or P256 public key hash (Base58Check-encoded) */
    string

Invalid activation

The given key and secret do not correspond to any existing preallocated contract

Id : proto.alpha.operation.invalid_activation
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.operation.invalid_activation",
    "pkh": $Ed25519.Public_key_hash }
  $Ed25519.Public_key_hash:
    /* An Ed25519 public key hash (Base58Check-encoded) */
    string

Unexpected level in endorsement

The level of an endorsement is inconsistent with the provided block hash.

Id : proto.alpha.operation.invalid_endorsement_level
Category : temporary

  { "kind": "temporary",
    "id": "proto.alpha.operation.invalid_endorsement_level",
    ... }

Invalid operation signature

The operation signature is ill-formed or has been made with the wrong public key

Id : proto.alpha.operation.invalid_signature
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.operation.invalid_signature",
    ... }

Missing operation signature

The operation is of a kind that must be signed, but the signature is missing

Id : proto.alpha.operation.missing_signature
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.operation.missing_signature",
    ... }

Wrong endorsement predecessor

Trying to include an endorsement in a block that is not the successor of the endorsed one

Id : proto.alpha.operation.wrong_endorsement_predecessor
Category : temporary

  { "kind": "temporary",
    "id": "proto.alpha.operation.wrong_endorsement_predecessor",
    "expected": $block_hash,
    "provided": $block_hash }
  $block_hash:
    /* A block identifier (Base58Check-encoded) */
    string

Wrong voting period

Trying to onclude a proposal or ballot meant for another voting period

Id : proto.alpha.operation.wrong_voting_period
Category : temporary

  { "kind": "temporary",
    "id": "proto.alpha.operation.wrong_voting_period",
    "current": integer ∈ [-2^31-2, 2^31+2],
    "provided": integer ∈ [-2^31-2, 2^31+2] }

Script failed (overflow error)

A FAIL instruction was reached due to the detection of an overflow

Id : proto.alpha.scriptOverflowRuntimeError
Category : temporary

  { "kind": "temporary",
    "id": "proto.alpha.scriptOverflowRuntimeError",
    "location": $micheline.location,
    "trace"?:
      [ { "location": $micheline.location,
          "gas": $bignum || "unaccounted",
          "stack":
            [ { "item": $micheline.michelson_v1.expression,
                "annot"?: string } ... ] } ... ] }
  $bignum:
    /* Big number
       Decimal representation of a big number */
    string
  $micheline.location:
    /* Canonical location in a Micheline expression
       The location of a node in a Micheline expression tree in prefix
       order, with zero being the root and adding one for every basic node,
       sequence and primitive application. */
    integer ∈ [-2^30-2, 2^30+2]
  $micheline.michelson_v1.expression:
    { "int": $bignum }
    || { "string": string }
    || { "bytes": /^[a-zA-Z0-9]+$/ }
    || [ $micheline.michelson_v1.expression ... ]
    || { "prim": $michelson.v1.primitives,
         "args"?: [ $micheline.michelson_v1.expression ... ],
         "annots"?: [ string ... ] }
  $michelson.v1.primitives:
    "ADD"
    | "LE"
    | "UPDATE"
    | "unit"
    | "string"
    | "COMPARE"
    | "LAMBDA"
    | "LOOP"
    | "Elt"
    | "IMPLICIT_ACCOUNT"
    | "NONE"
    | "signature"
    | "set"
    | "mutez"
    | "BLAKE2B"
    | "SHA256"
    | "ITER"
    | "bool"
    | "MAP"
    | "UNIT"
    | "DIP"
    | "PACK"
    | "pair"
    | "SIZE"
    | "Right"
    | "map"
    | "IF_CONS"
    | "LSR"
    | "SET_DELEGATE"
    | "storage"
    | "XOR"
    | "CDR"
    | "TRANSFER_TOKENS"
    | "SOME"
    | "False"
    | "SHA512"
    | "CHECK_SIGNATURE"
    | "BALANCE"
    | "lambda"
    | "operation"
    | "EMPTY_SET"
    | "SWAP"
    | "MEM"
    | "RIGHT"
    | "CONTRACT"
    | "or"
    | "CONCAT"
    | "nat"
    | "bytes"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "NOT"
    | "LEFT"
    | "timestamp"
    | "AMOUNT"
    | "DROP"
    | "ABS"
    | "contract"
    | "GE"
    | "PUSH"
    | "LT"
    | "address"
    | "NEQ"
    | "NEG"
    | "None"
    | "CONS"
    | "EXEC"
    | "NIL"
    | "CAST"
    | "MUL"
    | "ADDRESS"
    | "EDIV"
    | "STEPS_TO_QUOTA"
    | "SUB"
    | "INT"
    | "SOURCE"
    | "CAR"
    | "CREATE_ACCOUNT"
    | "LSL"
    | "OR"
    | "IF_NONE"
    | "SELF"
    | "IF"
    | "Left"
    | "int"
    | "big_map"
    | "SENDER"
    | "option"
    | "DUP"
    | "EQ"
    | "NOW"
    | "key_hash"
    | "GET"
    | "list"
    | "key"
    | "True"
    | "GT"
    | "parameter"
    | "IF_LEFT"
    | "FAILWITH"
    | "PAIR"
    | "LOOP_LEFT"
    | "Pair"
    | "RENAME"
    | "EMPTY_MAP"
    | "CREATE_CONTRACT"
    | "HASH_KEY"
    | "ISNAT"
    | "code"
    | "AND"

Script failed (runtime script error)

A FAILWITH instruction was reached

Id : proto.alpha.scriptRejectedRuntimeError
Category : temporary

  { "kind": "temporary",
    "id": "proto.alpha.scriptRejectedRuntimeError",
    "location": $micheline.location,
    "with": $micheline.michelson_v1.expression,
    "trace"?:
      [ { "location": $micheline.location,
          "gas": $bignum || "unaccounted",
          "stack":
            [ { "item": $micheline.michelson_v1.expression,
                "annot"?: string } ... ] } ... ] }
  $bignum:
    /* Big number
       Decimal representation of a big number */
    string
  $micheline.location:
    /* Canonical location in a Micheline expression
       The location of a node in a Micheline expression tree in prefix
       order, with zero being the root and adding one for every basic node,
       sequence and primitive application. */
    integer ∈ [-2^30-2, 2^30+2]
  $micheline.michelson_v1.expression:
    { "int": $bignum }
    || { "string": string }
    || { "bytes": /^[a-zA-Z0-9]+$/ }
    || [ $micheline.michelson_v1.expression ... ]
    || { "prim": $michelson.v1.primitives,
         "args"?: [ $micheline.michelson_v1.expression ... ],
         "annots"?: [ string ... ] }
  $michelson.v1.primitives:
    "ADD"
    | "LE"
    | "UPDATE"
    | "unit"
    | "string"
    | "COMPARE"
    | "LAMBDA"
    | "LOOP"
    | "Elt"
    | "IMPLICIT_ACCOUNT"
    | "NONE"
    | "signature"
    | "set"
    | "mutez"
    | "BLAKE2B"
    | "SHA256"
    | "ITER"
    | "bool"
    | "MAP"
    | "UNIT"
    | "DIP"
    | "PACK"
    | "pair"
    | "SIZE"
    | "Right"
    | "map"
    | "IF_CONS"
    | "LSR"
    | "SET_DELEGATE"
    | "storage"
    | "XOR"
    | "CDR"
    | "TRANSFER_TOKENS"
    | "SOME"
    | "False"
    | "SHA512"
    | "CHECK_SIGNATURE"
    | "BALANCE"
    | "lambda"
    | "operation"
    | "EMPTY_SET"
    | "SWAP"
    | "MEM"
    | "RIGHT"
    | "CONTRACT"
    | "or"
    | "CONCAT"
    | "nat"
    | "bytes"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "NOT"
    | "LEFT"
    | "timestamp"
    | "AMOUNT"
    | "DROP"
    | "ABS"
    | "contract"
    | "GE"
    | "PUSH"
    | "LT"
    | "address"
    | "NEQ"
    | "NEG"
    | "None"
    | "CONS"
    | "EXEC"
    | "NIL"
    | "CAST"
    | "MUL"
    | "ADDRESS"
    | "EDIV"
    | "STEPS_TO_QUOTA"
    | "SUB"
    | "INT"
    | "SOURCE"
    | "CAR"
    | "CREATE_ACCOUNT"
    | "LSL"
    | "OR"
    | "IF_NONE"
    | "SELF"
    | "IF"
    | "Left"
    | "int"
    | "big_map"
    | "SENDER"
    | "option"
    | "DUP"
    | "EQ"
    | "NOW"
    | "key_hash"
    | "GET"
    | "list"
    | "key"
    | "True"
    | "GT"
    | "parameter"
    | "IF_LEFT"
    | "FAILWITH"
    | "PAIR"
    | "LOOP_LEFT"
    | "Pair"
    | "RENAME"
    | "EMPTY_MAP"
    | "CREATE_CONTRACT"
    | "HASH_KEY"
    | "ISNAT"
    | "code"
    | "AND"

Script runtime error

Toplevel error for all runtime script errors

Id : proto.alpha.scriptRuntimeError
Category : temporary

  { "kind": "temporary",
    "id": "proto.alpha.scriptRuntimeError",
    "contractHandle": $contract_id,
    "contractCode": $micheline.michelson_v1.expression }
  $bignum:
    /* Big number
       Decimal representation of a big number */
    string
  $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. */
    string
  $micheline.michelson_v1.expression:
    { "int": $bignum }
    || { "string": string }
    || { "bytes": /^[a-zA-Z0-9]+$/ }
    || [ $micheline.michelson_v1.expression ... ]
    || { "prim": $michelson.v1.primitives,
         "args"?: [ $micheline.michelson_v1.expression ... ],
         "annots"?: [ string ... ] }
  $michelson.v1.primitives:
    "ADD"
    | "LE"
    | "UPDATE"
    | "unit"
    | "string"
    | "COMPARE"
    | "LAMBDA"
    | "LOOP"
    | "Elt"
    | "IMPLICIT_ACCOUNT"
    | "NONE"
    | "signature"
    | "set"
    | "mutez"
    | "BLAKE2B"
    | "SHA256"
    | "ITER"
    | "bool"
    | "MAP"
    | "UNIT"
    | "DIP"
    | "PACK"
    | "pair"
    | "SIZE"
    | "Right"
    | "map"
    | "IF_CONS"
    | "LSR"
    | "SET_DELEGATE"
    | "storage"
    | "XOR"
    | "CDR"
    | "TRANSFER_TOKENS"
    | "SOME"
    | "False"
    | "SHA512"
    | "CHECK_SIGNATURE"
    | "BALANCE"
    | "lambda"
    | "operation"
    | "EMPTY_SET"
    | "SWAP"
    | "MEM"
    | "RIGHT"
    | "CONTRACT"
    | "or"
    | "CONCAT"
    | "nat"
    | "bytes"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "NOT"
    | "LEFT"
    | "timestamp"
    | "AMOUNT"
    | "DROP"
    | "ABS"
    | "contract"
    | "GE"
    | "PUSH"
    | "LT"
    | "address"
    | "NEQ"
    | "NEG"
    | "None"
    | "CONS"
    | "EXEC"
    | "NIL"
    | "CAST"
    | "MUL"
    | "ADDRESS"
    | "EDIV"
    | "STEPS_TO_QUOTA"
    | "SUB"
    | "INT"
    | "SOURCE"
    | "CAR"
    | "CREATE_ACCOUNT"
    | "LSL"
    | "OR"
    | "IF_NONE"
    | "SELF"
    | "IF"
    | "Left"
    | "int"
    | "big_map"
    | "SENDER"
    | "option"
    | "DUP"
    | "EQ"
    | "NOW"
    | "key_hash"
    | "GET"
    | "list"
    | "key"
    | "True"
    | "GT"
    | "parameter"
    | "IF_LEFT"
    | "FAILWITH"
    | "PAIR"
    | "LOOP_LEFT"
    | "Pair"
    | "RENAME"
    | "EMPTY_MAP"
    | "CREATE_CONTRACT"
    | "HASH_KEY"
    | "ISNAT"
    | "code"
    | "AND"

Unknown seed

The requested seed is not available

Id : proto.alpha.seed.unknown_seed
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.seed.unknown_seed",
    "oldest": integer ∈ [-2^31-2, 2^31+2],
    "requested": integer ∈ [-2^31-2, 2^31+2],
    "latest": integer ∈ [-2^31-2, 2^31+2] }

SELF instruction in lambda (typechecking error)

A SELF instruction was encountered in a lambda expression.

Id : proto.alpha.selfInLambda
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.selfInLambda",
    "location": $micheline.location }
  $micheline.location:
    /* Canonical location in a Micheline expression
       The location of a node in a Micheline expression tree in prefix
       order, with zero being the root and adding one for every basic node,
       sequence and primitive application. */
    integer ∈ [-2^30-2, 2^30+2]

Storage quota exceeded for the operation

A script or one of its callee wrote more bytes than the operation said it would

Id : proto.alpha.storage_exhausted.operation
Category : temporary

  { "kind": "temporary",
    "id": "proto.alpha.storage_exhausted.operation" }

Storage limit out of protocol hard bounds

A transaction tried to exceed the hard limit on storage

Id : proto.alpha.storage_limit_too_high
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.storage_limit_too_high" }

Overflowing tez addition

An addition of two tez amounts overflowed

Id : proto.alpha.tez.addition_overflow
Category : temporary

  { "kind": "temporary",
    "id": "proto.alpha.tez.addition_overflow",
    "amounts": [ $positive_bignum, $positive_bignum ] }
  $positive_bignum:
    /* Positive big number
       Decimal representation of a positive big number */
    string

Invalid tez divisor

Multiplication of a tez amount by a non positive integer

Id : proto.alpha.tez.invalid_divisor
Category : temporary

  { "kind": "temporary",
    "id": "proto.alpha.tez.invalid_divisor",
    "amount": $positive_bignum,
    "divisor": $int64 }
  $int64:
    /* 64 bit integers
       Decimal representation of 64 bit integers */
    string
  $positive_bignum:
    /* Positive big number
       Decimal representation of a positive big number */
    string

Overflowing tez multiplication

A multiplication of a tez amount by an integer overflowed

Id : proto.alpha.tez.multiplication_overflow
Category : temporary

  { "kind": "temporary",
    "id": "proto.alpha.tez.multiplication_overflow",
    "amount": $positive_bignum,
    "multiplicator": $int64 }
  $int64:
    /* 64 bit integers
       Decimal representation of 64 bit integers */
    string
  $positive_bignum:
    /* Positive big number
       Decimal representation of a positive big number */
    string

Negative tez multiplicator

Multiplication of a tez amount by a negative integer

Id : proto.alpha.tez.negative_multiplicator
Category : temporary

  { "kind": "temporary",
    "id": "proto.alpha.tez.negative_multiplicator",
    "amount": $positive_bignum,
    "multiplicator": $int64 }
  $int64:
    /* 64 bit integers
       Decimal representation of 64 bit integers */
    string
  $positive_bignum:
    /* Positive big number
       Decimal representation of a positive big number */
    string

Underflowing tez subtraction

An subtraction of two tez amounts underflowed

Id : proto.alpha.tez.subtraction_underflow
Category : temporary

  { "kind": "temporary",
    "id": "proto.alpha.tez.subtraction_underflow",
    "amounts": [ $positive_bignum, $positive_bignum ] }
  $positive_bignum:
    /* Positive big number
       Decimal representation of a positive big number */
    string

Timestamp add

Overflow when adding timestamps.

Id : proto.alpha.timestamp_add
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.timestamp_add" }

Too many internal operations

A transaction exceeded the hard limit of internal operations it can emit

Id : proto.alpha.too_many_internal_operations
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.too_many_internal_operations" }

Stack item type too large

An instruction generated a type larger than the limit.

Id : proto.alpha.typeTooLarge
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.typeTooLarge",
    "loc": $micheline.location,
    "typeSize": integer ∈ [0, 2^16-1],
    "maximumTypeSize": integer ∈ [0, 2^16-1] }
  $micheline.location:
    /* Canonical location in a Micheline expression
       The location of a node in a Micheline expression tree in prefix
       order, with zero being the root and adding one for every basic node,
       sequence and primitive application. */
    integer ∈ [-2^30-2, 2^30+2]

Unauthorized ballot

The delegate provided for the ballot is not in the voting listings.

Id : proto.alpha.unauthorized_ballot
Category : branch

  { "kind": "branch",
    "id": "proto.alpha.unauthorized_ballot" }

Unauthorized proposal

The delegate provided for the proposal is not in the voting listings.

Id : proto.alpha.unauthorized_proposal
Category : branch

  { "kind": "branch",
    "id": "proto.alpha.unauthorized_proposal" }

Undefined binop (typechecking error)

A binary operation is called on operands of types over which it is not defined.

Id : proto.alpha.undefinedBinopTypeError
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.undefinedBinopTypeError",
    "location": $micheline.location,
    "operatorName": $michelson.v1.primitives,
    "wrongLeftOperandType": $micheline.michelson_v1.expression,
    "wrongRightOperandType": $micheline.michelson_v1.expression }
  $bignum:
    /* Big number
       Decimal representation of a big number */
    string
  $micheline.location:
    /* Canonical location in a Micheline expression
       The location of a node in a Micheline expression tree in prefix
       order, with zero being the root and adding one for every basic node,
       sequence and primitive application. */
    integer ∈ [-2^30-2, 2^30+2]
  $micheline.michelson_v1.expression:
    { "int": $bignum }
    || { "string": string }
    || { "bytes": /^[a-zA-Z0-9]+$/ }
    || [ $micheline.michelson_v1.expression ... ]
    || { "prim": $michelson.v1.primitives,
         "args"?: [ $micheline.michelson_v1.expression ... ],
         "annots"?: [ string ... ] }
  $michelson.v1.primitives:
    "ADD"
    | "LE"
    | "UPDATE"
    | "unit"
    | "string"
    | "COMPARE"
    | "LAMBDA"
    | "LOOP"
    | "Elt"
    | "IMPLICIT_ACCOUNT"
    | "NONE"
    | "signature"
    | "set"
    | "mutez"
    | "BLAKE2B"
    | "SHA256"
    | "ITER"
    | "bool"
    | "MAP"
    | "UNIT"
    | "DIP"
    | "PACK"
    | "pair"
    | "SIZE"
    | "Right"
    | "map"
    | "IF_CONS"
    | "LSR"
    | "SET_DELEGATE"
    | "storage"
    | "XOR"
    | "CDR"
    | "TRANSFER_TOKENS"
    | "SOME"
    | "False"
    | "SHA512"
    | "CHECK_SIGNATURE"
    | "BALANCE"
    | "lambda"
    | "operation"
    | "EMPTY_SET"
    | "SWAP"
    | "MEM"
    | "RIGHT"
    | "CONTRACT"
    | "or"
    | "CONCAT"
    | "nat"
    | "bytes"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "NOT"
    | "LEFT"
    | "timestamp"
    | "AMOUNT"
    | "DROP"
    | "ABS"
    | "contract"
    | "GE"
    | "PUSH"
    | "LT"
    | "address"
    | "NEQ"
    | "NEG"
    | "None"
    | "CONS"
    | "EXEC"
    | "NIL"
    | "CAST"
    | "MUL"
    | "ADDRESS"
    | "EDIV"
    | "STEPS_TO_QUOTA"
    | "SUB"
    | "INT"
    | "SOURCE"
    | "CAR"
    | "CREATE_ACCOUNT"
    | "LSL"
    | "OR"
    | "IF_NONE"
    | "SELF"
    | "IF"
    | "Left"
    | "int"
    | "big_map"
    | "SENDER"
    | "option"
    | "DUP"
    | "EQ"
    | "NOW"
    | "key_hash"
    | "GET"
    | "list"
    | "key"
    | "True"
    | "GT"
    | "parameter"
    | "IF_LEFT"
    | "FAILWITH"
    | "PAIR"
    | "LOOP_LEFT"
    | "Pair"
    | "RENAME"
    | "EMPTY_MAP"
    | "CREATE_CONTRACT"
    | "HASH_KEY"
    | "ISNAT"
    | "code"
    | "AND"

Undefined unop (typechecking error)

A unary operation is called on an operand of type over which it is not defined.

Id : proto.alpha.undefinedUnopTypeError
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.undefinedUnopTypeError",
    "location": $micheline.location,
    "operatorName": $michelson.v1.primitives,
    "wrongOperandType": $micheline.michelson_v1.expression }
  $bignum:
    /* Big number
       Decimal representation of a big number */
    string
  $micheline.location:
    /* Canonical location in a Micheline expression
       The location of a node in a Micheline expression tree in prefix
       order, with zero being the root and adding one for every basic node,
       sequence and primitive application. */
    integer ∈ [-2^30-2, 2^30+2]
  $micheline.michelson_v1.expression:
    { "int": $bignum }
    || { "string": string }
    || { "bytes": /^[a-zA-Z0-9]+$/ }
    || [ $micheline.michelson_v1.expression ... ]
    || { "prim": $michelson.v1.primitives,
         "args"?: [ $micheline.michelson_v1.expression ... ],
         "annots"?: [ string ... ] }
  $michelson.v1.primitives:
    "ADD"
    | "LE"
    | "UPDATE"
    | "unit"
    | "string"
    | "COMPARE"
    | "LAMBDA"
    | "LOOP"
    | "Elt"
    | "IMPLICIT_ACCOUNT"
    | "NONE"
    | "signature"
    | "set"
    | "mutez"
    | "BLAKE2B"
    | "SHA256"
    | "ITER"
    | "bool"
    | "MAP"
    | "UNIT"
    | "DIP"
    | "PACK"
    | "pair"
    | "SIZE"
    | "Right"
    | "map"
    | "IF_CONS"
    | "LSR"
    | "SET_DELEGATE"
    | "storage"
    | "XOR"
    | "CDR"
    | "TRANSFER_TOKENS"
    | "SOME"
    | "False"
    | "SHA512"
    | "CHECK_SIGNATURE"
    | "BALANCE"
    | "lambda"
    | "operation"
    | "EMPTY_SET"
    | "SWAP"
    | "MEM"
    | "RIGHT"
    | "CONTRACT"
    | "or"
    | "CONCAT"
    | "nat"
    | "bytes"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "NOT"
    | "LEFT"
    | "timestamp"
    | "AMOUNT"
    | "DROP"
    | "ABS"
    | "contract"
    | "GE"
    | "PUSH"
    | "LT"
    | "address"
    | "NEQ"
    | "NEG"
    | "None"
    | "CONS"
    | "EXEC"
    | "NIL"
    | "CAST"
    | "MUL"
    | "ADDRESS"
    | "EDIV"
    | "STEPS_TO_QUOTA"
    | "SUB"
    | "INT"
    | "SOURCE"
    | "CAR"
    | "CREATE_ACCOUNT"
    | "LSL"
    | "OR"
    | "IF_NONE"
    | "SELF"
    | "IF"
    | "Left"
    | "int"
    | "big_map"
    | "SENDER"
    | "option"
    | "DUP"
    | "EQ"
    | "NOW"
    | "key_hash"
    | "GET"
    | "list"
    | "key"
    | "True"
    | "GT"
    | "parameter"
    | "IF_LEFT"
    | "FAILWITH"
    | "PAIR"
    | "LOOP_LEFT"
    | "Pair"
    | "RENAME"
    | "EMPTY_MAP"
    | "CREATE_CONTRACT"
    | "HASH_KEY"
    | "ISNAT"
    | "code"
    | "AND"

Ill timed access to the origination nonce

An origination was attemped out of the scope of a manager operation

Id : proto.alpha.undefined_operation_nonce
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.undefined_operation_nonce" }

An annotation was encountered where no annotation is expected

A node in the syntax tree was impropperly annotated

Id : proto.alpha.unexpectedAnnotation
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.unexpectedAnnotation",
    "location": $micheline.location }
  $micheline.location:
    /* Canonical location in a Micheline expression
       The location of a node in a Micheline expression tree in prefix
       order, with zero being the root and adding one for every basic node,
       sequence and primitive application. */
    integer ∈ [-2^30-2, 2^30+2]

Big map in unauthorized position (type error)

When parsing script, a big_map type was found somewhere else than in the left component of the toplevel storage pair.

Id : proto.alpha.unexpectedBigMap
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.unexpectedBigMap",
    "loc": $micheline.location }
  $micheline.location:
    /* Canonical location in a Micheline expression
       The location of a node in a Micheline expression tree in prefix
       order, with zero being the root and adding one for every basic node,
       sequence and primitive application. */
    integer ∈ [-2^30-2, 2^30+2]

Big map in unauthorized position (type error)

When parsing script, a operation type was found in the storage or parameter field.

Id : proto.alpha.unexpectedOperation
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.unexpectedOperation",
    "loc": $micheline.location }
  $micheline.location:
    /* Canonical location in a Micheline expression
       The location of a node in a Micheline expression tree in prefix
       order, with zero being the root and adding one for every basic node,
       sequence and primitive application. */
    integer ∈ [-2^30-2, 2^30+2]

Unexpected ballot

Ballot recorded outside of a voting period.

Id : proto.alpha.unexpected_ballot
Category : branch

  { "kind": "branch",
    "id": "proto.alpha.unexpected_ballot" }

Unexpected level

Level must be non-negative.

Id : proto.alpha.unexpected_level
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.unexpected_level",
    "level": integer ∈ [-2^31-2, 2^31+2] }

Unexpected nonce length

Nonce length is incorrect.

Id : proto.alpha.unexpected_nonce_length
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.unexpected_nonce_length" }

Unexpected proposal

Proposal recorded outside of a proposal period.

Id : proto.alpha.unexpected_proposal
Category : branch

  { "kind": "branch",
    "id": "proto.alpha.unexpected_proposal" }

Annotations of the same kind were found spread apart

Annotations of the same kind must be grouped

Id : proto.alpha.ungroupedAnnotations
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.ungroupedAnnotations",
    "location": $micheline.location }
  $micheline.location:
    /* Canonical location in a Micheline expression
       The location of a node in a Micheline expression tree in prefix
       order, with zero being the root and adding one for every basic node,
       sequence and primitive application. */
    integer ∈ [-2^30-2, 2^30+2]

Unknown primitive name (typechecking error)

In a script or data expression, a primitive was unknown.

Id : proto.alpha.unknownPrimitiveNameTypeError
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.unknownPrimitiveNameTypeError",
    "wrongPrimitiveName": string }

Unmatched branches (typechecking error)

At the join point at the end of two code branches the stacks have inconsistent lengths or contents.

Id : proto.alpha.unmatchedBranchesTypeError
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.unmatchedBranchesTypeError",
    "location": $micheline.location,
    "firstStackType":
      [ { "type": $micheline.michelson_v1.expression,
          "annots"?: [ string ... ] } ... ],
    "otherStackType":
      [ { "type": $micheline.michelson_v1.expression,
          "annots"?: [ string ... ] } ... ] }
  $bignum:
    /* Big number
       Decimal representation of a big number */
    string
  $micheline.location:
    /* Canonical location in a Micheline expression
       The location of a node in a Micheline expression tree in prefix
       order, with zero being the root and adding one for every basic node,
       sequence and primitive application. */
    integer ∈ [-2^30-2, 2^30+2]
  $micheline.michelson_v1.expression:
    { "int": $bignum }
    || { "string": string }
    || { "bytes": /^[a-zA-Z0-9]+$/ }
    || [ $micheline.michelson_v1.expression ... ]
    || { "prim": $michelson.v1.primitives,
         "args"?: [ $micheline.michelson_v1.expression ... ],
         "annots"?: [ string ... ] }
  $michelson.v1.primitives:
    "ADD"
    | "LE"
    | "UPDATE"
    | "unit"
    | "string"
    | "COMPARE"
    | "LAMBDA"
    | "LOOP"
    | "Elt"
    | "IMPLICIT_ACCOUNT"
    | "NONE"
    | "signature"
    | "set"
    | "mutez"
    | "BLAKE2B"
    | "SHA256"
    | "ITER"
    | "bool"
    | "MAP"
    | "UNIT"
    | "DIP"
    | "PACK"
    | "pair"
    | "SIZE"
    | "Right"
    | "map"
    | "IF_CONS"
    | "LSR"
    | "SET_DELEGATE"
    | "storage"
    | "XOR"
    | "CDR"
    | "TRANSFER_TOKENS"
    | "SOME"
    | "False"
    | "SHA512"
    | "CHECK_SIGNATURE"
    | "BALANCE"
    | "lambda"
    | "operation"
    | "EMPTY_SET"
    | "SWAP"
    | "MEM"
    | "RIGHT"
    | "CONTRACT"
    | "or"
    | "CONCAT"
    | "nat"
    | "bytes"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "NOT"
    | "LEFT"
    | "timestamp"
    | "AMOUNT"
    | "DROP"
    | "ABS"
    | "contract"
    | "GE"
    | "PUSH"
    | "LT"
    | "address"
    | "NEQ"
    | "NEG"
    | "None"
    | "CONS"
    | "EXEC"
    | "NIL"
    | "CAST"
    | "MUL"
    | "ADDRESS"
    | "EDIV"
    | "STEPS_TO_QUOTA"
    | "SUB"
    | "INT"
    | "SOURCE"
    | "CAR"
    | "CREATE_ACCOUNT"
    | "LSL"
    | "OR"
    | "IF_NONE"
    | "SELF"
    | "IF"
    | "Left"
    | "int"
    | "big_map"
    | "SENDER"
    | "option"
    | "DUP"
    | "EQ"
    | "NOW"
    | "key_hash"
    | "GET"
    | "list"
    | "key"
    | "True"
    | "GT"
    | "parameter"
    | "IF_LEFT"
    | "FAILWITH"
    | "PAIR"
    | "LOOP_LEFT"
    | "Pair"
    | "RENAME"
    | "EMPTY_MAP"
    | "CREATE_CONTRACT"
    | "HASH_KEY"
    | "ISNAT"
    | "code"
    | "AND"

Invalid map key order

Map keys must be in strictly increasing order

Id : proto.alpha.unorderedMapLiteral
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.unorderedMapLiteral",
    "location": $micheline.location,
    "item": $micheline.michelson_v1.expression }
  $bignum:
    /* Big number
       Decimal representation of a big number */
    string
  $micheline.location:
    /* Canonical location in a Micheline expression
       The location of a node in a Micheline expression tree in prefix
       order, with zero being the root and adding one for every basic node,
       sequence and primitive application. */
    integer ∈ [-2^30-2, 2^30+2]
  $micheline.michelson_v1.expression:
    { "int": $bignum }
    || { "string": string }
    || { "bytes": /^[a-zA-Z0-9]+$/ }
    || [ $micheline.michelson_v1.expression ... ]
    || { "prim": $michelson.v1.primitives,
         "args"?: [ $micheline.michelson_v1.expression ... ],
         "annots"?: [ string ... ] }
  $michelson.v1.primitives:
    "ADD"
    | "LE"
    | "UPDATE"
    | "unit"
    | "string"
    | "COMPARE"
    | "LAMBDA"
    | "LOOP"
    | "Elt"
    | "IMPLICIT_ACCOUNT"
    | "NONE"
    | "signature"
    | "set"
    | "mutez"
    | "BLAKE2B"
    | "SHA256"
    | "ITER"
    | "bool"
    | "MAP"
    | "UNIT"
    | "DIP"
    | "PACK"
    | "pair"
    | "SIZE"
    | "Right"
    | "map"
    | "IF_CONS"
    | "LSR"
    | "SET_DELEGATE"
    | "storage"
    | "XOR"
    | "CDR"
    | "TRANSFER_TOKENS"
    | "SOME"
    | "False"
    | "SHA512"
    | "CHECK_SIGNATURE"
    | "BALANCE"
    | "lambda"
    | "operation"
    | "EMPTY_SET"
    | "SWAP"
    | "MEM"
    | "RIGHT"
    | "CONTRACT"
    | "or"
    | "CONCAT"
    | "nat"
    | "bytes"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "NOT"
    | "LEFT"
    | "timestamp"
    | "AMOUNT"
    | "DROP"
    | "ABS"
    | "contract"
    | "GE"
    | "PUSH"
    | "LT"
    | "address"
    | "NEQ"
    | "NEG"
    | "None"
    | "CONS"
    | "EXEC"
    | "NIL"
    | "CAST"
    | "MUL"
    | "ADDRESS"
    | "EDIV"
    | "STEPS_TO_QUOTA"
    | "SUB"
    | "INT"
    | "SOURCE"
    | "CAR"
    | "CREATE_ACCOUNT"
    | "LSL"
    | "OR"
    | "IF_NONE"
    | "SELF"
    | "IF"
    | "Left"
    | "int"
    | "big_map"
    | "SENDER"
    | "option"
    | "DUP"
    | "EQ"
    | "NOW"
    | "key_hash"
    | "GET"
    | "list"
    | "key"
    | "True"
    | "GT"
    | "parameter"
    | "IF_LEFT"
    | "FAILWITH"
    | "PAIR"
    | "LOOP_LEFT"
    | "Pair"
    | "RENAME"
    | "EMPTY_MAP"
    | "CREATE_CONTRACT"
    | "HASH_KEY"
    | "ISNAT"
    | "code"
    | "AND"

Invalid set value order

Set values must be in strictly increasing order

Id : proto.alpha.unorderedSetLiteral
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.unorderedSetLiteral",
    "location": $micheline.location,
    "value": $micheline.michelson_v1.expression }
  $bignum:
    /* Big number
       Decimal representation of a big number */
    string
  $micheline.location:
    /* Canonical location in a Micheline expression
       The location of a node in a Micheline expression tree in prefix
       order, with zero being the root and adding one for every basic node,
       sequence and primitive application. */
    integer ∈ [-2^30-2, 2^30+2]
  $micheline.michelson_v1.expression:
    { "int": $bignum }
    || { "string": string }
    || { "bytes": /^[a-zA-Z0-9]+$/ }
    || [ $micheline.michelson_v1.expression ... ]
    || { "prim": $michelson.v1.primitives,
         "args"?: [ $micheline.michelson_v1.expression ... ],
         "annots"?: [ string ... ] }
  $michelson.v1.primitives:
    "ADD"
    | "LE"
    | "UPDATE"
    | "unit"
    | "string"
    | "COMPARE"
    | "LAMBDA"
    | "LOOP"
    | "Elt"
    | "IMPLICIT_ACCOUNT"
    | "NONE"
    | "signature"
    | "set"
    | "mutez"
    | "BLAKE2B"
    | "SHA256"
    | "ITER"
    | "bool"
    | "MAP"
    | "UNIT"
    | "DIP"
    | "PACK"
    | "pair"
    | "SIZE"
    | "Right"
    | "map"
    | "IF_CONS"
    | "LSR"
    | "SET_DELEGATE"
    | "storage"
    | "XOR"
    | "CDR"
    | "TRANSFER_TOKENS"
    | "SOME"
    | "False"
    | "SHA512"
    | "CHECK_SIGNATURE"
    | "BALANCE"
    | "lambda"
    | "operation"
    | "EMPTY_SET"
    | "SWAP"
    | "MEM"
    | "RIGHT"
    | "CONTRACT"
    | "or"
    | "CONCAT"
    | "nat"
    | "bytes"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "NOT"
    | "LEFT"
    | "timestamp"
    | "AMOUNT"
    | "DROP"
    | "ABS"
    | "contract"
    | "GE"
    | "PUSH"
    | "LT"
    | "address"
    | "NEQ"
    | "NEG"
    | "None"
    | "CONS"
    | "EXEC"
    | "NIL"
    | "CAST"
    | "MUL"
    | "ADDRESS"
    | "EDIV"
    | "STEPS_TO_QUOTA"
    | "SUB"
    | "INT"
    | "SOURCE"
    | "CAR"
    | "CREATE_ACCOUNT"
    | "LSL"
    | "OR"
    | "IF_NONE"
    | "SELF"
    | "IF"
    | "Left"
    | "int"
    | "big_map"
    | "SENDER"
    | "option"
    | "DUP"
    | "EQ"
    | "NOW"
    | "key_hash"
    | "GET"
    | "list"
    | "key"
    | "True"
    | "GT"
    | "parameter"
    | "IF_LEFT"
    | "FAILWITH"
    | "PAIR"
    | "LOOP_LEFT"
    | "Pair"
    | "RENAME"
    | "EMPTY_MAP"
    | "CREATE_CONTRACT"
    | "HASH_KEY"
    | "ISNAT"
    | "code"
    | "AND"

Shell

Canceled fetch of a Operation_hash

The fetch of a Operation_hash has been canceled

Id : distributed_db.Operation_hash.fetch_canceled
Category : permanent

  { "kind": "permanent",
    "id": "distributed_db.Operation_hash.fetch_canceled",
    "key": $Operation_hash }
  $Operation_hash:
    /* A Tezos operation ID (Base58Check-encoded) */
    string

Timed out fetch of a Operation_hash

The fetch of a Operation_hash has timed out

Id : distributed_db.Operation_hash.fetch_timeout
Category : permanent

  { "kind": "permanent",
    "id": "distributed_db.Operation_hash.fetch_timeout",
    "key": $Operation_hash }
  $Operation_hash:
    /* A Tezos operation ID (Base58Check-encoded) */
    string

Missing Operation_hash

Some Operation_hash is missing from the distributed db

Id : distributed_db.Operation_hash.missing
Category : permanent

  { "kind": "permanent",
    "id": "distributed_db.Operation_hash.missing",
    "key": $Operation_hash }
  $Operation_hash:
    /* A Tezos operation ID (Base58Check-encoded) */
    string

Canceled fetch of a Protocol_hash

The fetch of a Protocol_hash has been canceled

Id : distributed_db.Protocol_hash.fetch_canceled
Category : permanent

  { "kind": "permanent",
    "id": "distributed_db.Protocol_hash.fetch_canceled",
    "key": $Protocol_hash }
  $Protocol_hash:
    /* A Tezos protocol ID (Base58Check-encoded) */
    string

Timed out fetch of a Protocol_hash

The fetch of a Protocol_hash has timed out

Id : distributed_db.Protocol_hash.fetch_timeout
Category : permanent

  { "kind": "permanent",
    "id": "distributed_db.Protocol_hash.fetch_timeout",
    "key": $Protocol_hash }
  $Protocol_hash:
    /* A Tezos protocol ID (Base58Check-encoded) */
    string

Missing Protocol_hash

Some Protocol_hash is missing from the distributed db

Id : distributed_db.Protocol_hash.missing
Category : permanent

  { "kind": "permanent",
    "id": "distributed_db.Protocol_hash.missing",
    "key": $Protocol_hash }
  $Protocol_hash:
    /* A Tezos protocol ID (Base58Check-encoded) */
    string

Canceled fetch of a block_hash

The fetch of a block_hash has been canceled

Id : distributed_db.block_hash.fetch_canceled
Category : permanent

  { "kind": "permanent",
    "id": "distributed_db.block_hash.fetch_canceled",
    "key": $block_hash }
  $block_hash:
    /* A block identifier (Base58Check-encoded) */
    string

Timed out fetch of a block_hash

The fetch of a block_hash has timed out

Id : distributed_db.block_hash.fetch_timeout
Category : permanent

  { "kind": "permanent",
    "id": "distributed_db.block_hash.fetch_timeout",
    "key": $block_hash }
  $block_hash:
    /* A block identifier (Base58Check-encoded) */
    string

Missing block_hash

Some block_hash is missing from the distributed db

Id : distributed_db.block_hash.missing
Category : permanent

  { "kind": "permanent",
    "id": "distributed_db.block_hash.missing",
    "key": $block_hash }
  $block_hash:
    /* A block identifier (Base58Check-encoded) */
    string

Canceled fetch of a operation_hashes

The fetch of a operation_hashes has been canceled

Id : distributed_db.operation_hashes.fetch_canceled
Category : permanent

  { "kind": "permanent",
    "id": "distributed_db.operation_hashes.fetch_canceled",
    "key": { "block": $block_hash,
             "index": integer ∈ [0, 2^16-1] } }
  $block_hash:
    /* A block identifier (Base58Check-encoded) */
    string

Timed out fetch of a operation_hashes

The fetch of a operation_hashes has timed out

Id : distributed_db.operation_hashes.fetch_timeout
Category : permanent

  { "kind": "permanent",
    "id": "distributed_db.operation_hashes.fetch_timeout",
    "key": { "block": $block_hash,
             "index": integer ∈ [0, 2^16-1] } }
  $block_hash:
    /* A block identifier (Base58Check-encoded) */
    string

Missing operation_hashes

Some operation_hashes is missing from the distributed db

Id : distributed_db.operation_hashes.missing
Category : permanent

  { "kind": "permanent",
    "id": "distributed_db.operation_hashes.missing",
    "key": { "block": $block_hash,
             "index": integer ∈ [0, 2^16-1] } }
  $block_hash:
    /* A block identifier (Base58Check-encoded) */
    string

Canceled fetch of a operations

The fetch of a operations has been canceled

Id : distributed_db.operations.fetch_canceled
Category : permanent

  { "kind": "permanent",
    "id": "distributed_db.operations.fetch_canceled",
    "key": { "block": $block_hash,
             "index": integer ∈ [0, 2^16-1] } }
  $block_hash:
    /* A block identifier (Base58Check-encoded) */
    string

Timed out fetch of a operations

The fetch of a operations has timed out

Id : distributed_db.operations.fetch_timeout
Category : permanent

  { "kind": "permanent",
    "id": "distributed_db.operations.fetch_timeout",
    "key": { "block": $block_hash,
             "index": integer ∈ [0, 2^16-1] } }
  $block_hash:
    /* A block identifier (Base58Check-encoded) */
    string

Missing operations

Some operations is missing from the distributed db

Id : distributed_db.operations.missing
Category : permanent

  { "kind": "permanent",
    "id": "distributed_db.operations.missing",
    "key": { "block": $block_hash,
             "index": integer ∈ [0, 2^16-1] } }
  $block_hash:
    /* A block identifier (Base58Check-encoded) */
    string

Invalid block locator

Block locator is invalid.

Id : node.bootstrap_pipeline.invalid_locator
Category : permanent

  { "kind": "permanent",
    "id": "node.bootstrap_pipeline.invalid_locator",
    "id": $Crypto_box.Public_key_hash,
    "locator":
      { "current_head":
          { "level": integer ∈ [-2^31-2, 2^31+2],
            "proto": integer ∈ [0, 255],
            "predecessor": $block_hash,
            "timestamp": $timestamp,
            "validation_pass": integer ∈ [0, 255],
            "operations_hash": $Operation_list_list_hash,
            "fitness": $fitness,
            "context": $Context_hash,
            "protocol_data": /^[a-zA-Z0-9]+$/ },
        "history": [ $block_hash ... ] } }
  $Context_hash:
    /* A hash of context (Base58Check-encoded) */
    string
  $Crypto_box.Public_key_hash:
    /* A Cryptobox public key ID (Base58Check-encoded) */
    string
  $Operation_list_list_hash:
    /* A list of list of operations (Base58Check-encoded) */
    string
  $block_hash:
    /* A block identifier (Base58Check-encoded) */
    string
  $fitness:
    /* Block fitness
       The fitness, or score, of a block, that allow the Tezos to decide
       which chain is the best. A fitness value is a list of byte
       sequences. They are compared as follows: shortest lists are smaller;
       lists of the same length are compared according to the
       lexicographical order. */
    [ /^[a-zA-Z0-9]+$/ ... ]
  $int64:
    /* 64 bit integers
       Decimal representation of 64 bit integers */
    string
  $timestamp: $timestamp.rfc || $int64
  $timestamp.rfc:
    /* RFC 3339 formatted timestamp
       A date in human readble form as specified in RFC 3339. */
    string

Connection closed

IO error: connection with a peer is closed.

Id : node.p2p_io_scheduler.connection_closed
Category : permanent

  { "kind": "permanent",
    "id": "node.p2p_io_scheduler.connection_closed" }

Connected

Fail to connect with a peer: a connection is already established.

Id : node.p2p_pool.connected
Category : permanent

  { "kind": "permanent",
    "id": "node.p2p_pool.connected" }

Connection refused

Connection was refused.

Id : node.p2p_pool.connection_refused
Category : permanent

  { "kind": "permanent",
    "id": "node.p2p_pool.connection_refused" }

Peer Banned

The peer identity you tried to connect is banned.

Id : node.p2p_pool.peer_banned
Category : permanent

  { "kind": "permanent",
    "id": "node.p2p_pool.peer_banned",
    "peer": $Crypto_box.Public_key_hash }
  $Crypto_box.Public_key_hash:
    /* A Cryptobox public key ID (Base58Check-encoded) */
    string

Pending connection

Fail to connect with a peer: a connection is already pending.

Id : node.p2p_pool.pending_connection
Category : permanent

  { "kind": "permanent",
    "id": "node.p2p_pool.pending_connection" }

Point Banned

The addr you tried to connect is banned.

Id : node.p2p_pool.point_banned
Category : permanent

  { "kind": "permanent",
    "id": "node.p2p_pool.point_banned",
    "point": string }

Private mode

Node is in private mode.

Id : node.p2p_pool.private_mode
Category : permanent

  { "kind": "permanent",
    "id": "node.p2p_pool.private_mode" }

Rejected peer

Connection to peer was rejected.

Id : node.p2p_pool.rejected
Category : permanent

  { "kind": "permanent",
    "id": "node.p2p_pool.rejected",
    "peer id": $Crypto_box.Public_key_hash }
  $Crypto_box.Public_key_hash:
    /* A Cryptobox public key ID (Base58Check-encoded) */
    string

Too many connections

Too many connections.

Id : node.p2p_pool.too_many_connections
Category : permanent

  { "kind": "permanent",
    "id": "node.p2p_pool.too_many_connections" }

Decipher error

An error occurred while deciphering.

Id : node.p2p_socket.decipher_error
Category : permanent

  { "kind": "permanent",
    "id": "node.p2p_socket.decipher_error" }

Decoding error

An error occurred while decoding.

Id : node.p2p_socket.decoding_error
Category : permanent

  { "kind": "permanent",
    "id": "node.p2p_socket.decoding_error" }

Encoding error

An error occurred while encoding.

Id : node.p2p_socket.encoding_error
Category : permanent

  { "kind": "permanent",
    "id": "node.p2p_socket.encoding_error" }

Invalid authentication

Rejected peer connection: invalid authentication.

Id : node.p2p_socket.invalid_auth
Category : permanent

  { "kind": "permanent",
    "id": "node.p2p_socket.invalid_auth" }

Invalid chunks size

Size of chunks is not valid.

Id : node.p2p_socket.invalid_chunks_size
Category : permanent

  { "kind": "permanent",
    "id": "node.p2p_socket.invalid_chunks_size",
    "value": integer ∈ [-2^30-2, 2^30+2],
    "min": integer ∈ [-2^30-2, 2^30+2],
    "max": integer ∈ [-2^30-2, 2^30+2] }

Invalid message size

The size of the message to be written is invalid.

Id : node.p2p_socket.invalid_message_size
Category : permanent

  { "kind": "permanent",
    "id": "node.p2p_socket.invalid_message_size" }

Myself

Remote peer is actually yourself.

Id : node.p2p_socket.myself
Category : permanent

  { "kind": "permanent",
    "id": "node.p2p_socket.myself",
    "connection id": { "addr": string,
                       "port"?: integer ∈ [0, 2^16-1] } }

Not enough proof of work

Remote peer cannot be authenticated: not enough proof of work.

Id : node.p2p_socket.not_enough_proof_of_work
Category : permanent

  { "kind": "permanent",
    "id": "node.p2p_socket.not_enough_proof_of_work",
    "peer id": $Crypto_box.Public_key_hash }
  $Crypto_box.Public_key_hash:
    /* A Cryptobox public key ID (Base58Check-encoded) */
    string

Rejected socket connection

Rejected peer connection: rejected socket connection.

Id : node.p2p_socket.rejected_socket_connection
Category : permanent

  { "kind": "permanent",
    "id": "node.p2p_socket.rejected_socket_connection" }

Known invalid

Known invalid block found in the peer's chain

Id : node.peer_validator.known_invalid
Category : permanent

  { "kind": "permanent",
    "id": "node.peer_validator.known_invalid" }

Unknown ancestor

Unknown ancestor block found in the peer's chain

Id : node.peer_validator.unknown_ancestor
Category : permanent

  { "kind": "permanent",
    "id": "node.peer_validator.unknown_ancestor" }

Future block header

The block was annotated with a time too far in the future.

Id : node.prevalidation.future_block_header
Category : temporary

  { "kind": "temporary",
    "id": "node.prevalidation.future_block_header",
    "block": $block_hash,
    "block_time": $timestamp,
    "time": $timestamp }
  $block_hash:
    /* A block identifier (Base58Check-encoded) */
    string
  $int64:
    /* 64 bit integers
       Decimal representation of 64 bit integers */
    string
  $timestamp: $timestamp.rfc || $int64
  $timestamp.rfc:
    /* RFC 3339 formatted timestamp
       A date in human readble form as specified in RFC 3339. */
    string

Oversized operation

The operation size is bigger than allowed.

Id : node.prevalidation.oversized_operation
Category : permanent

  { "kind": "permanent",
    "id": "node.prevalidation.oversized_operation",
    "size": integer ∈ [-2^30-2, 2^30+2],
    "max_size": integer ∈ [-2^30-2, 2^30+2] }

Parsing error in prevalidation

Raised when an operation has not been parsed correctly during prevalidation.

Id : node.prevalidation.parse_error
Category : permanent

  { "kind": "permanent",
    "id": "node.prevalidation.parse_error" }

Too many pending operations in prevalidation

The prevalidation context is full.

Id : node.prevalidation.too_many_operations
Category : temporary

  { "kind": "temporary",
    "id": "node.prevalidation.too_many_operations" }

Invalid protocol

Invalid protocol.

Id : node.protocol_validator.invalid_protocol
Category : permanent

  { "kind": "permanent",
    "id": "node.protocol_validator.invalid_protocol",
    "invalid_protocol": $Protocol_hash,
    "error": "compilation_failed" }
  || { "kind": "permanent",
       "id": "node.protocol_validator.invalid_protocol",
       "invalid_protocol": $Protocol_hash,
       "error": "dynlinking_failed" }
  $Protocol_hash:
    /* A Tezos protocol ID (Base58Check-encoded) */
    string

Bad data directory

The data directory could not be read. This could be because it was generated with an old version of the tezos-node program. Deleting and regenerating this directory may fix the problem.

Id : node.state.bad_data_dir
Category : permanent

  { "kind": "permanent",
    "id": "node.state.bad_data_dir" }

Inconsistent commit hash

When commiting the context of a block, the announced context hash was not the one computed at commit time.

Id : node.state.block.inconsistent_context_hash
Category : permanent

  { "kind": "permanent",
    "id": "node.state.block.inconsistent_context_hash",
    "wrong_context_hash": $Context_hash,
    "expected_context_hash": $Context_hash }
  $Context_hash:
    /* A hash of context (Base58Check-encoded) */
    string

Block not invalid

The invalid block to be unmarked was not actually invalid.

Id : node.state.block_not_invalid
Category : permanent

  { "kind": "permanent",
    "id": "node.state.block_not_invalid",
    "block": $block_hash }
  $block_hash:
    /* A block identifier (Base58Check-encoded) */
    string

Unknown chain

The chain identifier could not be found in the chain identifiers table.

Id : node.state.unknown_chain
Category : permanent

  { "kind": "permanent",
    "id": "node.state.unknown_chain",
    "chain": $Chain_id }
  $Chain_id:
    /* Network identifier (Base58Check-encoded) */
    string

Block incompatble with the current checkpoint.

The block belongs to a branch that is not compatible with the current checkpoint.

Id : node.validator.checkpoint_error
Category : branch

  { "kind": "branch",
    "id": "node.validator.checkpoint_error",
    "block": $block_hash,
    "peer"?: $Crypto_box.Public_key_hash }
  $Crypto_box.Public_key_hash:
    /* A Cryptobox public key ID (Base58Check-encoded) */
    string
  $block_hash:
    /* A block identifier (Base58Check-encoded) */
    string

Inactive chain

Attempted validation of a block from an inactive chain.

Id : node.validator.inactive_chain
Category : branch

  { "kind": "branch",
    "id": "node.validator.inactive_chain",
    "inactive_chain": $Chain_id }
  $Chain_id:
    /* Network identifier (Base58Check-encoded) */
    string

Missing key in store

Missing key in store

Id : raw_store.unknown
Category : permanent

  { "kind": "permanent",
    "id": "raw_store.unknown",
    "key": [ string ... ] }

Invalid merkle tree

The provided list of operations is inconsistent with the block header.

Id : validator.inconsistent_operations_hash
Category : temporary

  { "kind": "temporary",
    "id": "validator.inconsistent_operations_hash",
    "block": $block_hash,
    "expected": $Operation_list_list_hash,
    "found": $Operation_list_list_hash }
  $Operation_list_list_hash:
    /* A list of list of operations (Base58Check-encoded) */
    string
  $block_hash:
    /* A block identifier (Base58Check-encoded) */
    string

Invalid block

Invalid block.

Id : validator.invalid_block
Category : permanent

  { "kind": "permanent",
    "id": "validator.invalid_block",
    "invalid_block": $block_hash,
    "error": "cannot_parse_operation",
    "operation": $Operation_hash }
  || { "kind": "permanent",
       "id": "validator.invalid_block",
       "invalid_block": $block_hash,
       "error": "invalid_fitness",
       "expected": $fitness,
       "found": $fitness }
  || { "kind": "permanent",
       "id": "validator.invalid_block",
       "invalid_block": $block_hash,
       "error": "non_increasing_timestamp" }
  || { "kind": "permanent",
       "id": "validator.invalid_block",
       "invalid_block": $block_hash,
       "error": "non_increasing_fitness" }
  || { "kind": "permanent",
       "id": "validator.invalid_block",
       "invalid_block": $block_hash,
       "error": "invalid_level",
       "expected": integer ∈ [-2^31-2, 2^31+2],
       "found": integer ∈ [-2^31-2, 2^31+2] }
  || { "kind": "permanent",
       "id": "validator.invalid_block",
       "invalid_block": $block_hash,
       "error": "invalid_proto_level",
       "expected": integer ∈ [0, 255],
       "found": integer ∈ [0, 255] }
  || { "kind": "permanent",
       "id": "validator.invalid_block",
       "invalid_block": $block_hash,
       "error": "replayed_operation",
       "operation": $Operation_hash }
  || { "kind": "permanent",
       "id": "validator.invalid_block",
       "invalid_block": $block_hash,
       "error": "outdated_operation",
       "operation": $Operation_hash,
       "originating_block": $block_hash }
  || { "kind": "permanent",
       "id": "validator.invalid_block",
       "invalid_block": $block_hash,
       "error": "unexpected_number_of_passes",
       "found": integer ∈ [0, 255] }
  || { "kind": "permanent",
       "id": "validator.invalid_block",
       "invalid_block": $block_hash,
       "error": "too_many_operations",
       "validation_pass": integer ∈ [0, 255],
       "found": integer ∈ [0, 2^16-1],
       "max": integer ∈ [0, 2^16-1] }
  || { "kind": "permanent",
       "id": "validator.invalid_block",
       "invalid_block": $block_hash,
       "error": "oversized_operation",
       "operation": $Operation_hash,
       "found": integer ∈ [-2^30-2, 2^30+2],
       "max": integer ∈ [-2^30-2, 2^30+2] }
  || { "kind": "permanent",
       "id": "validator.invalid_block",
       "invalid_block": $block_hash,
       "error": "invalid_pass",
       "operation": $Operation_hash,
       "pass": integer ∈ [0, 255],
       "allowed_pass": [ integer ∈ [0, 255] ... ] }
  $Operation_hash:
    /* A Tezos operation ID (Base58Check-encoded) */
    string
  $block_hash:
    /* A block identifier (Base58Check-encoded) */
    string
  $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]+$/ ... ]

Missing protocol

The protocol required for validating a block is missing.

Id : validator.unavailable_protocol
Category : temporary

  { "kind": "temporary",
    "id": "validator.unavailable_protocol",
    "block": $block_hash,
    "missing_protocol": $Protocol_hash }
  $Protocol_hash:
    /* A Tezos protocol ID (Base58Check-encoded) */
    string
  $block_hash:
    /* A block identifier (Base58Check-encoded) */
    string

Worker prevalidator closed

An operation on a prevalidator worker could not complete before it was shut down.

Id : worker.prevalidator.closed
Category : permanent

  { "kind": "permanent",
    "id": "worker.prevalidator.closed",
    "worker_id": $Chain_id }
  $Chain_id:
    /* Network identifier (Base58Check-encoded) */
    string

Worker validator.block closed

An operation on a validator.block worker could not complete before it was shut down.

Id : worker.validator.block.closed
Category : permanent

  { "kind": "permanent",
    "id": "worker.validator.block.closed",
    "worker_id": {  } }

Worker validator.chain closed

An operation on a validator.chain worker could not complete before it was shut down.

Id : worker.validator.chain.closed
Category : permanent

  { "kind": "permanent",
    "id": "worker.validator.chain.closed",
    "worker_id": $Chain_id }
  $Chain_id:
    /* Network identifier (Base58Check-encoded) */
    string

Worker validator.peer closed

An operation on a validator.peer worker could not complete before it was shut down.

Id : worker.validator.peer.closed
Category : permanent

  { "kind": "permanent",
    "id": "worker.validator.peer.closed",
    "worker_id": [ $Chain_id, $Crypto_box.Public_key_hash ] }
  $Chain_id:
    /* Network identifier (Base58Check-encoded) */
    string
  $Crypto_box.Public_key_hash:
    /* A Cryptobox public key ID (Base58Check-encoded) */
    string

Michelson parsing/macros

Micheline parser error: annotation exceeds max length

While parsing a piece of Micheline source, an annotation exceeded the maximum length (255).

Id : micheline.parse_error.annotation_exceeds_max_length
Category : permanent

  { "kind": "permanent",
    "id": "micheline.parse_error.annotation_exceeds_max_length",
    "location":
      { "start":
          { "line": integer ∈ [0, 2^16-1],
            "column": integer ∈ [0, 2^16-1],
            "point": integer ∈ [0, 2^16-1],
            "byte": integer ∈ [0, 2^16-1] },
        "stop":
          { "line": integer ∈ [0, 2^16-1],
            "column": integer ∈ [0, 2^16-1],
            "point": integer ∈ [0, 2^16-1],
            "byte": integer ∈ [0, 2^16-1] } } }

Micheline parser error: empty_expression

Tried to interpret an empty piece or Micheline source as a single expression.

Id : micheline.parse_error.empty_expression
Category : permanent

  { "kind": "permanent",
    "id": "micheline.parse_error.empty_expression" }

Micheline parser error: extra token

While parsing a piece of Micheline source, an extra semi colon or parenthesis was encountered.

Id : micheline.parse_error.extra_token
Category : permanent

  { "kind": "permanent",
    "id": "micheline.parse_error.extra_token",
    "location":
      { "start":
          { "line": integer ∈ [0, 2^16-1],
            "column": integer ∈ [0, 2^16-1],
            "point": integer ∈ [0, 2^16-1],
            "byte": integer ∈ [0, 2^16-1] },
        "stop":
          { "line": integer ∈ [0, 2^16-1],
            "column": integer ∈ [0, 2^16-1],
            "point": integer ∈ [0, 2^16-1],
            "byte": integer ∈ [0, 2^16-1] } },
    "token":
      { "string": string }
      || { "int": string }
      || { "annot": string }
      || { "comment": string,
           "end_of_line"?: boolean }
      || { "punctuation": "(" | ";" | "}" | "{" | ")" }
      || { "bytes": string } }

Micheline parser error: invalid UTF-8 sequence

While parsing a piece of Micheline source, a sequence of bytes that is not valid UTF-8 was encountered.

Id : micheline.parse_error.invalid_utf8_sequence
Category : permanent

  { "kind": "permanent",
    "id": "micheline.parse_error.invalid_utf8_sequence",
    "point":
      { "line": integer ∈ [0, 2^16-1],
        "column": integer ∈ [0, 2^16-1],
        "point": integer ∈ [0, 2^16-1],
        "byte": integer ∈ [0, 2^16-1] },
    "sequence": string }

Micheline parser error: misaligned node

While parsing a piece of Micheline source, an expression was not aligned with its siblings of the same mother application or sequence.

Id : micheline.parse_error.misaligned_node
Category : permanent

  { "kind": "permanent",
    "id": "micheline.parse_error.misaligned_node",
    "expression":
      { "expression": $micheline.generic.expression,
        "locations":
          [ { "start":
                { "line": integer ∈ [0, 2^16-1],
                  "column": integer ∈ [0, 2^16-1],
                  "point": integer ∈ [0, 2^16-1],
                  "byte": integer ∈ [0, 2^16-1] },
              "stop":
                { "line": integer ∈ [0, 2^16-1],
                  "column": integer ∈ [0, 2^16-1],
                  "point": integer ∈ [0, 2^16-1],
                  "byte": integer ∈ [0, 2^16-1] } } ... ] } }
  $bignum:
    /* Big number
       Decimal representation of a big number */
    string
  $micheline.generic.expression:
    { "int": $bignum }
    || { "string": string }
    || { "bytes": /^[a-zA-Z0-9]+$/ }
    || [ $micheline.generic.expression ... ]
    || { "prim": string,
         "args"?: [ $micheline.generic.expression ... ],
         "annots"?: [ string ... ] }

Micheline parser error: missing break after number

While parsing a piece of Micheline source, a number was not visually separated from its follower token, leading to misreadability.

Id : micheline.parse_error.missing_break_after_number
Category : permanent

  { "kind": "permanent",
    "id": "micheline.parse_error.missing_break_after_number",
    "point":
      { "line": integer ∈ [0, 2^16-1],
        "column": integer ∈ [0, 2^16-1],
        "point": integer ∈ [0, 2^16-1],
        "byte": integer ∈ [0, 2^16-1] } }

Micheline parser error: odd lengthed bytes

While parsing a piece of Micheline source, the length of a byte sequence (0x...) was not a multiple of two, leaving a trailing half byte.

Id : micheline.parse_error.odd_lengthed_bytes
Category : permanent

  { "kind": "permanent",
    "id": "micheline.parse_error.odd_lengthed_bytes",
    "location":
      { "start":
          { "line": integer ∈ [0, 2^16-1],
            "column": integer ∈ [0, 2^16-1],
            "point": integer ∈ [0, 2^16-1],
            "byte": integer ∈ [0, 2^16-1] },
        "stop":
          { "line": integer ∈ [0, 2^16-1],
            "column": integer ∈ [0, 2^16-1],
            "point": integer ∈ [0, 2^16-1],
            "byte": integer ∈ [0, 2^16-1] } } }

Micheline parser error: unclosed token

While parsing a piece of Micheline source, a parenthesis or a brace was unclosed.

Id : micheline.parse_error.unclosed_token
Category : permanent

  { "kind": "permanent",
    "id": "micheline.parse_error.unclosed_token",
    "location":
      { "start":
          { "line": integer ∈ [0, 2^16-1],
            "column": integer ∈ [0, 2^16-1],
            "point": integer ∈ [0, 2^16-1],
            "byte": integer ∈ [0, 2^16-1] },
        "stop":
          { "line": integer ∈ [0, 2^16-1],
            "column": integer ∈ [0, 2^16-1],
            "point": integer ∈ [0, 2^16-1],
            "byte": integer ∈ [0, 2^16-1] } },
    "token":
      { "string": string }
      || { "int": string }
      || { "annot": string }
      || { "comment": string,
           "end_of_line"?: boolean }
      || { "punctuation": "(" | ";" | "}" | "{" | ")" }
      || { "bytes": string } }

Micheline parser error: undefined escape sequence

While parsing a piece of Micheline source, an unexpected escape sequence was encountered in a string.

Id : micheline.parse_error.undefined_escape_sequence
Category : permanent

  { "kind": "permanent",
    "id": "micheline.parse_error.undefined_escape_sequence",
    "point":
      { "line": integer ∈ [0, 2^16-1],
        "column": integer ∈ [0, 2^16-1],
        "point": integer ∈ [0, 2^16-1],
        "byte": integer ∈ [0, 2^16-1] },
    "sequence": string }

Micheline parser error: unexpected character

While parsing a piece of Micheline source, an unexpected character was encountered.

Id : micheline.parse_error.unexpected_character
Category : permanent

  { "kind": "permanent",
    "id": "micheline.parse_error.unexpected_character",
    "point":
      { "line": integer ∈ [0, 2^16-1],
        "column": integer ∈ [0, 2^16-1],
        "point": integer ∈ [0, 2^16-1],
        "byte": integer ∈ [0, 2^16-1] },
    "character": string }

Micheline parser error: unexpected token

While parsing a piece of Micheline source, an unexpected token was encountered.

Id : micheline.parse_error.unexpected_token
Category : permanent

  { "kind": "permanent",
    "id": "micheline.parse_error.unexpected_token",
    "location":
      { "start":
          { "line": integer ∈ [0, 2^16-1],
            "column": integer ∈ [0, 2^16-1],
            "point": integer ∈ [0, 2^16-1],
            "byte": integer ∈ [0, 2^16-1] },
        "stop":
          { "line": integer ∈ [0, 2^16-1],
            "column": integer ∈ [0, 2^16-1],
            "point": integer ∈ [0, 2^16-1],
            "byte": integer ∈ [0, 2^16-1] } },
    "token":
      { "string": string }
      || { "int": string }
      || { "annot": string }
      || { "comment": string,
           "end_of_line"?: boolean }
      || { "punctuation": "(" | ";" | "}" | "{" | ")" }
      || { "bytes": string } }

Micheline parser error: unterminated comment

While parsing a piece of Micheline source, a commentX was not terminated.

Id : micheline.parse_error.unterminated_comment
Category : permanent

  { "kind": "permanent",
    "id": "micheline.parse_error.unterminated_comment",
    "location":
      { "start":
          { "line": integer ∈ [0, 2^16-1],
            "column": integer ∈ [0, 2^16-1],
            "point": integer ∈ [0, 2^16-1],
            "byte": integer ∈ [0, 2^16-1] },
        "stop":
          { "line": integer ∈ [0, 2^16-1],
            "column": integer ∈ [0, 2^16-1],
            "point": integer ∈ [0, 2^16-1],
            "byte": integer ∈ [0, 2^16-1] } } }

Micheline parser error: unterminated integer

While parsing a piece of Micheline source, an integer was not terminated.

Id : micheline.parse_error.unterminated_integer
Category : permanent

  { "kind": "permanent",
    "id": "micheline.parse_error.unterminated_integer",
    "location":
      { "start":
          { "line": integer ∈ [0, 2^16-1],
            "column": integer ∈ [0, 2^16-1],
            "point": integer ∈ [0, 2^16-1],
            "byte": integer ∈ [0, 2^16-1] },
        "stop":
          { "line": integer ∈ [0, 2^16-1],
            "column": integer ∈ [0, 2^16-1],
            "point": integer ∈ [0, 2^16-1],
            "byte": integer ∈ [0, 2^16-1] } } }

Micheline parser error: unterminated string

While parsing a piece of Micheline source, a string was not terminated.

Id : micheline.parse_error.unterminated_string
Category : permanent

  { "kind": "permanent",
    "id": "micheline.parse_error.unterminated_string",
    "location":
      { "start":
          { "line": integer ∈ [0, 2^16-1],
            "column": integer ∈ [0, 2^16-1],
            "point": integer ∈ [0, 2^16-1],
            "byte": integer ∈ [0, 2^16-1] },
        "stop":
          { "line": integer ∈ [0, 2^16-1],
            "column": integer ∈ [0, 2^16-1],
            "point": integer ∈ [0, 2^16-1],
            "byte": integer ∈ [0, 2^16-1] } } }

Wrong number of arguments to macro

A wrong number of arguments was provided to a macro

Id : michelson.macros.bas_arity
Category : permanent

  { "kind": "permanent",
    "id": "michelson.macros.bas_arity",
    "macro_name": string,
    "given_number_of_arguments": integer ∈ [0, 2^16-1],
    "expected_number_of_arguments": integer ∈ [0, 2^16-1] }

Macro expects a sequence

An macro expects a sequence, but a sequence was not provided

Id : michelson.macros.sequence_expected
Category : permanent

  { "kind": "permanent",
    "id": "michelson.macros.sequence_expected",
    "macro_name": string }

Unexpected annotation

A macro had an annotation, but no annotation was permitted on this macro.

Id : michelson.macros.unexpected_annotation
Category : permanent

  { "kind": "permanent",
    "id": "michelson.macros.unexpected_annotation",
    "macro_name": string }

Client

<Untitled>

Id : rpc_client.request_failed
Category : permanent

  { "kind": "permanent",
    "id": "rpc_client.request_failed",
    "meth": string,
    "uri": string,
    "error":
      { "kind": "empty_answer" }
      || { "kind": "connection_failed",
           "message": string }
      || { "kind": "bad_request",
           "message": string }
      || { "kind": "method_not_allowed",
           "allowed": [ string ... ] }
      || { "kind": "unsupported_media_type",
           "content_type"?: string }
      || { "kind": "not_acceptable",
           "proposed": string,
           "acceptable": string }
      || { "kind": "unexpected_status_code",
           "code": integer ∈ [0, 2^16-1],
           "content": string,
           "media_type"?: string }
      || { "kind": "unexpected_content_type",
           "received": string,
           "acceptable": [ string ... ],
           "body": string }
      || { "kind": "unexpected_content",
           "content": string,
           "media_type": string,
           "error": string }
      || { "kind": "ocaml_exception",
           "content": string } }

Miscellaneous

RPC lookup failed

RPC lookup failed. No RPC exists at the URL or the RPC tried to access non-existant data.

Id : RPC_context.Not_found
Category : branch

  { "kind": "branch",
    "id": "RPC_context.Not_found",
    "method": string,
    "uri": string }

Bad -endorsement-delay arg

invalid priority in -endorsement-delay

Id : badEndorsementDelayArg
Category : permanent

  { "kind": "permanent",
    "id": "badEndorsementDelayArg",
    "parameter": string }

Bad -fee-threshold arg

invalid fee threshold in -fee-threshold

Id : badFeeThresholdArg
Category : permanent

  { "kind": "permanent",
    "id": "badFeeThresholdArg",
    "parameter": string }

Bad -max-priority arg

invalid priority in -max-priority

Id : badMaxPriorityArg
Category : permanent

  { "kind": "permanent",
    "id": "badMaxPriorityArg",
    "parameter": string }

Bad -preserved-levels arg

invalid number of levels in -preserved-levels

Id : badPreservedLevelsArg
Category : permanent

  { "kind": "permanent",
    "id": "badPreservedLevelsArg",
    "parameter": string }

Bad Tez Arg

Invalid ꜩ notation in parameter.

Id : badTezArg
Category : permanent

  { "kind": "permanent",
    "id": "badTezArg",
    "parameter": string,
    "literal": string }

Invalid key uri

A key has been provided with an invalid uri.

Id : cli.key.invalid_uri
Category : permanent

  { "kind": "permanent",
    "id": "cli.key.invalid_uri",
    "value": string }

Signature mismatch

The signer produced an invalid signature

Id : cli.signature_mismatch
Category : permanent

  { "kind": "permanent",
    "id": "cli.signature_mismatch",
    "locator": string }

Unregistered key scheme

A key has been provided with an unregistered scheme (no corresponding plugin)

Id : cli.unregistered_key_scheme
Category : permanent

  { "kind": "permanent",
    "id": "cli.unregistered_key_scheme",
    "value": string }

Generic error

Unclassified error

Id : failure
Category : temporary

  { "kind": "temporary",
    "id": "failure",
    "msg": string }

Unexpected URI fot remote signer

The provided remote signer is invalid.

Id : invalid_remote_signer
Category : branch

  { "kind": "branch",
    "id": "invalid_remote_signer",
    "uri": string }

Invalid depth argument

The raw context extraction depth argument must be positive.

Id : raw_context.invalid_depth
Category : permanent

  { "kind": "permanent",
    "id": "raw_context.invalid_depth",
    "depth": integer ∈ [-2^30-2, 2^30+2] }

Decoding_error

Error while decoding a remote signer message

Id : signer.decoding_error
Category : permanent

  { "kind": "permanent",
    "id": "signer.decoding_error" }

Encoding_error

Error while encoding a remote signer message

Id : signer.encoding_error
Category : permanent

  { "kind": "permanent",
    "id": "signer.encoding_error" }

Ledger error

Error when communication to a Ledger Nano S device

Id : signer.ledger
Category : permanent

  { "kind": "permanent",
    "id": "signer.ledger",
    "ledger-error": string }

Unix error

An unhandled unix exception

Id : unix_error
Category : temporary

  { "kind": "temporary",
    "id": "unix_error",
    "msg": string }

Timeout

Timeout

Id : utils.Timeout
Category : temporary

  { "kind": "temporary",
    "id": "utils.Timeout",
    ... }