• Secure computation

Data in Use Protection

• Runtime Engine

Build MPC applications without the cryptography PhD

Build MPC applications without the cryptography PhD

Secret-shared computation means inputs stay private between parties, but the answers don't. Write in a Python-like language, compile to bytecode, let the VM handle the protocols.
# StoffelLang - looks like Python, compiles to MPC
from stoffel import secret, public, reveal

# Inputs from different parties - stay private
secret a = party_1.input()  
secret b = party_2.input()

# Computation on secret-shared values
secret sum_result = a + b
secret product_result = a * b

# Only reveal the agreed results
public final_sum = reveal(sum_result)
public final_product = reveal(product_result)

# Raw inputs never existed in cleartext
# Each party only sees the final answers

Why Stoffel VM?

A register-based virtual machine built specifically for multi-party computation. It executes programs where sensitive data stays secret-shared, and only agreed results leave—no plaintext exposure, no central honeypot.

Inputs stay private

Secret sharing splits data into useless-alone pieces. The VM computes on shares, never plaintext.

Answers only

Raw data and intermediate steps never exist in cleartext. No "we deleted it after" promises.

Production-grade

Register-based architecture with deterministic execution, p50/p95/p99 observability, and protocol-aware scheduling.

Built for real workloads

Separate clear/secret registers

Public data in clear registers, secret-shared values in secret registers. The architecture enforces the separation.

Deterministic execution

Same inputs produce same outputs every time. Reproducible runs for debugging and compliance auditing.

Deep observability

Full execution traces, latency percentiles, and instruction-level hooks. Actually debuggable MPC.

How it actually works

  1. Write in StoffelLang

Python-style syntax with explicit secret and public types. You focus on business logic, not protocol implementation.

  1. Compile to bytecode

The compiler generates VM-compatible bytecode with separate handling for clear and secret values.

  1. Execute with MPC

The VM runs your program with secret values split into shares across parties. Computation happens on shares—no plaintext ever exists.

© 2025 Stoffel. All rights reserved.

© 2025 Stoffel. All rights reserved.

© 2025 Stoffel. All rights reserved.