TypeScript-SDK: Mandate prüfen, präsentieren, signieren
Das SDK @mandact/sdk bedient beide Seiten: Agenten präsentieren ihr Mandat (OID4VP) und signieren HTTP-Anfragen (Web Bot Auth), Prüfstellen verifizieren Mandate offline — Signatur, Disclosures, Laufzeit und Token Status List. Ohne Fremdabhängigkeiten, Node ab Version 20.
Offline prüfen, ohne Konto
verifyMandateCredentialOffline holt JWKS bzw. DID-Dokument und Status-Liste, prüft das SD-JWT VC und liefert eine Befugnis-Sicht. Eine Entscheidung trifft es bewusst nicht (decision ist immer null): Verbindlich entscheidet nur POST /v1/verify oder der OID4VP-Fluss — mit Limits, Eskalation und Beleg.
Präsentieren und signieren
presentMandateOid4vp erzeugt die Antwort auf eine OID4VP-Anfrage mit selektiver Offenlegung; withWebBotAuth umhüllt fetch und signiert jede Anfrage nach RFC 9421, optional mit angehängtem Mandats-Token.
Mit dem Dienst synchron
Ein Vertragstest im Hauptrepo hält SDK und API zusammen. Vorher sendete consume() weder action_type noch counterparty — beides prüft die API fail-closed. Solche Abweichungen fallen jetzt im Build auf, nicht beim Kunden.
import { verifyMandateCredentialOffline } from "@mandact/sdk";
const r = await verifyMandateCredentialOffline({
credential,
issuerBase: "https://mandact.com",
action: { type: "purchase.goods", amount: { value: 120, currency: "CHF" } },
});
r.credential_valid; // Signatur, Disclosures, Laufzeit, Status
r.decision; // null — verbindlich nur über /v1/verifyStand
Im Repository (Ordner sdk/, Version 0.60.0). Auf npm noch nicht veröffentlicht.