mintid-verifier-sdk
The MintID Verifier SDK (import name verifier_core): the single verifying
core of MintID, for the relying party's own verifier. It validates a holder's
presentation against the challenge it answers, either in your own process
(embedded) or behind a thin HTTP service you deploy yourself next to your
backend (service mode, which the TypeScript client and the MCP server talk
to). The Rust proof engine is compiled in at a pinned version, so a supported
install cannot end up with a substituted engine.
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 verifier is your own service, and the decision is yours: nothing else validates a presentation, and pointing a client at somebody else's verifier service would delegate the decision itself. Installing the SDK does not make you a verifier: your verifier is registered on the chain, with its exact origins and its request-signing keys, before any presentation can be accepted (see becoming a verifier).
What the SDK enforces, as constants and closed types rather than settings: every acceptance condition runs in full and in order on every presentation; a presentation lives 10 seconds; chain reads are proven or they do not count; and the only thing kept is a minimal decision record, into which proof bytes, claim values and personal data do not fit.
Install
pip install mintid-verifier-sdk # Python 3.12 or later, no runtime dependencies
Where no wheel matches your platform, pip builds it from the source
distribution, which needs a Rust toolchain. Version 0.4.1, published from the
main repository, https://gitlab.com/mintid/mintid (verifier-core).
New in 0.2. Request signers for the service: every challenge is signed
with your registered request key, held in AWS KMS (extra [kms]) or a
software seed file for local stacks (extra [software-signer]); holders
refuse unsigned challenges from this release of the holder library on, so a
service that signs nothing is for a devnet only (--insecure-unsigned-challenges).
Every decision record names its evidence, the deciding condition and its
vocabulary (SPEC-1 v3.2, R18); reason codes are unchanged. The engine pin
is proof-core 0.4.0 (its verifying surface is unchanged from 0.3.0).
New in 0.4. The agent profile v2 (verifier contract 1.7.0, ADR-0025):
a challenge may ask for profile: agent_v2, whose claim policy is an
agent_v1 one plus at most one age_over entry, proven on the agent's
principal age floor. Identity and agent_v1 challenges and decisions are
unchanged. The engine pin is proof-core 0.5.0.
Example
from verifier_core.build import build_info
from verifier_core.presentation import validate_presentation
print(build_info()) # the pins of this artifact: engine, conformance suite, …
decision = validate_presentation(
request, # PresentationRequest — the signed challenge you issued
envelope, # PresentationEnvelope — the holder's response
chain=chain, # ChainReader — proven on-chain reads
nonces=nonces, # NonceStore — durable, exactly-once consumption
proofs=proofs, # ProofVerifier — the anonymous-proof engine port
decisions=log, # DecisionLog — the minimal decision sink
now_unix=now, # int — your disciplined clock
)
decision.accepted # bool
decision.reason_code # closed vocabulary; a rejection is a decision, not an exception
You supply infrastructure (chain access, a nonce store, a decision log, a clock), never policy.
Status
The engine is built and in production. An independent audit of its 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; the local stack of the main repository runs the same flows on your machine.
Links
- Documentation: https://gitlab.com/mintid/mintid/-/blob/main/docs/sdk/02-python-sdk.md (service mode: https://gitlab.com/mintid/mintid/-/blob/main/docs/sdk/03-service-mode.md)
- Source: https://gitlab.com/mintid/mintid (
verifier-core), where issues and merge requests go - Public testnet: https://gitlab.com/mintid/mintid/-/blob/main/docs/sdk/17-sandbox-and-testnet.md
- Security: report a vulnerability privately to security@mintid.net, never in a public issue; policy: https://gitlab.com/mintid/mintid/-/blob/main/SECURITY.md
- Website: https://mintid.net
Licence
Apache License 2.0. Author: Marc Molas.
Metadata
Release files for mintid-verifier-sdk 0.4.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| mintid_verifier_sdk-0.4.1.tar.gz | 526.0 kB | Without provenance | Details for mintid_verifier_sdk-0.4.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| mintid_verifier_sdk-0.4.1-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl | CPython 3.12 | abi3 | Linux glibc 2.17+ x86-64 | Details for mintid_verifier_sdk-0.4.1-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
Total release size: 1.4 MB
Release files / mintid_verifier_sdk-0.4.1.tar.gz
| Download URL | mintid_verifier_sdk-0.4.1.tar.gz |
|---|---|
| Size | 526.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b26b4b53da763fedd08b3d2724d97482ded8920ff2bc2cd12b0a8b1dd57861cb
|
|
BLAKE2b-256 checksum How to use checksums |
dfcca00014081d39a1d413840ec6d642f671bb77e957506f59be261f5837f5c3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / mintid_verifier_sdk-0.4.1-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | mintid_verifier_sdk-0.4.1-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 848.2 kB |
| Tags | CPython 3.12 Linux glibc 2.17+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
07b452da634a1f1394003e354036f7a4502d96b6fb5dcca55fc1ec96023a71f9
|
|
BLAKE2b-256 checksum How to use checksums |
c27f9c9538cc965c41e46b46cbfd8d8fd09fb673f7e3d5864abbfca7ee022a3a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Security for mintid-verifier-sdk 0.4.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.