KYC built for the AI era.

Verify a real human is behind an account or an action. Ask for liveness only, government ID only, or both. Deepfake detection built in.

Deepfake resistant

Built to fail the fakes.

Liveness runs on the live camera, not on an uploaded picture. A printed photo, a screen replay or a deepfake pushed into the camera feed fails the check, and a face that fails liveness is never matched to a document.

Live selfie Passed
Printed photo Blocked
Screen replay Blocked
Deepfake Blocked

Completely hosted

The whole flow, run by Rupt.

Consent, camera, document capture, retries and the result screen run on trust.rupt.dev or your own domain, with your logo. You get the verdict and the checks behind it.

Captured

Front of document

DRIVER LICENSE Sample
DL
R4471 2093
EXP
03/14/2029
LN
RIVERA
FN
ALEX
DOB
03/14/1991
ISS
03/14/2025

Selfie

Live
Checks
  • Liveness OK
  • Face match OK
  • Tamper check OK
  • Expiry OK
  • Age match OK
  • Sex match OK

Easy to integrate

One policy rule away.

KYC is a challenge like email and SMS. Point a policy at it and the outcome lands on the user record and in a webhook, the same way every other challenge does.

  1. Policy

    fingerprint_user_count > 2 and is_identity_verified is false → challenge: kyc

  2. Hosted challenge

    trust.yourdomain.com/kyc 3 attempts per challenge

  3. Result

    challenge.completed challenge.failed { kyc.reasons } user.identity_verified_at

Put a real person behind the accounts that matter.

Create a KYC challenge config, point one policy at it, and the hosted flow does the rest. KYC is $0.33 per check, either level, with nothing else on top.