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

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) */
    $unistring
  $block_hash:
    /* A block identifier (Base58Check-encoded) */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

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. */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

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) */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

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) */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

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) */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

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" }

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": $unistring }
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

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": $unistring }
  || { "kind": "permanent",
       "id": "proto.alpha.context.storage_error",
       "missing_key": [ $unistring ... ],
       "function": "set" | "copy" | "get" | "del" }
  || { "kind": "permanent",
       "id": "proto.alpha.context.storage_error",
       "existing_key": [ $unistring ... ] }
  || { "kind": "permanent",
       "id": "proto.alpha.context.storage_error",
       "corrupted_data": [ $unistring ... ] }
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

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. */
    $unistring
  $mutez: $positive_bignum
  $positive_bignum:
    /* Positive big number
       Decimal representation of a positive big number */
    string
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

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. */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

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. */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

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. */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

Contract storage failure

Unexpected contract storage error

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

  { "kind": "permanent",
    "id": "proto.alpha.contract.failure",
    "message": $unistring }
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

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": $unistring }
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

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) */
    $unistring
  $Signature.Public_key_hash:
    /* A Ed25519, Secp256k1, or P256 public key hash (Base58Check-encoded) */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

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) */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

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) */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

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. */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

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. */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

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. */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

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. */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

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. */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

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) */
    $unistring
  $mutez: $positive_bignum
  $positive_bignum:
    /* Positive big number
       Decimal representation of a positive big number */
    string
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

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) */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

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) */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

Unchanged delegated

Contract already delegated to the given delegate

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

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

Empty proposal

Proposal lists cannot be empty.

Id : proto.alpha.empty_proposal
Category : branch

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

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" }

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) */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

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",
       "manager_pubkey": $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) */
    $unistring
  $Signature.Public_key_hash:
    /* A Ed25519, Secp256k1, or P256 public key hash (Base58Check-encoded) */
    $unistring
  $bignum:
    /* Big number
       Decimal representation of a big number */
    string
  $contract_id:
    /* A contract handle
       A contract notation as given to an RPC or inside scripts. Can be a
       base58 implicit contract hash or a base58 originated contract hash. */
    $unistring
  $micheline.michelson_v1.expression:
    { "int": $bignum }
    || { "string": $unistring }
    || { "bytes": /^[a-zA-Z0-9]+$/ }
    || [ $micheline.michelson_v1.expression ... ]
    || { "prim": $michelson.v1.primitives,
         "args"?: [ $micheline.michelson_v1.expression ... ],
         "annots"?: [ string ... ] }
  $michelson.v1.primitives:
    "ADD"
    | "LE"
    | "UNIT"
    | "timestamp"
    | "signature"
    | "COMPARE"
    | "LAMBDA"
    | "LOOP"
    | "Elt"
    | "IMPLICIT_ACCOUNT"
    | "NONE"
    | "set"
    | "pair"
    | "bytes"
    | "BLAKE2B"
    | "address"
    | "SHA256"
    | "XOR"
    | "RENAME"
    | "MAP"
    | "SET_DELEGATE"
    | "DIP"
    | "PACK"
    | "or"
    | "SIZE"
    | "Right"
    | "list"
    | "IF_CONS"
    | "LSR"
    | "TRANSFER_TOKENS"
    | "storage"
    | "UPDATE"
    | "CDR"
    | "SWAP"
    | "SOME"
    | "False"
    | "SHA512"
    | "CHECK_SIGNATURE"
    | "BALANCE"
    | "key_hash"
    | "unit"
    | "EMPTY_SET"
    | "SUB"
    | "MEM"
    | "RIGHT"
    | "ADDRESS"
    | "option"
    | "CONCAT"
    | "big_map"
    | "string"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "NOT"
    | "LEFT"
    | "mutez"
    | "AMOUNT"
    | "DROP"
    | "ABS"
    | "bool"
    | "GE"
    | "PUSH"
    | "LT"
    | "operation"
    | "NEQ"
    | "NEG"
    | "None"
    | "CONS"
    | "EXEC"
    | "NIL"
    | "ISNAT"
    | "MUL"
    | "LOOP_LEFT"
    | "EDIV"
    | "SLICE"
    | "STEPS_TO_QUOTA"
    | "INT"
    | "SOURCE"
    | "CAR"
    | "CREATE_ACCOUNT"
    | "LSL"
    | "OR"
    | "IF_NONE"
    | "SELF"
    | "IF"
    | "Left"
    | "contract"
    | "map"
    | "SENDER"
    | "nat"
    | "DUP"
    | "EQ"
    | "NOW"
    | "key"
    | "GET"
    | "lambda"
    | "int"
    | "True"
    | "GT"
    | "parameter"
    | "IF_LEFT"
    | "FAILWITH"
    | "PAIR"
    | "ITER"
    | "Pair"
    | "CAST"
    | "EMPTY_MAP"
    | "CREATE_CONTRACT"
    | "HASH_KEY"
    | "CONTRACT"
    | "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 }
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

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" }

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.michelson_v1.bad_contract_parameter
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.michelson_v1.bad_contract_parameter",
    "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. */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

Bad return

Unexpected stack at the end of a lambda or script.

