Skip to main content

KYC Process Overview

The KYC (Know Your Customer) process is the foundation of compliant operations. Users must complete KYC before they can transact on the platform.

Step-by-Step Flow

1. User Submits KYC Data

User provides identity information:
{
  "fullName": "John Doe",
  "country": "US",
  "dateOfBirth": "1990-01-15",
  "email": "john.doe@example.com",
  "phoneNumber": "+1234567890"
}

2. Backend Validation

Data Validation

Validates format and completeness of KYC data

Hash Creation

Creates cryptographic hash of KYC data

3. Database Storage

  • KYC data stored securely in Supabase
  • No PII on-chain - only hash stored
  • Full audit trail maintained

4. SBT Issuance

SBT Manager program issues Soulbound Token:

SBT Created

Non-transferable token bound to wallet

Hash Stored

KYC hash stored on-chain in SBT metadata

5. User Can Transact

Once SBT is issued, user can:
  • ✅ Receive stablecoins
  • ✅ Send stablecoins
  • ✅ Participate in platform

Visual Flow

Key Features

Privacy First

No PII stored on-chain. Only hashes visible.

Non-Transferable

SBT cannot be transferred. Bound to wallet.

Revocable

Admin can revoke SBT if compliance fails.

Expiry Support

SBTs can have expiry dates for renewal.

API Example

curl -X POST http://api.paywithz.com/api/kyc/submit \
  -H "Content-Type: application/json" \
  -d '{
    "wallet": "7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU",
    "kycData": {
      "fullName": "John Doe",
      "country": "US",
      "dateOfBirth": "1990-01-15",
      "email": "john.doe@example.com",
      "phoneNumber": "+1234567890"
    }
  }'

Next Steps