Skip to main content

Verification

Locale Lending employs a multi-layered verification approach combining traditional identity checks, zero-knowledge proofs, and blockchain attestations.

Verification Stack

Verification Layers Stack
VERIFICATION LAYERS
1. Identity
Plaid IDV
KYC/AML
2. Financial
Bank Data
Transactions
3. Computation
Cartesi DSCR
Calculator
4. Proofs
ZK Circuits
ProofVerifier
5. Credentials
BorrowerCredential
InvestorCredential

Layer 1: Identity Verification

Plaid IDV

Locale uses Plaid's Identity Verification service for KYC:

Accepted Documents:

  • Passport
  • Driver's license
  • National ID card

Verification Checks:

  • Document authenticity
  • Expiration validation
  • Selfie matching
  • Liveness detection
  • Watchlist screening

Process Flow

User Upload → Document Analysis → Selfie Capture →
Liveness Check → Watchlist Screen → Result

Layer 2: Financial Verification

Bank Connection

Users connect bank accounts via Plaid Link:

  • OAuth Flow — Secure bank authorization
  • Read-Only Access — No fund movement capability
  • 90+ Days History — Required transaction data

Transaction Analysis

The system categorizes transactions:

CategoryExamples
IncomeSalary, freelance, business revenue
Operating ExpensesRent, utilities, subscriptions
Debt PaymentsLoans, credit cards
DiscretionaryShopping, entertainment

Layer 3: Off-Chain Computation

Cartesi DSCR Calculator

The Cartesi rollup processes financial data:

StepDescription
Parse TransactionsExtract and categorize bank transactions
Calculate IncomeSum verified income sources
Calculate ExpensesSum operating expenses
Extract Debt ServiceIdentify existing debt payments
Compute NOINet Operating Income = Income - Expenses
Calculate DSCRNOI ÷ (Debt Service + New Loan Payment)
Return ResultDSCR value, monthly income, approval status

Computation Output

Results are published as blockchain notices containing:

  • DSCR value
  • Monthly income average
  • Debt service total
  • Approval recommendation

Layer 4: Zero-Knowledge Proofs

Why ZK Proofs?

Instead of exposing raw financial data, ZK proofs allow proving specific claims:

ClaimVerification
"Income exceeds $40,000"Prove without revealing actual amount
"DSCR is above 1.25"Prove threshold met
"KYC completed"Prove status without PII

Circom Circuits

Locale uses Circom for ZK circuits:

  • DSCR Threshold Proof — Proves DSCR meets minimum
  • KYC Verification Proof — Proves identity verified
  • Income Range Proof — Proves income in range

Proof Generation

Input Data → Circom Circuit → Groth16 Prover → ZK Proof

zkTLS Implementation

What is zkTLS?

zkTLS proves that data came from a specific HTTPS source without revealing the data itself.

Flow

1. User connects bank via Plaid
2. Reclaim Protocol records TLS session
3. User selects data to disclose
4. ZK proof generated
5. Smart contract validates proof

Benefits

BenefitDescription
PrivacyRaw data never exposed
AuthenticityProof data came from Plaid
VerifiabilityOn-chain validation
Tamper-proofCannot fabricate proofs

Layer 5: On-Chain Credentials

Credential Issuance

After verification:

  1. All checks pass
  2. Backend generates credential data
  3. Admin mints SBT to user wallet
  4. User gains platform access

Credential Verification

Smart contracts check credential validity before allowing platform actions:

CheckDescription
isValidVerifies credential exists and is not expired
kycLevelConfirms required KYC tier for action
notRevokedEnsures credential hasn't been revoked

Security Measures

Data Protection

LayerProtection
At RestAES-256 encryption for Plaid tokens
In TransitTLS 1.3 for all connections
On-ChainOnly proofs and commitments stored

Attack Mitigations

AttackMitigation
ReplayProof nullifiers
Front-runningCommit-reveal scheme
SybilOne credential per identity
Data TamperingzkTLS verification

Verification Costs

StepApproximate Cost
Plaid IDV$2-5
Transaction API$0.10 per call
Credential Mint~150,000 gas
Proof Verification~300,000 gas

Next Steps