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

# Introduction

## Introduction to Modulus

Modulus zkFOL is a layer one blockchain where the contract is the specification: applications are written as first-order logic predicates, and a state transition occurs only when it can be proved to satisfy them.

**What is Modulus?**

Every smart contract platform separates what a contract is meant to do from the code that does it. The specification is a document, the implementation is a program, and the difference between them is where value is lost. Audits, testing and verification tooling all exist to narrow a gap the architecture creates by construction, because the architecture requires two artifacts. Modulus removes the gap.&#x20;

On Modulus an application is a set of logical conditions, and a transaction is admitted only with a proof that those conditions hold. There is no bytecode, no virtual machine and no execution layer between the statement and its enforcement. Nothing executes on chain; conditions are checked.&#x20;

Contracts are written in zkFOL, a first-order logic language and compiler built for this system from the beginning. zkFOL compiles logic directly to polynomial semantics, and Modulus is the chain that consumes the result: the predicate occupies the slot a contract occupies elsewhere, and zkFOL proofs occupy the validator slot.&#x20;

Three properties follow structurally rather than through diligence. A contract cannot diverge from its specification, because there is one artifact. A defect produces a refusal rather than a loss: a transition that cannot be proved does not occur, which converts a class of safety failures into liveness failures. And fees stop depending on how much the logic does, because a predicate has a fixed size and there is nothing to meter, so the cost of a given transaction is predictable in units of the network's own asset. Each of these is developed on its own page.

To jump straight into the codebase, visit our Github at: <https://github.com/zkFOL/zkfol>