Id : proto.alpha.michelson_v1.bad_return
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.michelson_v1.bad_return",
    "location": $micheline.location,
    "expected_return_type": $micheline.michelson_v1.expression,
    "wrong_stack_type":
      [ { "type": $micheline.michelson_v1.expression,
          "annots"?: [ $unistring ... ] } ... ] }
  $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": $unistring }
    || { "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"
    | "UNIT"
    | "timestamp"
    | "signature"
    | "COMPARE"
    | "LAMBDA"
    | "LOOP"
    | "Elt"
    | "IMPLICIT_ACCOUNT"
    | "NONE"
    | "set"
    | "pair"
    | "bytes"
    | "BLAKE2B"
    | "address"
    | "SHA256"
    | "XOR"
    | "RENAME"
    | "MAP"
    | "SET_DELEGATE"
    | "DIP"
    | "PACK"
    | "or"
    | "SIZE"
    | "Right"
    | "list"
    | "IF_CONS"
    | "LSR"
    | "TRANSFER_TOKENS"
    | "storage"
    | "UPDATE"
    | "CDR"
    | "SWAP"
    | "SOME"
    | "False"
    | "SHA512"
    | "CHECK_SIGNATURE"
    | "BALANCE"
    | "key_hash"
    | "unit"
    | "EMPTY_SET"
    | "SUB"
    | "MEM"
    | "RIGHT"
    | "ADDRESS"
    | "option"
    | "CONCAT"
    | "big_map"
    | "string"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "NOT"
    | "LEFT"
    | "mutez"
    | "AMOUNT"
    | "DROP"
    | "ABS"
    | "bool"
    | "GE"
    | "PUSH"
    | "LT"
    | "operation"
    | "NEQ"
    | "NEG"
    | "None"
    | "CONS"
    | "EXEC"
    | "NIL"
    | "ISNAT"
    | "MUL"
    | "LOOP_LEFT"
    | "EDIV"
    | "SLICE"
    | "STEPS_TO_QUOTA"
    | "INT"
    | "SOURCE"
    | "CAR"
    | "CREATE_ACCOUNT"
    | "LSL"
    | "OR"
    | "IF_NONE"
    | "SELF"
    | "IF"
    | "Left"
    | "contract"
    | "map"
    | "SENDER"
    | "nat"
    | "DUP"
    | "EQ"
    | "NOW"
    | "key"
    | "GET"
    | "lambda"
    | "int"
    | "True"
    | "GT"
    | "parameter"
    | "IF_LEFT"
    | "FAILWITH"
    | "PAIR"
    | "ITER"
    | "Pair"
    | "CAST"
    | "EMPTY_MAP"
    | "CREATE_CONTRACT"
    | "HASH_KEY"
    | "CONTRACT"
    | "code"
    | "AND"
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

Bad stack

The stack has an unexpected length or contents.

Id : proto.alpha.michelson_v1.bad_stack
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.michelson_v1.bad_stack",
    "location": $micheline.location,
    "primitive_name": $michelson.v1.primitives,
    "relevant_stack_portion": integer ∈ [-2^15, 2^15-1],
    "wrong_stack_type":
      [ { "type": $micheline.michelson_v1.expression,
          "annots"?: [ $unistring ... ] } ... ] }
  $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": $unistring }
    || { "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"
    | "UNIT"
    | "timestamp"
    | "signature"
    | "COMPARE"
    | "LAMBDA"
    | "LOOP"
    | "Elt"
    | "IMPLICIT_ACCOUNT"
    | "NONE"
    | "set"
    | "pair"
    | "bytes"
    | "BLAKE2B"
    | "address"
    | "SHA256"
    | "XOR"
    | "RENAME"
    | "MAP"
    | "SET_DELEGATE"
    | "DIP"
    | "PACK"
    | "or"
    | "SIZE"
    | "Right"
    | "list"
    | "IF_CONS"
    | "LSR"
    | "TRANSFER_TOKENS"
    | "storage"
    | "UPDATE"
    | "CDR"
    | "SWAP"
    | "SOME"
    | "False"
    | "SHA512"
    | "CHECK_SIGNATURE"
    | "BALANCE"
    | "key_hash"
    | "unit"
    | "EMPTY_SET"
    | "SUB"
    | "MEM"
    | "RIGHT"
    | "ADDRESS"
    | "option"
    | "CONCAT"
    | "big_map"
    | "string"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "NOT"
    | "LEFT"
    | "mutez"
    | "AMOUNT"
    | "DROP"
    | "ABS"
    | "bool"
    | "GE"
    | "PUSH"
    | "LT"
    | "operation"
    | "NEQ"
    | "NEG"
    | "None"
    | "CONS"
    | "EXEC"
    | "NIL"
    | "ISNAT"
    | "MUL"
    | "LOOP_LEFT"
    | "EDIV"
    | "SLICE"
    | "STEPS_TO_QUOTA"
    | "INT"
    | "SOURCE"
    | "CAR"
    | "CREATE_ACCOUNT"
    | "LSL"
    | "OR"
    | "IF_NONE"
    | "SELF"
    | "IF"
    | "Left"
    | "contract"
    | "map"
    | "SENDER"
    | "nat"
    | "DUP"
    | "EQ"
    | "NOW"
    | "key"
    | "GET"
    | "lambda"
    | "int"
    | "True"
    | "GT"
    | "parameter"
    | "IF_LEFT"
    | "FAILWITH"
    | "PAIR"
    | "ITER"
    | "Pair"
    | "CAST"
    | "EMPTY_MAP"
    | "CREATE_CONTRACT"
    | "HASH_KEY"
    | "CONTRACT"
    | "code"
    | "AND"
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

Bad stack item

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

Id : proto.alpha.michelson_v1.bad_stack_item
Category : permanent

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

Not enough gas to serialize error

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

Id : proto.alpha.michelson_v1.cannot_serialize_error
Category : temporary

  { "kind": "temporary",
    "id": "proto.alpha.michelson_v1.cannot_serialize_error" }

Not enough gas to serialize argument of FAILWITH

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

Id : proto.alpha.michelson_v1.cannot_serialize_failure
Category : temporary

  { "kind": "temporary",
    "id": "proto.alpha.michelson_v1.cannot_serialize_failure" }

Not enough gas to serialize execution trace

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

Id : proto.alpha.michelson_v1.cannot_serialize_log
Category : temporary

  { "kind": "temporary",
    "id": "proto.alpha.michelson_v1.cannot_serialize_log" }

Not enough gas to serialize execution storage

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

Id : proto.alpha.michelson_v1.cannot_serialize_storage
Category : temporary

  { "kind": "temporary",
    "id": "proto.alpha.michelson_v1.cannot_serialize_storage" }

Comparable type expected

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

Id : proto.alpha.michelson_v1.comparable_type_expected
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.michelson_v1.comparable_type_expected",
    "location": $micheline.location,
    "wrong_type": $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": $unistring }
    || { "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"
    | "UNIT"
    | "timestamp"
    | "signature"
    | "COMPARE"
    | "LAMBDA"
    | "LOOP"
    | "Elt"
    | "IMPLICIT_ACCOUNT"
    | "NONE"
    | "set"
    | "pair"
    | "bytes"
    | "BLAKE2B"
    | "address"
    | "SHA256"
    | "XOR"
    | "RENAME"
    | "MAP"
    | "SET_DELEGATE"
    | "DIP"
    | "PACK"
    | "or"
    | "SIZE"
    | "Right"
    | "list"
    | "IF_CONS"
    | "LSR"
    | "TRANSFER_TOKENS"
    | "storage"
    | "UPDATE"
    | "CDR"
    | "SWAP"
    | "SOME"
    | "False"
    | "SHA512"
    | "CHECK_SIGNATURE"
    | "BALANCE"
    | "key_hash"
    | "unit"
    | "EMPTY_SET"
    | "SUB"
    | "MEM"
    | "RIGHT"
    | "ADDRESS"
    | "option"
    | "CONCAT"
    | "big_map"
    | "string"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "NOT"
    | "LEFT"
    | "mutez"
    | "AMOUNT"
    | "DROP"
    | "ABS"
    | "bool"
    | "GE"
    | "PUSH"
    | "LT"
    | "operation"
    | "NEQ"
    | "NEG"
    | "None"
    | "CONS"
    | "EXEC"
    | "NIL"
    | "ISNAT"
    | "MUL"
    | "LOOP_LEFT"
    | "EDIV"
    | "SLICE"
    | "STEPS_TO_QUOTA"
    | "INT"
    | "SOURCE"
    | "CAR"
    | "CREATE_ACCOUNT"
    | "LSL"
    | "OR"
    | "IF_NONE"
    | "SELF"
    | "IF"
    | "Left"
    | "contract"
    | "map"
    | "SENDER"
    | "nat"
    | "DUP"
    | "EQ"
    | "NOW"
    | "key"
    | "GET"
    | "lambda"
    | "int"
    | "True"
    | "GT"
    | "parameter"
    | "IF_LEFT"
    | "FAILWITH"
    | "PAIR"
    | "ITER"
    | "Pair"
    | "CAST"
    | "EMPTY_MAP"
    | "CREATE_CONTRACT"
    | "HASH_KEY"
    | "CONTRACT"
    | "code"
    | "AND"
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

Duplicate map keys

Map literals cannot contain duplicated keys

Id : proto.alpha.michelson_v1.duplicate_map_keys
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.michelson_v1.duplicate_map_keys",
    "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": $unistring }
    || { "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"
    | "UNIT"
    | "timestamp"
    | "signature"
    | "COMPARE"
    | "LAMBDA"
    | "LOOP"
    | "Elt"
    | "IMPLICIT_ACCOUNT"
    | "NONE"
    | "set"
    | "pair"
    | "bytes"
    | "BLAKE2B"
    | "address"
    | "SHA256"
    | "XOR"
    | "RENAME"
    | "MAP"
    | "SET_DELEGATE"
    | "DIP"
    | "PACK"
    | "or"
    | "SIZE"
    | "Right"
    | "list"
    | "IF_CONS"
    | "LSR"
    | "TRANSFER_TOKENS"
    | "storage"
    | "UPDATE"
    | "CDR"
    | "SWAP"
    | "SOME"
    | "False"
    | "SHA512"
    | "CHECK_SIGNATURE"
    | "BALANCE"
    | "key_hash"
    | "unit"
    | "EMPTY_SET"
    | "SUB"
    | "MEM"
    | "RIGHT"
    | "ADDRESS"
    | "option"
    | "CONCAT"
    | "big_map"
    | "string"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "NOT"
    | "LEFT"
    | "mutez"
    | "AMOUNT"
    | "DROP"
    | "ABS"
    | "bool"
    | "GE"
    | "PUSH"
    | "LT"
    | "operation"
    | "NEQ"
    | "NEG"
    | "None"
    | "CONS"
    | "EXEC"
    | "NIL"
    | "ISNAT"
    | "MUL"
    | "LOOP_LEFT"
    | "EDIV"
    | "SLICE"
    | "STEPS_TO_QUOTA"
    | "INT"
    | "SOURCE"
    | "CAR"
    | "CREATE_ACCOUNT"
    | "LSL"
    | "OR"
    | "IF_NONE"
    | "SELF"
    | "IF"
    | "Left"
    | "contract"
    | "map"
    | "SENDER"
    | "nat"
    | "DUP"
    | "EQ"
    | "NOW"
    | "key"
    | "GET"
    | "lambda"
    | "int"
    | "True"
    | "GT"
    | "parameter"
    | "IF_LEFT"
    | "FAILWITH"
    | "PAIR"
    | "ITER"
    | "Pair"
    | "CAST"
    | "EMPTY_MAP"
    | "CREATE_CONTRACT"
    | "HASH_KEY"
    | "CONTRACT"
    | "code"
    | "AND"
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

Script has a duplicated field (parse error)

When parsing script, a field was found more than once

Id : proto.alpha.michelson_v1.duplicate_script_field
Category : permanent

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

Sets literals cannot contain duplicate elements

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

Id : proto.alpha.michelson_v1.duplicate_set_values_in_literal
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.michelson_v1.duplicate_set_values_in_literal",
    "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": $unistring }
    || { "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"
    | "UNIT"
    | "timestamp"
    | "signature"
    | "COMPARE"
    | "LAMBDA"
    | "LOOP"
    | "Elt"
    | "IMPLICIT_ACCOUNT"
    | "NONE"
    | "set"
    | "pair"
    | "bytes"
    | "BLAKE2B"
    | "address"
    | "SHA256"
    | "XOR"
    | "RENAME"
    | "MAP"
    | "SET_DELEGATE"
    | "DIP"
    | "PACK"
    | "or"
    | "SIZE"
    | "Right"
    | "list"
    | "IF_CONS"
    | "LSR"
    | "TRANSFER_TOKENS"
    | "storage"
    | "UPDATE"
    | "CDR"
    | "SWAP"
    | "SOME"
    | "False"
    | "SHA512"
    | "CHECK_SIGNATURE"
    | "BALANCE"
    | "key_hash"
    | "unit"
    | "EMPTY_SET"
    | "SUB"
    | "MEM"
    | "RIGHT"
    | "ADDRESS"
    | "option"
    | "CONCAT"
    | "big_map"
    | "string"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "NOT"
    | "LEFT"
    | "mutez"
    | "AMOUNT"
    | "DROP"
    | "ABS"
    | "bool"
    | "GE"
    | "PUSH"
    | "LT"
    | "operation"
    | "NEQ"
    | "NEG"
    | "None"
    | "CONS"
    | "EXEC"
    | "NIL"
    | "ISNAT"
    | "MUL"
    | "LOOP_LEFT"
    | "EDIV"
    | "SLICE"
    | "STEPS_TO_QUOTA"
    | "INT"
    | "SOURCE"
    | "CAR"
    | "CREATE_ACCOUNT"
    | "LSL"
    | "OR"
    | "IF_NONE"
    | "SELF"
    | "IF"
    | "Left"
    | "contract"
    | "map"
    | "SENDER"
    | "nat"
    | "DUP"
    | "EQ"
    | "NOW"
    | "key"
    | "GET"
    | "lambda"
    | "int"
    | "True"
    | "GT"
    | "parameter"
    | "IF_LEFT"
    | "FAILWITH"
    | "PAIR"
    | "ITER"
    | "Pair"
    | "CAST"
    | "EMPTY_MAP"
    | "CREATE_CONTRACT"
    | "HASH_KEY"
    | "CONTRACT"
    | "code"
    | "AND"
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

FAIL not in tail position

There is non trivial garbage code after a FAIL instruction.

Id : proto.alpha.michelson_v1.fail_not_in_tail_position
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.michelson_v1.fail_not_in_tail_position",
    "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]

Ill formed type

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

Id : proto.alpha.michelson_v1.ill_formed_type
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.michelson_v1.ill_formed_type",
    "identifier"?: $unistring,
    "ill_formed_expression": $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": $unistring }
    || { "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"
    | "UNIT"
    | "timestamp"
    | "signature"
    | "COMPARE"
    | "LAMBDA"
    | "LOOP"
    | "Elt"
    | "IMPLICIT_ACCOUNT"
    | "NONE"
    | "set"
    | "pair"
    | "bytes"
    | "BLAKE2B"
    | "address"
    | "SHA256"
    | "XOR"
    | "RENAME"
    | "MAP"
    | "SET_DELEGATE"
    | "DIP"
    | "PACK"
    | "or"
    | "SIZE"
    | "Right"
    | "list"
    | "IF_CONS"
    | "LSR"
    | "TRANSFER_TOKENS"
    | "storage"
    | "UPDATE"
    | "CDR"
    | "SWAP"
    | "SOME"
    | "False"
    | "SHA512"
    | "CHECK_SIGNATURE"
    | "BALANCE"
    | "key_hash"
    | "unit"
    | "EMPTY_SET"
    | "SUB"
    | "MEM"
    | "RIGHT"
    | "ADDRESS"
    | "option"
    | "CONCAT"
    | "big_map"
    | "string"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "NOT"
    | "LEFT"
    | "mutez"
    | "AMOUNT"
    | "DROP"
    | "ABS"
    | "bool"
    | "GE"
    | "PUSH"
    | "LT"
    | "operation"
    | "NEQ"
    | "NEG"
    | "None"
    | "CONS"
    | "EXEC"
    | "NIL"
    | "ISNAT"
    | "MUL"
    | "LOOP_LEFT"
    | "EDIV"
    | "SLICE"
    | "STEPS_TO_QUOTA"
    | "INT"
    | "SOURCE"
    | "CAR"
    | "CREATE_ACCOUNT"
    | "LSL"
    | "OR"
    | "IF_NONE"
    | "SELF"
    | "IF"
    | "Left"
    | "contract"
    | "map"
    | "SENDER"
    | "nat"
    | "DUP"
    | "EQ"
    | "NOW"
    | "key"
    | "GET"
    | "lambda"
    | "int"
    | "True"
    | "GT"
    | "parameter"
    | "IF_LEFT"
    | "FAILWITH"
    | "PAIR"
    | "ITER"
    | "Pair"
    | "CAST"
    | "EMPTY_MAP"
    | "CREATE_CONTRACT"
    | "HASH_KEY"
    | "CONTRACT"
    | "code"
    | "AND"
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

Ill typed contract

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.michelson_v1.ill_typed_contract
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.michelson_v1.ill_typed_contract",
    "ill_typed_code": $micheline.michelson_v1.expression,
    "type_map":
      [ { "location": $micheline.location,
          "stack_before":
            [ [ $micheline.michelson_v1.expression, [ $unistring ... ] ] ... ],
          "stack_after":
            [ [ $micheline.michelson_v1.expression, [ $unistring ... ] ] ... ] } ... ] }
  $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": $unistring }
    || { "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"
    | "UNIT"
    | "timestamp"
    | "signature"
    | "COMPARE"
    | "LAMBDA"
    | "LOOP"
    | "Elt"
    | "IMPLICIT_ACCOUNT"
    | "NONE"
    | "set"
    | "pair"
    | "bytes"
    | "BLAKE2B"
    | "address"
    | "SHA256"
    | "XOR"
    | "RENAME"
    | "MAP"
    | "SET_DELEGATE"
    | "DIP"
    | "PACK"
    | "or"
    | "SIZE"
    | "Right"
    | "list"
    | "IF_CONS"
    | "LSR"
    | "TRANSFER_TOKENS"
    | "storage"
    | "UPDATE"
    | "CDR"
    | "SWAP"
    | "SOME"
    | "False"
    | "SHA512"
    | "CHECK_SIGNATURE"
    | "BALANCE"
    | "key_hash"
    | "unit"
    | "EMPTY_SET"
    | "SUB"
    | "MEM"
    | "RIGHT"
    | "ADDRESS"
    | "option"
    | "CONCAT"
    | "big_map"
    | "string"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "NOT"
    | "LEFT"
    | "mutez"
    | "AMOUNT"
    | "DROP"
    | "ABS"
    | "bool"
    | "GE"
    | "PUSH"
    | "LT"
    | "operation"
    | "NEQ"
    | "NEG"
    | "None"
    | "CONS"
    | "EXEC"
    | "NIL"
    | "ISNAT"
    | "MUL"
    | "LOOP_LEFT"
    | "EDIV"
    | "SLICE"
    | "STEPS_TO_QUOTA"
    | "INT"
    | "SOURCE"
    | "CAR"
    | "CREATE_ACCOUNT"
    | "LSL"
    | "OR"
    | "IF_NONE"
    | "SELF"
    | "IF"
    | "Left"
    | "contract"
    | "map"
    | "SENDER"
    | "nat"
    | "DUP"
    | "EQ"
    | "NOW"
    | "key"
    | "GET"
    | "lambda"
    | "int"
    | "True"
    | "GT"
    | "parameter"
    | "IF_LEFT"
    | "FAILWITH"
    | "PAIR"
    | "ITER"
    | "Pair"
    | "CAST"
    | "EMPTY_MAP"
    | "CREATE_CONTRACT"
    | "HASH_KEY"
    | "CONTRACT"
    | "code"
    | "AND"
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

Ill typed data

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

Id : proto.alpha.michelson_v1.ill_typed_data
Category : permanent

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

Annotations inconsistent between branches

The annotations on two types could not be merged

Id : proto.alpha.michelson_v1.inconsistent_annotations
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.michelson_v1.inconsistent_annotations",
    "annot1": $unistring,
    "annot2": $unistring }
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

Annotations for field accesses is inconsistent

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

Id : proto.alpha.michelson_v1.inconsistent_field_annotations
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.michelson_v1.inconsistent_field_annotations",
    "annot1": $unistring,
    "annot2": $unistring }
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

Inconsistent stack lengths

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

Id : proto.alpha.michelson_v1.inconsistent_stack_lengths
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.michelson_v1.inconsistent_stack_lengths" }

Types contain inconsistent annotations

The two types contain annotations that do not match

Id : proto.alpha.michelson_v1.inconsistent_type_annotations
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.michelson_v1.inconsistent_type_annotations",
    "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": $unistring }
    || { "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"
    | "UNIT"
    | "timestamp"
    | "signature"
    | "COMPARE"
    | "LAMBDA"
    | "LOOP"
    | "Elt"
    | "IMPLICIT_ACCOUNT"
    | "NONE"
    | "set"
    | "pair"
    | "bytes"
    | "BLAKE2B"
    | "address"
    | "SHA256"
    | "XOR"
    | "RENAME"
    | "MAP"
    | "SET_DELEGATE"
    | "DIP"
    | "PACK"
    | "or"
    | "SIZE"
    | "Right"
    | "list"
    | "IF_CONS"
    | "LSR"
    | "TRANSFER_TOKENS"
    | "storage"
    | "UPDATE"
    | "CDR"
    | "SWAP"
    | "SOME"
    | "False"
    | "SHA512"
    | "CHECK_SIGNATURE"
    | "BALANCE"
    | "key_hash"
    | "unit"
    | "EMPTY_SET"
    | "SUB"
    | "MEM"
    | "RIGHT"
    | "ADDRESS"
    | "option"
    | "CONCAT"
    | "big_map"
    | "string"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "NOT"
    | "LEFT"
    | "mutez"
    | "AMOUNT"
    | "DROP"
    | "ABS"
    | "bool"
    | "GE"
    | "PUSH"
    | "LT"
    | "operation"
    | "NEQ"
    | "NEG"
    | "None"
    | "CONS"
    | "EXEC"
    | "NIL"
    | "ISNAT"
    | "MUL"
    | "LOOP_LEFT"
    | "EDIV"
    | "SLICE"
    | "STEPS_TO_QUOTA"
    | "INT"
    | "SOURCE"
    | "CAR"
    | "CREATE_ACCOUNT"
    | "LSL"
    | "OR"
    | "IF_NONE"
    | "SELF"
    | "IF"
    | "Left"
    | "contract"
    | "map"
    | "SENDER"
    | "nat"
    | "DUP"
    | "EQ"
    | "NOW"
    | "key"
    | "GET"
    | "lambda"
    | "int"
    | "True"
    | "GT"
    | "parameter"
    | "IF_LEFT"
    | "FAILWITH"
    | "PAIR"
    | "ITER"
    | "Pair"
    | "CAST"
    | "EMPTY_MAP"
    | "CREATE_CONTRACT"
    | "HASH_KEY"
    | "CONTRACT"
    | "code"
    | "AND"
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

Inconsistent types

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.michelson_v1.inconsistent_types
Category : permanent

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

Invalid arity

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

Id : proto.alpha.michelson_v1.invalid_arity
Category : permanent

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

Invalid constant

A data expression was invalid for its expected type.

Id : proto.alpha.michelson_v1.invalid_constant
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.michelson_v1.invalid_constant",
    "location": $micheline.location,
    "expected_type": $micheline.michelson_v1.expression,
    "wrong_expression": $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": $unistring }
    || { "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"
    | "UNIT"
    | "timestamp"
    | "signature"
    | "COMPARE"
    | "LAMBDA"
    | "LOOP"
    | "Elt"
    | "IMPLICIT_ACCOUNT"
    | "NONE"
    | "set"
    | "pair"
    | "bytes"
    | "BLAKE2B"
    | "address"
    | "SHA256"
    | "XOR"
    | "RENAME"
    | "MAP"
    | "SET_DELEGATE"
    | "DIP"
    | "PACK"
    | "or"
    | "SIZE"
    | "Right"
    | "list"
    | "IF_CONS"
    | "LSR"
    | "TRANSFER_TOKENS"
    | "storage"
    | "UPDATE"
    | "CDR"
    | "SWAP"
    | "SOME"
    | "False"
    | "SHA512"
    | "CHECK_SIGNATURE"
    | "BALANCE"
    | "key_hash"
    | "unit"
    | "EMPTY_SET"
    | "SUB"
    | "MEM"
    | "RIGHT"
    | "ADDRESS"
    | "option"
    | "CONCAT"
    | "big_map"
    | "string"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "NOT"
    | "LEFT"
    | "mutez"
    | "AMOUNT"
    | "DROP"
    | "ABS"
    | "bool"
    | "GE"
    | "PUSH"
    | "LT"
    | "operation"
    | "NEQ"
    | "NEG"
    | "None"
    | "CONS"
    | "EXEC"
    | "NIL"
    | "ISNAT"
    | "MUL"
    | "LOOP_LEFT"
    | "EDIV"
    | "SLICE"
    | "STEPS_TO_QUOTA"
    | "INT"
    | "SOURCE"
    | "CAR"
    | "CREATE_ACCOUNT"
    | "LSL"
    | "OR"
    | "IF_NONE"
    | "SELF"
    | "IF"
    | "Left"
    | "contract"
    | "map"
    | "SENDER"
    | "nat"
    | "DUP"
    | "EQ"
    | "NOW"
    | "key"
    | "GET"
    | "lambda"
    | "int"
    | "True"
    | "GT"
    | "parameter"
    | "IF_LEFT"
    | "FAILWITH"
    | "PAIR"
    | "ITER"
    | "Pair"
    | "CAST"
    | "EMPTY_MAP"
    | "CREATE_CONTRACT"
    | "HASH_KEY"
    | "CONTRACT"
    | "code"
    | "AND"
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

Invalid contract

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

Id : proto.alpha.michelson_v1.invalid_contract
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.michelson_v1.invalid_contract",
    "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. */
    $unistring
  $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]
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

Invalid expression kind

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.michelson_v1.invalid_expression_kind
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.michelson_v1.invalid_expression_kind",
    "location": $micheline.location,
    "expected_kinds": [ $expressionKind ... ],
    "wrong_kind": $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.michelson_v1.invalid_iter_body
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.michelson_v1.invalid_iter_body",
    "loc": $micheline.location,
    "bef_stack":
      [ { "type": $micheline.michelson_v1.expression,
          "annots"?: [ $unistring ... ] } ... ],
    "aft_stack":
      [ { "type": $micheline.michelson_v1.expression,
          "annots"?: [ $unistring ... ] } ... ] }
  $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": $unistring }
    || { "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"
    | "UNIT"
    | "timestamp"
    | "signature"
    | "COMPARE"
    | "LAMBDA"
    | "LOOP"
    | "Elt"
    | "IMPLICIT_ACCOUNT"
    | "NONE"
    | "set"
    | "pair"
    | "bytes"
    | "BLAKE2B"
    | "address"
    | "SHA256"
    | "XOR"
    | "RENAME"
    | "MAP"
    | "SET_DELEGATE"
    | "DIP"
    | "PACK"
    | "or"
    | "SIZE"
    | "Right"
    | "list"
    | "IF_CONS"
    | "LSR"
    | "TRANSFER_TOKENS"
    | "storage"
    | "UPDATE"
    | "CDR"
    | "SWAP"
    | "SOME"
    | "False"
    | "SHA512"
    | "CHECK_SIGNATURE"
    | "BALANCE"
    | "key_hash"
    | "unit"
    | "EMPTY_SET"
    | "SUB"
    | "MEM"
    | "RIGHT"
    | "ADDRESS"
    | "option"
    | "CONCAT"
    | "big_map"
    | "string"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "NOT"
    | "LEFT"
    | "mutez"
    | "AMOUNT"
    | "DROP"
    | "ABS"
    | "bool"
    | "GE"
    | "PUSH"
    | "LT"
    | "operation"
    | "NEQ"
    | "NEG"
    | "None"
    | "CONS"
    | "EXEC"
    | "NIL"
    | "ISNAT"
    | "MUL"
    | "LOOP_LEFT"
    | "EDIV"
    | "SLICE"
    | "STEPS_TO_QUOTA"
    | "INT"
    | "SOURCE"
    | "CAR"
    | "CREATE_ACCOUNT"
    | "LSL"
    | "OR"
    | "IF_NONE"
    | "SELF"
    | "IF"
    | "Left"
    | "contract"
    | "map"
    | "SENDER"
    | "nat"
    | "DUP"
    | "EQ"
    | "NOW"
    | "key"
    | "GET"
    | "lambda"
    | "int"
    | "True"
    | "GT"
    | "parameter"
    | "IF_LEFT"
    | "FAILWITH"
    | "PAIR"
    | "ITER"
    | "Pair"
    | "CAST"
    | "EMPTY_MAP"
    | "CREATE_CONTRACT"
    | "HASH_KEY"
    | "CONTRACT"
    | "code"
    | "AND"
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

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.michelson_v1.invalid_map_block_fail
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.michelson_v1.invalid_map_block_fail",
    "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.michelson_v1.invalid_map_body
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.michelson_v1.invalid_map_body",
    "loc": $micheline.location,
    "body_type":
      [ { "type": $micheline.michelson_v1.expression,
          "annots"?: [ $unistring ... ] } ... ] }
  $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": $unistring }
    || { "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"
    | "UNIT"
    | "timestamp"
    | "signature"
    | "COMPARE"
    | "LAMBDA"
    | "LOOP"
    | "Elt"
    | "IMPLICIT_ACCOUNT"
    | "NONE"
    | "set"
    | "pair"
    | "bytes"
    | "BLAKE2B"
    | "address"
    | "SHA256"
    | "XOR"
    | "RENAME"
    | "MAP"
    | "SET_DELEGATE"
    | "DIP"
    | "PACK"
    | "or"
    | "SIZE"
    | "Right"
    | "list"
    | "IF_CONS"
    | "LSR"
    | "TRANSFER_TOKENS"
    | "storage"
    | "UPDATE"
    | "CDR"
    | "SWAP"
    | "SOME"
    | "False"
    | "SHA512"
    | "CHECK_SIGNATURE"
    | "BALANCE"
    | "key_hash"
    | "unit"
    | "EMPTY_SET"
    | "SUB"
    | "MEM"
    | "RIGHT"
    | "ADDRESS"
    | "option"
    | "CONCAT"
    | "big_map"
    | "string"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "NOT"
    | "LEFT"
    | "mutez"
    | "AMOUNT"
    | "DROP"
    | "ABS"
    | "bool"
    | "GE"
    | "PUSH"
    | "LT"
    | "operation"
    | "NEQ"
    | "NEG"
    | "None"
    | "CONS"
    | "EXEC"
    | "NIL"
    | "ISNAT"
    | "MUL"
    | "LOOP_LEFT"
    | "EDIV"
    | "SLICE"
    | "STEPS_TO_QUOTA"
    | "INT"
    | "SOURCE"
    | "CAR"
    | "CREATE_ACCOUNT"
    | "LSL"
    | "OR"
    | "IF_NONE"
    | "SELF"
    | "IF"
    | "Left"
    | "contract"
    | "map"
    | "SENDER"
    | "nat"
    | "DUP"
    | "EQ"
    | "NOW"
    | "key"
    | "GET"
    | "lambda"
    | "int"
    | "True"
    | "GT"
    | "parameter"
    | "IF_LEFT"
    | "FAILWITH"
    | "PAIR"
    | "ITER"
    | "Pair"
    | "CAST"
    | "EMPTY_MAP"
    | "CREATE_CONTRACT"
    | "HASH_KEY"
    | "CONTRACT"
    | "code"
    | "AND"
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

Invalid primitive

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

Id : proto.alpha.michelson_v1.invalid_primitive
Category : permanent

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

Invalid primitive name

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

Id : proto.alpha.michelson_v1.invalid_primitive_name
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.michelson_v1.invalid_primitive_name",
    "expression": $micheline.generic.expression,
    "location": $micheline.location }
  $bignum:
    /* Big number
       Decimal representation of a big number */
    string
  $micheline.generic.expression:
    { "int": $bignum }
    || { "string": $unistring }
    || { "bytes": /^[a-zA-Z0-9]+$/ }
    || [ $micheline.generic.expression ... ]
    || { "prim": $unistring,
         "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]
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

Invalid primitive name case

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

Id : proto.alpha.michelson_v1.invalid_primitive_name_case
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.michelson_v1.invalid_primitive_name_case",
    "wrong_primitive_name": $unistring }
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

