
• MPC Integration
• MPC API
• MPC Developer SDKs
Compile, configure, submit shares, and receive opened outputs from one application boundary
Why use a boundary instead of glue code?
Because private computation needs a clear path in and a clear output coming back
Share before it leaves
Turn sensitive user context into shares before it moves through the workflow.
Compute over shares
MPC parties process shares instead of private details.
Open only the result
Open requested output.
Integration surfaces

Rust SDK workflow
Primary path
Build the application boundary around compilation, shares, network configuration, and outputs.

Python path
Coming next
A higher-level interface for teams that want the same boundary from Python.

Solidity path
Primary path
Coordinate private computation from on-chain applications when the workflow needs it.
How your app uses it
Share
ClientStore.take_share(0, 0)
Create shares before the sensitive value leaves your app boundary.
Send
Stoffel::compile(source)?
+
.with_client_input(0, &[42_i64])
Run the computation across parties operating on shares.
Rebuild
.execute_local().await?
Combine result pieces locally. Only the final answer gets revealed. The intermediate steps are mathematically destroyed — they never existed as retrievable data. What never existed can't be breached, subpoenaed, or reconstructed — by anyone.
