@pouchy_ai/companion-sdk - v0.63.0
    Preparing search index...

    Interface MandateDocument

    getMandate's response (0.59.0) — the full user-signed approval the mandate receipt summarizes. Field shapes follow the WebAuthn assertion the server kept; verified is the server's own re-verification.

    interface MandateDocument {
        confirmId: string;
        credential:
            | { credentialId: string; format: string; publicKey: string }
            | null;
        intent: Record<string, unknown>;
        intentDigest: string;
        mandate: Record<string, unknown>;
        status: string;
        verified: boolean | null;
        verify: { challenge: string; origin: string; rpID: string };
        verifyError?: string;
        [k: string]: unknown;
    }

    Indexable

    • [k: string]: unknown
    Index
    confirmId: string
    credential: { credentialId: string; format: string; publicKey: string } | null

    The credential that signed the mandate — publicKey is COSE, base64url. null when the passkey has since been removed from the account: the server then has no key to verify with, and verified is null too (0.59.1 — typed non-null before, which read a revoked passkey as a TypeError at credential.publicKey).

    intent: Record<string, unknown>

    The canonical intent the digest covers: { v, confirmId, tool, args, scope, createdAt, action }.

    intentDigest: string
    mandate: Record<string, unknown>
    status: string
    verified: boolean | null

    The server's own re-verification: true / false (see verifyError), or null when it could not run (no credential) — "could not verify" is not "did not verify"; a counterparty verifies offline either way.

    verify: { challenge: string; origin: string; rpID: string }
    verifyError?: string

    Why verified is false (absent otherwise).