> For the complete documentation index, see [llms.txt](https://docs.essential.builders/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.essential.builders/protocol-overview/overview.md).

# Overview

Essential is the first declarative blockchain protocol. The protocol implements the declarative principles described in the above sections in a decentralized, permissionless system, architected around the idea of blocks as pure state mutations.&#x20;

State mutations originate as solutions, provided by *solvers*. A solver may be a third-party entity which competes to find optimal solutions. It may also be simply a centralized program (e.g. a server, or a front-end app or wallet) which serves solutions for a specific application. Note than unlike solutions in an imperative system (which take the form of a series of ordered transactions), solutions in a declarative system are simply a list of state mutations.&#x20;

Solutions become state through the process of *validation.* **A solution is considered valid when it satisfies all the contracts whose state it mutates.**&#x20;

Valid solutions then become candidates for inclusion in the next block. This occurs through an out-of-protocol mechanism, whereby solvers bid for inclusion to a solution aggregator (analagous to a block builder). Bids for inclusion are themselves expressed as constraints on state.  Note that the protocol itself is concerned only with the *validity* of solutions. *Optimality* is achieved through auction dynamics, both at the application and solution aggregation level.&#x20;

In the next section we shall see how contracts are structured to express conditions over how their state can be mutated. &#x20;
