Privacy-preserving income attestation on Solana

Prove your
income.
Reveal
nothing.

SEEL turns six months of bank income into a single zero-knowledge attestation. Verifiers confirm that you qualify, 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

Verifiers read it

A landlord, client, employer, or app reads the attestation token directly from your wallet. They check the proof on-chain, not your bank statements.

06

Qualify anywhere

Pass income checks for rent, freelance work, payroll, or web3 access. You qualify, 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 any verifier

Zero disclosure

Reveal nothing.

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

Where it works

Where the attestation works

RentFreelancePayrollWeb3

One attestation, read by any service you choose. No integration needed on your side.

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.
Qualify anywhere.

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

What you get

A Soulbound attestation.

SEELSoulbound
Tier 2Income verified
Validity30 days
TransferNon-transferable
RevealsTier only