• MPC language

• Privacy by Design

Write the private part like code

Write the private part like code

Mark the sensitive part. Run it over shares. Open only what your product needs
# eligibility.stfl
def normalize_score(private_score: Share) -> Share:
  var adjusted = private_score.add_scalar(25)
  return adjusted.mul_scalar(2)

def main() -> int64:
  var private_score = ClientStore.take_share(0, 0)
  var eligibility = normalize_score(private_score)
  return eligibility.open()

What StoffelLang gives you

Python-style code for computations that mix public values with secret shares

Mark what must stay private

Use public and secret types. Make openings explicit. Catch the boundary before the run.

Keep the workflow familiar

Check, compile, and run locally before you wire the network.

Start from real patterns

Thresholds. Matching. Risk scoring. Federated aggregation. The private parts, written as code.

Why this is not another policy claim

Open only the result

Return the count, match, or score. Keep private details outside ordinary app storage.

Build with private primitives

Aggregates. Thresholds. Comparisons. Key operations. Write the useful part while marking the sensitive part.

Catch leaks before runtime

Make sensitive outputs explicit before they reach logs, dashboards, or incident reports

How you build with StoffelLang

  1. Mark what's sensitive

`secret` for sensitive values. `public` for everything else.

  1. Write your computation

Analytics, matching, risk scoring, and ML workflows — written like normal code.

  1. Explicit reveals

Open the aggregate. Keep the records out of the result.

Your program opens the result while sensitive user context stays represented as shares.

© 2025 Stoffel Labs Inc. All rights reserved.

© 2025 Stoffel Labs Inc. All rights reserved.

© 2025 Stoffel Labs Inc. All rights reserved.