Skip to content

KYC & Identity

SumSub integration for KYC/KYB verification, Soulbound Token issuance, and rejection criteria.

Soulbound Token (SBT)

🪪 SBT Overview

SumSub integration for KYC/KYB. On approval, a non-transferable ERC-721 (Soulbound Token) is minted on-chain. kyc_status = APPROVED required before any investment. SBT is burned if KYC is revoked. Open question: can investor still redeem if KYC is revoked?

KYC Status Flow

Rejection Criteria: RETRY vs FINAL

SumSub auto-decides based on rejection reason code. System maps reason → reject_type. Admin cannot override FINAL decisions (compliance requirement).

Sumsub Reasonreject_typeExamples
Document quality issues⚠️ RETRYBlurry photo, glare, cropped ID, expired document
Information mismatch⚠️ RETRYName mismatch, wrong document type submitted
Sanctioned country🔴 FINALOFAC / EU sanctions list match
Fraud detected🔴 FINALForged document, stolen identity
Underage🔴 FINALApplicant under 18
Duplicate applicant🔴 FINALSame person already verified under different account

Rules

📋 KYC Rules

  • RETRY: No limit on retry attempts (SumSub tracks internally). Investor prompted to re-upload.
  • FINAL: Account permanently blocked from investing. Admin can view rejection details but cannot override (compliance requirement).
  • Admin KYC detail panel shows: SumSub rejection reason, reject_type (RETRY/FINAL), attempt history.
  • Investor KYC status page shows: sanitized rejection reason + retry prompt (RETRY) or permanent block notice (FINAL).