Credentials
Locale Lending uses Soulbound Tokens (SBTs) — non-transferable NFTs that prove verification status without exposing personal data.
Credential Types
BorrowerCredential
Issued to borrowers who complete KYC verification.
| Field | Description |
|---|---|
| tokenId | Unique identifier |
| holder | Wallet address |
| kycLevel | Verification tier (Basic/Enhanced) |
| issuedAt | Issuance timestamp |
| expiresAt | Expiration timestamp |
| revoked | Revocation status |
InvestorCredential
Issued to investors who complete accreditation verification.
| Level | Requirements |
|---|---|
| Retail | Basic KYC verification |
| Accredited | Income/net worth verification |
| Qualified | Enhanced verification for institutional features |
KYC Verification Levels
Basic KYC
Required for all borrowers:
- Identity Verification — Plaid IDV integration
- Government ID — Passport, driver's license, or ID card
- Liveness Check — Selfie matching
Enhanced KYC
Required for loans exceeding $100K:
- Address Verification — Utility bill or bank statement
- Income Verification — Bank transaction analysis
- Business Registration — For business loans
Soulbound Properties
These credentials are designed to be non-transferable:
| Property | Description |
|---|---|
| Non-transferable | Cannot be sent to another address |
| Non-sellable | Cannot be listed on marketplaces |
| Bound | Permanently linked to minting address |
| Privacy-preserving | No personal data on-chain |
Zero-Knowledge Integration
Credentials support ZK proofs for privacy:
| Capability | Description |
|---|---|
| Verify Without Revealing | Prove credential status without exposing details |
| Threshold Proofs | Prove DSCR meets minimum without exact value |
| Age Verification | Prove credential is valid without timestamp |
Credential Lifecycle
Issuance
- User completes verification (KYC/accreditation)
- Backend generates credential data
- Admin mints SBT to user's wallet
- Credential becomes active
Validity Period
| Credential Type | Validity |
|---|---|
| BorrowerCredential | 1 year |
| InvestorCredential (Retail) | 2 years |
| InvestorCredential (Accredited) | 1 year |
Renewal
- Users must re-verify before expiration
- New credential minted upon successful re-verification
- Old credential marked as expired
Revocation
Credentials can be revoked for:
- Fraud Detection — Suspicious activity
- Failed Re-verification — Identity changes
- User Request — Self-revocation
- Regulatory Compliance — Legal requirements
Revocation is immediate upon detection.
Technical Implementation
Contract Interface
| Function | Description |
|---|---|
| mint | Issue credential to verified user |
| revoke | Revoke credential by token ID |
| isValid | Check if holder has valid credential |
| getCredential | Retrieve credential details |
Events
| Event | Description |
|---|---|
| CredentialMinted | Emitted when new credential issued |
| CredentialRevoked | Emitted when credential revoked |
| CredentialExpired | Emitted when credential expires |
Access Control
Credentials gate access to platform features:
| Feature | Required Credential |
|---|---|
| Apply for loan | BorrowerCredential (Basic) |
| Large loans (>$100K) | BorrowerCredential (Enhanced) |
| Stake in pools | InvestorCredential (Retail) |
| Create pools | InvestorCredential (Accredited) |
Next Steps
- Loan Structure — How loans work
- Verification — ZK verification system
- For Borrowers — Borrower guide