Skip to main content

Compliance API

Privacy-preserving compliance tools for regulated industries.

Age Verification (ZK-based)

POST /api/v1/compliance/verify-age

Generates a zero-knowledge proof that a user meets a minimum age requirement without transmitting or storing PII.

{
"walletAddress": "0x1234...",
"minimumAge": 21
}

Validation

FieldRules
walletAddressRequired, valid Ethereum address
minimumAgeInteger, range 1–150, defaults to 21

Response

{
"proof": "0xabc123...",
"minimumAge": 21,
"verified": true
}

Initiate KYC

POST /api/v1/compliance/kyc/initiate

Requires JWT (Authorization: Bearer <token>).

{
"did": "did:ethr:0x1234...",
"provider": "persona"
}

Validation

FieldRules
didRequired, max 200 chars, must match DID format
providerOptional, persona or jumio, defaults to persona

Response

{
"sessionId": "ses_abc123",
"provider": "persona",
"redirectUrl": "https://withpersona.com/verify?session=...",
"expiresIn": 3600
}

Redirect the user to redirectUrl to complete identity verification.


Check KYC Status

GET /api/v1/compliance/kyc/{did}/status

Response

{
"did": "did:ethr:0x1234...",
"kycLevel": "enhanced",
"status": "approved"
}

Status Values

StatusDescription
pendingKYC session created, awaiting user action
approvedIdentity verified successfully
rejectedVerification failed or flagged

OFAC Sanctions Screening

POST /api/v1/compliance/sanctions-check
{
"walletAddress": "0x1234..."
}

Response

{
"walletAddress": "0x1234...",
"sanctioned": false,
"checkedAt": "2026-02-27T12:00:00Z",
"source": "OFAC SDN List"
}
warning

A sanctioned: true result means the address appears on the OFAC Specially Designated Nationals (SDN) list. Interacting with sanctioned addresses may violate US law.