Privacy-preserving income attestation on Solana

Prove your
income.
Reveal
nothing.

SEEL turns six months of bank income into a single zero-knowledge attestation. Lending protocols read it and raise your LTV without ever seeing a number, a name, or an employer.

The mechanism

Six steps, zero disclosure

01

Connect your bank

Link your bank through Plaid. Your financial data is processed entirely client-side in the browser and is never sent to a SEEL server.

02

Prove it locally

A Circom Groth16 zero-knowledge circuit runs in your browser. It proves only that your six-month average income clears a threshold, with no figures, no names, and no employer disclosed.

03

Pay the fee

Settle a small USDC fee through x402. The payment authorizes minting and nothing about your income leaves your device.

04

Mint the attestation

A Soulbound SPL Token-2022 is minted to your wallet. It cannot be transferred, is valid for 30 days, and carries the proof, not the data behind it.

05

Protocols read it

Integrated lending protocols read the attestation token directly from your wallet. They verify the proof on-chain, not your bank statements.

06

Borrow more

Kamino, Save, and other integrated markets grant you higher LTV against the same collateral. You borrow more, having revealed nothing.

Under the hood

Inside the proof

Read income, client-side0.4s

Six months of deposits loaded in the browser

SourcePlaid OAuthScopeincome onlyLeaves devicenever
Build the witness1.1s

Tool snarkjs assembles the circuit inputs.

  • 6 monthly figures (private)
  • tier threshold (private)
  • all months positive (assertion)
Prove average over threshold...

Generating Groth16 proof on BN254

groth16.fullProve(input, wasm, zkey)
  computing 6-month floor average
  comparing to tier threshold
  emitting proof + public signal
Keep identity out

The circuit has no wire for your name, employer, account, or exact figures. They cannot appear in the proof.

Publish tier, mint attestation
Public outputtier (1 or 2)TokenSoulbound SPL Token-2022Validity30 days, read by Kamino and Save

Zero disclosure

Reveal nothing.

The proof confirms one fact: your income clears the threshold. Everything else stays on your device.

Integrations

Reads the SEEL attestation

KaminoSave

More lending markets integrating. SEEL is a token any protocol can read.

Privacy and trust

What is proven, what is never seen

Client-side

Your bank data is processed in the browser and never transmitted to a SEEL server.

Zero-knowledge

The proof confirms your six-month average income clears a threshold, revealing no income figure, name, or employer.

Non-custodial

The attestation mints to a wallet you control. SEEL holds no keys, no funds, and no records.

Time-bound

Each attestation is non-transferable and expires after 30 days, so access reflects current standing, not a permanent label.

Prove income.
Reveal nothing.
Borrow more.

Connect, prove, and mint in a single session. The income behind the proof stays yours.

What you get

A Soulbound attestation.

SEELSoulbound
Tier 280% LTV
Validity30 days
TransferNon-transferable
RevealsTier only