---
name: eez-docs
description: Find and explain the official EEZ core protocol documentation (docs.eez.io) for synchronous cross-rollup calls — execution entries, postAndVerifyBatch, loadExecutionTable, executeIncomingCrossChainCall, static entries and STATICCALLs, call and rolling hashes, cross-chain proxies, multi-prover verification, events and execution reconstruction, call-pattern limits, caveats, integration boundaries, and the blob message format. Use when building on EEZ, integrating or reviewing EEZ code, or answering EEZ protocol questions.
---

# EEZ Docs

Use the documentation for the reader's task. Read the page before answering or writing code. Do not guess function signatures, struct fields, error names, hash derivations, thresholds, deployment addresses, rollup IDs or chain IDs. If a page doesn't give a value, say so instead of filling one in.

This skill is read-only. It retrieves and explains documentation. It must not sign messages, send transactions, fund wallets or change keys. For live tooling (deploying proxies, executing cross-chain calls, following execution across L1 and L2), point the reader to [eez.dev](https://eez.dev).

## Choose a page

Each page below has a Markdown copy: add `.md` to its URL.

| Page | What it covers |
| --- | --- |
| [Walkthrough](https://docs.eez.io/eez-walkthrough.md) | Follow one call through preparation, proof verification and local execution, then tables, hashes, rollback, ETH accounting and system authority. |
| [Specification: Core protocol](https://docs.eez.io/core-protocol-spec.md) | How the EEZ contracts post, verify and execute cross-chain entries: data model, core functions, call and rolling hashes, entry lifecycle, invariants. |
| [Specification: Execution entries](https://docs.eez.io/execution-entry-spec.md) | How to build execution entries for L1 (postAndVerifyBatch) and L2 (loadExecutionTable / executeIncomingCrossChainCall). |
| [Specification: Static entries](https://docs.eez.io/static-entry.md) | Read-only cross-chain calls (STATICCALLs) and the resolution of reverting mutable reentrant calls: routing, position keys, resolution and root pins. |
| [Specification: Multi-prover](https://docs.eez.io/multi-prover-spec.md) | EEZ verifies batches with multiple proof systems. Each rollup's manager defines its accepted verifiers, verification keys and threshold. |
| [Specification: Events and reconstruction](https://docs.eez.io/events.md) | Event signatures, ordering, rollback behavior and reconstruction from committed receipts and execution inputs, for the current contracts. |
| [Limits and boundaries: Call-pattern limits](https://docs.eez.io/call-pattern-limits.md) | Which call patterns the current tables support, and where CALL, STATICCALL and revert traces lack a faithful table encoding or exceed retry budgets. |
| [Limits and boundaries: Caveats](https://docs.eez.io/caveats.md) | Caveats of the current contracts: calling through cross-chain proxies, delivery and execution semantics, deployment and trust assumptions, edge cases. |
| [Limits and boundaries: Integration boundaries](https://docs.eez.io/integration-boundaries.md) | Support limits and external obligations outside the contracts: builder and prover, L2 funding, deployment and proof domains, event consumers. |
| [Blobs: Message format](https://docs.eez.io/blobs/blob-format-spec.md) | A binary format for publishing rollup activity as one stream of messages: operations, cross-rollup calls, results, reverts and transaction boundaries. |
| [Blobs: U256 compressed codec](https://docs.eez.io/blobs/u256-compressed-codec.md) | A self-describing, byte-oriented variable-length codec for any 256-bit EVM word, with a literal form and a scientific (mantissa × base^exp) form. |
| [Blobs: Future optimizations](https://docs.eez.io/blobs/future-optimizations.md) | Deferred size optimizations for the blob message format: compressed rollup ids, compressed u256 values and dense blob packing. |

## Common tasks

| Task | Read |
| --- | --- |
| Get oriented on how one cross-rollup call works | [Walkthrough](https://docs.eez.io/eez-walkthrough.md) |
| Build execution entries for L1 `postAndVerifyBatch` or L2 `loadExecutionTable` / `executeIncomingCrossChainCall` | [Execution entries](https://docs.eez.io/execution-entry-spec.md), [Core protocol](https://docs.eez.io/core-protocol-spec.md) |
| Compute or check call hashes and rolling hashes | [Core protocol](https://docs.eez.io/core-protocol-spec.md) |
| Handle a read-only cross-chain call (STATICCALL) or a reverting reentrant call | [Static entries](https://docs.eez.io/static-entry.md) |
| Check whether a call pattern is supported today | [Call-pattern limits](https://docs.eez.io/call-pattern-limits.md), [Caveats](https://docs.eez.io/caveats.md) |
| Configure proof systems, verification keys or the threshold for a rollup | [Multi-prover](https://docs.eez.io/multi-prover-spec.md) |
| Index events or reconstruct execution from receipts | [Events and reconstruction](https://docs.eez.io/events.md) |
| Find what a builder, prover or operator must provide outside the contracts | [Integration boundaries](https://docs.eez.io/integration-boundaries.md) |
| Encode or decode the blob message stream | [Message format](https://docs.eez.io/blobs/blob-format-spec.md), [U256 compressed codec](https://docs.eez.io/blobs/u256-compressed-codec.md) |

## Find and read the evidence

- `https://docs.eez.io/llms.txt` lists every page with its description. `https://docs.eez.io/llms-full.txt` is the whole site in one file (large; prefer single pages).
- The pages are synced from [`eez-core-protocol/docs`](https://github.com/eez-association/eez-core-protocol/tree/143d87e/docs) at commit `143d87e`. For a contract-level detail the pages don't settle, read the Solidity at that commit: [`src/EEZ.sol`](https://github.com/eez-association/eez-core-protocol/blob/143d87e/src/EEZ.sol) (L1), [`src/L2/EEZL2.sol`](https://github.com/eez-association/eez-core-protocol/blob/143d87e/src/L2/EEZL2.sol) (L2) and [`src/interfaces/`](https://github.com/eez-association/eez-core-protocol/tree/143d87e/src/interfaces). If the source and a page disagree, the source wins; say which one you relied on.
- L1 and L2 use different structs and names for the same idea. Check which chain a page section describes before reusing a field name on the other side.
- Read [Call-pattern limits](https://docs.eez.io/call-pattern-limits.md) and [Caveats](https://docs.eez.io/caveats.md) before telling a reader that a call pattern works.
