Need help with mpyc?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

179 Stars 44 Forks MIT License 269 Commits 0 Opened issues


MPyC for Secure Multiparty Computation in Python

Services available


Need anything else?

Contributors list

Binder Travis CI codecov Read the Docs PyPI

MPyC MPyC logo Secure Multiparty Computation in Python

MPyC supports secure m-party computation tolerating a dishonest minority of up to t passively corrupt parties, where m ≥ 1 and 0 ≤ t < m/2. The underlying cryptographic protocols are based on threshold secret sharing over finite fields (using Shamir's threshold scheme as well as pseudorandom secret sharing).

The details of the secure computation protocols are mostly transparent due to the use of sophisticated operator overloading combined with asynchronous evaluation of the associated protocols.

See the MPyC homepage for more info and background.

Click the "launch binder" badge above to view the entire repository and try out the Jupyter notebooks from the

directory in the cloud, without any install.


Just run:

python install
(pure Python, no dependencies).


for Python programs and Jupyter notebooks with lots of example code.

See Read the Docs for

-based documentation, including an overview of the
, and GitHub Pages for
-based documentation.


  1. Python 3.6+ (Python 3.5 or lower is not sufficient).

  2. Installing package

    is optional, but will considerably enhance the performance of
    . If you use the conda package and environment manager,
    conda install gmpy2
    should do the job. Otherwise,
    pip install gmpy2
    can be used on Linux (first running
    apt install libmpc-dev
    may be necessary too), but on Windows, this may fail with compiler errors. Fortunately, ready-to-go Python wheels for
    can be downloaded from Christoph Gohlke's excellent Unofficial Windows Binaries for Python Extension Packages webpage. Use, for example,
    pip install gmpy2-2.0.8-cp39-cp39-win_amd64.whl
    to finish installation.
  3. Use
    in the
    directory to have a quick look at all pure Python demos. The demos
    require NumPy, the demo
    requires pandas, Matplotlib, and lifelines, and the demo
    even requires Scikit-learn. Also note the example Linux shell scripts and Windows batch files in the
  4. Directory

    contains configuration info used to run MPyC with multiple parties. Also, Windows batch file 'gen.bat' shows how to generate fresh key material for SSL. OpenSSL is required to generate SSL key material of your own, use
    pip install pyOpenSSL
  5. To use the Jupyter notebooks

    , you need to have Jupyter installed, e.g., using
    pip install jupyter
    . The latest version of Jupyter will come with IPython 7.x, which supports top-level
    . For example, instead of
    one can now simply write
    await mpc.start()
    anywhere in a notebook cell, even outside a coroutine.
  6. For Python 3.8+, you also get top-level

    by running
    python -m asyncio
    to launch a natively async REPL. By running
    python -m mpyc
    instead you even get this REPL with the MPyC runtime preloaded!

Copyright © 2018-2021 Berry Schoenmakers

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.