Protocol Alpha

This page documents the changes brought by protocol Alpha with respect to Lima (see Protocol naming).

The code can be found in directory src/proto_alpha of the master branch of Tezos.

New Environment Version (V8)

This protocol requires a different protocol environment version than Lima. It requires protocol environment V8, compared to V7 for Lima. (MR !6439)

Michelson opcodes for logical operations on bytes

Michelson opcodes AND, OR, XOR, NOT, LSL and LSR now support bytes. (MR !6055)

Zero Knowledge Rollups (ongoing)

Rollups supporting cryptographic proofs of correct execution. (MRs !6047, !6884)

Data Availability Layer (ongoing)

Distribution of rollup operations data off-chain. (MRs !6174, !6388, !6527, !6505, !6553, !6685, !6470, !6643, !6704, !6683, !6702, !6728, !5905, !6762, !6703, !6796, !6821, !6852, !6811)

RPC Changes

  • Add RPC to get contract’s balance of ticket with specified ticketer, content type, and content. Can be used for both implicit and originated contracts. POST /chains/<chain_id>/blocks/<block_id>/context/contracts/<contract_id>/ticket_balance. (MR !6488)

  • Add RPC to get the complete list of tickets owned by a given contract by scanning the contract’s storage. Can only be used for originated contracts. POST /chains/<chain_id>/blocks/<block_id>/context/contracts/<contract_id>/all_ticket_balances. (MR !6712)

Minor Changes

  • Give a positive gas cost to the BALANCE instruction. (MR !6564)

  • Enable transferring tickets between implicit accounts. (MR !6108)


  • Update migration for Lima. (MR !6504)

  • Introduce local context access APIs to the indexed subcontext for optimized accesses with locality. (MR !5922)

  • Optimized cleaning of implicit contract with 0 balance using local context accesses (MR !5922)

  • Improve ex_ticket_size. (MR !6209)

  • Clean up validation code. (MR !6526)

  • Remove Script_typed_ir.comparable_option_t. (MR !6513)

  • Restrict functions to originated contracts. (MR !6198)

  • Minor fixes for Consensus key. (MR !6567)

  • Enrich execution traces with “just consumed gas”. (MR !6565)

  • Fix ignored values. (MRs !6577, !6579, !6583)

  • Separate Generated_cost module. (MR !6253)

  • Remove unused parameter in gas model for SPLIT_TICKET. (MR !6489)

  • Remove function for computing baking rights without cache update. (MR !6605)

  • Move the definition of boxed_list to Script_list. (MR !5954)

  • Make counter an abstract type instead of an alias of Z.t. (MRs !6647, !6648)

  • Move interpreter logging to the plugin. (MR !5778)

  • Use let-bindings in ticket-accounting module. (MR !6770)

  • Use condensed syntax modules in protocol. (MR !6844)