Invalid primitive namespace

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

Id : proto.alpha.michelson_v1.invalid_primitive_namespace
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.michelson_v1.invalid_primitive_namespace",
    "location": $micheline.location,
    "primitive_name": $michelson.v1.primitives,
    "expected_namespace": $primitiveNamespace,
    "wrong_namespace": $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"
    | "UNIT"
    | "timestamp"
    | "signature"
    | "COMPARE"
    | "LAMBDA"
    | "LOOP"
    | "Elt"
    | "IMPLICIT_ACCOUNT"
    | "NONE"
    | "set"
    | "pair"
    | "bytes"
    | "BLAKE2B"
    | "address"
    | "SHA256"
    | "XOR"
    | "RENAME"
    | "MAP"
    | "SET_DELEGATE"
    | "DIP"
    | "PACK"
    | "or"
    | "SIZE"
    | "Right"
    | "list"
    | "IF_CONS"
    | "LSR"
    | "TRANSFER_TOKENS"
    | "storage"
    | "UPDATE"
    | "CDR"
    | "SWAP"
    | "SOME"
    | "False"
    | "SHA512"
    | "CHECK_SIGNATURE"
    | "BALANCE"
    | "key_hash"
    | "unit"
    | "EMPTY_SET"
    | "SUB"
    | "MEM"
    | "RIGHT"
    | "ADDRESS"
    | "option"
    | "CONCAT"
    | "big_map"
    | "string"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "NOT"
    | "LEFT"
    | "mutez"
    | "AMOUNT"
    | "DROP"
    | "ABS"
    | "bool"
    | "GE"
    | "PUSH"
    | "LT"
    | "operation"
    | "NEQ"
    | "NEG"
    | "None"
    | "CONS"
    | "EXEC"
    | "NIL"
    | "ISNAT"
    | "MUL"
    | "LOOP_LEFT"
    | "EDIV"
    | "SLICE"
    | "STEPS_TO_QUOTA"
    | "INT"
    | "SOURCE"
    | "CAR"
    | "CREATE_ACCOUNT"
    | "LSL"
    | "OR"
    | "IF_NONE"
    | "SELF"
    | "IF"
    | "Left"
    | "contract"
    | "map"
    | "SENDER"
    | "nat"
    | "DUP"
    | "EQ"
    | "NOW"
    | "key"
    | "GET"
    | "lambda"
    | "int"
    | "True"
    | "GT"
    | "parameter"
    | "IF_LEFT"
    | "FAILWITH"
    | "PAIR"
    | "ITER"
    | "Pair"
    | "CAST"
    | "EMPTY_MAP"
    | "CREATE_CONTRACT"
    | "HASH_KEY"
    | "CONTRACT"
    | "code"
    | "AND"
  $primitiveNamespace:
    /* Primitive namespace
       One of the three possible namespaces of primitive (data constructor,
       type name or instruction). */
    "constant" | "type" | "instruction"

