Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
23a9bec
docs: update developer docs for Interfold rebrand and terminology
eccogrinder Mar 6, 2026
3a0af93
chore(docs): clarify E3 definition and cryptographic primitives
eccogrinder Mar 6, 2026
87762f9
chore(docs): clarify when to use E3s
eccogrinder Mar 6, 2026
318af93
chore(docs): update architecture documentation for Interfold protocol
eccogrinder Mar 6, 2026
7e62450
chore(docs): Enclave -> Interfold quick update
eccogrinder Mar 7, 2026
5b58d29
chore(docs): fix computation flow terminology and typos
eccogrinder Mar 7, 2026
c029e8f
chore(docs): refine wording and execution semantics in use cases
eccogrinder Mar 7, 2026
07efe55
chore(docs): fix typos and wording in Interfold smart contract guide
eccogrinder Mar 7, 2026
a80ccfd
chore(docs): refine wording in best practices guide
eccogrinder Mar 7, 2026
2f0cd53
chore(docs): clarify Interfold CLI installation instructions
eccogrinder Mar 7, 2026
89ff80d
chore(docs): refine wording in quick start guide
eccogrinder Mar 7, 2026
5542121
chore(docs): refine wording and formatting in hello world tutorial
eccogrinder Mar 7, 2026
95165f3
chore(docs): fix RISC Zero naming and minor wording in project templa…
eccogrinder Mar 7, 2026
bf6e671
chore(docs): Rename Enclave SDK to Interfold SDK in documentation
eccogrinder Mar 7, 2026
ce9c6ab
chore(docs): update documentation to reflect Interfold SDK changes
eccogrinder Mar 7, 2026
4ce8611
chore(docs): update description for Noir circuits documentation
eccogrinder Mar 7, 2026
845e45b
chore(docs): Update E3 description and correct naming convention
eccogrinder Mar 7, 2026
b7a0bf9
chore(docs): refactor documentation for Secure Process terminology
eccogrinder Mar 7, 2026
50e351e
chore(docs): refine language and improve clarity in E3 contract doc
eccogrinder Mar 7, 2026
68c21d5
chore(docs): refactor Compute Provider documentation for Interfold
eccogrinder Mar 7, 2026
b2fa9bf
chore(docs): replace 'Enclave' with 'Interfold' in documentation
eccogrinder Mar 7, 2026
bec33cc
chore(docs): revise documentation for Interfold network terminology
eccogrinder Mar 7, 2026
68c7d40
chore(docs): update documentation for Interfold CLI
eccogrinder Mar 7, 2026
f7aa8eb
chore(docs): fix ticket price and fee token terminology
eccogrinder Mar 7, 2026
9ab25dd
chore(docs): replace 'Enclave' with 'Interfold' in documentation
eccogrinder Mar 7, 2026
ff193c0
chore(docs): revise setup guide for CRISP with clarity improvements
eccogrinder Mar 7, 2026
53a0933
chore(docs): update wording for clarity in E3 Program section
eccogrinder Mar 7, 2026
2060567
chore(whitepaper): revise title and description in whitepaper
eccogrinder Mar 7, 2026
2b576c1
chore(docs): update titles in _meta.json for consistency
eccogrinder Mar 7, 2026
0bb9c97
chore(docs): update introduction with note on naming transition
eccogrinder Mar 9, 2026
cede368
Update theme.config.jsx
eccogrinder Mar 10, 2026
e004210
chore(docs): Update README.md
eccogrinder Mar 10, 2026
629aad6
Add files via upload
eccogrinder Mar 10, 2026
6539f4d
chores(docs): Update README.md
eccogrinder Mar 10, 2026
f361e9b
chore(docs): update README.md
eccogrinder Mar 10, 2026
adc7519
Merge branch 'main' into docs/interfold-rebrand
hmzakhalid Mar 10, 2026
95078eb
chore: update docs
hmzakhalid Mar 10, 2026
e100c95
chore: update docs
hmzakhalid Mar 10, 2026
ceeda6c
chore: update docs
hmzakhalid Mar 10, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 25 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,30 +1,39 @@
<div align="center">
<picture>
<img src="./enclave.png" alt="Enclave" width="100%">
<img src="./interfold-meta.jpg" alt="The Interfold" width="100%">
</picture>

