Write the Computation You Want
Describe analytics, ML steps, matching, or key ops. Mark what can be revealed—we handle the hard parts.
Write analytics
Build ML pipelines
Handle secrets
Local testing
# Secret Value Example - Stoffel MPC Program # Takes user age and salary as private inputs # Calculate eligibility score based on age and salary proc calculate_eligibility(age: secret int64, salary: secret int64): secret int64 = # Age factor: people between 25-65 get higher scores let age_score = age * 2 # Salary factor: higher salary increases eligibility let salary_score = salary / 1000 # Combined eligibility score let total_score = age_score + salary_score return total_score # Determine risk category based on inputs proc assess_risk_category(age: secret int64, salary: secret int64): secret int64 = let base_risk = 100 let age_adjustment = age / 2 let salary_adjustment = salary / 10000 let final_risk = base_risk - age_adjustment + salary_adjustment return final_risk # Main computation function proc main() = # These would be secret inputs from different parties in real MPC let user_age: secret int64 = 35 # Age input let salary: secret int64 = 75000 # Salary input # Perform secure computations let eligibility_score = calculate_eligibility(user_age, salary) let risk_score = assess_risk_category(user_age, salary) # Results computed without revealing individual age or salary discard eligibility_score discard risk_score
Write the Computation You Want
Describe analytics, ML steps, matching, or key ops. Mark what can be revealed—we handle the hard parts.
Write analytics
Build ML pipelines
Handle secrets
Local testing
# Secret Value Example - Stoffel MPC Program # Takes user age and salary as private inputs # Calculate eligibility score based on age and salary proc calculate_eligibility(age: secret int64, salary: secret int64): secret int64 = # Age factor: people between 25-65 get higher scores let age_score = age * 2 # Salary factor: higher salary increases eligibility let salary_score = salary / 1000 # Combined eligibility score let total_score = age_score + salary_score return total_score # Determine risk category based on inputs proc assess_risk_category(age: secret int64, salary: secret int64): secret int64 = let base_risk = 100 let age_adjustment = age / 2 let salary_adjustment = salary / 10000 let final_risk = base_risk - age_adjustment + salary_adjustment return final_risk # Main computation function proc main() = # These would be secret inputs from different parties in real MPC let user_age: secret int64 = 35 # Age input let salary: secret int64 = 75000 # Salary input # Perform secure computations let eligibility_score = calculate_eligibility(user_age, salary) let risk_score = assess_risk_category(user_age, salary) # Results computed without revealing individual age or salary discard eligibility_score discard risk_score
Write the Computation You Want
Describe analytics, ML steps, matching, or key ops. Mark what can be revealed—we handle the hard parts.
Write analytics
Build ML pipelines
Handle secrets
Local testing
# Secret Value Example - Stoffel MPC Program # Takes user age and salary as private inputs # Calculate eligibility score based on age and salary proc calculate_eligibility(age: secret int64, salary: secret int64): secret int64 = # Age factor: people between 25-65 get higher scores let age_score = age * 2 # Salary factor: higher salary increases eligibility let salary_score = salary / 1000 # Combined eligibility score let total_score = age_score + salary_score return total_score # Determine risk category based on inputs proc assess_risk_category(age: secret int64, salary: secret int64): secret int64 = let base_risk = 100 let age_adjustment = age / 2 let salary_adjustment = salary / 10000 let final_risk = base_risk - age_adjustment + salary_adjustment return final_risk # Main computation function proc main() = # These would be secret inputs from different parties in real MPC let user_age: secret int64 = 35 # Age input let salary: secret int64 = 75000 # Salary input # Perform secure computations let eligibility_score = calculate_eligibility(user_age, salary) let risk_score = assess_risk_category(user_age, salary) # Results computed without revealing individual age or salary discard eligibility_score discard risk_score
Stoffel Lang?
A developer-friendly language for defining what to compute and what (if anything) to reveal—so teams can collaborate on sensitive data without handing it around.
Stoffel Lang?
A developer-friendly language for defining what to compute and what (if anything) to reveal—so teams can collaborate on sensitive data without handing it around.
Stoffel Lang?
A developer-friendly language for defining what to compute and what (if anything) to reveal—so teams can collaborate on sensitive data without handing it around.
Why Developers Use It
Clear boundaries
Secret/public types and explicit [reveal]
points.
Fast iteration
Local simulation, unit tests, deterministic builds.
Copy-ready patterns
Examples for rollups, overlaps, scoring, and key ops.
Why Developers Use It
Clear boundaries
Secret/public types and explicit [reveal]
points.
Fast iteration
Local simulation, unit tests, deterministic builds.
Copy-ready patterns
Examples for rollups, overlaps, scoring, and key ops.
Why Developers Use It
Clear boundaries
Secret/public types and explicit [reveal]
points.
Fast iteration
Local simulation, unit tests, deterministic builds.
Copy-ready patterns
Examples for rollups, overlaps, scoring, and key ops.
Key Capabilities
Key Capabilities



Policy-gated outputs
Define exactly what leaves (counts, scores, matches).



Composable primitives
Aggregates, comparisons, threshold ops.



Static checks
Blocks accidental leaks before they ship.
How it Works
Mark inputs as secret or public.
Write your function (analytics/ML/matching/key ops).
Declare what can be revealed; compile and run.
Mark data as secret or public
Write your logic
+
Declare what can be revealed
Compile & run
Privacy automatically handled
How it Works
Mark inputs as secret or public.
Write your function (analytics/ML/matching/key ops).
Declare what can be revealed; compile and run.
Mark data as secret or public
Write your logic
+
Declare what can be revealed
Compile & run
Privacy automatically handled
How it Works
Mark inputs as secret or public.
Write your function (analytics/ML/matching/key ops).
Declare what can be revealed; compile and run.
Mark data as secret or public
Write your logic
+
Declare what can be revealed
Compile & run
Privacy automatically handled
Products
© 2025 Stoffel. All rights reserved.
Products
© 2025 Stoffel. All rights reserved.
Products
© 2025 Stoffel. All rights reserved.