Script is missing a field (parse error)

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

Id : proto.alpha.michelson_v1.missing_script_field
Category : permanent

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

Script runtime error

Toplevel error for all runtime script errors

Id : proto.alpha.michelson_v1.runtime_error
Category : temporary

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

Script failed (overflow error)

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

Id : proto.alpha.michelson_v1.script_overflow
Category : temporary

  { "kind": "temporary",
    "id": "proto.alpha.michelson_v1.script_overflow",
    "location": $micheline.location,
    "trace"?:
      [ { "location": $micheline.location,
          "gas": $bignum || "unaccounted",
          "stack":
            [ { "item": $micheline.michelson_v1.expression,
                "annot"?: $unistring } ... ] } ... ] }
  $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": $unistring }
    || { "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"
    | "UNIT"
    | "timestamp"
    | "signature"
    | "COMPARE"
    | "LAMBDA"
    | "LOOP"
    | "Elt"
    | "IMPLICIT_ACCOUNT"
    | "NONE"
    | "set"
    | "pair"
    | "bytes"
    | "BLAKE2B"
    | "address"
    | "SHA256"
    | "XOR"
    | "RENAME"
    | "MAP"
    | "SET_DELEGATE"
    | "DIP"
    | "PACK"
    | "or"
    | "SIZE"
    | "Right"
    | "list"
    | "IF_CONS"
    | "LSR"
    | "TRANSFER_TOKENS"
    | "storage"
    | "UPDATE"
    | "CDR"
    | "SWAP"
    | "SOME"
    | "False"
    | "SHA512"
    | "CHECK_SIGNATURE"
    | "BALANCE"
    | "key_hash"
    | "unit"
    | "EMPTY_SET"
    | "SUB"
    | "MEM"
    | "RIGHT"
    | "ADDRESS"
    | "option"
    | "CONCAT"
    | "big_map"
    | "string"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "NOT"
    | "LEFT"
    | "mutez"
    | "AMOUNT"
    | "DROP"
    | "ABS"
    | "bool"
    | "GE"
    | "PUSH"
    | "LT"
    | "operation"
    | "NEQ"
    | "NEG"
    | "None"
    | "CONS"
    | "EXEC"
    | "NIL"
    | "ISNAT"
    | "MUL"
    | "LOOP_LEFT"
    | "EDIV"
    | "SLICE"
    | "STEPS_TO_QUOTA"
    | "INT"
    | "SOURCE"
    | "CAR"
    | "CREATE_ACCOUNT"
    | "LSL"
    | "OR"
    | "IF_NONE"
    | "SELF"
    | "IF"
    | "Left"
    | "contract"
    | "map"
    | "SENDER"
    | "nat"
    | "DUP"
    | "EQ"
    | "NOW"
    | "key"
    | "GET"
    | "lambda"
    | "int"
    | "True"
    | "GT"
    | "parameter"
    | "IF_LEFT"
    | "FAILWITH"
    | "PAIR"
    | "ITER"
    | "Pair"
    | "CAST"
    | "EMPTY_MAP"
    | "CREATE_CONTRACT"
    | "HASH_KEY"
    | "CONTRACT"
    | "code"
    | "AND"
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

Script failed

A FAILWITH instruction was reached

Id : proto.alpha.michelson_v1.script_rejected
Category : temporary

  { "kind": "temporary",
    "id": "proto.alpha.michelson_v1.script_rejected",
    "location": $micheline.location,
    "with": $micheline.michelson_v1.expression,
    "trace"?:
      [ { "location": $micheline.location,
          "gas": $bignum || "unaccounted",
          "stack":
            [ { "item": $micheline.michelson_v1.expression,
                "annot"?: $unistring } ... ] } ... ] }
  $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": $unistring }
    || { "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"
    | "UNIT"
    | "timestamp"
    | "signature"
    | "COMPARE"
    | "LAMBDA"
    | "LOOP"
    | "Elt"
    | "IMPLICIT_ACCOUNT"
    | "NONE"
    | "set"
    | "pair"
    | "bytes"
    | "BLAKE2B"
    | "address"
    | "SHA256"
    | "XOR"
    | "RENAME"
    | "MAP"
    | "SET_DELEGATE"
    | "DIP"
    | "PACK"
    | "or"
    | "SIZE"
    | "Right"
    | "list"
    | "IF_CONS"
    | "LSR"
    | "TRANSFER_TOKENS"
    | "storage"
    | "UPDATE"
    | "CDR"
    | "SWAP"
    | "SOME"
    | "False"
    | "SHA512"
    | "CHECK_SIGNATURE"
    | "BALANCE"
    | "key_hash"
    | "unit"
    | "EMPTY_SET"
    | "SUB"
    | "MEM"
    | "RIGHT"
    | "ADDRESS"
    | "option"
    | "CONCAT"
    | "big_map"
    | "string"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "NOT"
    | "LEFT"
    | "mutez"
    | "AMOUNT"
    | "DROP"
    | "ABS"
    | "bool"
    | "GE"
    | "PUSH"
    | "LT"
    | "operation"
    | "NEQ"
    | "NEG"
    | "None"
    | "CONS"
    | "EXEC"
    | "NIL"
    | "ISNAT"
    | "MUL"
    | "LOOP_LEFT"
    | "EDIV"
    | "SLICE"
    | "STEPS_TO_QUOTA"
    | "INT"
    | "SOURCE"
    | "CAR"
    | "CREATE_ACCOUNT"
    | "LSL"
    | "OR"
    | "IF_NONE"
    | "SELF"
    | "IF"
    | "Left"
    | "contract"
    | "map"
    | "SENDER"
    | "nat"
    | "DUP"
    | "EQ"
    | "NOW"
    | "key"
    | "GET"
    | "lambda"
    | "int"
    | "True"
    | "GT"
    | "parameter"
    | "IF_LEFT"
    | "FAILWITH"
    | "PAIR"
    | "ITER"
    | "Pair"
    | "CAST"
    | "EMPTY_MAP"
    | "CREATE_CONTRACT"
    | "HASH_KEY"
    | "CONTRACT"
    | "code"
    | "AND"
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

SELF instruction in lambda

A SELF instruction was encountered in a lambda expression.

Id : proto.alpha.michelson_v1.self_in_lambda
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.michelson_v1.self_in_lambda",
    "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]

Stack item type too large

An instruction generated a type larger than the limit.

Id : proto.alpha.michelson_v1.type_too_large
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.michelson_v1.type_too_large",
    "loc": $micheline.location,
    "type_size": integer ∈ [0, 2^16-1],
    "maximum_type_size": 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]

Undefined binop

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

Id : proto.alpha.michelson_v1.undefined_binop
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.michelson_v1.undefined_binop",
    "location": $micheline.location,
    "operator_name": $michelson.v1.primitives,
    "wrong_left_operand_type": $micheline.michelson_v1.expression,
    "wrong_right_operand_type": $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": $unistring }
    || { "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"
    | "UNIT"
    | "timestamp"
    | "signature"
    | "COMPARE"
    | "LAMBDA"
    | "LOOP"
    | "Elt"
    | "IMPLICIT_ACCOUNT"
    | "NONE"
    | "set"
    | "pair"
    | "bytes"
    | "BLAKE2B"
    | "address"
    | "SHA256"
    | "XOR"
    | "RENAME"
    | "MAP"
    | "SET_DELEGATE"
    | "DIP"
    | "PACK"
    | "or"
    | "SIZE"
    | "Right"
    | "list"
    | "IF_CONS"
    | "LSR"
    | "TRANSFER_TOKENS"
    | "storage"
    | "UPDATE"
    | "CDR"
    | "SWAP"
    | "SOME"
    | "False"
    | "SHA512"
    | "CHECK_SIGNATURE"
    | "BALANCE"
    | "key_hash"
    | "unit"
    | "EMPTY_SET"
    | "SUB"
    | "MEM"
    | "RIGHT"
    | "ADDRESS"
    | "option"
    | "CONCAT"
    | "big_map"
    | "string"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "NOT"
    | "LEFT"
    | "mutez"
    | "AMOUNT"
    | "DROP"
    | "ABS"
    | "bool"
    | "GE"
    | "PUSH"
    | "LT"
    | "operation"
    | "NEQ"
    | "NEG"
    | "None"
    | "CONS"
    | "EXEC"
    | "NIL"
    | "ISNAT"
    | "MUL"
    | "LOOP_LEFT"
    | "EDIV"
    | "SLICE"
    | "STEPS_TO_QUOTA"
    | "INT"
    | "SOURCE"
    | "CAR"
    | "CREATE_ACCOUNT"
    | "LSL"
    | "OR"
    | "IF_NONE"
    | "SELF"
    | "IF"
    | "Left"
    | "contract"
    | "map"
    | "SENDER"
    | "nat"
    | "DUP"
    | "EQ"
    | "NOW"
    | "key"
    | "GET"
    | "lambda"
    | "int"
    | "True"
    | "GT"
    | "parameter"
    | "IF_LEFT"
    | "FAILWITH"
    | "PAIR"
    | "ITER"
    | "Pair"
    | "CAST"
    | "EMPTY_MAP"
    | "CREATE_CONTRACT"
    | "HASH_KEY"
    | "CONTRACT"
    | "code"
    | "AND"
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

Undefined unop

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

Id : proto.alpha.michelson_v1.undefined_unop
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.michelson_v1.undefined_unop",
    "location": $micheline.location,
    "operator_name": $michelson.v1.primitives,
    "wrong_operand_type": $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": $unistring }
    || { "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"
    | "UNIT"
    | "timestamp"
    | "signature"
    | "COMPARE"
    | "LAMBDA"
    | "LOOP"
    | "Elt"
    | "IMPLICIT_ACCOUNT"
    | "NONE"
    | "set"
    | "pair"
    | "bytes"
    | "BLAKE2B"
    | "address"
    | "SHA256"
    | "XOR"
    | "RENAME"
    | "MAP"
    | "SET_DELEGATE"
    | "DIP"
    | "PACK"
    | "or"
    | "SIZE"
    | "Right"
    | "list"
    | "IF_CONS"
    | "LSR"
    | "TRANSFER_TOKENS"
    | "storage"
    | "UPDATE"
    | "CDR"
    | "SWAP"
    | "SOME"
    | "False"
    | "SHA512"
    | "CHECK_SIGNATURE"
    | "BALANCE"
    | "key_hash"
    | "unit"
    | "EMPTY_SET"
    | "SUB"
    | "MEM"
    | "RIGHT"
    | "ADDRESS"
    | "option"
    | "CONCAT"
    | "big_map"
    | "string"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "NOT"
    | "LEFT"
    | "mutez"
    | "AMOUNT"
    | "DROP"
    | "ABS"
    | "bool"
    | "GE"
    | "PUSH"
    | "LT"
    | "operation"
    | "NEQ"
    | "NEG"
    | "None"
    | "CONS"
    | "EXEC"
    | "NIL"
    | "ISNAT"
    | "MUL"
    | "LOOP_LEFT"
    | "EDIV"
    | "SLICE"
    | "STEPS_TO_QUOTA"
    | "INT"
    | "SOURCE"
    | "CAR"
    | "CREATE_ACCOUNT"
    | "LSL"
    | "OR"
    | "IF_NONE"
    | "SELF"
    | "IF"
    | "Left"
    | "contract"
    | "map"
    | "SENDER"
    | "nat"
    | "DUP"
    | "EQ"
    | "NOW"
    | "key"
    | "GET"
    | "lambda"
    | "int"
    | "True"
    | "GT"
    | "parameter"
    | "IF_LEFT"
    | "FAILWITH"
    | "PAIR"
    | "ITER"
    | "Pair"
    | "CAST"
    | "EMPTY_MAP"
    | "CREATE_CONTRACT"
    | "HASH_KEY"
    | "CONTRACT"
    | "code"
    | "AND"
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

An annotation was encountered where no annotation is expected

A node in the syntax tree was impropperly annotated

Id : proto.alpha.michelson_v1.unexpected_annotation
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.michelson_v1.unexpected_annotation",
    "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.michelson_v1.unexpected_bigmap
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.michelson_v1.unexpected_bigmap",
    "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.michelson_v1.unexpected_operation
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.michelson_v1.unexpected_operation",
    "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]

Annotations of the same kind were found spread apart

Annotations of the same kind must be grouped

Id : proto.alpha.michelson_v1.ungrouped_annotations
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.michelson_v1.ungrouped_annotations",
    "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

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

Id : proto.alpha.michelson_v1.unknown_primitive_name
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.michelson_v1.unknown_primitive_name",
    "wrong_primitive_name": $unistring }
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

Unmatched branches

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

Id : proto.alpha.michelson_v1.unmatched_branches
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.michelson_v1.unmatched_branches",
    "location": $micheline.location,
    "first_stack_type":
      [ { "type": $micheline.michelson_v1.expression,
          "annots"?: [ $unistring ... ] } ... ],
    "other_stack_type":
      [ { "type": $micheline.michelson_v1.expression,
          "annots"?: [ $unistring ... ] } ... ] }
  $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": $unistring }
    || { "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"
    | "UNIT"
    | "timestamp"
    | "signature"
    | "COMPARE"
    | "LAMBDA"
    | "LOOP"
    | "Elt"
    | "IMPLICIT_ACCOUNT"
    | "NONE"
    | "set"
    | "pair"
    | "bytes"
    | "BLAKE2B"
    | "address"
    | "SHA256"
    | "XOR"
    | "RENAME"
    | "MAP"
    | "SET_DELEGATE"
    | "DIP"
    | "PACK"
    | "or"
    | "SIZE"
    | "Right"
    | "list"
    | "IF_CONS"
    | "LSR"
    | "TRANSFER_TOKENS"
    | "storage"
    | "UPDATE"
    | "CDR"
    | "SWAP"
    | "SOME"
    | "False"
    | "SHA512"
    | "CHECK_SIGNATURE"
    | "BALANCE"
    | "key_hash"
    | "unit"
    | "EMPTY_SET"
    | "SUB"
    | "MEM"
    | "RIGHT"
    | "ADDRESS"
    | "option"
    | "CONCAT"
    | "big_map"
    | "string"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "NOT"
    | "LEFT"
    | "mutez"
    | "AMOUNT"
    | "DROP"
    | "ABS"
    | "bool"
    | "GE"
    | "PUSH"
    | "LT"
    | "operation"
    | "NEQ"
    | "NEG"
    | "None"
    | "CONS"
    | "EXEC"
    | "NIL"
    | "ISNAT"
    | "MUL"
    | "LOOP_LEFT"
    | "EDIV"
    | "SLICE"
    | "STEPS_TO_QUOTA"
    | "INT"
    | "SOURCE"
    | "CAR"
    | "CREATE_ACCOUNT"
    | "LSL"
    | "OR"
    | "IF_NONE"
    | "SELF"
    | "IF"
    | "Left"
    | "contract"
    | "map"
    | "SENDER"
    | "nat"
    | "DUP"
    | "EQ"
    | "NOW"
    | "key"
    | "GET"
    | "lambda"
    | "int"
    | "True"
    | "GT"
    | "parameter"
    | "IF_LEFT"
    | "FAILWITH"
    | "PAIR"
    | "ITER"
    | "Pair"
    | "CAST"
    | "EMPTY_MAP"
    | "CREATE_CONTRACT"
    | "HASH_KEY"
    | "CONTRACT"
    | "code"
    | "AND"
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

Invalid map key order

Map keys must be in strictly increasing order

Id : proto.alpha.michelson_v1.unordered_map_literal
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.michelson_v1.unordered_map_literal",
    "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": $unistring }
    || { "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"
    | "UNIT"
    | "timestamp"
    | "signature"
    | "COMPARE"
    | "LAMBDA"
    | "LOOP"
    | "Elt"
    | "IMPLICIT_ACCOUNT"
    | "NONE"
    | "set"
    | "pair"
    | "bytes"
    | "BLAKE2B"
    | "address"
    | "SHA256"
    | "XOR"
    | "RENAME"
    | "MAP"
    | "SET_DELEGATE"
    | "DIP"
    | "PACK"
    | "or"
    | "SIZE"
    | "Right"
    | "list"
    | "IF_CONS"
    | "LSR"
    | "TRANSFER_TOKENS"
    | "storage"
    | "UPDATE"
    | "CDR"
    | "SWAP"
    | "SOME"
    | "False"
    | "SHA512"
    | "CHECK_SIGNATURE"
    | "BALANCE"
    | "key_hash"
    | "unit"
    | "EMPTY_SET"
    | "SUB"
    | "MEM"
    | "RIGHT"
    | "ADDRESS"
    | "option"
    | "CONCAT"
    | "big_map"
    | "string"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "NOT"
    | "LEFT"
    | "mutez"
    | "AMOUNT"
    | "DROP"
    | "ABS"
    | "bool"
    | "GE"
    | "PUSH"
    | "LT"
    | "operation"
    | "NEQ"
    | "NEG"
    | "None"
    | "CONS"
    | "EXEC"
    | "NIL"
    | "ISNAT"
    | "MUL"
    | "LOOP_LEFT"
    | "EDIV"
    | "SLICE"
    | "STEPS_TO_QUOTA"
    | "INT"
    | "SOURCE"
    | "CAR"
    | "CREATE_ACCOUNT"
    | "LSL"
    | "OR"
    | "IF_NONE"
    | "SELF"
    | "IF"
    | "Left"
    | "contract"
    | "map"
    | "SENDER"
    | "nat"
    | "DUP"
    | "EQ"
    | "NOW"
    | "key"
    | "GET"
    | "lambda"
    | "int"
    | "True"
    | "GT"
    | "parameter"
    | "IF_LEFT"
    | "FAILWITH"
    | "PAIR"
    | "ITER"
    | "Pair"
    | "CAST"
    | "EMPTY_MAP"
    | "CREATE_CONTRACT"
    | "HASH_KEY"
    | "CONTRACT"
    | "code"
    | "AND"
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

Invalid set value order

Set values must be in strictly increasing order

Id : proto.alpha.michelson_v1.unordered_set_literal
Category : permanent

  { "kind": "permanent",
    "id": "proto.alpha.michelson_v1.unordered_set_literal",
    "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": $unistring }
    || { "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"
    | "UNIT"
    | "timestamp"
    | "signature"
    | "COMPARE"
    | "LAMBDA"
    | "LOOP"
    | "Elt"
    | "IMPLICIT_ACCOUNT"
    | "NONE"
    | "set"
    | "pair"
    | "bytes"
    | "BLAKE2B"
    | "address"
    | "SHA256"
    | "XOR"
    | "RENAME"
    | "MAP"
    | "SET_DELEGATE"
    | "DIP"
    | "PACK"
    | "or"
    | "SIZE"
    | "Right"
    | "list"
    | "IF_CONS"
    | "LSR"
    | "TRANSFER_TOKENS"
    | "storage"
    | "UPDATE"
    | "CDR"
    | "SWAP"
    | "SOME"
    | "False"
    | "SHA512"
    | "CHECK_SIGNATURE"
    | "BALANCE"
    | "key_hash"
    | "unit"
    | "EMPTY_SET"
    | "SUB"
    | "MEM"
    | "RIGHT"
    | "ADDRESS"
    | "option"
    | "CONCAT"
    | "big_map"
    | "string"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "NOT"
    | "LEFT"
    | "mutez"
    | "AMOUNT"
    | "DROP"
    | "ABS"
    | "bool"
    | "GE"
    | "PUSH"
    | "LT"
    | "operation"
    | "NEQ"
    | "NEG"
    | "None"
    | "CONS"
    | "EXEC"
    | "NIL"
    | "ISNAT"
    | "MUL"
    | "LOOP_LEFT"
    | "EDIV"
    | "SLICE"
    | "STEPS_TO_QUOTA"
    | "INT"
    | "SOURCE"
    | "CAR"
    | "CREATE_ACCOUNT"
    | "LSL"
    | "OR"
    | "IF_NONE"
    | "SELF"
    | "IF"
    | "Left"
    | "contract"
    | "map"
    | "SENDER"
    | "nat"
    | "DUP"
    | "EQ"
    | "NOW"
    | "key"
    | "GET"
    | "lambda"
    | "int"
    | "True"
    | "GT"
    | "parameter"
    | "IF_LEFT"
    | "FAILWITH"
    | "PAIR"
    | "ITER"
    | "Pair"
    | "CAST"
    | "EMPTY_MAP"
    | "CREATE_CONTRACT"
    | "HASH_KEY"
    | "CONTRACT"
    | "code"
    | "AND"
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

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) */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

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) */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

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) */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

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] }

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] }

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" }

