MandaitorClient
@mandaitor/sdk / MandaitorClient
Class: MandaitorClient
Defined in: @mandaitor/sdk/dist/client.d.ts:40
HTTP client for the Mandaitor Delegation Mandate Registry API.
Wraps the REST API with typed methods for the full mandate lifecycle (create, verify, revoke, suspend, approve), audit-event retrieval, evidence packs, EUDI Wallet sessions, identity-provider configuration, and OAuth 2.0 token exchange. Requests carry the tenant-scoped bearer credential and are automatically retried on 5xx/429 responses with exponential backoff.
Example
const client = new MandaitorClient({
apiKey: process.env.MANDAITOR_API_KEY!,
tenantId: "tnt_monco_prod",
});
const result = await client.verify({
delegate_subject_id: "agent:monco:validate-v2",
action: "construction.validation.approve",
resource: "monco:project:proj_123/plan.pdf",
});
Constructors
Constructor
new MandaitorClient(
config):MandaitorClient
Defined in: @mandaitor/sdk/dist/client.d.ts:42
Parameters
config
Returns
MandaitorClient
Methods
approveMandate()
approveMandate(
mandateId,reason?):Promise<Mandate>
Defined in: @mandaitor/sdk/dist/client.d.ts:61
Approve a mandate that is PENDING_APPROVAL, transitioning it to ACTIVE.
Parameters
mandateId
string
reason?
string
Returns
Promise<Mandate>
createMandate()
createMandate(
req):Promise<Mandate>
Defined in: @mandaitor/sdk/dist/client.d.ts:45
Create a new delegation mandate. Starts ACTIVE unless require_approval is set.
Parameters
req
Returns
Promise<Mandate>
exchangeToken()
exchangeToken(
params):Promise<TokenExchangeResponse>
Defined in: @mandaitor/sdk/dist/client.d.ts:174
Exchange a user's access token for a delegation token via OAuth 2.0 Token Exchange. Used for On-Behalf-Of flows where an AI agent acts on behalf of a user.
Parameters
params
Returns
Promise<TokenExchangeResponse>
getAuditEvents()
getAuditEvents(
mandateId,options?):Promise<PaginatedResponse<AuditEvent>>
Defined in: @mandaitor/sdk/dist/client.d.ts:108
Parameters
mandateId
string
options?
cursor?
string
limit?
number
Returns
Promise<PaginatedResponse<AuditEvent>>
Deprecated
Use getMandateEvents instead.
getEudiSessionStatus()
getEudiSessionStatus(
sessionId):Promise<EudiSessionStatus>
Defined in: @mandaitor/sdk/dist/client.d.ts:161
Poll the status of an EUDI Wallet verification session. Returns the resolved identity when the session is completed.
Parameters
sessionId
string
Returns
Promise<EudiSessionStatus>
getEvent()
getEvent(
eventId,mandateId):Promise<AuditEvent>
Defined in: @mandaitor/sdk/dist/client.d.ts:120
Fetch a single audit event by ID, scoped to its mandate.
Parameters
eventId
string
mandateId
string
Returns
Promise<AuditEvent>
getEvidencePack()
getEvidencePack(
mandateId,eventId?):Promise<EvidencePack>
Defined in: @mandaitor/sdk/dist/client.d.ts:148
Export a court-ready evidence pack for a mandate. Contains the mandate snapshot, hash-chained event log, proof tokens, case_log_hash, and issuer DID reference for independent verification.
Parameters
mandateId
string
The mandate to export evidence for
eventId?
string
Optional: scope the pack to a specific verification event
Returns
Promise<EvidencePack>
getIdpConfig()
getIdpConfig():
Promise<TenantIdpConfig>
Defined in: @mandaitor/sdk/dist/client.d.ts:165
Get the identity provider configuration for this tenant.
Returns
Promise<TenantIdpConfig>
getMandate()
getMandate(
mandateId):Promise<Mandate>
Defined in: @mandaitor/sdk/dist/client.d.ts:47
Fetch a single mandate by its ID.
Parameters
mandateId
string
Returns
Promise<Mandate>
getMandateEvents()
getMandateEvents(
mandateId,params?):Promise<PaginatedResponse<AuditEvent>>
Defined in: @mandaitor/sdk/dist/client.d.ts:103
List the hash-chained audit events for a single mandate, with cursor pagination.
Parameters
mandateId
string
params?
cursor?
string
limit?
number
Returns
Promise<PaginatedResponse<AuditEvent>>
getMandateInstruction()
getMandateInstruction(
mandateId):Promise<InstructionResponse>
Defined in: @mandaitor/sdk/dist/client.d.ts:139
Retrieve the decrypted instruction for a mandate.
Security note: Calling this endpoint creates an INSTRUCTION_REVEALED
audit event. The instruction text is encrypted at rest and only decrypted
on demand. Use sparingly — every call is logged.
Parameters
mandateId
string
The mandate whose instruction to reveal
Returns
Promise<InstructionResponse>
The decrypted instruction with metadata
Throws
If the mandate has no VUI or does not exist
Example
const instruction = await client.getMandateInstruction("mnd_abc123");
console.log(instruction.instruction_text); // "Bestelle Büromaterial bis 500€"
console.log(instruction.instruction_channel); // "chat"
initiateEudiSession()
initiateEudiSession(
presentationDefinitionId?):Promise<EudiSessionResponse>
Defined in: @mandaitor/sdk/dist/client.d.ts:156
Initiate an EUDI Wallet verification session. Returns a session with QR code and deep link URIs for the wallet flow.
Parameters
presentationDefinitionId?
string
Optional: which PID attributes to request (defaults to "mandaitor-pid-standard")
Returns
Promise<EudiSessionResponse>
listEvents()
listEvents(
params?):Promise<PaginatedResponse<AuditEvent>>
Defined in: @mandaitor/sdk/dist/client.d.ts:113
List audit events across the tenant, optionally filtered by mandate or event type.
Parameters
params?
cursor?
string
event_type?
string
limit?
number
mandate_id?
string
Returns
Promise<PaginatedResponse<AuditEvent>>
listMandates()
listMandates(
params?):Promise<PaginatedResponse<Mandate>>
Defined in: @mandaitor/sdk/dist/client.d.ts:49
List mandates for the tenant, optionally filtered by status, with cursor pagination.
Parameters
params?
cursor?
string
limit?
number
status?
string
Returns
Promise<PaginatedResponse<Mandate>>
reactivateMandate()
reactivateMandate(
mandateId):Promise<Mandate>
Defined in: @mandaitor/sdk/dist/client.d.ts:59
Reactivate a previously suspended mandate, returning it to ACTIVE.
Parameters
mandateId
string
Returns
Promise<Mandate>
rejectMandate()
rejectMandate(
mandateId,reason?):Promise<Mandate>
Defined in: @mandaitor/sdk/dist/client.d.ts:63
Reject a mandate that is PENDING_APPROVAL, so it never becomes active.
Parameters
mandateId
string
reason?
string
Returns
Promise<Mandate>
revokeMandate()
revokeMandate(
mandateId,reason?):Promise<Mandate>
Defined in: @mandaitor/sdk/dist/client.d.ts:55
Permanently revoke a mandate. Terminal state — a revoked mandate cannot be reactivated.
Parameters
mandateId
string
reason?
string
Returns
Promise<Mandate>
suspendMandate()
suspendMandate(
mandateId,reason?):Promise<Mandate>
Defined in: @mandaitor/sdk/dist/client.d.ts:57
Temporarily suspend a mandate. Can be reactivated later via reactivateMandate.
Parameters
mandateId
string
reason?
string
Returns
Promise<Mandate>
updateIdpConfig()
updateIdpConfig(
config):Promise<TenantIdpConfig>
Defined in: @mandaitor/sdk/dist/client.d.ts:169
Update the identity provider configuration.
Parameters
config
Returns
Promise<TenantIdpConfig>
verify()
verify(
req):Promise<VerifyResponse>
Defined in: @mandaitor/sdk/dist/client.d.ts:68
Verify that a delegate is authorized for an action on a resource. Returns an ALLOW/DENY decision with an audit event ID. This is the core hot-path call.
Parameters
req
Returns
Promise<VerifyResponse>
verifyWithDrift()
verifyWithDrift(
req,options):Promise<VerifyResponseWithSemantics>
Defined in: @mandaitor/sdk/dist/client.d.ts:101
Experimental
Verify an action with drift detection signals.
Returns advisory semantic signals alongside the verification decision. Drift signals NEVER affect the ALLOW/DENY decision.
Parameters
req
options
Returns
Promise<VerifyResponseWithSemantics>
Example
const result = await client.verifyWithDrift(
{ delegate_subject_id: "agent:v2", action: "approve", resource: "proj/*" },
{ drift: true },
);
if (result.semantic_signals?.drift_score?.drift_detected) {
console.warn("Drift detected!", result.semantic_signals.drift_score);
}
verifyWithPoM()
verifyWithPoM(
req,options):Promise<VerifyResponseWithPoM>
Defined in: @mandaitor/sdk/dist/client.d.ts:83
Verify an action and optionally request a Proof-of-Mandate VC.
Parameters
req
options
Returns
Promise<VerifyResponseWithPoM>
Example
const result = await client.verifyWithPoM(
{ delegate_subject_id: "agent:v2", action: "approve", resource: "proj/*" },
{ pom: "sd-jwt-vc" },
);
if (result.proof_of_mandate) {
console.log(result.proof_of_mandate.compact); // SD-JWT string
}