Appearance
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 Reason | reject_type | Examples |
|---|---|---|
| Document quality issues | ⚠️ RETRY | Blurry photo, glare, cropped ID, expired document |
| Information mismatch | ⚠️ RETRY | Name mismatch, wrong document type submitted |
| Sanctioned country | 🔴 FINAL | OFAC / EU sanctions list match |
| Fraud detected | 🔴 FINAL | Forged document, stolen identity |
| Underage | 🔴 FINAL | Applicant under 18 |
| Duplicate applicant | 🔴 FINAL | Same 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).