Too many proposals

The delegate reached the maximum number of allowed proposals.

Id : proto.alpha.too_many_proposals
Category : branch

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

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" }

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" }

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" }

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) */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

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) */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

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) */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

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) */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

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) */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

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) */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

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) */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

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) */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

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) */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

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) */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

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) */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

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) */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

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) */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

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) */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

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) */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

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) */
    $unistring
  $Crypto_box.Public_key_hash:
    /* A Cryptobox public key ID (Base58Check-encoded) */
    $unistring
  $Operation_list_list_hash:
    /* A list of list of operations (Base58Check-encoded) */
    $unistring
  $block_hash:
    /* A block identifier (Base58Check-encoded) */
    $unistring
  $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. */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

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) */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

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": $unistring }
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

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) */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

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": $unistring,
        "port"?: integer ∈ [0, 2^16-1] } }
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

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) */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

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) */
    $unistring
  $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. */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

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) */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

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) */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

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) */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

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) */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

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) */
    $unistring
  $block_hash:
    /* A block identifier (Base58Check-encoded) */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

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) */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

Missing key in store

Missing key in store

Id : raw_store.unknown
Category : permanent

  { "kind": "permanent",
    "id": "raw_store.unknown",
    "key": [ $unistring ... ] }
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

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) */
    $unistring
  $block_hash:
    /* A block identifier (Base58Check-encoded) */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

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) */
    $unistring
  $block_hash:
    /* A block identifier (Base58Check-encoded) */
    $unistring
  $fitness:
    /* Block fitness
       The fitness, or score, of a block, that allow the Tezos to decide
       which chain is the best. A fitness value is a list of byte
       sequences. They are compared as follows: shortest lists are smaller;
       lists of the same length are compared according to the
       lexicographical order. */
    [ /^[a-zA-Z0-9]+$/ ... ]
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

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) */
    $unistring
  $block_hash:
    /* A block identifier (Base58Check-encoded) */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

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) */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

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) */
    $unistring
  $Crypto_box.Public_key_hash:
    /* A Cryptobox public key ID (Base58Check-encoded) */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

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": $unistring }
      || { "int": $unistring }
      || { "annot": $unistring }
      || { "comment": $unistring,
           "end_of_line"?: boolean }
      || { "punctuation": "(" | ";" | "}" | "{" | ")" }
      || { "bytes": $unistring } }
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

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": $unistring }
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

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": $unistring }
    || { "bytes": /^[a-zA-Z0-9]+$/ }
    || [ $micheline.generic.expression ... ]
    || { "prim": $unistring,
         "args"?: [ $micheline.generic.expression ... ],
         "annots"?: [ string ... ] }
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

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": $unistring }
      || { "int": $unistring }
      || { "annot": $unistring }
      || { "comment": $unistring,
           "end_of_line"?: boolean }
      || { "punctuation": "(" | ";" | "}" | "{" | ")" }
      || { "bytes": $unistring } }
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

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": $unistring }
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

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": $unistring }
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

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": $unistring }
      || { "int": $unistring }
      || { "annot": $unistring }
      || { "comment": $unistring,
           "end_of_line"?: boolean }
      || { "punctuation": "(" | ";" | "}" | "{" | ")" }
      || { "bytes": $unistring } }
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

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] } } }

