SDK docs · sdk/01

Getting started

Verifier obligations before any code, the current installation channels, and the honest status of the pipeline and the proof engine.

Before any code: become a verifier (R13)

Installing an SDK does not make you a verifier. The SDK refuses to accept presentations for an unregistered identity — origin resolution runs against proven on-chain state on every single decision. Complete these first:

  1. Register on-chain and pass verifier KYCMsgRegisterVerifier; your verifier record must be ACTIVE.
  2. Register every exact origin you present fromMsgRegisterVerifierOrigin, with periodic revalidation (MsgRenewVerifierOrigin). Origins are exact: no wildcards, one verifier per origin, so a lookalike domain can never impersonate you.
  3. Register request-signing keysMsgRotateVerifierKey; the key that signs your challenges must be registered for your origin.
  4. Plan your infrastructure: chain access (any RPC node — answers are cryptographically verified, the node is never trusted — plus a trust-anchor header source), a crash-durable nonce store (the bundled SQLite store qualifies), a disciplined clock, and a place for the decision log.

Installation channels

Current channel (design partners): the SDK is consumed from the repository at a tag — packaging as platform wheels is decided and implemented (the Rust proof engine compiles into the wheel at a pinned version; pip install needs no Rust toolchain), and the first tagged release follows the release checklist. Talk to us to integrate as a design partner today.

Target channel: pip install mintid-verifier-sdk from a package index (private first). One wheel per platform (Linux/macOS, x86_64/arm64), CPython ≥ 3.12. The TypeScript client ships as @mintid/verifier-client (Node ≥ 20, ESM + types).

Every artifact records its pins — engine version, chain store-layout vector identity, SPEC revision, conformance-suite version — readable at runtime.

Current status — read before integrating

  • The verification pipeline is real and complete: the nine conditions, proven chain reads, nonce store, decision records, the service, the contract and the TS client all exist and are CI-gated by a shared conformance suite.
  • The anonymous-credential proof engine is not yet live: until the cryptographic core lands (a separately audited milestone), SDK builds carry a pinned stub engine that refuses every proof — fail closed, loudly marked in the artifact's own metadata (engine_pin: … +stub.pre-f3). You can build and test a full integration against injectable test doubles today; you cannot accept real anonymous proofs until the engine milestone ships.
  • Assurance grades (A1–A4) are decided by accepted issuers within council-approved tiers; MintID does not claim conformance to any external assurance framework.

The 60-second mental model

fig. 1 — one decision, one minimal decision record, per presentation