[![Docs][docs-badge]][docs] [![Github Actions][gha-badge]][gha] [![Hardhat][hardhat-badge]][hardhat]
[![License: LGPL v3][license-badge]][license]

</div>

# Enclave
# The Interfold

This is the monorepo for Enclave, an open-source protocol for Collaborative Confidential Compute.
Enclave leverages the combination of Fully Homomorphic Encryption (FHE), Zero Knowledge Proofs
(ZKPs), and Multi-Party Computation (MPC) to enable Encrypted Execution Environments (E3) with
> **Note:** The Interfold was previously known as **Enclave**.
> Many repositories, packages, and CLI tools still use the `enclave` name while the project
> transitions.

This is the monorepo for **The Interfold**, an open-source protocol for confidential coordination.

The Interfold leverages a combination of Fully Homomorphic Encryption (FHE), Zero-Knowledge Proofs
(ZKPs), and Multi-Party Computation (MPC) to enable Encrypted Execution Environments (E3), with
integrity and privacy guarantees rooted in cryptography and economics, rather than hardware and
attestations.

## Documentation

Full documentation is available at: https://docs.theinterfold.com

## Quick Start

Follow instructions in the [quick start][quick-start] section of the [Enclave docs][docs].
Follow instructions in the [quick start][quick-start] section of the documentation.

See the [CRISP example][crisp] for a fully functioning example application.

## Getting Help

Join the Enclave [Telegram group][telegram].
Join the community [Telegram group][telegram].

## Contributing

Expand Down Expand Up @@ -193,8 +202,9 @@ This workspace's minimum supported rustc version is 1.86.0.

## Architecture

Enclave employs a modular architecture involving numerous actors and participants. The sequence
diagram below offers a high-level overview of the protocol, but necessarily omits most detail.
The Interfold employs a modular architecture involving numerous actors and participants. The
sequence diagram below offers a high-level overview of the protocol, but necessarily omits most
detail.