Client

<Untitled>

Id : rpc_client.request_failed
Category : permanent

  { "kind": "permanent",
    "id": "rpc_client.request_failed",
    "meth": $unistring,
    "uri": $unistring,
    "error":
      { "kind": "empty_answer" }
      || { "kind": "connection_failed",
           "message": $unistring }
      || { "kind": "bad_request",
           "message": $unistring }
      || { "kind": "method_not_allowed",
           "allowed": [ $unistring ... ] }
      || { "kind": "unsupported_media_type",
           "content_type"?: $unistring }
      || { "kind": "not_acceptable",
           "proposed": $unistring,
           "acceptable": $unistring }
      || { "kind": "unexpected_status_code",
           "code": integer ∈ [0, 2^16-1],
           "content": $unistring,
           "media_type"?: $unistring }
      || { "kind": "unexpected_content_type",
           "received": $unistring,
           "acceptable": [ $unistring ... ],
           "body": $unistring }
      || { "kind": "unexpected_content",
           "content": $unistring,
           "media_type": $unistring,
           "error": $unistring }
      || { "kind": "ocaml_exception",
           "content": $unistring } }
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

Miscellaneous

RPC lookup failed

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

Id : RPC_context.Not_found
Category : branch

  { "kind": "branch",
    "id": "RPC_context.Not_found",
    "method": $unistring,
    "uri": $unistring }
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

