Build a Stoffel application
Stoffel is a programming and runtime stack for the private computation inside an application. You write the private workflow in StoffelLang, compile it to.stflb bytecode, run it through local MPC during development, and call it from Rust application code with the SDK.
Use these docs to:
- install the
stoffelCLI; - create a project;
- check and build
.stflbbytecode; - run local MPC on your machine;
- call a Stoffel program from Rust;
- understand how shares, parties, thresholds, and openings fit into the application boundary.
The private-computation boundary
Most application stacks encrypt data at rest and in transit, then decrypt it so the app can run its logic. That makes sensitive user context part of ordinary application state: available to services, logs, analytics, support tools, operators, and downstream integrations unless every layer is carefully constrained. Stoffel gives you a different boundary for the sensitive part of the workflow. Private values enter the computation as shares. The program computes over those shares. Only explicit openings or client outputs leave the boundary.How the stack fits together

| Layer | Developer-facing surface | What it does |
|---|---|---|
| App integration | Rust SDK / generated bindings | Connects product code to Stoffel programs, inputs, outputs, local checks, and local MPC runs. |
| Language + CLI | .stfl source / stoffel command | Checks source, builds bytecode, runs project workflows, and drives local development loops. |
| Bytecode + VM | .stflb / register VM | Loads the compiled artifact, separates clear values from shares, and executes builtins and runtime hooks. |
| MPC runtime | coordinator / parties / outputs | Runs secret-shared execution and opens or sends only the outputs the program authorizes. |
Choose a path
| If you want to… | Start here |
|---|---|
| Install Stoffel | Installation |
| Create and run a project | Quick start |
| Learn the daily CLI loop | Basic usage |
| Build a first private computation | Your first MPC project |
| Call Stoffel from an app | Rust SDK overview |
| Understand the runtime layers | System architecture |
Related reading
- Data in Use Protection: How MPC Keeps Inputs Hidden from the Cloud: a longer explanation of the compute-time privacy gap MPC is designed to close.
- Is Your Analytics Platform a Security Liability? What MXP 2026 Taught Me: a product example of how centralizing sensitive behavioral data creates exposure.