```mermaid
sequenceDiagram
Expand Down Expand Up @@ -242,8 +252,8 @@ sequenceDiagram

### Overview

Enclave uses a unified versioning strategy where all packages (Rust crates and npm packages) share
the same version number. Releases are triggered by git tags and follow semantic versioning.
The Interfold uses a unified versioning strategy where all packages (Rust crates and npm packages)
share the same version number. Releases are triggered by git tags and follow semantic versioning.

### Quick Release

Expand Down Expand Up @@ -343,7 +353,7 @@ Once the tag is pushed, GitHub Actions automatically:

### Version Format

Enclave follows [Semantic Versioning](https://semver.org/):
The Interfold follows [Semantic Versioning](https://semver.org/):

- **Stable**: `v1.0.0` - Production ready
- **Pre-release**: `v1.0.0-beta.1` - Testing/preview versions
Expand Down Expand Up @@ -476,9 +486,9 @@ This repo created under the [LGPL-3.0+ license](LICENSE).
[hardhat-badge]: https://img.shields.io/badge/Built%20with-Hardhat-FFDB1C.svg
[license]: https://opensource.org/license/lgpl-3-0
[license-badge]: https://img.shields.io/badge/License-LGPLv3.0-blue.svg
[docs]: https://docs.enclave.gg
[docs]: https://docs.theinterfold.com
[docs-badge]: https://img.shields.io/badge/Documentation-blue.svg
[quick-start]: https://docs.enclave.gg/quick-start
[crisp]: https://docs.enclave.gg/CRISP/introduction
[quick-start]: https://docs.theinterfold.com/quick-start
[crisp]: https://docs.theinterfold.com/CRISP/introduction
[telegram]: https://t.me/+raYAZgrwgOw2ODJh
[contributing]: CONTRIBUTING.md
6 changes: 3 additions & 3 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[![Next.js][next-badge]][next] [![Nextra][nextra-badge]][nextra]
[![License: LGPL-3.0][license-badge]][license]

# Enclave Documentation
# The Interfold Documentation

[next]: https://nextjs.org/
[next-badge]: https://img.shields.io/badge/Built%20with-Next.js-000000.svg
Expand All @@ -10,8 +10,8 @@
[license]: https://opensource.org/license/lgpl-3-0
[license-badge]: https://img.shields.io/badge/License-LGPLv3.0-blue.svg

This is the documentation site for Enclave, built with Next.js and Nextra. The documentation
provides comprehensive guides, API references, and explanations of the Enclave protocol.
This is the documentation site for the Interfold, built with Next.js and Nextra. The documentation
provides comprehensive guides, API references, and explanations of The Interfold protocol.
Comment thread
hmzakhalid marked this conversation as resolved.

## Development

Expand Down
10 changes: 5 additions & 5 deletions docs/pages/CRISP/introduction.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ description: 'Coercion-Resistant Impartial Selection Protocol - A complete E3 pr

CRISP (Coercion-Resistant Impartial Selection Protocol) is a secure protocol for digital
decision-making, leveraging fully homomorphic encryption (FHE) and distributed threshold
cryptography (DTC) to enable verifiable secret ballots. Built with Enclave, CRISP safeguards
cryptography (DTC) to enable verifiable secret ballots. Built with Interfold, CRISP safeguards
democratic systems and decision-making applications against coercion, manipulation, and other
vulnerabilities.

Expand All @@ -29,7 +29,7 @@ coercion. CRISP mitigates these risks through:
## Project Structure

CRISP, whose implementation is available in the
[Enclave repository](https://github.com/gnosisguild/enclave/tree/main/examples/CRISP), follows a
[Interfold repository](https://github.com/gnosisguild/enclave/tree/main/examples/CRISP), follows a
modern structure with clear separation of concerns:

```
Expand All @@ -50,7 +50,7 @@ CRISP/
### Client Application