Fail during checkout context

The context checkout failed using a given hash

Id : Validator_process.failed_to_checkout_context
Category : permanent

  { "kind": "permanent",
    "id": "Validator_process.failed_to_checkout_context",
    "hash": $Context_hash }
  $Context_hash:
    /* A hash of context (Base58Check-encoded) */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

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": $unistring }
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

Signature mismatch

The signer produced an invalid signature

Id : cli.signature_mismatch
Category : permanent

  { "kind": "permanent",
    "id": "cli.signature_mismatch",
    "locator": $unistring }
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

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": $unistring }
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

Bad -endorsement-delay arg

invalid duration in -endorsement-delay

Id : client.alpha.badEndorsementDelayArg
Category : permanent

  { "kind": "permanent",
    "id": "client.alpha.badEndorsementDelayArg",
    "parameter": $unistring }
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

Bad -max-priority arg

invalid priority in -max-priority

Id : client.alpha.badMaxPriorityArg
Category : permanent

  { "kind": "permanent",
    "id": "client.alpha.badMaxPriorityArg",
    "parameter": $unistring }
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

Bad -max-waiting-time arg

invalid duration in -max-waiting-time

Id : client.alpha.badMaxWaitingTimeArg
Category : permanent

  { "kind": "permanent",
    "id": "client.alpha.badMaxWaitingTimeArg",
    "parameter": $unistring }
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

