Shared results from private inputs.
The Interfold is an open-source protocol for confidential coordination. Independent parties encrypt their inputs, a committee of ciphernodes runs the computation, and only the verified output is decrypted.
Key generation. The committee runs DKG and makes one shared public key.
Each path starts with a short overview and continues to step-by-step procedures.
What an E3 is, how the architecture fits together, and the cryptography that protects the inputs.
ConceptsBuildInstall the CLI, make a project from the template, and write an E3 program with its contracts and client.
DevelopersRun a ciphernodeSet up a node, bond FOLD, get tickets, and serve on committees. Upgrade, migrate, and exit safely.
OperatorsReferenceCLI commands, node configuration, contract addresses, and a glossary of protocol terms.
LookupThe Interfold contract records each E3 as it moves through its stages. Ciphernodes act at each stage and publish proofs on-chain.
- RequestedA requester pays the fee and asks for an E3.
- CommitteeFinalizedSortition selects a committee of ciphernodes.
- KeyPublishedThe committee runs DKG and publishes one public key.
- CiphertextReadyThe program runs over the encrypted inputs. The encrypted output goes on-chain.
- CompleteT + 1 key shares decrypt the output, and a proof confirms it.
No single ciphernode can decrypt. The protocol supports three committee sizes. Decryption needs T + 1 key shares.
The template starts a local chain, local ciphernodes, the servers, and a web client. See the Quick Start for prerequisites.
# Install the interfold CLI$ curl -fsSL https://raw.githubusercontent.com/theinterfold/interfold/main/install | bash# Make a project from the default template and start everything$ interfold init my-first-e3$ cd my-first-e3 && pnpm dev:all# The client is at http://localhost:3000