zkScore
Phase 2 -- not yet deployed

Private
Credit.

Credit scores that live off-chain. Band proofs — Bronze, Silver, Gold — anchored on Ethereum without exposing the underlying number. Reputation that travels.

Next: zkPolicy →

Trust tiers.

Bronze

Any registered score

Basic access. Anyone with a registered score can achieve Bronze. Entry-level trust.

Silver

Top 40% of scorers

Verified financial history. Demonstrates responsible usage over at least 3 months.

Gold

Top 15% of scorers

Premium trust tier. High-value transactions, AI agent authorization, protocol governance.

Band proof lifecycle.

01

Off-Chain Scoring

The score provider computes your credit score locally. The raw score never leaves your device or the provider server.

02

Band Mapping

The raw score is mapped to a tier band: Bronze, Silver, or Gold. No number is emitted — only the band.

03

Attestation Commit

The band is committed via zkAttest. A Poseidon commitment is anchored on-chain. The band is provable but private.

04

Proof Generation

When needed, a Groth16 proof is generated from the commitment. The proof shows the band without revealing the raw score or provider.

Prove your tier.

Generate a band proof in one call. The raw score never leaves your machine. The proof travels on-chain. Anyone can verify it.

zkscore.ts
// Compute band proof — raw score stays local
const band = await cloak.zkScore.prove({
  subject: wallet.address,
  provider: scoreProvider.address
})

console.log(band.band)   // "gold" | "silver" | "bronze"
console.log(band.proof)  // Groth16 zkSNARK proof

// Prove without revealing the score
const valid = await AttestationRegistry.isValid(band.commitId)