Bad -minimal-fees arg

invalid fee threshold in -fee-threshold

Id : client.alpha.badMinimalFeesArg
Category : permanent

  { "kind": "permanent",
    "id": "client.alpha.badMinimalFeesArg",
    "parameter": $unistring }
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

Bad -preserved-levels arg

invalid number of levels in -preserved-levels

Id : client.alpha.badPreservedLevelsArg
Category : permanent

  { "kind": "permanent",
    "id": "client.alpha.badPreservedLevelsArg",
    "parameter": $unistring }
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

Bad Tez Arg

Invalid ꜩ notation in parameter.

Id : client.alpha.badTezArg
Category : permanent

  { "kind": "permanent",
    "id": "client.alpha.badTezArg",
    "parameter": $unistring,
    "literal": $unistring }
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

Wrong number of arguments to macro

A wrong number of arguments was provided to a macro

Id : client.alpha.michelson.macros.bas_arity
Category : permanent

  { "kind": "permanent",
    "id": "client.alpha.michelson.macros.bas_arity",
    "macro_name": $unistring,
    "given_number_of_arguments": integer ∈ [0, 2^16-1],
    "expected_number_of_arguments": integer ∈ [0, 2^16-1] }
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

Macro expects a sequence

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

Id : client.alpha.michelson.macros.sequence_expected
Category : permanent

  { "kind": "permanent",
    "id": "client.alpha.michelson.macros.sequence_expected",
    "macro_name": $unistring }
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

Unexpected annotation

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

Id : client.alpha.michelson.macros.unexpected_annotation
Category : permanent

  { "kind": "permanent",
    "id": "client.alpha.michelson.macros.unexpected_annotation",
    "macro_name": $unistring }
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

Generic error

Unclassified error

Id : failure
Category : temporary

  { "kind": "temporary",
    "id": "failure",
    "msg": $unistring }
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

Unexpected URI fot remote signer

The provided remote signer is invalid.

Id : invalid_remote_signer
Category : branch

  { "kind": "branch",
    "id": "invalid_remote_signer",
    "uri": $unistring }
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

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": $unistring }
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

Unix error

An unhandled unix exception

Id : unix_error
Category : temporary

  { "kind": "temporary",
    "id": "unix_error",
    "msg": $unistring }
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

Timeout

Timeout

Id : utils.Timeout
Category : temporary

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