The [client](https://github.com/gnosisguild/enclave/tree/main/examples/CRISP/client) is a React
application built with TypeScript that provides a voting interface. It uses the CRISP
application built with TypeScript that provides the user a voting interface. It uses the CRISP
[SDK](/CRISP/introduction#javascript-sdk) and [server](/CRISP/introduction#coordination-server)
endpoints to deliver the following capabilities:

Expand Down Expand Up @@ -148,5 +148,5 @@ To get started with CRISP:
2. **[Running E3](/CRISP/running-e3)**: Deploy and run the complete CRISP protocol
3. **Study the code**: Examine the implementation for your own E3 programs

CRISP demonstrates the full potential of E3 programs for privacy-preserving applications, providing
a complete reference implementation for developers building with Enclave.
CRISP demonstrates how E3 programs can be used for privacy-preserving applications, providing a
complete reference implementation for developers building with the Interfold.
4 changes: 2 additions & 2 deletions docs/pages/CRISP/running-e3.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ import { Steps } from 'nextra/components'

# Running an E3 Program

In this section, we will go through all the steps to run an E3 Program using CRISP. We will run a
complete voting round of CRISP and do the following:
In this section, we will walk through how to run an E3 Program using CRISP. We will run a complete
voting round of CRISP and do the following:

- Request an E3 Voting Round
- Submit votes through the web interface
Expand Down
12 changes: 6 additions & 6 deletions docs/pages/CRISP/setup.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -7,18 +7,18 @@ import { Steps } from 'nextra/components'

# Getting Started with CRISP

This guide will walk you through the steps to set up and run CRISP locally. CRISP is a complete
example of an E3 Program, built with a modern architecture that includes smart contracts,
zero-knowledge circuits, frontend applications, and secure computation components.
This guide will walk you through the steps to set up and run CRISP locally. CRISP is a full
reference implementation of an E3 Program, built with a modern architecture that includes smart
contracts, zero-knowledge circuits, frontend applications, and secure computation components.

## Prerequisites

Before getting started, ensure you have installed:

- [Rust](https://rust-lang.org/tools/install/)
- [Foundry](https://getfoundry.sh)
- [RiscZero](https://dev.risczero.com/api/zkvm/install)
- [NodeJS](https://nodejs.org/en/download)
- [RISC Zero](https://dev.risczero.com/api/zkvm/install)
- [Node.js](https://nodejs.org/en/download)
- [pnpm](https://pnpm.io)
- [MetaMask](https://metamask.io)
- Noir toolchain ([`nargo`](https://noir-lang.org/docs/getting_started/quick_start),
Expand All @@ -41,7 +41,7 @@ pnpm dev:up
1. Starts the Hardhat node in `packages/crisp-contracts`
2. Deploys all contracts (Enclave, CRISPProgram, verifiers, registries) via
`scripts/crisp_deploy.sh`
3. Starts ciphernodes using `enclave.config.yaml` via `scripts/dev_cipher.sh`
3. Starts Ciphernodes using `enclave.config.yaml` via `scripts/dev_cipher.sh`
4. Launches the program server via `scripts/dev_program.sh`
5. Starts the coordination server (Rust) via `scripts/dev_server.sh` on port `4000`
6. Starts the React client via `scripts/dev_client.sh` on port `3000`
Expand Down
6 changes: 3 additions & 3 deletions docs/pages/_meta.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
"title": "Use Cases"
},
"building-with-enclave": {
"title": "Building with Enclave"
"title": "Building with Interfold"
},
"best-practices": {
"title": "Best Practices"
Expand All @@ -49,7 +49,7 @@
"title": "Project Template"
},
"sdk": {
"title": "Enclave SDK"
"title": "Interfold SDK"
},
"setting-up-server": {
"title": "Setting Up the Server"
Expand Down Expand Up @@ -98,6 +98,6 @@
"title": "Reference"
},
"whitepaper": {
"title": "White Paper"
"title": "Whitepaper"
Comment thread
hmzakhalid marked this conversation as resolved.
}
}
40 changes: 20 additions & 20 deletions docs/pages/architecture-overview.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
This section provides a breakdown of Enclave’s architecture, focusing on the essential components
and workflows to help you implement it effectively.
This section provides a breakdown of the Interfold protocol architecture, focusing on the core
components and workflows involved in executing E3 computations.

## Core Components

Expand All @@ -9,23 +9,23 @@ and workflows to help you implement it effectively.

- Initiate and define computation requests, including parameters and requirements
- Retrieve and utilize final computation results
- Can be applications or other entities
- Can be applications, protocols, or other systems

#### Data Providers

- Supply private input data required for computation
- Are responsible for encrypting data before submission
- Supply private inputs required for computation
- Encrypt their inputs before submission
- Can be end users, systems, or other applications

#### Ciphernodes

- Provide cryptographic services as staked network nodes
- Handle distributed key generation and decryption operations
- Form Ciphernode Committees (CiCos) for specific computations
- Provide distributed cryptographic services as staked network operators
- Perform distributed key generation and threshold decryption
- Form Ciphernode Committees (CiCos) for individual computations

### 2. Smart Contracts

#### Enclave Contract
#### Interfold Contract

- Central coordinator of the E3 ecosystem
- Manages computation requests and lifecycle
Expand All @@ -35,15 +35,15 @@ and workflows to help you implement it effectively.

#### E3 Program (E3P) Contract

- Defines computation logic
- Defines computation logic for the E3
- Validates program parameters
- Verifies computation proofs
- Interfaces with the Enclave contract
- Interfaces with the Interfold contract
- Ensures correct execution of the E3P
- Validates and sanitizes input data
- this might involve verifying a Zero-Knowledge Proof (ZKP) to ensure data integrity and
- this might involve verifying a Zero-Knowledge Proof (ZKP) to ensure input integrity and
authenticity
- prevents malicious input injection that could compromise the computation
- prevents malformed or malicious input injection that could compromise the computation

#### Decryption Verifier Contract

Expand All @@ -56,18 +56,18 @@ and workflows to help you implement it effectively.
#### Compute Provider (CP)

- Runs the E3 Program over the published inputs
- Reports computation reults of the E3P to the Enclave contract
- Reports computation results of the E3P to the Interfold contract

Enclave supports multiple CPs with a variety of different trust, scalability, and cost properties.
The Interfold supports multiple CPs with different trust, scalability, and cost tradeoffs.

**Supported systems:**

1. **Verifiable Systems**
1. **Verifiable systems**
- [RISC Zero zkVM](https://www.risczero.com/)
- [Succint SP1](https://docs.succinct.xyz/) (coming soon)
- [Succinct SP1](https://docs.succinct.xyz/) (coming soon)
- [Jolt](https://jolt.a16zcrypto.com/) (coming soon)

2. **Oracle-Based Systems**
2. **Oracle-based systems**
- zkTLS VMs (coming soon)
- Committee-based oracles (coming soon)
- Game theory-based oracles (coming soon)
Expand All @@ -91,6 +91,6 @@ The following steps outline how these components interact in a typical computati

As a developer, you'll interact with:

- **Enclave's Smart Contracts**: To submit requests and retrieve results.
- **Compute Providers**: To run your E3P using verfiable or oracle-based systems.
- **Interfold smart contracts**: To submit computation requests and retrieve results.
- **Compute Providers**: To run your E3P using verifiable or oracle-based systems.
- **E3 Smart Contracts**: To verify the inputs and computation result.
10 changes: 6 additions & 4 deletions docs/pages/best-practices.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,14 @@ title: 'Best Practices'
# Design & Operations Best Practices

Competitor docs such as Fhenix's "Key Considerations" and Ritual's architecture primers emphasize
clear guardrails for confidential compute. This guide distills the equivalent playbook for Enclave.
clear guardrails for confidential compute. This guide distills the equivalent playbook for the
Interfold.
Comment thread
hmzakhalid marked this conversation as resolved.

## Parameter Strategy

- **Thresholds**: Choose `threshold = [t, n]` so that `t` withstands your adversary model while `n`
matches available Ciphernodes. Higher thresholds improve collusion resistance but increase fees.
matches the available Ciphernodes. Higher thresholds improve collusion resistance but increase
fees.
- **Timing Windows**: Ensure `startWindow` leaves enough time for committee selection (a few blocks)
and `duration` matches the longest credible compute time plus buffer.
- **Custom Params**: Use `customParams` in `E3RequestParams` to tag jurisdiction, use case, or
Expand All @@ -29,11 +31,11 @@ clear guardrails for confidential compute. This guide distills the equivalent pl
## Secure Process & Compute Providers

- **Determinism**: Reconstruct the on-chain Merkle root inside the Secure Process, then assert
equality prior to any heavy math.
equality prior to any heavy computation.
- **Proof hooks**: When using RISC Zero or other verifiable CPs, keep witness blobs small and
reserve `computeProviderParams` for runtime toggles (precision, chunk size, etc.).
- **Failover**: Decide how your app reacts if `CiphertextOutputPublished` never arrives—e.g., allow
a guardian to cancel the round and refund deposits.
a guardian actor to cancel the round and refund deposits.

## Key Material & Ciphernodes

Expand Down
Loading
Loading