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

  { /* Insufficient block proof-of-work stamp
       The block's proof-of-work stamp is insufficient */
    "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

  { /* Invalid block signature
       A block was not signed with the expected private key. */
    "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

  { /* Invalid fitness gap
       The gap of fitness is out of bounds */
    "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

  { /* Invalid block signature
       The block's signature is invalid */
    "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

  { /* Block forged too early
       The block timestamp is before the first slot for this baker at this
       level */
    "kind": "permanent",
    "id": "proto.alpha.baking.timestamp_too_early",
    "minimum": $timestamp.protocol,
    "provided": $timestamp.protocol }
  $timestamp.protocol:
    /* A timestamp as seen by the protocol: second-level precision, epoch
       based. */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

Endorsement from unexpected delegate

The operation is signed by a delegate without endorsement rights.

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

  { /* Endorsement from unexpected delegate
       The operation is signed by a delegate without endorsement rights. */
    "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

  { /* Inconsistent double baking evidence
       A double-baking evidence is inconsistent  (two distinct delegates) */
    "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

  { /* Inconsistent double endorsement evidence
       A double-endorsement evidence is inconsistent  (two distinct
       delegates) */
    "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

  { /* Invalid commitment in block header
       The block header has invalid commitment. */
    "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

  { /* Invalid double baking evidence
       A double-baking evidence is inconsistent  (two distinct level) */
    "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

  { /* Invalid double endorsement evidence
       A double-endorsement evidence is malformed */
    "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

  { /* Multiple revelations were included in a manager operation
       A manager operation should not contain more than one revelation */
    "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

  { /* Outdated double baking evidence
       A double-baking evidence is outdated. */
    "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

  { /* Outdated double endorsement evidence
       A double-endorsement evidence is outdated. */
    "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

  { /* Too early double baking evidence
       A double-baking evidence is in the future */
    "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

  { /* Too early double endorsement evidence
       A double-endorsement evidence is in the future */
    "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

  { /* Unrequired double baking evidence
       A double-baking evidence is unrequired */
    "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

  { /* Unrequired double endorsement evidence
       A double-endorsement evidence is unrequired */
    "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

  { /* Failed to decode parameter
       Unexpected JSON object. */
    "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

  { /* Failed to parse parameter
       The protocol parameters are not valid JSON. */
    "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

  /* Storage error (fatal internal error)
     An error that should never happen unless something has been deleted or
     corrupted in the database. */
  { /* Incompatible_protocol_version */
    "kind": "permanent",
    "id": "proto.alpha.context.storage_error",
    "incompatible_protocol_version": $unistring }
  || { /* Missing_key */
       "kind": "permanent",
       "id": "proto.alpha.context.storage_error",
       "missing_key": [ $unistring ... ],
       "function": "set" | "copy" | "get" | "del" }
  || { /* Existing_key */
       "kind": "permanent",
       "id": "proto.alpha.context.storage_error",
       "existing_key": [ $unistring ... ] }
  || { /* Corrupted_data */
       "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

  { /* Balance too low
       An operation tried to spend more tokens than the contract has */
    "kind": "temporary",
    "id": "proto.alpha.contract.balance_too_low",
    "contract": $alpha.contract_id,
    "balance": $alpha.mutez,
    "amount": $alpha.mutez }
  $alpha.contract_id:
    /* A contract handle
       A contract notation as given to an RPC or inside scripts. Can be a
       base58 implicit contract hash or a base58 originated contract hash. */
    $unistring
  $alpha.mutez: $positive_bignum
  $positive_bignum:
    /* Positive big number
       Decimal representation of a positive big number */
    string
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

Cannot pay storage fee

The storage fee is higher than the contract balance

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

  { /* Cannot pay storage fee
       The storage fee is higher than the contract balance */
    "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

  { /* Invalid counter (not yet reached) in a manager operation
       An operation assumed a contract counter in the future */
    "kind": "temporary",
    "id": "proto.alpha.contract.counter_in_the_future",
    "contract": $alpha.contract_id,
    "expected": $bignum,
    "found": $bignum }
  $alpha.contract_id:
    /* A contract handle
       A contract notation as given to an RPC or inside scripts. Can be a
       base58 implicit contract hash or a base58 originated contract hash. */
    $unistring
  $bignum:
    /* Big number
       Decimal representation of a 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] ... ] }

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

  { /* Invalid counter (already used) in a manager operation
       An operation assumed a contract counter in the past */
    "kind": "branch",
    "id": "proto.alpha.contract.counter_in_the_past",
    "contract": $alpha.contract_id,
    "expected": $bignum,
    "found": $bignum }
  $alpha.contract_id:
    /* A contract handle
       A contract notation as given to an RPC or inside scripts. Can be a
       base58 implicit contract hash or a base58 originated contract hash. */
    $unistring
  $bignum:
    /* Big number
       Decimal representation of a 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 transaction

Forbidden to credit 0ꜩ to a contract without code.

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

  { /* Empty transaction
       Forbidden to credit 0ꜩ to a contract without code. */
    "kind": "branch",
    "id": "proto.alpha.contract.empty_transaction",
    "contract": $alpha.contract_id }
  $alpha.contract_id:
    /* A contract handle
       A contract notation as given to an RPC or inside scripts. Can be a
       base58 implicit contract hash or a base58 originated contract hash. */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

Contract storage failure

Unexpected contract storage error

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

  { /* Contract storage failure
       Unexpected contract storage error */
    "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

  { /* Invalid contract notation
       A malformed contract notation was given to an RPC or in a script. */
    "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

  { /* Consume roll change
       Change is not enough to consume a roll. */
    "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

  { /* Inconsistent public key hash
       A revealed manager public key is inconsistent with the announced
       hash */
    "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

  { /* Inconsistent public key
       A provided manager public key is different with the public key
       stored in the contract */
    "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

  { /* No roll for delegate
       Delegate has no roll. */
    "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

  { /* No roll snapshot for cycle
       A snapshot of the rolls distribution does not exist for this cycle. */
    "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

  { /* Unregistered delegate
       A contract cannot be delegated to an unregistered delegate */
    "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

  { /* Non existing contract
       A contract handle is not present in the context (either it never was
       or it has been destroyed) */
    "kind": "temporary",
    "id": "proto.alpha.contract.non_existing_contract",
    "contract": $alpha.contract_id }
  $alpha.contract_id:
    /* A contract handle
       A contract notation as given to an RPC or inside scripts. Can be a
       base58 implicit contract hash or a base58 originated contract hash. */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

Manager operation already revealed

One tried to revealed twice a manager public key

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

  { /* Manager operation already revealed
       One tried to revealed twice a manager public key */
    "kind": "branch",
    "id": "proto.alpha.contract.previously_revealed_key",
    "contract": $alpha.contract_id }
  $alpha.contract_id:
    /* A contract handle
       A contract notation as given to an RPC or inside scripts. Can be a
       base58 implicit contract hash or a base58 originated contract hash. */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

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

  { /* Manager operation precedes key revelation
       One tried to apply a manager operation without revealing the manager
       public key */
    "kind": "branch",
    "id": "proto.alpha.contract.unrevealed_key",
    "contract": $alpha.contract_id }
  $alpha.contract_id:
    /* A contract handle
       A contract notation as given to an RPC or inside scripts. Can be a
       base58 implicit contract hash or a base58 originated contract hash. */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

Unspendable contract

An operation tried to spend tokens from an unspendable contract

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

  { /* Unspendable contract
       An operation tried to spend tokens from an unspendable contract */
    "kind": "permanent",
    "id": "proto.alpha.contract.unspendable_contract",
    "contract": $alpha.contract_id }
  $alpha.contract_id:
    /* A contract handle
       A contract notation as given to an RPC or inside scripts. Can be a
       base58 implicit contract hash or a base58 originated contract hash. */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

Delegate already active

Useless delegate reactivation

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

  { /* Delegate already active
       Useless delegate reactivation */
    "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

  { /* Balance too low for deposit
       Cannot freeze deposit when the balance is too low */
    "kind": "temporary",
    "id": "proto.alpha.delegate.balance_too_low_for_deposit",
    "delegate": $Signature.Public_key_hash,
    "balance": $alpha.mutez,
    "deposit": $alpha.mutez }
  $Signature.Public_key_hash:
    /* A Ed25519, Secp256k1, or P256 public key hash (Base58Check-encoded) */
    $unistring
  $alpha.mutez: $positive_bignum
  $positive_bignum:
    /* Positive big number
       Decimal representation of a positive big number */
    string
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

Empty delegate account

Cannot register a delegate when its implicit account is empty

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

  { /* Empty delegate account
       Cannot register a delegate when its implicit account is empty */
    "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

  { /* Forbidden delegate deletion
       Tried to unregister a delegate */
    "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

  { /* Unchanged delegated
       Contract already delegated to the given delegate */
    "kind": "temporary",
    "id": "proto.alpha.delegate.unchanged" }

Empty proposal

Proposal lists cannot be empty.

Id : proto.alpha.empty_proposal
Category : branch

  { /* Empty proposal
       Proposal lists cannot be empty. */
    "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

  { /* 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 */
    "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

  { /* 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. */
    "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

  { /* Gas quota exceeded for the operation
       A script or one of its callee took more time than the operation said
       it would */
    "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

  { /* Gas limit out of protocol hard bounds
       A transaction tried to exceed the hard limit on gas */
    "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

  { /* Empty implicit contract
       No manager operations are allowed on an empty implicit contract. */
    "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] ... ] }

Empty implicit delegated contract

Emptying an implicit delegated account is not allowed.

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

  { /* Empty implicit delegated contract
       Emptying an implicit delegated account is not allowed. */
    "kind": "branch",
    "id": "proto.alpha.implicit.empty_implicit_delegated_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 number of endorsements

The number of endorsements must be non-negative and at most the endosers_per_block constant.

Id : proto.alpha.incorrect_number_of_endorsements
Category : permanent

  { /* Incorrect number of endorsements
       The number of endorsements must be non-negative and at most the
       endosers_per_block constant. */
    "kind": "permanent",
    "id": "proto.alpha.incorrect_number_of_endorsements",
    ... }

Incorrect priority

Block priority must be non-negative.

Id : proto.alpha.incorrect_priority
Category : permanent

  { /* Incorrect priority
       Block priority must be non-negative. */
    "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

  /* Internal operation replay
     An internal operation was emitted twice by a script */
  { "kind": "permanent",
    "id": "proto.alpha.internal_operation_replay",
    "source": $alpha.contract_id,
    "nonce": integer ∈ [0, 2^16-1],
    "kind": "reveal",
    "public_key": $Signature.Public_key }
  || { "kind": "permanent",
       "id": "proto.alpha.internal_operation_replay",
       "source": $alpha.contract_id,
       "nonce": integer ∈ [0, 2^16-1],
       "kind": "transaction",
       "amount": $alpha.mutez,
       "destination": $alpha.contract_id,
       "parameters"?:
         { "entrypoint": $alpha.entrypoint,
           "value": $micheline.alpha.michelson_v1.expression } }
  || { "kind": "permanent",
       "id": "proto.alpha.internal_operation_replay",
       "source": $alpha.contract_id,
       "nonce": integer ∈ [0, 2^16-1],
       "kind": "origination",
       "balance": $alpha.mutez,
       "delegate"?: $Signature.Public_key_hash,
       "script": $alpha.scripted.contracts }
  || { "kind": "permanent",
       "id": "proto.alpha.internal_operation_replay",
       "source": $alpha.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
  $alpha.contract_id:
    /* A contract handle
       A contract notation as given to an RPC or inside scripts. Can be a
       base58 implicit contract hash or a base58 originated contract hash. */
    $unistring
  $alpha.entrypoint:
    /* entrypoint
       Named entrypoint to a Michelson smart contract */
    "default"
    || "root"
    || "do"
    || "set_delegate"
    || "remove_delegate"
    || string
    /* named */
  $alpha.michelson.v1.primitives:
    "ADD"
    | "IF_NONE"
    | "SWAP"
    | "set"
    | "nat"
    | "CHECK_SIGNATURE"
    | "IF_LEFT"
    | "LAMBDA"
    | "Elt"
    | "CREATE_CONTRACT"
    | "NEG"
    | "big_map"
    | "map"
    | "or"
    | "BLAKE2B"
    | "bytes"
    | "SHA256"
    | "SET_DELEGATE"
    | "CONTRACT"
    | "LSL"
    | "SUB"
    | "IMPLICIT_ACCOUNT"
    | "PACK"
    | "list"
    | "PAIR"
    | "Right"
    | "contract"
    | "GT"
    | "LEFT"
    | "STEPS_TO_QUOTA"
    | "storage"
    | "TRANSFER_TOKENS"
    | "CDR"
    | "SLICE"
    | "PUSH"
    | "False"
    | "SHA512"
    | "CHAIN_ID"
    | "BALANCE"
    | "signature"
    | "DUG"
    | "SELF"
    | "EMPTY_BIG_MAP"
    | "LSR"
    | "OR"
    | "XOR"
    | "lambda"
    | "COMPARE"
    | "key"
    | "option"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "NEQ"
    | "INT"
    | "pair"
    | "AMOUNT"
    | "DIP"
    | "ABS"
    | "ISNAT"
    | "EXEC"
    | "NOW"
    | "LOOP"
    | "chain_id"
    | "string"
    | "MEM"
    | "MAP"
    | "None"
    | "address"
    | "CONCAT"
    | "EMPTY_SET"
    | "MUL"
    | "LOOP_LEFT"
    | "timestamp"
    | "LT"
    | "UPDATE"
    | "DUP"
    | "SOURCE"
    | "mutez"
    | "SENDER"
    | "IF_CONS"
    | "RIGHT"
    | "CAR"
    | "CONS"
    | "LE"
    | "NONE"
    | "IF"
    | "SOME"
    | "GET"
    | "Left"
    | "CAST"
    | "int"
    | "SIZE"
    | "key_hash"
    | "unit"
    | "DROP"
    | "EMPTY_MAP"
    | "NIL"
    | "DIG"
    | "APPLY"
    | "bool"
    | "RENAME"
    | "operation"
    | "True"
    | "FAILWITH"
    | "parameter"
    | "HASH_KEY"
    | "EQ"
    | "NOT"
    | "UNIT"
    | "Pair"
    | "ADDRESS"
    | "EDIV"
    | "CREATE_ACCOUNT"
    | "GE"
    | "ITER"
    | "code"
    | "AND"
  $alpha.mutez: $positive_bignum
  $alpha.scripted.contracts:
    { "code": $micheline.alpha.michelson_v1.expression,
      "storage": $micheline.alpha.michelson_v1.expression }
  $bignum:
    /* Big number
       Decimal representation of a big number */
    string
  $micheline.alpha.michelson_v1.expression:
    { /* Int */
      "int": $bignum }
    || { /* String */
         "string": $unistring }
    || { /* Bytes */
         "bytes": /^[a-zA-Z0-9]+$/ }
    || [ $micheline.alpha.michelson_v1.expression ... ]
    /* Sequence */
    || { /* Generic prim (any number of args with or without annot) */
         "prim": $alpha.michelson.v1.primitives,
         "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
         "annots"?: [ string ... ] }
  $positive_bignum:
    /* Positive big number
       Decimal representation of a positive big number */
    string
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

Invalid constant (parse error)

A compile-time constant was invalid for its expected form.

Id : proto.alpha.invalidSyntacticConstantError
Category : permanent

  { /* Invalid constant (parse error)
       A compile-time constant was invalid for its expected form. */
    "kind": "permanent",
    "id": "proto.alpha.invalidSyntacticConstantError",
    "location": $micheline.location,
    "expectedForm": $micheline.alpha.michelson_v1.expression,
    "wrongExpression": $micheline.alpha.michelson_v1.expression }
  $alpha.michelson.v1.primitives:
    "ADD"
    | "IF_NONE"
    | "SWAP"
    | "set"
    | "nat"
    | "CHECK_SIGNATURE"
    | "IF_LEFT"
    | "LAMBDA"
    | "Elt"
    | "CREATE_CONTRACT"
    | "NEG"
    | "big_map"
    | "map"
    | "or"
    | "BLAKE2B"
    | "bytes"
    | "SHA256"
    | "SET_DELEGATE"
    | "CONTRACT"
    | "LSL"
    | "SUB"
    | "IMPLICIT_ACCOUNT"
    | "PACK"
    | "list"
    | "PAIR"
    | "Right"
    | "contract"
    | "GT"
    | "LEFT"
    | "STEPS_TO_QUOTA"
    | "storage"
    | "TRANSFER_TOKENS"
    | "CDR"
    | "SLICE"
    | "PUSH"
    | "False"
    | "SHA512"
    | "CHAIN_ID"
    | "BALANCE"
    | "signature"
    | "DUG"
    | "SELF"
    | "EMPTY_BIG_MAP"
    | "LSR"
    | "OR"
    | "XOR"
    | "lambda"
    | "COMPARE"
    | "key"
    | "option"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "NEQ"
    | "INT"
    | "pair"
    | "AMOUNT"
    | "DIP"
    | "ABS"
    | "ISNAT"
    | "EXEC"
    | "NOW"
    | "LOOP"
    | "chain_id"
    | "string"
    | "MEM"
    | "MAP"
    | "None"
    | "address"
    | "CONCAT"
    | "EMPTY_SET"
    | "MUL"
    | "LOOP_LEFT"
    | "timestamp"
    | "LT"
    | "UPDATE"
    | "DUP"
    | "SOURCE"
    | "mutez"
    | "SENDER"
    | "IF_CONS"
    | "RIGHT"
    | "CAR"
    | "CONS"
    | "LE"
    | "NONE"
    | "IF"
    | "SOME"
    | "GET"
    | "Left"
    | "CAST"
    | "int"
    | "SIZE"
    | "key_hash"
    | "unit"
    | "DROP"
    | "EMPTY_MAP"
    | "NIL"
    | "DIG"
    | "APPLY"
    | "bool"
    | "RENAME"
    | "operation"
    | "True"
    | "FAILWITH"
    | "parameter"
    | "HASH_KEY"
    | "EQ"
    | "NOT"
    | "UNIT"
    | "Pair"
    | "ADDRESS"
    | "EDIV"
    | "CREATE_ACCOUNT"
    | "GE"
    | "ITER"
    | "code"
    | "AND"
  $bignum:
    /* Big number
       Decimal representation of a big number */
    string
  $micheline.alpha.michelson_v1.expression:
    { /* Int */
      "int": $bignum }
    || { /* String */
         "string": $unistring }
    || { /* Bytes */
         "bytes": /^[a-zA-Z0-9]+$/ }
    || [ $micheline.alpha.michelson_v1.expression ... ]
    /* Sequence */
    || { /* Generic prim (any number of args with or without annot) */
         "prim": $alpha.michelson.v1.primitives,
         "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
         "annots"?: [ string ... ] }
  $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 arg

Negative multiple of periods are not allowed.

Id : proto.alpha.invalid_arg
Category : permanent

  { /* Invalid arg
       Negative multiple of periods are not allowed. */
    "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

  { /* Invalid binary format
       Could not deserialize some piece of data from its binary
       representation */
    "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

  { /* Invalid fitness
       Fitness representation should be exactly 8 bytes long. */
    "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

  { /* Invalid proposal
       Ballot provided for a proposal that is not the current one. */
    "kind": "branch",
    "id": "proto.alpha.invalid_proposal" }

Malformed period

Period is negative.

Id : proto.alpha.malformed_period
Category : permanent

  { /* Malformed period
       Period is negative. */
    "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

  { /* 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 */
    "kind": "permanent",
    "id": "proto.alpha.michelson_v1.bad_contract_parameter",
    "contract": $alpha.contract_id }
  $alpha.contract_id:
    /* A contract handle
       A contract notation as given to an RPC or inside scripts. Can be a
       base58 implicit contract hash or a base58 originated contract hash. */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

Bad return

Unexpected stack at the end of a lambda or script.

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

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

Bad stack

The stack has an unexpected length or contents.

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

  { /* Bad stack
       The stack has an unexpected length or contents. */
    "kind": "permanent",
    "id": "proto.alpha.michelson_v1.bad_stack",
    "location": $micheline.location,
    "primitive_name": $alpha.michelson.v1.primitives,
    "relevant_stack_portion": integer ∈ [-2^15, 2^15-1],
    "wrong_stack_type":
      [ { "type": $micheline.alpha.michelson_v1.expression,
          "annots"?: [ $unistring ... ] } ... ] }
  $alpha.michelson.v1.primitives:
    "ADD"
    | "IF_NONE"
    | "SWAP"
    | "set"
    | "nat"
    | "CHECK_SIGNATURE"
    | "IF_LEFT"
    | "LAMBDA"
    | "Elt"
    | "CREATE_CONTRACT"
    | "NEG"
    | "big_map"
    | "map"
    | "or"
    | "BLAKE2B"
    | "bytes"
    | "SHA256"
    | "SET_DELEGATE"
    | "CONTRACT"
    | "LSL"
    | "SUB"
    | "IMPLICIT_ACCOUNT"
    | "PACK"
    | "list"
    | "PAIR"
    | "Right"
    | "contract"
    | "GT"
    | "LEFT"
    | "STEPS_TO_QUOTA"
    | "storage"
    | "TRANSFER_TOKENS"
    | "CDR"
    | "SLICE"
    | "PUSH"
    | "False"
    | "SHA512"
    | "CHAIN_ID"
    | "BALANCE"
    | "signature"
    | "DUG"
    | "SELF"
    | "EMPTY_BIG_MAP"
    | "LSR"
    | "OR"
    | "XOR"
    | "lambda"
    | "COMPARE"
    | "key"
    | "option"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "NEQ"
    | "INT"
    | "pair"
    | "AMOUNT"
    | "DIP"
    | "ABS"
    | "ISNAT"
    | "EXEC"
    | "NOW"
    | "LOOP"
    | "chain_id"
    | "string"
    | "MEM"
    | "MAP"
    | "None"
    | "address"
    | "CONCAT"
    | "EMPTY_SET"
    | "MUL"
    | "LOOP_LEFT"
    | "timestamp"
    | "LT"
    | "UPDATE"
    | "DUP"
    | "SOURCE"
    | "mutez"
    | "SENDER"
    | "IF_CONS"
    | "RIGHT"
    | "CAR"
    | "CONS"
    | "LE"
    | "NONE"
    | "IF"
    | "SOME"
    | "GET"
    | "Left"
    | "CAST"
    | "int"
    | "SIZE"
    | "key_hash"
    | "unit"
    | "DROP"
    | "EMPTY_MAP"
    | "NIL"
    | "DIG"
    | "APPLY"
    | "bool"
    | "RENAME"
    | "operation"
    | "True"
    | "FAILWITH"
    | "parameter"
    | "HASH_KEY"
    | "EQ"
    | "NOT"
    | "UNIT"
    | "Pair"
    | "ADDRESS"
    | "EDIV"
    | "CREATE_ACCOUNT"
    | "GE"
    | "ITER"
    | "code"
    | "AND"
  $bignum:
    /* Big number
       Decimal representation of a big number */
    string
  $micheline.alpha.michelson_v1.expression:
    { /* Int */
      "int": $bignum }
    || { /* String */
         "string": $unistring }
    || { /* Bytes */
         "bytes": /^[a-zA-Z0-9]+$/ }
    || [ $micheline.alpha.michelson_v1.expression ... ]
    /* Sequence */
    || { /* Generic prim (any number of args with or without annot) */
         "prim": $alpha.michelson.v1.primitives,
         "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
         "annots"?: [ string ... ] }
  $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] ... ] }

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

  { /* Bad stack item
       The type of a stack item is unexpected (this error is always
       accompanied by a more precise one). */
    "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

  { /* Not enough gas to serialize error
       The error was too big to be serialized with the provided gas */
    "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

  { /* Not enough gas to serialize argument of FAILWITH
       Argument of FAILWITH was too big to be serialized with the provided
       gas */
    "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

  { /* Not enough gas to serialize execution trace
       Execution trace with stacks was to big to be serialized with the
       provided gas */
    "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

  { /* Not enough gas to serialize execution storage
       The returned storage was too big to be serialized with the provided
       gas */
    "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

  { /* Comparable type expected
       A non comparable type was used in a place where only comparable
       types are accepted. */
    "kind": "permanent",
    "id": "proto.alpha.michelson_v1.comparable_type_expected",
    "location": $micheline.location,
    "wrong_type": $micheline.alpha.michelson_v1.expression }
  $alpha.michelson.v1.primitives:
    "ADD"
    | "IF_NONE"
    | "SWAP"
    | "set"
    | "nat"
    | "CHECK_SIGNATURE"
    | "IF_LEFT"
    | "LAMBDA"
    | "Elt"
    | "CREATE_CONTRACT"
    | "NEG"
    | "big_map"
    | "map"
    | "or"
    | "BLAKE2B"
    | "bytes"
    | "SHA256"
    | "SET_DELEGATE"
    | "CONTRACT"
    | "LSL"
    | "SUB"
    | "IMPLICIT_ACCOUNT"
    | "PACK"
    | "list"
    | "PAIR"
    | "Right"
    | "contract"
    | "GT"
    | "LEFT"
    | "STEPS_TO_QUOTA"
    | "storage"
    | "TRANSFER_TOKENS"
    | "CDR"
    | "SLICE"
    | "PUSH"
    | "False"
    | "SHA512"
    | "CHAIN_ID"
    | "BALANCE"
    | "signature"
    | "DUG"
    | "SELF"
    | "EMPTY_BIG_MAP"
    | "LSR"
    | "OR"
    | "XOR"
    | "lambda"
    | "COMPARE"
    | "key"
    | "option"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "NEQ"
    | "INT"
    | "pair"
    | "AMOUNT"
    | "DIP"
    | "ABS"
    | "ISNAT"
    | "EXEC"
    | "NOW"
    | "LOOP"
    | "chain_id"
    | "string"
    | "MEM"
    | "MAP"
    | "None"
    | "address"
    | "CONCAT"
    | "EMPTY_SET"
    | "MUL"
    | "LOOP_LEFT"
    | "timestamp"
    | "LT"
    | "UPDATE"
    | "DUP"
    | "SOURCE"
    | "mutez"
    | "SENDER"
    | "IF_CONS"
    | "RIGHT"
    | "CAR"
    | "CONS"
    | "LE"
    | "NONE"
    | "IF"
    | "SOME"
    | "GET"
    | "Left"
    | "CAST"
    | "int"
    | "SIZE"
    | "key_hash"
    | "unit"
    | "DROP"
    | "EMPTY_MAP"
    | "NIL"
    | "DIG"
    | "APPLY"
    | "bool"
    | "RENAME"
    | "operation"
    | "True"
    | "FAILWITH"
    | "parameter"
    | "HASH_KEY"
    | "EQ"
    | "NOT"
    | "UNIT"
    | "Pair"
    | "ADDRESS"
    | "EDIV"
    | "CREATE_ACCOUNT"
    | "GE"
    | "ITER"
    | "code"
    | "AND"
  $bignum:
    /* Big number
       Decimal representation of a big number */
    string
  $micheline.alpha.michelson_v1.expression:
    { /* Int */
      "int": $bignum }
    || { /* String */
         "string": $unistring }
    || { /* Bytes */
         "bytes": /^[a-zA-Z0-9]+$/ }
    || [ $micheline.alpha.michelson_v1.expression ... ]
    /* Sequence */
    || { /* Generic prim (any number of args with or without annot) */
         "prim": $alpha.michelson.v1.primitives,
         "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
         "annots"?: [ string ... ] }
  $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] ... ] }

Script is using a deprecated instruction

A deprecated instruction usage is disallowed in newly created contracts

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

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

Duplicate entrypoint (type error)

Two entrypoints have the same name.

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

  { /* Duplicate entrypoint (type error)
       Two entrypoints have the same name. */
    "kind": "permanent",
    "id": "proto.alpha.michelson_v1.duplicate_entrypoint",
    "path": $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] ... ] }

Duplicate map keys

Map literals cannot contain duplicated keys

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

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

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

  { /* Script has a duplicated field (parse error)
       When parsing script, a field was found more than once */
    "kind": "permanent",
    "id": "proto.alpha.michelson_v1.duplicate_script_field",
    "loc": $micheline.location,
    "prim": $alpha.michelson.v1.primitives }
  $alpha.michelson.v1.primitives:
    "ADD"
    | "IF_NONE"
    | "SWAP"
    | "set"
    | "nat"
    | "CHECK_SIGNATURE"
    | "IF_LEFT"
    | "LAMBDA"
    | "Elt"
    | "CREATE_CONTRACT"
    | "NEG"
    | "big_map"
    | "map"
    | "or"
    | "BLAKE2B"
    | "bytes"
    | "SHA256"
    | "SET_DELEGATE"
    | "CONTRACT"
    | "LSL"
    | "SUB"
    | "IMPLICIT_ACCOUNT"
    | "PACK"
    | "list"
    | "PAIR"
    | "Right"
    | "contract"
    | "GT"
    | "LEFT"
    | "STEPS_TO_QUOTA"
    | "storage"
    | "TRANSFER_TOKENS"
    | "CDR"
    | "SLICE"
    | "PUSH"
    | "False"
    | "SHA512"
    | "CHAIN_ID"
    | "BALANCE"
    | "signature"
    | "DUG"
    | "SELF"
    | "EMPTY_BIG_MAP"
    | "LSR"
    | "OR"
    | "XOR"
    | "lambda"
    | "COMPARE"
    | "key"
    | "option"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "NEQ"
    | "INT"
    | "pair"
    | "AMOUNT"
    | "DIP"
    | "ABS"
    | "ISNAT"
    | "EXEC"
    | "NOW"
    | "LOOP"
    | "chain_id"
    | "string"
    | "MEM"
    | "MAP"
    | "None"
    | "address"
    | "CONCAT"
    | "EMPTY_SET"
    | "MUL"
    | "LOOP_LEFT"
    | "timestamp"
    | "LT"
    | "UPDATE"
    | "DUP"
    | "SOURCE"
    | "mutez"
    | "SENDER"
    | "IF_CONS"
    | "RIGHT"
    | "CAR"
    | "CONS"
    | "LE"
    | "NONE"
    | "IF"
    | "SOME"
    | "GET"
    | "Left"
    | "CAST"
    | "int"
    | "SIZE"
    | "key_hash"
    | "unit"
    | "DROP"
    | "EMPTY_MAP"
    | "NIL"
    | "DIG"
    | "APPLY"
    | "bool"
    | "RENAME"
    | "operation"
    | "True"
    | "FAILWITH"
    | "parameter"
    | "HASH_KEY"
    | "EQ"
    | "NOT"
    | "UNIT"
    | "Pair"
    | "ADDRESS"
    | "EDIV"
    | "CREATE_ACCOUNT"
    | "GE"
    | "ITER"
    | "code"
    | "AND"
  $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]

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

  { /* Sets literals cannot contain duplicate elements
       Set literals cannot contain duplicate elements, but a duplicae was
       found while parsing. */
    "kind": "permanent",
    "id": "proto.alpha.michelson_v1.duplicate_set_values_in_literal",
    "location": $micheline.location,
    "value": $micheline.alpha.michelson_v1.expression }
  $alpha.michelson.v1.primitives:
    "ADD"
    | "IF_NONE"
    | "SWAP"
    | "set"
    | "nat"
    | "CHECK_SIGNATURE"
    | "IF_LEFT"
    | "LAMBDA"
    | "Elt"
    | "CREATE_CONTRACT"
    | "NEG"
    | "big_map"
    | "map"
    | "or"
    | "BLAKE2B"
    | "bytes"
    | "SHA256"
    | "SET_DELEGATE"
    | "CONTRACT"
    | "LSL"
    | "SUB"
    | "IMPLICIT_ACCOUNT"
    | "PACK"
    | "list"
    | "PAIR"
    | "Right"
    | "contract"
    | "GT"
    | "LEFT"
    | "STEPS_TO_QUOTA"
    | "storage"
    | "TRANSFER_TOKENS"
    | "CDR"
    | "SLICE"
    | "PUSH"
    | "False"
    | "SHA512"
    | "CHAIN_ID"
    | "BALANCE"
    | "signature"
    | "DUG"
    | "SELF"
    | "EMPTY_BIG_MAP"
    | "LSR"
    | "OR"
    | "XOR"
    | "lambda"
    | "COMPARE"
    | "key"
    | "option"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "NEQ"
    | "INT"
    | "pair"
    | "AMOUNT"
    | "DIP"
    | "ABS"
    | "ISNAT"
    | "EXEC"
    | "NOW"
    | "LOOP"
    | "chain_id"
    | "string"
    | "MEM"
    | "MAP"
    | "None"
    | "address"
    | "CONCAT"
    | "EMPTY_SET"
    | "MUL"
    | "LOOP_LEFT"
    | "timestamp"
    | "LT"
    | "UPDATE"
    | "DUP"
    | "SOURCE"
    | "mutez"
    | "SENDER"
    | "IF_CONS"
    | "RIGHT"
    | "CAR"
    | "CONS"
    | "LE"
    | "NONE"
    | "IF"
    | "SOME"
    | "GET"
    | "Left"
    | "CAST"
    | "int"
    | "SIZE"
    | "key_hash"
    | "unit"
    | "DROP"
    | "EMPTY_MAP"
    | "NIL"
    | "DIG"
    | "APPLY"
    | "bool"
    | "RENAME"
    | "operation"
    | "True"
    | "FAILWITH"
    | "parameter"
    | "HASH_KEY"
    | "EQ"
    | "NOT"
    | "UNIT"
    | "Pair"
    | "ADDRESS"
    | "EDIV"
    | "CREATE_ACCOUNT"
    | "GE"
    | "ITER"
    | "code"
    | "AND"
  $bignum:
    /* Big number
       Decimal representation of a big number */
    string
  $micheline.alpha.michelson_v1.expression:
    { /* Int */
      "int": $bignum }
    || { /* String */
         "string": $unistring }
    || { /* Bytes */
         "bytes": /^[a-zA-Z0-9]+$/ }
    || [ $micheline.alpha.michelson_v1.expression ... ]
    /* Sequence */
    || { /* Generic prim (any number of args with or without annot) */
         "prim": $alpha.michelson.v1.primitives,
         "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
         "annots"?: [ string ... ] }
  $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] ... ] }

Entrypoint name too long (type error)

An entrypoint name exceeds the maximum length of 31 characters.

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

  { /* Entrypoint name too long (type error)
       An entrypoint name exceeds the maximum length of 31 characters. */
    "kind": "permanent",
    "id": "proto.alpha.michelson_v1.entrypoint_name_too_long",
    "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] ... ] }

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

  { /* FAIL not in tail position
       There is non trivial garbage code after a FAIL instruction. */
    "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

  { /* Ill formed type
       The toplevel error thrown when trying to parse a type expression
       (always followed by more precise errors). */
    "kind": "permanent",
    "id": "proto.alpha.michelson_v1.ill_formed_type",
    "identifier"?: $unistring,
    "ill_formed_expression": $micheline.alpha.michelson_v1.expression,
    "location": $micheline.location }
  $alpha.michelson.v1.primitives:
    "ADD"
    | "IF_NONE"
    | "SWAP"
    | "set"
    | "nat"
    | "CHECK_SIGNATURE"
    | "IF_LEFT"
    | "LAMBDA"
    | "Elt"
    | "CREATE_CONTRACT"
    | "NEG"
    | "big_map"
    | "map"
    | "or"
    | "BLAKE2B"
    | "bytes"
    | "SHA256"
    | "SET_DELEGATE"
    | "CONTRACT"
    | "LSL"
    | "SUB"
    | "IMPLICIT_ACCOUNT"
    | "PACK"
    | "list"
    | "PAIR"
    | "Right"
    | "contract"
    | "GT"
    | "LEFT"
    | "STEPS_TO_QUOTA"
    | "storage"
    | "TRANSFER_TOKENS"
    | "CDR"
    | "SLICE"
    | "PUSH"
    | "False"
    | "SHA512"
    | "CHAIN_ID"
    | "BALANCE"
    | "signature"
    | "DUG"
    | "SELF"
    | "EMPTY_BIG_MAP"
    | "LSR"
    | "OR"
    | "XOR"
    | "lambda"
    | "COMPARE"
    | "key"
    | "option"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "NEQ"
    | "INT"
    | "pair"
    | "AMOUNT"
    | "DIP"
    | "ABS"
    | "ISNAT"
    | "EXEC"
    | "NOW"
    | "LOOP"
    | "chain_id"
    | "string"
    | "MEM"
    | "MAP"
    | "None"
    | "address"
    | "CONCAT"
    | "EMPTY_SET"
    | "MUL"
    | "LOOP_LEFT"
    | "timestamp"
    | "LT"
    | "UPDATE"
    | "DUP"
    | "SOURCE"
    | "mutez"
    | "SENDER"
    | "IF_CONS"
    | "RIGHT"
    | "CAR"
    | "CONS"
    | "LE"
    | "NONE"
    | "IF"
    | "SOME"
    | "GET"
    | "Left"
    | "CAST"
    | "int"
    | "SIZE"
    | "key_hash"
    | "unit"
    | "DROP"
    | "EMPTY_MAP"
    | "NIL"
    | "DIG"
    | "APPLY"
    | "bool"
    | "RENAME"
    | "operation"
    | "True"
    | "FAILWITH"
    | "parameter"
    | "HASH_KEY"
    | "EQ"
    | "NOT"
    | "UNIT"
    | "Pair"
    | "ADDRESS"
    | "EDIV"
    | "CREATE_ACCOUNT"
    | "GE"
    | "ITER"
    | "code"
    | "AND"
  $bignum:
    /* Big number
       Decimal representation of a big number */
    string
  $micheline.alpha.michelson_v1.expression:
    { /* Int */
      "int": $bignum }
    || { /* String */
         "string": $unistring }
    || { /* Bytes */
         "bytes": /^[a-zA-Z0-9]+$/ }
    || [ $micheline.alpha.michelson_v1.expression ... ]
    /* Sequence */
    || { /* Generic prim (any number of args with or without annot) */
         "prim": $alpha.michelson.v1.primitives,
         "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
         "annots"?: [ string ... ] }
  $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] ... ] }

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

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

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

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

Annotations inconsistent between branches

The annotations on two types could not be merged

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

  { /* Annotations inconsistent between branches
       The annotations on two types could not be merged */
    "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

  { /* Annotations for field accesses is inconsistent
       The specified field does not match the field annotation in the type */
    "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

  { /* Inconsistent stack lengths
       A stack was of an unexpected length (this error is always in the
       context of a located error). */
    "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

  { /* Types contain inconsistent annotations
       The two types contain annotations that do not match */
    "kind": "permanent",
    "id": "proto.alpha.michelson_v1.inconsistent_type_annotations",
    "location": $micheline.location,
    "type1": $micheline.alpha.michelson_v1.expression,
    "type2": $micheline.alpha.michelson_v1.expression }
  $alpha.michelson.v1.primitives:
    "ADD"
    | "IF_NONE"
    | "SWAP"
    | "set"
    | "nat"
    | "CHECK_SIGNATURE"
    | "IF_LEFT"
    | "LAMBDA"
    | "Elt"
    | "CREATE_CONTRACT"
    | "NEG"
    | "big_map"
    | "map"
    | "or"
    | "BLAKE2B"
    | "bytes"
    | "SHA256"
    | "SET_DELEGATE"
    | "CONTRACT"
    | "LSL"
    | "SUB"
    | "IMPLICIT_ACCOUNT"
    | "PACK"
    | "list"
    | "PAIR"
    | "Right"
    | "contract"
    | "GT"
    | "LEFT"
    | "STEPS_TO_QUOTA"
    | "storage"
    | "TRANSFER_TOKENS"
    | "CDR"
    | "SLICE"
    | "PUSH"
    | "False"
    | "SHA512"
    | "CHAIN_ID"
    | "BALANCE"
    | "signature"
    | "DUG"
    | "SELF"
    | "EMPTY_BIG_MAP"
    | "LSR"
    | "OR"
    | "XOR"
    | "lambda"
    | "COMPARE"
    | "key"
    | "option"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "NEQ"
    | "INT"
    | "pair"
    | "AMOUNT"
    | "DIP"
    | "ABS"
    | "ISNAT"
    | "EXEC"
    | "NOW"
    | "LOOP"
    | "chain_id"
    | "string"
    | "MEM"
    | "MAP"
    | "None"
    | "address"
    | "CONCAT"
    | "EMPTY_SET"
    | "MUL"
    | "LOOP_LEFT"
    | "timestamp"
    | "LT"
    | "UPDATE"
    | "DUP"
    | "SOURCE"
    | "mutez"
    | "SENDER"
    | "IF_CONS"
    | "RIGHT"
    | "CAR"
    | "CONS"
    | "LE"
    | "NONE"
    | "IF"
    | "SOME"
    | "GET"
    | "Left"
    | "CAST"
    | "int"
    | "SIZE"
    | "key_hash"
    | "unit"
    | "DROP"
    | "EMPTY_MAP"
    | "NIL"
    | "DIG"
    | "APPLY"
    | "bool"
    | "RENAME"
    | "operation"
    | "True"
    | "FAILWITH"
    | "parameter"
    | "HASH_KEY"
    | "EQ"
    | "NOT"
    | "UNIT"
    | "Pair"
    | "ADDRESS"
    | "EDIV"
    | "CREATE_ACCOUNT"
    | "GE"
    | "ITER"
    | "code"
    | "AND"
  $bignum:
    /* Big number
       Decimal representation of a big number */
    string
  $micheline.alpha.michelson_v1.expression:
    { /* Int */
      "int": $bignum }
    || { /* String */
         "string": $unistring }
    || { /* Bytes */
         "bytes": /^[a-zA-Z0-9]+$/ }
    || [ $micheline.alpha.michelson_v1.expression ... ]
    /* Sequence */
    || { /* Generic prim (any number of args with or without annot) */
         "prim": $alpha.michelson.v1.primitives,
         "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
         "annots"?: [ string ... ] }
  $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] ... ] }

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

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

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

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

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

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

  { /* Invalid big_map
       A script or data expression references a big_map that does not exist
       or assumes a wrong type for an existing big_map. */
    "kind": "permanent",
    "id": "proto.alpha.michelson_v1.invalid_big_map",
    "location": $micheline.location,
    "big_map": $bignum }
  $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]

Invalid constant

A data expression was invalid for its expected type.

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

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

  { /* Invalid contract
       A script or data expression references a contract that does not
       exist or assumes a wrong type for an existing contract. */
    "kind": "permanent",
    "id": "proto.alpha.michelson_v1.invalid_contract",
    "location": $micheline.location,
    "contract": $alpha.contract_id }
  $alpha.contract_id:
    /* A contract handle
       A contract notation as given to an RPC or inside scripts. Can be a
       base58 implicit contract hash or a base58 originated contract hash. */
    $unistring
  $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

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

  { /* ITER body returned wrong stack type
       The body of an ITER instruction must result in the same stack type
       as before the ITER. */
    "kind": "permanent",
    "id": "proto.alpha.michelson_v1.invalid_iter_body",
    "loc": $micheline.location,
    "bef_stack":
      [ { "type": $micheline.alpha.michelson_v1.expression,
          "annots"?: [ $unistring ... ] } ... ],
    "aft_stack":
      [ { "type": $micheline.alpha.michelson_v1.expression,
          "annots"?: [ $unistring ... ] } ... ] }
  $alpha.michelson.v1.primitives:
    "ADD"
    | "IF_NONE"
    | "SWAP"
    | "set"
    | "nat"
    | "CHECK_SIGNATURE"
    | "IF_LEFT"
    | "LAMBDA"
    | "Elt"
    | "CREATE_CONTRACT"
    | "NEG"
    | "big_map"
    | "map"
    | "or"
    | "BLAKE2B"
    | "bytes"
    | "SHA256"
    | "SET_DELEGATE"
    | "CONTRACT"
    | "LSL"
    | "SUB"
    | "IMPLICIT_ACCOUNT"
    | "PACK"
    | "list"
    | "PAIR"
    | "Right"
    | "contract"
    | "GT"
    | "LEFT"
    | "STEPS_TO_QUOTA"
    | "storage"
    | "TRANSFER_TOKENS"
    | "CDR"
    | "SLICE"
    | "PUSH"
    | "False"
    | "SHA512"
    | "CHAIN_ID"
    | "BALANCE"
    | "signature"
    | "DUG"
    | "SELF"
    | "EMPTY_BIG_MAP"
    | "LSR"
    | "OR"
    | "XOR"
    | "lambda"
    | "COMPARE"
    | "key"
    | "option"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "NEQ"
    | "INT"
    | "pair"
    | "AMOUNT"
    | "DIP"
    | "ABS"
    | "ISNAT"
    | "EXEC"
    | "NOW"
    | "LOOP"
    | "chain_id"
    | "string"
    | "MEM"
    | "MAP"
    | "None"
    | "address"
    | "CONCAT"
    | "EMPTY_SET"
    | "MUL"
    | "LOOP_LEFT"
    | "timestamp"
    | "LT"
    | "UPDATE"
    | "DUP"
    | "SOURCE"
    | "mutez"
    | "SENDER"
    | "IF_CONS"
    | "RIGHT"
    | "CAR"
    | "CONS"
    | "LE"
    | "NONE"
    | "IF"
    | "SOME"
    | "GET"
    | "Left"
    | "CAST"
    | "int"
    | "SIZE"
    | "key_hash"
    | "unit"
    | "DROP"
    | "EMPTY_MAP"
    | "NIL"
    | "DIG"
    | "APPLY"
    | "bool"
    | "RENAME"
    | "operation"
    | "True"
    | "FAILWITH"
    | "parameter"
    | "HASH_KEY"
    | "EQ"
    | "NOT"
    | "UNIT"
    | "Pair"
    | "ADDRESS"
    | "EDIV"
    | "CREATE_ACCOUNT"
    | "GE"
    | "ITER"
    | "code"
    | "AND"
  $bignum:
    /* Big number
       Decimal representation of a big number */
    string
  $micheline.alpha.michelson_v1.expression:
    { /* Int */
      "int": $bignum }
    || { /* String */
         "string": $unistring }
    || { /* Bytes */
         "bytes": /^[a-zA-Z0-9]+$/ }
    || [ $micheline.alpha.michelson_v1.expression ... ]
    /* Sequence */
    || { /* Generic prim (any number of args with or without annot) */
         "prim": $alpha.michelson.v1.primitives,
         "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
         "annots"?: [ string ... ] }
  $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] ... ] }

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

  { /* 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. */
    "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

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

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

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

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

Invalid primitive 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

  { /* Invalid primitive name
       In a script or data expression, a primitive name is unknown or has a
       wrong case. */
    "kind": "permanent",
    "id": "proto.alpha.michelson_v1.invalid_primitive_name",
    "expression": $micheline.alpha.generic.expression,
    "location": $micheline.location }
  $bignum:
    /* Big number
       Decimal representation of a big number */
    string
  $micheline.alpha.generic.expression:
    { /* Int */
      "int": $bignum }
    || { /* String */
         "string": $unistring }
    || { /* Bytes */
         "bytes": /^[a-zA-Z0-9]+$/ }
    || [ $micheline.alpha.generic.expression ... ]
    /* Sequence */
    || { /* Generic prim (any number of args with or without annot) */
         "prim": $unistring,
         "args"?: [ $micheline.alpha.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

  { /* Invalid primitive name case
       In a script or data expression, a primitive name is neither
       uppercase, lowercase or capitalized. */
    "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

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

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

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

No such entrypoint (type error)

An entrypoint was not found when calling a contract.

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

  { /* No such entrypoint (type error)
       An entrypoint was not found when calling a contract. */
    "kind": "permanent",
    "id": "proto.alpha.michelson_v1.no_such_entrypoint",
    "entrypoint": $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] ... ] }

Script runtime error

Toplevel error for all runtime script errors

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

  { /* Script runtime error
       Toplevel error for all runtime script errors */
    "kind": "temporary",
    "id": "proto.alpha.michelson_v1.runtime_error",
    "contract_handle": $alpha.contract_id,
    "contract_code": $micheline.alpha.michelson_v1.expression }
  $alpha.contract_id:
    /* A contract handle
       A contract notation as given to an RPC or inside scripts. Can be a
       base58 implicit contract hash or a base58 originated contract hash. */
    $unistring
  $alpha.michelson.v1.primitives:
    "ADD"
    | "IF_NONE"
    | "SWAP"
    | "set"
    | "nat"
    | "CHECK_SIGNATURE"
    | "IF_LEFT"
    | "LAMBDA"
    | "Elt"
    | "CREATE_CONTRACT"
    | "NEG"
    | "big_map"
    | "map"
    | "or"
    | "BLAKE2B"
    | "bytes"
    | "SHA256"
    | "SET_DELEGATE"
    | "CONTRACT"
    | "LSL"
    | "SUB"
    | "IMPLICIT_ACCOUNT"
    | "PACK"
    | "list"
    | "PAIR"
    | "Right"
    | "contract"
    | "GT"
    | "LEFT"
    | "STEPS_TO_QUOTA"
    | "storage"
    | "TRANSFER_TOKENS"
    | "CDR"
    | "SLICE"
    | "PUSH"
    | "False"
    | "SHA512"
    | "CHAIN_ID"
    | "BALANCE"
    | "signature"
    | "DUG"
    | "SELF"
    | "EMPTY_BIG_MAP"
    | "LSR"
    | "OR"
    | "XOR"
    | "lambda"
    | "COMPARE"
    | "key"
    | "option"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "NEQ"
    | "INT"
    | "pair"
    | "AMOUNT"
    | "DIP"
    | "ABS"
    | "ISNAT"
    | "EXEC"
    | "NOW"
    | "LOOP"
    | "chain_id"
    | "string"
    | "MEM"
    | "MAP"
    | "None"
    | "address"
    | "CONCAT"
    | "EMPTY_SET"
    | "MUL"
    | "LOOP_LEFT"
    | "timestamp"
    | "LT"
    | "UPDATE"
    | "DUP"
    | "SOURCE"
    | "mutez"
    | "SENDER"
    | "IF_CONS"
    | "RIGHT"
    | "CAR"
    | "CONS"
    | "LE"
    | "NONE"
    | "IF"
    | "SOME"
    | "GET"
    | "Left"
    | "CAST"
    | "int"
    | "SIZE"
    | "key_hash"
    | "unit"
    | "DROP"
    | "EMPTY_MAP"
    | "NIL"
    | "DIG"
    | "APPLY"
    | "bool"
    | "RENAME"
    | "operation"
    | "True"
    | "FAILWITH"
    | "parameter"
    | "HASH_KEY"
    | "EQ"
    | "NOT"
    | "UNIT"
    | "Pair"
    | "ADDRESS"
    | "EDIV"
    | "CREATE_ACCOUNT"
    | "GE"
    | "ITER"
    | "code"
    | "AND"
  $bignum:
    /* Big number
       Decimal representation of a big number */
    string
  $micheline.alpha.michelson_v1.expression:
    { /* Int */
      "int": $bignum }
    || { /* String */
         "string": $unistring }
    || { /* Bytes */
         "bytes": /^[a-zA-Z0-9]+$/ }
    || [ $micheline.alpha.michelson_v1.expression ... ]
    /* Sequence */
    || { /* Generic prim (any number of args with or without annot) */
         "prim": $alpha.michelson.v1.primitives,
         "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
         "annots"?: [ string ... ] }
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

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

  { /* Script failed (overflow error)
       A FAIL instruction was reached due to the detection of an overflow */
    "kind": "temporary",
    "id": "proto.alpha.michelson_v1.script_overflow",
    "location": $micheline.location,
    "trace"?:
      [ { "location": $micheline.location,
          "gas": $bignum /* Limited */ || "unaccounted",
          "stack":
            [ { "item": $micheline.alpha.michelson_v1.expression,
                "annot"?: $unistring } ... ] } ... ] }
  $alpha.michelson.v1.primitives:
    "ADD"
    | "IF_NONE"
    | "SWAP"
    | "set"
    | "nat"
    | "CHECK_SIGNATURE"
    | "IF_LEFT"
    | "LAMBDA"
    | "Elt"
    | "CREATE_CONTRACT"
    | "NEG"
    | "big_map"
    | "map"
    | "or"
    | "BLAKE2B"
    | "bytes"
    | "SHA256"
    | "SET_DELEGATE"
    | "CONTRACT"
    | "LSL"
    | "SUB"
    | "IMPLICIT_ACCOUNT"
    | "PACK"
    | "list"
    | "PAIR"
    | "Right"
    | "contract"
    | "GT"
    | "LEFT"
    | "STEPS_TO_QUOTA"
    | "storage"
    | "TRANSFER_TOKENS"
    | "CDR"
    | "SLICE"
    | "PUSH"
    | "False"
    | "SHA512"
    | "CHAIN_ID"
    | "BALANCE"
    | "signature"
    | "DUG"
    | "SELF"
    | "EMPTY_BIG_MAP"
    | "LSR"
    | "OR"
    | "XOR"
    | "lambda"
    | "COMPARE"
    | "key"
    | "option"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "NEQ"
    | "INT"
    | "pair"
    | "AMOUNT"
    | "DIP"
    | "ABS"
    | "ISNAT"
    | "EXEC"
    | "NOW"
    | "LOOP"
    | "chain_id"
    | "string"
    | "MEM"
    | "MAP"
    | "None"
    | "address"
    | "CONCAT"
    | "EMPTY_SET"
    | "MUL"
    | "LOOP_LEFT"
    | "timestamp"
    | "LT"
    | "UPDATE"
    | "DUP"
    | "SOURCE"
    | "mutez"
    | "SENDER"
    | "IF_CONS"
    | "RIGHT"
    | "CAR"
    | "CONS"
    | "LE"
    | "NONE"
    | "IF"
    | "SOME"
    | "GET"
    | "Left"
    | "CAST"
    | "int"
    | "SIZE"
    | "key_hash"
    | "unit"
    | "DROP"
    | "EMPTY_MAP"
    | "NIL"
    | "DIG"
    | "APPLY"
    | "bool"
    | "RENAME"
    | "operation"
    | "True"
    | "FAILWITH"
    | "parameter"
    | "HASH_KEY"
    | "EQ"
    | "NOT"
    | "UNIT"
    | "Pair"
    | "ADDRESS"
    | "EDIV"
    | "CREATE_ACCOUNT"
    | "GE"
    | "ITER"
    | "code"
    | "AND"
  $bignum:
    /* Big number
       Decimal representation of a big number */
    string
  $micheline.alpha.michelson_v1.expression:
    { /* Int */
      "int": $bignum }
    || { /* String */
         "string": $unistring }
    || { /* Bytes */
         "bytes": /^[a-zA-Z0-9]+$/ }
    || [ $micheline.alpha.michelson_v1.expression ... ]
    /* Sequence */
    || { /* Generic prim (any number of args with or without annot) */
         "prim": $alpha.michelson.v1.primitives,
         "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
         "annots"?: [ string ... ] }
  $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] ... ] }

Script failed

A FAILWITH instruction was reached

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

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

SELF instruction in lambda

A SELF instruction was encountered in a lambda expression.

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

  { /* SELF instruction in lambda
       A SELF instruction was encountered in a lambda expression. */
    "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

  { /* Stack item type too large
       An instruction generated a type larger than the limit. */
    "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

  { /* Undefined binop
       A binary operation is called on operands of types over which it is
       not defined. */
    "kind": "permanent",
    "id": "proto.alpha.michelson_v1.undefined_binop",
    "location": $micheline.location,
    "operator_name": $alpha.michelson.v1.primitives,
    "wrong_left_operand_type": $micheline.alpha.michelson_v1.expression,
    "wrong_right_operand_type": $micheline.alpha.michelson_v1.expression }
  $alpha.michelson.v1.primitives:
    "ADD"
    | "IF_NONE"
    | "SWAP"
    | "set"
    | "nat"
    | "CHECK_SIGNATURE"
    | "IF_LEFT"
    | "LAMBDA"
    | "Elt"
    | "CREATE_CONTRACT"
    | "NEG"
    | "big_map"
    | "map"
    | "or"
    | "BLAKE2B"
    | "bytes"
    | "SHA256"
    | "SET_DELEGATE"
    | "CONTRACT"
    | "LSL"
    | "SUB"
    | "IMPLICIT_ACCOUNT"
    | "PACK"
    | "list"
    | "PAIR"
    | "Right"
    | "contract"
    | "GT"
    | "LEFT"
    | "STEPS_TO_QUOTA"
    | "storage"
    | "TRANSFER_TOKENS"
    | "CDR"
    | "SLICE"
    | "PUSH"
    | "False"
    | "SHA512"
    | "CHAIN_ID"
    | "BALANCE"
    | "signature"
    | "DUG"
    | "SELF"
    | "EMPTY_BIG_MAP"
    | "LSR"
    | "OR"
    | "XOR"
    | "lambda"
    | "COMPARE"
    | "key"
    | "option"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "NEQ"
    | "INT"
    | "pair"
    | "AMOUNT"
    | "DIP"
    | "ABS"
    | "ISNAT"
    | "EXEC"
    | "NOW"
    | "LOOP"
    | "chain_id"
    | "string"
    | "MEM"
    | "MAP"
    | "None"
    | "address"
    | "CONCAT"
    | "EMPTY_SET"
    | "MUL"
    | "LOOP_LEFT"
    | "timestamp"
    | "LT"
    | "UPDATE"
    | "DUP"
    | "SOURCE"
    | "mutez"
    | "SENDER"
    | "IF_CONS"
    | "RIGHT"
    | "CAR"
    | "CONS"
    | "LE"
    | "NONE"
    | "IF"
    | "SOME"
    | "GET"
    | "Left"
    | "CAST"
    | "int"
    | "SIZE"
    | "key_hash"
    | "unit"
    | "DROP"
    | "EMPTY_MAP"
    | "NIL"
    | "DIG"
    | "APPLY"
    | "bool"
    | "RENAME"
    | "operation"
    | "True"
    | "FAILWITH"
    | "parameter"
    | "HASH_KEY"
    | "EQ"
    | "NOT"
    | "UNIT"
    | "Pair"
    | "ADDRESS"
    | "EDIV"
    | "CREATE_ACCOUNT"
    | "GE"
    | "ITER"
    | "code"
    | "AND"
  $bignum:
    /* Big number
       Decimal representation of a big number */
    string
  $micheline.alpha.michelson_v1.expression:
    { /* Int */
      "int": $bignum }
    || { /* String */
         "string": $unistring }
    || { /* Bytes */
         "bytes": /^[a-zA-Z0-9]+$/ }
    || [ $micheline.alpha.michelson_v1.expression ... ]
    /* Sequence */
    || { /* Generic prim (any number of args with or without annot) */
         "prim": $alpha.michelson.v1.primitives,
         "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
         "annots"?: [ string ... ] }
  $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] ... ] }

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

  { /* Undefined unop
       A unary operation is called on an operand of type over which it is
       not defined. */
    "kind": "permanent",
    "id": "proto.alpha.michelson_v1.undefined_unop",
    "location": $micheline.location,
    "operator_name": $alpha.michelson.v1.primitives,
    "wrong_operand_type": $micheline.alpha.michelson_v1.expression }
  $alpha.michelson.v1.primitives:
    "ADD"
    | "IF_NONE"
    | "SWAP"
    | "set"
    | "nat"
    | "CHECK_SIGNATURE"
    | "IF_LEFT"
    | "LAMBDA"
    | "Elt"
    | "CREATE_CONTRACT"
    | "NEG"
    | "big_map"
    | "map"
    | "or"
    | "BLAKE2B"
    | "bytes"
    | "SHA256"
    | "SET_DELEGATE"
    | "CONTRACT"
    | "LSL"
    | "SUB"
    | "IMPLICIT_ACCOUNT"
    | "PACK"
    | "list"
    | "PAIR"
    | "Right"
    | "contract"
    | "GT"
    | "LEFT"
    | "STEPS_TO_QUOTA"
    | "storage"
    | "TRANSFER_TOKENS"
    | "CDR"
    | "SLICE"
    | "PUSH"
    | "False"
    | "SHA512"
    | "CHAIN_ID"
    | "BALANCE"
    | "signature"
    | "DUG"
    | "SELF"
    | "EMPTY_BIG_MAP"
    | "LSR"
    | "OR"
    | "XOR"
    | "lambda"
    | "COMPARE"
    | "key"
    | "option"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "NEQ"
    | "INT"
    | "pair"
    | "AMOUNT"
    | "DIP"
    | "ABS"
    | "ISNAT"
    | "EXEC"
    | "NOW"
    | "LOOP"
    | "chain_id"
    | "string"
    | "MEM"
    | "MAP"
    | "None"
    | "address"
    | "CONCAT"
    | "EMPTY_SET"
    | "MUL"
    | "LOOP_LEFT"
    | "timestamp"
    | "LT"
    | "UPDATE"
    | "DUP"
    | "SOURCE"
    | "mutez"
    | "SENDER"
    | "IF_CONS"
    | "RIGHT"
    | "CAR"
    | "CONS"
    | "LE"
    | "NONE"
    | "IF"
    | "SOME"
    | "GET"
    | "Left"
    | "CAST"
    | "int"
    | "SIZE"
    | "key_hash"
    | "unit"
    | "DROP"
    | "EMPTY_MAP"
    | "NIL"
    | "DIG"
    | "APPLY"
    | "bool"
    | "RENAME"
    | "operation"
    | "True"
    | "FAILWITH"
    | "parameter"
    | "HASH_KEY"
    | "EQ"
    | "NOT"
    | "UNIT"
    | "Pair"
    | "ADDRESS"
    | "EDIV"
    | "CREATE_ACCOUNT"
    | "GE"
    | "ITER"
    | "code"
    | "AND"
  $bignum:
    /* Big number
       Decimal representation of a big number */
    string
  $micheline.alpha.michelson_v1.expression:
    { /* Int */
      "int": $bignum }
    || { /* String */
         "string": $unistring }
    || { /* Bytes */
         "bytes": /^[a-zA-Z0-9]+$/ }
    || [ $micheline.alpha.michelson_v1.expression ... ]
    /* Sequence */
    || { /* Generic prim (any number of args with or without annot) */
         "prim": $alpha.michelson.v1.primitives,
         "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
         "annots"?: [ string ... ] }
  $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] ... ] }

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

  { /* An annotation was encountered where no annotation is expected
       A node in the syntax tree was impropperly annotated */
    "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 in a position where it could end up stored inside a big_map, which is forbidden for now.

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

  { /* Big map in unauthorized position (type error)
       When parsing script, a big_map type was found in a position where it
       could end up stored inside a big_map, which is forbidden for now. */
    "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]

Contract in unauthorized position (type error)

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

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

  { /* Contract in unauthorized position (type error)
       When parsing script, a contract type was found in the storage or
       parameter field. */
    "kind": "permanent",
    "id": "proto.alpha.michelson_v1.unexpected_contract",
    "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]

Operation in unauthorized position (type error)

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

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

  { /* Operation in unauthorized position (type error)
       When parsing script, an operation type was found in the storage or
       parameter field. */
    "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

  { /* Annotations of the same kind were found spread apart
       Annotations of the same kind must be grouped */
    "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

  { /* Unknown primitive name
       In a script or data expression, a primitive was unknown. */
    "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

  { /* Unmatched branches
       At the join point at the end of two code branches the stacks have
       inconsistent lengths or contents. */
    "kind": "permanent",
    "id": "proto.alpha.michelson_v1.unmatched_branches",
    "location": $micheline.location,
    "first_stack_type":
      [ { "type": $micheline.alpha.michelson_v1.expression,
          "annots"?: [ $unistring ... ] } ... ],
    "other_stack_type":
      [ { "type": $micheline.alpha.michelson_v1.expression,
          "annots"?: [ $unistring ... ] } ... ] }
  $alpha.michelson.v1.primitives:
    "ADD"
    | "IF_NONE"
    | "SWAP"
    | "set"
    | "nat"
    | "CHECK_SIGNATURE"
    | "IF_LEFT"
    | "LAMBDA"
    | "Elt"
    | "CREATE_CONTRACT"
    | "NEG"
    | "big_map"
    | "map"
    | "or"
    | "BLAKE2B"
    | "bytes"
    | "SHA256"
    | "SET_DELEGATE"
    | "CONTRACT"
    | "LSL"
    | "SUB"
    | "IMPLICIT_ACCOUNT"
    | "PACK"
    | "list"
    | "PAIR"
    | "Right"
    | "contract"
    | "GT"
    | "LEFT"
    | "STEPS_TO_QUOTA"
    | "storage"
    | "TRANSFER_TOKENS"
    | "CDR"
    | "SLICE"
    | "PUSH"
    | "False"
    | "SHA512"
    | "CHAIN_ID"
    | "BALANCE"
    | "signature"
    | "DUG"
    | "SELF"
    | "EMPTY_BIG_MAP"
    | "LSR"
    | "OR"
    | "XOR"
    | "lambda"
    | "COMPARE"
    | "key"
    | "option"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "NEQ"
    | "INT"
    | "pair"
    | "AMOUNT"
    | "DIP"
    | "ABS"
    | "ISNAT"
    | "EXEC"
    | "NOW"
    | "LOOP"
    | "chain_id"
    | "string"
    | "MEM"
    | "MAP"
    | "None"
    | "address"
    | "CONCAT"
    | "EMPTY_SET"
    | "MUL"
    | "LOOP_LEFT"
    | "timestamp"
    | "LT"
    | "UPDATE"
    | "DUP"
    | "SOURCE"
    | "mutez"
    | "SENDER"
    | "IF_CONS"
    | "RIGHT"
    | "CAR"
    | "CONS"
    | "LE"
    | "NONE"
    | "IF"
    | "SOME"
    | "GET"
    | "Left"
    | "CAST"
    | "int"
    | "SIZE"
    | "key_hash"
    | "unit"
    | "DROP"
    | "EMPTY_MAP"
    | "NIL"
    | "DIG"
    | "APPLY"
    | "bool"
    | "RENAME"
    | "operation"
    | "True"
    | "FAILWITH"
    | "parameter"
    | "HASH_KEY"
    | "EQ"
    | "NOT"
    | "UNIT"
    | "Pair"
    | "ADDRESS"
    | "EDIV"
    | "CREATE_ACCOUNT"
    | "GE"
    | "ITER"
    | "code"
    | "AND"
  $bignum:
    /* Big number
       Decimal representation of a big number */
    string
  $micheline.alpha.michelson_v1.expression:
    { /* Int */
      "int": $bignum }
    || { /* String */
         "string": $unistring }
    || { /* Bytes */
         "bytes": /^[a-zA-Z0-9]+$/ }
    || [ $micheline.alpha.michelson_v1.expression ... ]
    /* Sequence */
    || { /* Generic prim (any number of args with or without annot) */
         "prim": $alpha.michelson.v1.primitives,
         "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
         "annots"?: [ string ... ] }
  $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 map key order

Map keys must be in strictly increasing order

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

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

Set values must be in strictly increasing order

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

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

Unreachable entrypoint (type error)

An entrypoint in the contract is not reachable.

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

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

Previously revealed nonce

Duplicated revelation for a nonce.

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

  { /* Previously revealed nonce
       Duplicated revelation for a nonce. */
    "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

  { /* Too early nonce revelation
       Nonce revelation happens before cycle end */
    "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

  { /* Too late nonce revelation
       Nonce revelation happens too late */
    "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

  { /* Unexpected nonce
       The provided nonce is inconsistent with the committed nonce hash. */
    "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

  { /* Cannot parse operation
       The operation is ill-formed or for another protocol version */
    "kind": "branch",
    "id": "proto.alpha.operation.cannot_parse",
    ... }

Duplicate endorsement

Two endorsements received from same delegate

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

  { /* Duplicate endorsement
       Two endorsements received from same delegate */
    "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

  { /* Invalid activation
       The given key and secret do not correspond to any existing
       preallocated contract */
    "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

  { /* Unexpected level in endorsement
       The level of an endorsement is inconsistent with the  provided block
       hash. */
    "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

  { /* Invalid operation signature
       The operation signature is ill-formed or has been made with the
       wrong public key */
    "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

  { /* Missing operation signature
       The operation is of a kind that must be signed, but the signature is
       missing */
    "kind": "permanent",
    "id": "proto.alpha.operation.missing_signature",
    ... }

Not enough endorsements for priority

The block being validated does not include the required minimum number of endorsements for this priority.

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

  { /* Not enough endorsements for priority
       The block being validated does not include the required minimum
       number of endorsements for this priority. */
    "kind": "permanent",
    "id": "proto.alpha.operation.not_enought_endorsements_for_priority",
    "required": integer ∈ [-2^30-2, 2^30+2],
    "endorsements": integer ∈ [-2^30-2, 2^30+2],
    "priority": integer ∈ [-2^30-2, 2^30+2],
    "timestamp": $timestamp.protocol }
  $timestamp.protocol:
    /* A timestamp as seen by the protocol: second-level precision, epoch
       based. */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

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

  { /* Wrong endorsement predecessor
       Trying to include an endorsement in a block that is not the
       successor of the endorsed one */
    "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

  { /* Wrong voting period
       Trying to onclude a proposal or ballot meant for another voting
       period */
    "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

  { /* Unknown seed
       The requested seed is not available */
    "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

  { /* Storage quota exceeded for the operation
       A script or one of its callee wrote more bytes than the operation
       said it would */
    "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

  { /* Storage limit out of protocol hard bounds
       A transaction tried to exceed the hard limit on storage */
    "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

  { /* Overflowing tez addition
       An addition of two tez amounts overflowed */
    "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

  { /* Invalid tez divisor
       Multiplication of a tez amount by a non positive integer */
    "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

  { /* Overflowing tez multiplication
       A multiplication of a tez amount by an integer overflowed */
    "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

  { /* Negative tez multiplicator
       Multiplication of a tez amount by a negative integer */
    "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

  { /* Underflowing tez subtraction
       An subtraction of two tez amounts underflowed */
    "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

  { /* Timestamp add
       Overflow when adding timestamps. */
    "kind": "permanent",
    "id": "proto.alpha.timestamp_add" }

Timestamp sub

Substracting timestamps resulted in negative period.

Id : proto.alpha.timestamp_sub
Category : permanent

  { /* Timestamp sub
       Substracting timestamps resulted in negative period. */
    "kind": "permanent",
    "id": "proto.alpha.timestamp_sub" }

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

  { /* Too many internal operations
       A transaction exceeded the hard limit of internal operations it can
       emit */
    "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

  { /* Too many proposals
       The delegate reached the maximum number of allowed proposals. */
    "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

  { /* Unauthorized ballot
       The delegate provided for the ballot is not in the voting listings. */
    "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

  { /* Unauthorized proposal
       The delegate provided for the proposal is not in the voting
       listings. */
    "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

  { /* Ill timed access to the origination nonce
       An origination was attemped out of the scope of a manager operation */
    "kind": "permanent",
    "id": "proto.alpha.undefined_operation_nonce" }

Unexpected ballot

Ballot recorded outside of a voting period.

Id : proto.alpha.unexpected_ballot
Category : branch

  { /* Unexpected ballot
       Ballot recorded outside of a voting period. */
    "kind": "branch",
    "id": "proto.alpha.unexpected_ballot" }

Unexpected level

Level must be non-negative.

Id : proto.alpha.unexpected_level
Category : permanent

  { /* Unexpected level
       Level must be non-negative. */
    "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

  { /* Unexpected nonce length
       Nonce length is incorrect. */
    "kind": "permanent",
    "id": "proto.alpha.unexpected_nonce_length" }

Unexpected proposal

Proposal recorded outside of a proposal period.

Id : proto.alpha.unexpected_proposal
Category : branch

  { /* Unexpected proposal
       Proposal recorded outside of a proposal period. */
    "kind": "branch",
    "id": "proto.alpha.unexpected_proposal" }

Shell

Invalid block locator

Block locator is invalid.

Id : node.bootstrap_pipeline.invalid_locator
Category : permanent

  { /* Invalid block locator
       Block locator is invalid. */
    "kind": "permanent",
    "id": "node.bootstrap_pipeline.invalid_locator",
    "id": $Crypto_box.Public_key_hash,
    "locator": $block_locator }
  $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
  $block_header:
    /* Block header
       Block header. It contains both shell and protocol specific data. */
    { "level": integer ∈ [-2^31-2, 2^31+2],
      "proto": integer ∈ [0, 255],
      "predecessor": $block_hash,
      "timestamp": $timestamp.protocol,
      "validation_pass": integer ∈ [0, 255],
      "operations_hash": $Operation_list_list_hash,
      "fitness": $fitness,
      "context": $Context_hash,
      "protocol_data": /^[a-zA-Z0-9]+$/ }
  $block_locator:
    /* A sparse block locator à la Bitcoin */
    { "current_head": $block_header,
      "history": [ $block_hash ... ] }
  $fitness:
    /* Block fitness
       The fitness, or score, of a block, that allow the Tezos to decide
       which chain is the best. A fitness value is a list of byte
       sequences. They are compared as follows: shortest lists are smaller;
       lists of the same length are compared according to the
       lexicographical order. */
    [ /^[a-zA-Z0-9]+$/ ... ]
  $timestamp.protocol:
    /* A timestamp as seen by the protocol: second-level precision, epoch
       based. */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

Too short locator

Block locator is too short.

Id : node.bootstrap_pipeline.too_short_locator
Category : permanent

  { /* Too short locator
       Block locator is too short. */
    "kind": "permanent",
    "id": "node.bootstrap_pipeline.too_short_locator",
    "id": $Crypto_box.Public_key_hash,
    "locator": $block_locator }
  $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
  $block_header:
    /* Block header
       Block header. It contains both shell and protocol specific data. */
    { "level": integer ∈ [-2^31-2, 2^31+2],
      "proto": integer ∈ [0, 255],
      "predecessor": $block_hash,
      "timestamp": $timestamp.protocol,
      "validation_pass": integer ∈ [0, 255],
      "operations_hash": $Operation_list_list_hash,
      "fitness": $fitness,
      "context": $Context_hash,
      "protocol_data": /^[a-zA-Z0-9]+$/ }
  $block_locator:
    /* A sparse block locator à la Bitcoin */
    { "current_head": $block_header,
      "history": [ $block_hash ... ] }
  $fitness:
    /* Block fitness
       The fitness, or score, of a block, that allow the Tezos to decide
       which chain is the best. A fitness value is a list of byte
       sequences. They are compared as follows: shortest lists are smaller;
       lists of the same length are compared according to the
       lexicographical order. */
    [ /^[a-zA-Z0-9]+$/ ... ]
  $timestamp.protocol:
    /* A timestamp as seen by the protocol: second-level precision, epoch
       based. */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

Connection closed

IO error: connection with a peer is closed.

Id : node.p2p_io_scheduler.connection_closed
Category : permanent

  { /* Connection closed
       IO error: connection with a peer is closed. */
    "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

  { /* Connected
       Fail to connect with a peer: a connection is already established. */
    "kind": "permanent",
    "id": "node.p2p_pool.connected" }

Connection refused

Connection was refused.

Id : node.p2p_pool.connection_refused
Category : permanent

  { /* Connection refused
       Connection was refused. */
    "kind": "permanent",
    "id": "node.p2p_pool.connection_refused" }

P2P layer disabled

The P2P layer on this node is not active.

Id : node.p2p_pool.disabled
Category : permanent

  { /* P2P layer disabled
       The P2P layer on this node is not active. */
    "kind": "permanent",
    "id": "node.p2p_pool.disabled" }

Peer Banned

The peer identity you tried to connect is banned.

Id : node.p2p_pool.peer_banned
Category : permanent

  { /* Peer Banned
       The peer identity you tried to connect is banned. */
    "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

  { /* Pending connection
       Fail to connect with a peer: a connection is already pending. */
    "kind": "permanent",
    "id": "node.p2p_pool.pending_connection" }

Point Banned

The address you tried to connect is banned.

Id : node.p2p_pool.point_banned
Category : permanent

  { /* Point Banned
       The address you tried to connect is banned. */
    "kind": "permanent",
    "id": "node.p2p_pool.point_banned",
    "point": $p2p_point.id }
  $p2p_point.id:
    /* Identifier for a peer 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

  { /* Private mode
       Node is in private mode. */
    "kind": "permanent",
    "id": "node.p2p_pool.private_mode" }

Rejected peer

Connection to peer was rejected by us.

Id : node.p2p_pool.rejected
Category : permanent

  { /* Rejected peer
       Connection to peer was rejected by us. */
    "kind": "permanent",
    "id": "node.p2p_pool.rejected",
    "peer_id": $Crypto_box.Public_key_hash,
    "motive": integer ∈ [-2^15, 2^15-1] }
  $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

  { /* Too many connections
       Too many connections. */
    "kind": "permanent",
    "id": "node.p2p_pool.too_many_connections" }

Decipher error

An error occurred while deciphering.

Id : node.p2p_socket.decipher_error
Category : permanent

  { /* Decipher error
       An error occurred while deciphering. */
    "kind": "permanent",
    "id": "node.p2p_socket.decipher_error" }

Decoding error

An error occurred while decoding.

Id : node.p2p_socket.decoding_error
Category : permanent

  { /* Decoding error
       An error occurred while decoding. */
    "kind": "permanent",
    "id": "node.p2p_socket.decoding_error",
    "read_error":
      { /* Not enough data */
         }
      || { /* Extra bytes */
            }
      || { /* No case matched */
            }
      || integer ∈ [-2^30-2, 2^30+2]
      /* Unexpected tag */
      || integer ∈ [-2^30-2, 2^30+2]
      /* Invalid size */
      || { /* Invalid int */
           "min": integer ∈ [-2^30-2, 2^30+2],
           "v": integer ∈ [-2^30-2, 2^30+2],
           "max": integer ∈ [-2^30-2, 2^30+2] }
      || { /* Invalid float */
           "min": number,
           "v": number,
           "max": number }
      || { /* Trailing zero */
            }
      || { /* Size limit exceeded */
            }
      || { /* List too long */
            }
      || { /* Array too long */
            } }

Invalid authentication

Rejected peer connection: invalid authentication.

Id : node.p2p_socket.invalid_auth
Category : permanent

  { /* Invalid authentication
       Rejected peer connection: invalid authentication. */
    "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

  { /* Invalid chunks size
       Size of chunks is not valid. */
    "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 incoming ciphertext size

The announced size for the incoming ciphertext is invalid.

Id : node.p2p_socket.invalid_incoming_ciphertext_size
Category : permanent

  { /* Invalid incoming ciphertext size
       The announced size for the incoming ciphertext is invalid. */
    "kind": "permanent",
    "id": "node.p2p_socket.invalid_incoming_ciphertext_size" }

Invalid message size

The size of the message to be written is invalid.

Id : node.p2p_socket.invalid_message_size
Category : permanent

  { /* Invalid message size
       The size of the message to be written is invalid. */
    "kind": "permanent",
    "id": "node.p2p_socket.invalid_message_size" }

Myself

Remote peer is actually yourself.

Id : node.p2p_socket.myself
Category : permanent

  { /* Myself
       Remote peer is actually yourself. */
    "kind": "permanent",
    "id": "node.p2p_socket.myself",
    "connection_id": $p2p_connection.id }
  $p2p_address:
    /* An address for locating peers. */
    $unistring
  $p2p_connection.id:
    /* The identifier for a p2p connection. It includes an address and a
       port number. */
    { "addr": $p2p_address,
      "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

  { /* Not enough proof of work
       Remote peer cannot be authenticated: not enough proof of work. */
    "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 by Nack

Rejected peer connection: The peer rejected the socket connection by Nack with a list of alternative peers.

Id : node.p2p_socket.rejected_by_nack
Category : permanent

  { /* Rejected socket connection by Nack
       Rejected peer connection: The peer rejected the socket connection by
       Nack with a list of alternative peers. */
    "kind": "permanent",
    "id": "node.p2p_socket.rejected_by_nack",
    "motive": integer ∈ [-2^15, 2^15-1],
    "alternative_points"?: [ $p2p_point.id ... ] }
  $p2p_point.id:
    /* Identifier for a peer 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] ... ] }

Rejected socket connection - no common network protocol

Rejected peer connection: rejected socket connection as we have no common network protocol with the peer.

Id : node.p2p_socket.rejected_no_common_protocol
Category : permanent

  { /* Rejected socket connection - no common network protocol
       Rejected peer connection: rejected socket connection as we have no
       common network protocol with the peer. */
    "kind": "permanent",
    "id": "node.p2p_socket.rejected_no_common_protocol",
    "announced_version": $network_version }
  $distributed_db_version:
    /* A version number for the distributed DB protocol */
    integer ∈ [0, 2^16-1]
  $distributed_db_version.name:
    /* A name for the distributed DB protocol */
    $unistring
  $network_version:
    /* A version number for the network protocol (includes distributed DB
       version and p2p version) */
    { "chain_name": $distributed_db_version.name,
      "distributed_db_version": $distributed_db_version,
      "p2p_version": $p2p_version }
  $p2p_version:
    /* A version number for the p2p layer. */
    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] ... ] }

Rejected socket connection

Rejected peer connection: rejected socket connection.

Id : node.p2p_socket.rejected_socket_connection
Category : permanent

  { /* Rejected socket connection
       Rejected peer connection: rejected socket connection. */
    "kind": "permanent",
    "id": "node.p2p_socket.rejected_socket_connection" }

Rejecting socket connection

Rejecting peer connection with motive.

Id : node.p2p_socket.rejecting_incoming
Category : permanent

  { /* Rejecting socket connection
       Rejecting peer connection with motive. */
    "kind": "permanent",
    "id": "node.p2p_socket.rejecting_incoming",
    "motive": integer ∈ [-2^15, 2^15-1] }

Known invalid

Known invalid block found in the peer's chain

Id : node.peer_validator.known_invalid
Category : permanent

  { /* Known invalid
       Known invalid block found in the peer's chain */
    "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

  { /* Unknown ancestor
       Unknown ancestor block found in the peer's chain */
    "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

  { /* Future block header
       The block was annotated with a time too far in the future. */
    "kind": "temporary",
    "id": "node.prevalidation.future_block_header",
    "block": $block_hash,
    "block_time": $timestamp.protocol,
    "time": $timestamp.system }
  $block_hash:
    /* A block identifier (Base58Check-encoded) */
    $unistring
  $int64:
    /* 64 bit integers
       Decimal representation of 64 bit integers */
    string
  $timestamp.protocol:
    /* A timestamp as seen by the protocol: second-level precision, epoch
       based. */
    $unistring
  $timestamp.rfc:
    /* RFC 3339 formatted timestamp
       A date in RFC 3339 notation. */
    $unistring
  $timestamp.system:
    /* A timestamp as seen by the underlying, local computer:
       subsecond-level precision, epoch or rfc3339 based. */
    $timestamp.rfc /* RFC encoding */ || $int64 /* Second since epoch */
  $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

  { /* Oversized operation
       The operation size is bigger than allowed. */
    "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

  { /* Parsing error in prevalidation
       Raised when an operation has not been parsed correctly during
       prevalidation. */
    "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

  { /* Too many pending operations in prevalidation
       The prevalidation context is full. */
    "kind": "temporary",
    "id": "node.prevalidation.too_many_operations" }

Invalid protocol

Invalid protocol.

Id : node.protocol_validator.invalid_protocol
Category : permanent

  /* Invalid protocol
     Invalid protocol. */
  { /* Compilation failed */
    "kind": "permanent",
    "id": "node.protocol_validator.invalid_protocol",
    "invalid_protocol": $Protocol_hash,
    "error": "compilation_failed" }
  || { /* Dynlinking 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

  { /* 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. */
    "kind": "permanent",
    "id": "node.state.bad_data_dir" }

Inconsistent commit hash

When committing 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

  { /* Inconsistent commit hash
       When committing the context of a block, the announced context hash
       was not the one computed at commit time. */
    "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

  { /* Block not invalid
       The invalid block to be unmarked was not actually invalid. */
    "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

  { /* Unknown chain
       The chain identifier could not be found in the chain identifiers
       table. */
    "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 incompatible 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

  { /* Block incompatible with the current checkpoint.
       The block belongs to a branch that is not compatible with the
       current checkpoint. */
    "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

  { /* Inactive chain
       Attempted validation of a block from an inactive chain. */
    "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] ... ] }

Incorrect history mode switch

Incorrect history mode switch.

Id : node_config_file.incorrect_history_mode_switch
Category : permanent

  { /* Incorrect history mode switch
       Incorrect history mode switch. */
    "kind": "permanent",
    "id": "node_config_file.incorrect_history_mode_switch",
    "previous_mode": "full" | "archive" | "rolling",
    "next_mode": "full" | "archive" | "rolling" }

Missing key in store

Missing key in store

Id : raw_store.unknown
Category : permanent

  { /* Missing key in store
       Missing key in store */
    "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

  { /* Invalid merkle tree
       The provided list of operations is inconsistent with the block
       header. */
    "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

  $error
  $Chain_id:
    /* Network identifier (Base58Check-encoded) */
    $unistring
  $Operation_hash:
    /* A Tezos operation ID (Base58Check-encoded) */
    $unistring
  $block_hash:
    /* A block identifier (Base58Check-encoded) */
    $unistring
  $error:
    /* Invalid block
       Invalid block. */
    { /* Cannot_parse_operation */
      "kind": "permanent",
      "id": "validator.invalid_block",
      "invalid_block": $block_hash,
      "error": "cannot_parse_operation",
      "operation": $Operation_hash }
    || { /* Invalid_fitness */
         "kind": "permanent",
         "id": "validator.invalid_block",
         "invalid_block": $block_hash,
         "error": "invalid_fitness",
         "expected": $fitness,
         "found": $fitness }
    || { /* Non_increasing_timestamp */
         "kind": "permanent",
         "id": "validator.invalid_block",
         "invalid_block": $block_hash,
         "error": "non_increasing_timestamp" }
    || { /* Non_increasing_fitness */
         "kind": "permanent",
         "id": "validator.invalid_block",
         "invalid_block": $block_hash,
         "error": "non_increasing_fitness" }
    || { /* Invalid_level */
         "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] }
    || { /* Invalid_proto_level */
         "kind": "permanent",
         "id": "validator.invalid_block",
         "invalid_block": $block_hash,
         "error": "invalid_proto_level",
         "expected": integer ∈ [0, 255],
         "found": integer ∈ [0, 255] }
    || { /* Replayed_operation */
         "kind": "permanent",
         "id": "validator.invalid_block",
         "invalid_block": $block_hash,
         "error": "replayed_operation",
         "operation": $Operation_hash }
    || { /* Outdated_operation */
         "kind": "permanent",
         "id": "validator.invalid_block",
         "invalid_block": $block_hash,
         "error": "outdated_operation",
         "operation": $Operation_hash,
         "originating_block": $block_hash }
    || { /* Expired_chain */
         "kind": "permanent",
         "id": "validator.invalid_block",
         "invalid_block": $block_hash,
         "error": "expired_chain",
         "chain_id": $Chain_id,
         "expiration": $timestamp.protocol,
         "timestamp": $timestamp.protocol }
    || { /* Unexpected_number_of_validation_passes */
         "kind": "permanent",
         "id": "validator.invalid_block",
         "invalid_block": $block_hash,
         "error": "unexpected_number_of_passes",
         "found": integer ∈ [0, 255] }
    || { /* Too_many_operations */
         "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] }
    || { /* Oversized_operation */
         "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] }
    || { /* Unallowed_pass */
         "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] ... ] }
    || { /* Cannot_parse_block_header */
         "kind": "permanent",
         "id": "validator.invalid_block",
         "invalid_block": $block_hash,
         "error": "cannot_parse_bock_header" }
    || { /* Economic_protocol_error */
         "kind": "permanent",
         "id": "validator.invalid_block",
         "invalid_block": $block_hash,
         "error": "economic_protocol_error",
         "trace": [ $error ... ] }
  $fitness:
    /* Block fitness
       The fitness, or score, of a block, that allow the Tezos to decide
       which chain is the best. A fitness value is a list of byte
       sequences. They are compared as follows: shortest lists are smaller;
       lists of the same length are compared according to the
       lexicographical order. */
    [ /^[a-zA-Z0-9]+$/ ... ]
  $timestamp.protocol:
    /* A timestamp as seen by the protocol: second-level precision, epoch
       based. */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

Missing test protocol

Missing test protocol when forking the test chain

Id : validator.missing_test_protocol
Category : temporary

  { /* Missing test protocol
       Missing test protocol when forking the test chain */
    "kind": "temporary",
    "id": "validator.missing_test_protocol",
    "test_protocol": $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

The protocol required for validating a block is missing.

Id : validator.unavailable_protocol
Category : temporary

  { /* Missing protocol
       The protocol required for validating a block is missing. */
    "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] ... ] }

Validation process failed

Failed to validate block using external validation process.

Id : validator.validation_process_failed
Category : temporary

  { /* Validation process failed
       Failed to validate block using external validation process. */
    "kind": "temporary",
    "id": "validator.validation_process_failed",
    "error":
      { /* Missing_handshake */
        "constant": "missing_handshake" }
      || { /* Inconsistent_handshake */
           "inconsistent_handshake": $unistring }
      || { /* Protocol_dynlink_failure */
           "protocol_dynlink_failure": $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 closed

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

Id : worker.closed
Category : permanent

  { /* Worker closed
       An operation on a worker could not complete before it was shut down. */
    "kind": "permanent",
    "id": "worker.closed",
    "worker": [ $unistring, $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

  { /* Micheline parser error: annotation exceeds max length
       While parsing a piece of Micheline source, an annotation exceeded
       the maximum length (255). */
    "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

  { /* Micheline parser error: empty_expression
       Tried to interpret an empty piece or Micheline source as a single
       expression. */
    "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

  { /* Micheline parser error: extra token
       While parsing a piece of Micheline source, an extra semi colon or
       parenthesis was encountered. */
    "kind": "permanent",
    "id": "micheline.parse_error.extra_token",
    "location":
      { "start":
          { "line": integer ∈ [0, 2^16-1],
            "column": integer ∈ [0, 2^16-1],
            "point": integer ∈ [0, 2^16-1],
            "byte": integer ∈ [0, 2^16-1] },
        "stop":
          { "line": integer ∈ [0, 2^16-1],
            "column": integer ∈ [0, 2^16-1],
            "point": integer ∈ [0, 2^16-1],
            "byte": integer ∈ [0, 2^16-1] } },
    "token":
      { /* String */
        "string": $unistring }
      || { /* Int */
           "int": $unistring }
      || { /* Annot */
           "annot": $unistring }
      || { /* Comment */
           "comment": $unistring,
           "end_of_line"?: boolean }
      || { /* Punctuation */
           "punctuation": "(" | ";" | "}" | "{" | ")" }
      || { /* Bytes */
           "bytes": $unistring }
      || { /* Ident */
           "ident": $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

  { /* 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. */
    "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

  { /* 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. */
    "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 */
      "int": $bignum }
    || { /* String */
         "string": $unistring }
    || { /* Bytes */
         "bytes": /^[a-zA-Z0-9]+$/ }
    || [ $micheline.generic.expression ... ]
    /* Sequence */
    || { /* Generic prim (any number of args with or without annot) */
         "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

  { /* 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. */
    "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

  { /* 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. */
    "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

  { /* Micheline parser error: unclosed token
       While parsing a piece of Micheline source, a parenthesis or a brace
       was unclosed. */
    "kind": "permanent",
    "id": "micheline.parse_error.unclosed_token",
    "location":
      { "start":
          { "line": integer ∈ [0, 2^16-1],
            "column": integer ∈ [0, 2^16-1],
            "point": integer ∈ [0, 2^16-1],
            "byte": integer ∈ [0, 2^16-1] },
        "stop":
          { "line": integer ∈ [0, 2^16-1],
            "column": integer ∈ [0, 2^16-1],
            "point": integer ∈ [0, 2^16-1],
            "byte": integer ∈ [0, 2^16-1] } },
    "token":
      { /* String */
        "string": $unistring }
      || { /* Int */
           "int": $unistring }
      || { /* Annot */
           "annot": $unistring }
      || { /* Comment */
           "comment": $unistring,
           "end_of_line"?: boolean }
      || { /* Punctuation */
           "punctuation": "(" | ";" | "}" | "{" | ")" }
      || { /* Bytes */
           "bytes": $unistring }
      || { /* Ident */
           "ident": $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

  { /* Micheline parser error: undefined escape sequence
       While parsing a piece of Micheline source, an unexpected escape
       sequence was encountered in a string. */
    "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

  { /* Micheline parser error: unexpected character
       While parsing a piece of Micheline source, an unexpected character
       was encountered. */
    "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

  { /* Micheline parser error: unexpected token
       While parsing a piece of Micheline source, an unexpected token was
       encountered. */
    "kind": "permanent",
    "id": "micheline.parse_error.unexpected_token",
    "location":
      { "start":
          { "line": integer ∈ [0, 2^16-1],
            "column": integer ∈ [0, 2^16-1],
            "point": integer ∈ [0, 2^16-1],
            "byte": integer ∈ [0, 2^16-1] },
        "stop":
          { "line": integer ∈ [0, 2^16-1],
            "column": integer ∈ [0, 2^16-1],
            "point": integer ∈ [0, 2^16-1],
            "byte": integer ∈ [0, 2^16-1] } },
    "token":
      { /* String */
        "string": $unistring }
      || { /* Int */
           "int": $unistring }
      || { /* Annot */
           "annot": $unistring }
      || { /* Comment */
           "comment": $unistring,
           "end_of_line"?: boolean }
      || { /* Punctuation */
           "punctuation": "(" | ";" | "}" | "{" | ")" }
      || { /* Bytes */
           "bytes": $unistring }
      || { /* Ident */
           "ident": $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

  { /* Micheline parser error: unterminated comment
       While parsing a piece of Micheline source, a commentX was not
       terminated. */
    "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

  { /* Micheline parser error: unterminated integer
       While parsing a piece of Micheline source, an integer was not
       terminated. */
    "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

  { /* Micheline parser error: unterminated string
       While parsing a piece of Micheline source, a string was not
       terminated. */
    "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":
      { /* Empty_answer */
        "kind": "empty_answer" }
      || { /* Connection_failed */
           "kind": "connection_failed",
           "message": $unistring }
      || { /* Bad_request */
           "kind": "bad_request",
           "message": $unistring }
      || { /* Method_not_allowed */
           "kind": "method_not_allowed",
           "allowed": [ $unistring ... ] }
      || { /* Unsupported_media_type */
           "kind": "unsupported_media_type",
           "content_type"?: $unistring }
      || { /* Not_acceptable */
           "kind": "not_acceptable",
           "proposed": $unistring,
           "acceptable": $unistring }
      || { /* Unexpected_status_code */
           "kind": "unexpected_status_code",
           "code": integer ∈ [0, 2^16-1],
           "content": $unistring,
           "media_type"?: $unistring }
      || { /* Unexpected_content_type */
           "kind": "unexpected_content_type",
           "received": $unistring,
           "acceptable": [ $unistring ... ],
           "body": $unistring }
      || { /* Unexpected_content */
           "kind": "unexpected_content",
           "content": $unistring,
           "media_type": $unistring,
           "error": $unistring }
      || { /* OCaml_exception */
           "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

Bad hash

Wrong hash given

Id : Bad_hash
Category : permanent

  { /* Bad hash
       Wrong hash given */
    "kind": "permanent",
    "id": "Bad_hash",
    "hash_ty": $unistring,
    "hash_is": /^[a-zA-Z0-9]+$/,
    "hash_should": /^[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] ... ] }

Fail during checkout context

The context checkout failed using a given hash

Id : Block_validator_process.failed_to_checkout_context
Category : permanent

  { /* Fail during checkout context
       The context checkout failed using a given hash */
    "kind": "permanent",
    "id": "Block_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] ... ] }

Fail to get live blocks

Unable to get live blocks from a given hash

Id : Block_validator_process.failed_to_get_live_block
Category : permanent

  { /* Fail to get live blocks
       Unable to get live blocks from a given hash */
    "kind": "permanent",
    "id": "Block_validator_process.failed_to_get_live_block",
    "hash": $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] ... ] }

Cannot reconstruct

Cannot reconstruct

Id : CannotReconstruct
Category : permanent

  { /* Cannot reconstruct
       Cannot reconstruct */
    "kind": "permanent",
    "id": "CannotReconstruct",
    "history_mode ": "full" | "archive" | "rolling" }

Context not found

Cannot find context corresponding to hash

Id : Context_not_found
Category : permanent

  { /* Context not found
       Cannot find context corresponding to hash */
    "kind": "permanent",
    "id": "Context_not_found",
    "context_not_found": /^[a-zA-Z0-9]+$/ }

Inconsistent imported block

The imported block is not the expected one.

Id : InconsistentImportedBlock
Category : permanent

  { /* Inconsistent imported block
       The imported block is not the expected one. */
    "kind": "permanent",
    "id": "InconsistentImportedBlock",
    "block_hash": $block_hash,
    "block_hash_expected": $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] ... ] }

Inconsistent operation hashes

The operations given do not match their hashes.

Id : InconsistentOperationHashes
Category : permanent

  { /* Inconsistent operation hashes
       The operations given do not match their hashes. */
    "kind": "permanent",
    "id": "InconsistentOperationHashes",
    "expected_operation_hashes": $Operation_list_list_hash,
    "received_operation_hashes": $Operation_list_list_hash }
  $Operation_list_list_hash:
    /* A list of list of operations (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 snapshot data

The data provided by the snapshot is inconsistent

Id : Inconsistent_snapshot_data
Category : permanent

  { /* Inconsistent snapshot data
       The data provided by the snapshot is inconsistent */
    "kind": "permanent",
    "id": "Inconsistent_snapshot_data" }

Inconsistent snapshot file

Error while opening snapshot file

Id : Inconsistent_snapshot_file
Category : permanent

  { /* Inconsistent snapshot file
       Error while opening snapshot file */
    "kind": "permanent",
    "id": "Inconsistent_snapshot_file" }

Invalid block specification

Invalid specification of block to import

Id : InvalidBlockSpecification
Category : permanent

  { /* Invalid block specification
       Invalid specification of block to import */
    "kind": "permanent",
    "id": "InvalidBlockSpecification",
    "str": $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 snapshot version

The version of the snapshot to import is not valid

Id : Invalid_snapshot_version
Category : permanent

  { /* Invalid snapshot version
       The version of the snapshot to import is not valid */
    "kind": "permanent",
    "id": "Invalid_snapshot_version",
    "found": $unistring,
    "expected": $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 data in imported snapshot

Mandatory data missing while reaching end of snapshot file.

Id : Missing_snapshot_data
Category : permanent

  { /* Missing data in imported snapshot
       Mandatory data missing while reaching end of snapshot file. */
    "kind": "permanent",
    "id": "Missing_snapshot_data" }

RPC returned an empty list of errors

The RPC returned with an error code but no associated error.

Id : RPC.Empty_error_list
Category : branch

  { /* RPC returned an empty list of errors
       The RPC returned with an error code but no associated error. */
    "kind": "branch",
    "id": "RPC.Empty_error_list" }

RPC fails with an unparsable error message

The RPC returned with an error code, and the associated body was not a valid error trace. It is likely that the answer does not comes directly from a compatible node.

Id : RPC.Unexpected_error_encoding
Category : branch

  { /* RPC fails with an unparsable error message
       The RPC returned with an error code, and the associated body was not
       a valid error trace. It is likely that the answer does not comes
       directly from a compatible node. */
    "kind": "branch",
    "id": "RPC.Unexpected_error_encoding",
    "unparsable message": any }

RPC lookup failed because of deleted data

RPC lookup failed. Block has been pruned and requested data deleted.

Id : RPC_context.Gone
Category : branch

  { /* RPC lookup failed because of deleted data
       RPC lookup failed. Block has been pruned and requested data deleted. */
    "kind": "branch",
    "id": "RPC_context.Gone",
    "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] ... ] }

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

  { /* RPC lookup failed
       RPC lookup failed. No RPC exists at the URL or the RPC tried to
       access non-existent data. */
    "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] ... ] }

Failed to restore context

Internal error while restoring the context

Id : Restore_context_failure
Category : permanent

  { /* Failed to restore context
       Internal error while restoring the context */
    "kind": "permanent",
    "id": "Restore_context_failure" }

Snapshot import failure

The imported snapshot is malformed.

Id : SnapshotImportFailure
Category : permanent

  { /* Snapshot import failure
       The imported snapshot is malformed. */
    "kind": "permanent",
    "id": "SnapshotImportFailure",
    "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] ... ] }

System read error

Failed to read file

Id : System_read_error
Category : permanent

  { /* System read error
       Failed to read file */
    "kind": "permanent",
    "id": "System_read_error",
    "system_read_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 validate block because of a system error

The validator failed because of a system error

Id : Validator_process.system_error_while_validating
Category : temporary

  { /* Failed to validate block because of a system error
       The validator failed because of a system error */
    "kind": "temporary",
    "id": "Validator_process.system_error_while_validating",
    "errno": $unistring,
    "function": $unistring,
    "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] ... ] }

Writing error

Cannot write in file for context dump

Id : Writing_error
Category : permanent

  { /* Writing error
       Cannot write in file for context dump */
    "kind": "permanent",
    "id": "Writing_error",
    "context_dump_no_space": $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 block export

The block to export in the snapshot is not valid.

Id : WrongBlockExport
Category : permanent

  { /* Wrong block export
       The block to export in the snapshot is not valid. */
    "kind": "permanent",
    "id": "WrongBlockExport",
    "wrong_block_export":
      $block_hash
      /* pruned */
      || $block_hash
      /* too_few_predecessors */
      || $unistring
      /* unknown_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 protocol hash

Wrong protocol hash

Id : WrongProtocolHash
Category : permanent

  { /* Wrong protocol hash
       Wrong protocol hash */
    "kind": "permanent",
    "id": "WrongProtocolHash",
    "protocol_hash": $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] ... ] }

Wrong snapshot export

Snapshot exports is not compatible with the current configuration.

Id : WrongSnapshotExport
Category : permanent

  { /* Wrong snapshot export
       Snapshot exports is not compatible with the current configuration. */
    "kind": "permanent",
    "id": "WrongSnapshotExport",
    "src": "full" | "archive" | "rolling",
    "dst": "full" | "archive" | "rolling" }

Cannot serialize metadata

Unable to serialize metadata

Id : block_validation.cannot_serialize_metadata
Category : permanent

  { /* Cannot serialize metadata
       Unable to serialize metadata */
    "kind": "permanent",
    "id": "block_validation.cannot_serialize_metadata" }

Canceled

A promise was unexpectedly canceled

Id : canceled
Category : temporary

  { /* Canceled
       A promise was unexpectedly canceled */
    "kind": "temporary",
    "id": "canceled",
    ... }

Invalid key uri

A key has been provided with an invalid uri.

Id : cli.key.invalid_uri
Category : permanent

  { /* Invalid key uri
       A key has been provided with an invalid uri. */
    "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

  { /* Signature mismatch
       The signer produced an invalid signature */
    "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

  { /* Unregistered key scheme
       A key has been provided with an unregistered scheme (no
       corresponding plugin) */
    "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] ... ] }

Deserialized counter does not match the stored one

The byte sequence references a multisig counter that does not match the one currently stored in the given multisig contract

Id : client.alpha.Bad deserialized counter
Category : permanent

  { /* Deserialized counter does not match the stored one
       The byte sequence references a multisig counter that does not match
       the one currently stored in the given multisig contract */
    "kind": "permanent",
    "id": "client.alpha.Bad deserialized counter",
    "received_expected":
      [ integer ∈ [-2^30-2, 2^30+2], integer ∈ [-2^30-2, 2^30+2] ] }

The expression is not a valid multisig action

When trying to deserialise an action from a sequence of bytes, we got an expression that does not correspond to a known multisig action

Id : client.alpha.actionDeserialisation
Category : permanent

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

The byte sequence is not for the given multisig contract

When trying to deserialise an action from a sequence of bytes, we got an action for another multisig contract

Id : client.alpha.badDeserializedContract
Category : permanent

  { /* The byte sequence is not for the given multisig contract
       When trying to deserialise an action from a sequence of bytes, we
       got an action for another multisig contract */
    "kind": "permanent",
    "id": "client.alpha.badDeserializedContract",
    "received_expected": [ $alpha.contract_id, $alpha.contract_id ] }
  $alpha.contract_id:
    /* A contract handle
       A contract notation as given to an RPC or inside scripts. Can be a
       base58 implicit contract hash or a base58 originated contract hash. */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

Bad -endorsement-delay arg

invalid duration in -endorsement-delay

Id : client.alpha.badEndorsementDelayArg
Category : permanent

  { /* Bad -endorsement-delay arg
       invalid duration in -endorsement-delay */
    "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

  { /* Bad -max-priority arg
       invalid priority in -max-priority */
    "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

  { /* Bad -max-waiting-time arg
       invalid duration in -max-waiting-time */
    "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

  { /* Bad -minimal-fees arg
       invalid fee threshold in -fee-threshold */
    "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

  { /* Bad -preserved-levels arg
       invalid number of levels in -preserved-levels */
    "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

  { /* Bad Tez Arg
       Invalid ꜩ notation in parameter. */
    "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] ... ] }

The byte sequence is not a valid multisig action

When trying to deserialise an action from a sequence of bytes, we got an error

Id : client.alpha.bytesDeserialisation
Category : permanent

  { /* The byte sequence is not a valid multisig action
       When trying to deserialise an action from a sequence of bytes, we
       got an error */
    "kind": "permanent",
    "id": "client.alpha.bytesDeserialisation",
    "expr": /^[a-zA-Z0-9]+$/ }

The given contract is not a multisig contract because it has no script

A multisig command has referenced a scriptless smart contract instead of a multisig smart contract.

Id : client.alpha.contractHasNoScript
Category : permanent

  { /* The given contract is not a multisig contract because it has no
       script
       A multisig command has referenced a scriptless smart contract
       instead of a multisig smart contract. */
    "kind": "permanent",
    "id": "client.alpha.contractHasNoScript",
    "contract": $alpha.contract_id }
  $alpha.contract_id:
    /* A contract handle
       A contract notation as given to an RPC or inside scripts. Can be a
       base58 implicit contract hash or a base58 originated contract hash. */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

The given contract is not a multisig contract because it has no storage

A multisig command has referenced a smart contract without storage instead of a multisig smart contract.

Id : client.alpha.contractHasNoStorage
Category : permanent

  { /* The given contract is not a multisig contract because it has no
       storage
       A multisig command has referenced a smart contract without storage
       instead of a multisig smart contract. */
    "kind": "permanent",
    "id": "client.alpha.contractHasNoStorage",
    "contract": $alpha.contract_id }
  $alpha.contract_id:
    /* A contract handle
       A contract notation as given to an RPC or inside scripts. Can be a
       base58 implicit contract hash or a base58 originated contract hash. */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

The storage of the given contract is not of the shape expected for a multisig contract

A multisig command has referenced a smart contract whose storage is of a different shape than the expected one.

Id : client.alpha.contractHasUnexpectedStorage
Category : permanent

  { /* The storage of the given contract is not of the shape expected for a
       multisig contract
       A multisig command has referenced a smart contract whose storage is
       of a different shape than the expected one. */
    "kind": "permanent",
    "id": "client.alpha.contractHasUnexpectedStorage",
    "contract": $alpha.contract_id }
  $alpha.contract_id:
    /* A contract handle
       A contract notation as given to an RPC or inside scripts. Can be a
       base58 implicit contract hash or a base58 originated contract hash. */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

The given contract has no code

Attempt to get the code of a contract failed because it has nocode. No scriptless contract should remain.

Id : client.alpha.contractWithoutCode
Category : permanent

  { /* The given contract has no code
       Attempt to get the code of a contract failed because it has nocode.
       No scriptless contract should remain. */
    "kind": "permanent",
    "id": "client.alpha.contractWithoutCode",
    "contract": $alpha.contract_id }
  $alpha.contract_id:
    /* A contract handle
       A contract notation as given to an RPC or inside scripts. Can be a
       base58 implicit contract hash or a base58 originated contract hash. */
    $unistring
  $unistring:
    /* Universal string representation
       Either a plain UTF8 string, or a sequence of bytes for strings that
       contain invalid byte sequences. */
    string || { "invalid_utf8_string": [ integer ∈ [0, 255] ... ] }

The following signature did not match a public key in the given multisig contract

A signature was given for a multisig contract that matched none of the public keys of the contract signers

Id : client.alpha.invalidSignature
Category : permanent

  { /* The following signature did not match a public key in the given
       multisig contract
       A signature was given for a multisig contract that matched none of
       the public keys of the contract signers */
    "kind": "permanent",
    "id": "client.alpha.invalidSignature",
    "invalid_signature": $Signature }
  $Signature:
    /* A Ed25519, Secp256k1 or P256 signature (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 number of arguments to macro

A wrong number of arguments was provided to a macro

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

  { /* Wrong number of arguments to macro
       A wrong number of arguments was provided to a macro */
    "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

  { /* Macro expects a sequence
       An macro expects a sequence, but a sequence was not provided */
    "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

  { /* Unexpected annotation
       A macro had an annotation, but no annotation was permitted on this
       macro. */
    "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] ... ] }

Given threshold is not positive

A multisig threshold should be a positive number

Id : client.alpha.nonPositiveThreshold
Category : permanent

  { /* Given threshold is not positive
       A multisig threshold should be a positive number */
    "kind": "permanent",
    "id": "client.alpha.nonPositiveThreshold",
    "threshold": integer ∈ [-2^30-2, 2^30+2] }

The given contract is not one of the supported contracts

A multisig command has referenced a smart contract whose script is not one of the known multisig contract scripts.

Id : client.alpha.notASupportedMultisigContract
Category : permanent

  { /* The given contract is not one of the supported contracts
       A multisig command has referenced a smart contract whose script is
       not one of the known multisig contract scripts. */
    "kind": "permanent",
    "id": "client.alpha.notASupportedMultisigContract",
    "hash": $script_expr,
    "script": $micheline.alpha.michelson_v1.expression }
  $alpha.michelson.v1.primitives:
    "ADD"
    | "IF_NONE"
    | "SWAP"
    | "set"
    | "nat"
    | "CHECK_SIGNATURE"
    | "IF_LEFT"
    | "LAMBDA"
    | "Elt"
    | "CREATE_CONTRACT"
    | "NEG"
    | "big_map"
    | "map"
    | "or"
    | "BLAKE2B"
    | "bytes"
    | "SHA256"
    | "SET_DELEGATE"
    | "CONTRACT"
    | "LSL"
    | "SUB"
    | "IMPLICIT_ACCOUNT"
    | "PACK"
    | "list"
    | "PAIR"
    | "Right"
    | "contract"
    | "GT"
    | "LEFT"
    | "STEPS_TO_QUOTA"
    | "storage"
    | "TRANSFER_TOKENS"
    | "CDR"
    | "SLICE"
    | "PUSH"
    | "False"
    | "SHA512"
    | "CHAIN_ID"
    | "BALANCE"
    | "signature"
    | "DUG"
    | "SELF"
    | "EMPTY_BIG_MAP"
    | "LSR"
    | "OR"
    | "XOR"
    | "lambda"
    | "COMPARE"
    | "key"
    | "option"
    | "Unit"
    | "Some"
    | "UNPACK"
    | "NEQ"
    | "INT"
    | "pair"
    | "AMOUNT"
    | "DIP"
    | "ABS"
    | "ISNAT"
    | "EXEC"
    | "NOW"
    | "LOOP"
    | "chain_id"
    | "string"
    | "MEM"
    | "MAP"
    | "None"
    | "address"
    | "CONCAT"
    | "EMPTY_SET"
    | "MUL"
    | "LOOP_LEFT"
    | "timestamp"
    | "LT"
    | "UPDATE"
    | "DUP"
    | "SOURCE"
    | "mutez"
    | "SENDER"
    | "IF_CONS"
    | "RIGHT"
    | "CAR"
    | "CONS"
    | "LE"
    | "NONE"
    | "IF"
    | "SOME"
    | "GET"
    | "Left"
    | "CAST"
    | "int"
    | "SIZE"
    | "key_hash"
    | "unit"
    | "DROP"
    | "EMPTY_MAP"
    | "NIL"
    | "DIG"
    | "APPLY"
    | "bool"
    | "RENAME"
    | "operation"
    | "True"
    | "FAILWITH"
    | "parameter"
    | "HASH_KEY"
    | "EQ"
    | "NOT"
    | "UNIT"
    | "Pair"
    | "ADDRESS"
    | "EDIV"
    | "CREATE_ACCOUNT"
    | "GE"
    | "ITER"
    | "code"
    | "AND"
  $bignum:
    /* Big number
       Decimal representation of a big number */
    string
  $micheline.alpha.michelson_v1.expression:
    { /* Int */
      "int": $bignum }
    || { /* String */
         "string": $unistring }
    || { /* Bytes */
         "bytes": /^[a-zA-Z0-9]+$/ }
    || [ $micheline.alpha.michelson_v1.expression ... ]
    /* Sequence */
    || { /* Generic prim (any number of args with or without annot) */
         "prim": $alpha.michelson.v1.primitives,
         "args"?: [ $micheline.alpha.michelson_v1.expression ... ],
         "annots"?: [ string ... ] }
  $script_expr:
    /* A script expression 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] ... ] }

Not enough signatures were provided for this multisig action

To run an action on a multisig contract, you should provide at least as many signatures as indicated by the threshold stored in the multisig contract.

Id : client.alpha.notEnoughSignatures
Category : permanent

  { /* Not enough signatures were provided for this multisig action
       To run an action on a multisig contract, you should provide at least
       as many signatures as indicated by the threshold stored in the
       multisig contract. */
    "kind": "permanent",
    "id": "client.alpha.notEnoughSignatures",
    "threshold_nsigs":
      [ integer ∈ [-2^30-2, 2^30+2], integer ∈ [-2^30-2, 2^30+2] ] }

Given threshold is too high

The given threshold is higher than the number of keys, this would lead to a frozen multisig contract

Id : client.alpha.thresholdTooHigh
Category : permanent

  { /* Given threshold is too high
       The given threshold is higher than the number of keys, this would
       lead to a frozen multisig contract */
    "kind": "permanent",
    "id": "client.alpha.thresholdTooHigh",
    "received_expected":
      [ integer ∈ [-2^30-2, 2^30+2], integer ∈ [-2^30-2, 2^30+2] ] }

Non recoverable context

Cannot recover from a corrupted context.

Id : context.non_recoverable_context
Category : permanent

  { /* Non recoverable context
       Cannot recover from a corrupted context. */
    "kind": "permanent",
    "id": "context.non_recoverable_context",
    ... }

Cannot open file for context restoring

Id : context_dump.read.cannot_open
Category : permanent

  { /* Cannot open file for context restoring
        */
    "kind": "permanent",
    "id": "context_dump.read.cannot_open",
    "context_restore_cannot_open": $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] ... ] }

Suspicious file: data after end

Id : context_dump.read.suspicious
Category : permanent

  { /* Suspicious file: data after end
        */
    "kind": "permanent",
    "id": "context_dump.read.suspicious",
    "context_restore_suspicious": integer ∈ [-2^30-2, 2^30+2] }

Cannot open file for context dump

Id : context_dump.write.cannot_open
Category : permanent

  { /* Cannot open file for context dump
        */
    "kind": "permanent",
    "id": "context_dump.write.cannot_open",
    "context_dump_cannot_open": $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] ... ] }

Decoding error

Error while decoding a value

Id : decoding_error
Category : permanent

  { /* Decoding error
       Error while decoding a value */
    "kind": "permanent",
    "id": "decoding_error",
    "error":
      { /* Not enough data */
         }
      || { /* Extra bytes */
            }
      || { /* No case matched */
            }
      || integer ∈ [-2^30-2, 2^30+2]
      /* Unexpected tag */
      || integer ∈ [-2^30-2, 2^30+2]
      /* Invalid size */
      || { /* Invalid int */
           "min": integer ∈ [-2^30-2, 2^30+2],
           "v": integer ∈ [-2^30-2, 2^30+2],
           "max": integer ∈ [-2^30-2, 2^30+2] }
      || { /* Invalid float */
           "min": number,
           "v": number,
           "max": number }
      || { /* Trailing zero */
            }
      || { /* Size limit exceeded */
            }
      || { /* List too long */
            }
      || { /* Array too long */
            } }

Encoding error

Error while encoding a value for a socket

Id : encoding_error
Category : permanent

  { /* Encoding error
       Error while encoding a value for a socket */
    "kind": "permanent",
    "id": "encoding_error",
    "error":
      { /* Size limit exceeded */
         }
      || { /* No case matched */
            }
      || { /* Invalid int */
           "min": integer ∈ [-2^30-2, 2^30+2],
           "v": integer ∈ [-2^30-2, 2^30+2],
           "max": integer ∈ [-2^30-2, 2^30+2] }
      || { /* Invalid float */
           "min": number,
           "v": number,
           "max": number }
      || { /* Invalid bytes length */
           "expected": integer ∈ [-2^30-2, 2^30+2],
           "found": integer ∈ [-2^30-2, 2^30+2] }
      || { /* Invalid string length */
           "expected": integer ∈ [-2^30-2, 2^30+2],
           "found": integer ∈ [-2^30-2, 2^30+2] }
      || { /* Invalid natural */
            }
      || { /* List too long */
            }
      || { /* Array too long */
            } }

Exception

Exception safely wrapped in an error

Id : failure
Category : temporary

  { /* Exception
       Exception safely wrapped in an error */
    "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] ... ] }

Internal Event Sink: Wrong Activation URI

Activation of an Internal Event SINK with an URI failed

Id : internal-event-activation-error
Category : permanent

  /* Internal Event Sink: Wrong Activation URI
     Activation of an Internal Event SINK with an URI failed */
  { /* missing-uri-scheme */
    "kind": "permanent",
    "id": "internal-event-activation-error",
    "missing-uri-scheme": { "uri": $unistring } }
  || { /* non-registered-uri-scheme */
       "kind": "permanent",
       "id": "internal-event-activation-error",
       "non-registered-uri-scheme": { "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

  { /* Invalid depth argument
       The raw context extraction depth argument must be positive. */
    "kind": "permanent",
    "id": "raw_context.invalid_depth",
    "depth": integer ∈ [-2^30-2, 2^30+2] }

Unregistered protocol

No protocol was registered with the requested hash.

Id : registered_protocol.unregistered_protocol
Category : permanent

  { /* Unregistered protocol
       No protocol was registered with the requested hash. */
    "kind": "permanent",
    "id": "registered_protocol.unregistered_protocol",
    "protocol_hash": $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 Operation_hash

The fetch of a Operation_hash has been canceled

Id : requester.Operation_hash.fetch_canceled
Category : permanent

  { /* Canceled fetch of a Operation_hash
       The fetch of a Operation_hash has been canceled */
    "kind": "permanent",
    "id": "requester.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 : requester.Operation_hash.fetch_timeout
Category : permanent

  { /* Timed out fetch of a Operation_hash
       The fetch of a Operation_hash has timed out */
    "kind": "permanent",
    "id": "requester.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 requester

Id : requester.Operation_hash.missing
Category : permanent

  { /* Missing Operation_hash
       Some Operation_hash is missing from the requester */
    "kind": "permanent",
    "id": "requester.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 : requester.Protocol_hash.fetch_canceled
Category : permanent

  { /* Canceled fetch of a Protocol_hash
       The fetch of a Protocol_hash has been canceled */
    "kind": "permanent",
    "id": "requester.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 : requester.Protocol_hash.fetch_timeout
Category : permanent

  { /* Timed out fetch of a Protocol_hash
       The fetch of a Protocol_hash has timed out */
    "kind": "permanent",
    "id": "requester.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 requester

Id : requester.Protocol_hash.missing
Category : permanent

  { /* Missing Protocol_hash
       Some Protocol_hash is missing from the requester */
    "kind": "permanent",
    "id": "requester.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 : requester.block_hash.fetch_canceled
Category : permanent

  { /* Canceled fetch of a block_hash
       The fetch of a block_hash has been canceled */
    "kind": "permanent",
    "id": "requester.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 : requester.block_hash.fetch_timeout
Category : permanent

  { /* Timed out fetch of a block_hash
       The fetch of a block_hash has timed out */
    "kind": "permanent",
    "id": "requester.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 requester

Id : requester.block_hash.missing
Category : permanent

  { /* Missing block_hash
       Some block_hash is missing from the requester */
    "kind": "permanent",
    "id": "requester.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 operations

The fetch of a operations has been canceled

Id : requester.operations.fetch_canceled
Category : permanent

  { /* Canceled fetch of a operations
       The fetch of a operations has been canceled */
    "kind": "permanent",
    "id": "requester.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 : requester.operations.fetch_timeout
Category : permanent

  { /* Timed out fetch of a operations
       The fetch of a operations has timed out */
    "kind": "permanent",
    "id": "requester.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 requester

Id : requester.operations.missing
Category : permanent

  { /* Missing operations
       Some operations is missing from the requester */
    "kind": "permanent",
    "id": "requester.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] ... ] }

Unexpected size of decoded value

A decoded value comes from a buffer of unexpected size.

Id : socket.unexepcted_size_of_decoded_value
Category : permanent

  { /* Unexpected size of decoded value
       A decoded value comes from a buffer of unexpected size. */
    "kind": "permanent",
    "id": "socket.unexepcted_size_of_decoded_value" }

Block_contents_not_found

Block not found

Id : state.block.contents_not_found
Category : permanent

  { /* Block_contents_not_found
       Block not found */
    "kind": "permanent",
    "id": "state.block.contents_not_found",
    "block_contents_not_found": $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] ... ] }

Block_not_found

Block not found

Id : state.block.not_found
Category : permanent

  { /* Block_not_found
       Block not found */
    "kind": "permanent",
    "id": "state.block.not_found",
    "block_not_found": $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] ... ] }

Unexpected size of encoded value

An encoded value is not of the expected size.

Id : unexepcted_size_of_encoded_value
Category : permanent

  { /* Unexpected size of encoded value
       An encoded value is not of the expected size. */
    "kind": "permanent",
    "id": "unexepcted_size_of_encoded_value" }

Unix System_info failure

Unix System_info failure

Id : unix.system_info
Category : temporary

  { /* Unix System_info failure
       Unix System_info failure */
    "kind": "temporary",
    "id": "unix.system_info",
    "failure": $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

  { /* Unix error
       An unhandled unix exception */
    "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] ... ] }

Canceled

Canceled

Id : utils.Canceled
Category : temporary

  { /* Canceled
       Canceled */
    "kind": "temporary",
    "id": "utils.Canceled",
    ... }

Timeout

Timeout

Id : utils.Timeout
Category : temporary

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