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​