Skip to main content

mintid-proof-core

Python bindings of the MintID proof core: the anonymous-credential core, written in Rust and compiled into this package, with the headless holder library (proof_core.holder) and the issuance side that an issuer service uses. A holder obtains a credential blind (the issuer never sees it in the clear), keeps its witnesses current, and answers a verifier's challenge with a zero-knowledge presentation that proves predicates such as "over 18", "grade at least A3" or "still active", and nothing else. The holder can also revoke its own credential without revealing which one it is (holder self-revocation, the holder's kill switch).

Where it fits

MintID is a network for verifiable, human-backed identity. Accepted issuers verify people and issue the credentials; the chain publishes their status roots, their bonds and the registries; each verifier decides on its own service. MintID itself issues nothing, certifies nothing and verifies nobody.

The holder library is headless: it runs in the holder's own infrastructure, next to the keys the holder already custodies. The Python agent client (mintid-agent) builds on it. Verification is not in this package: it is in the verifier SDK (mintid-verifier-sdk), on the relying party's own service.

Install

pip install mintid-proof-core   # Python 3.12 or later

The Rust core is compiled in; where no wheel matches your platform, pip builds it from the source distribution, which needs a Rust toolchain. Version 0.3.0, published from the main repository, https://gitlab.com/mintid/mintid (identity-proof-core/python).

Example

import proof_core
from proof_core.holder import Holder

print(proof_core.core_version())       # the Rust core compiled into this package

holder = Holder.issue(offer)           # the holder half of issuance, from the operator's credential offer
holder.refresh_witness()               # right before presenting; material that does not verify is refused
envelope = holder.present(challenge)   # one bound, 10-second presentation, or nothing is sent
custody = holder.storage_bytes()       # holds the link secret: encrypt it under your own key

There is no export: the custody encoding is the only serialisation, and a lost key is recoverable by nobody (you verify again and get a fresh credential, unlinkable to the old one).

Status

Built and in production on the single-node production chain. An independent audit of the implementation is scheduled as a milestone; its findings will be published, and it gates nothing.

Where to test

On the public testnet and its KYC sandbox, and only there: check the status line of its page first. Nothing issued on it carries weight. The single-node production chain is not for third parties and is never a place to test.

Licence

Apache License 2.0. Author: Marc Molas.

Metadata

Release files for mintid-proof-core 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mintid-proof-core 0.3.0
File Size Uploaded
mintid_proof_core-0.3.0.tar.gz 260.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for mintid-proof-core 0.3.0
File Interpreter ABI Platform
mintid_proof_core-0.3.0-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.12 abi3 Linux glibc 2.17+ x86-64 Details

Total release size: 1.3 MB

Release files / mintid_proof_core-0.3.0.tar.gz

Download URL mintid_proof_core-0.3.0.tar.gz
Size 260.0 kB
Tags Source
SHA-256 checksum
How to use checksums
c115c416b01186c4cb240517cd21e9f630e21c0b6fd8b6962cb5b3fbb5ad3eeb
BLAKE2b-256 checksum
How to use checksums
edab1b7f6785a340c6f91eeaf9f217b0ce29f234351cbb550fb73502f95fffe7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / mintid_proof_core-0.3.0-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL mintid_proof_core-0.3.0-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 1.1 MB
Tags CPython 3.12 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
79d219f9eebc39b325420a4228dc32e51816e5fdc6abc78f54c47ad7001da637
BLAKE2b-256 checksum
How to use checksums
6e82dbc439e764d117ea0732f97dee4133f78f3da5590e386f092c3737e34091
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.12.15

Release history Release notifications | RSS feed

0.4.0

2 release files

This release

0.3.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page