I grant access, not permission.

The chain never learns who paid whom.
Show it to whoever you choose.

Private payments. The chain records that money moved — never that it moved from you to them. A zero-knowledge proof breaks the link, and inside the pool the amount is encrypted. You hand one key to the people who must see: your accountant, your auditor, your partner. Privacy by default. Transparency by consent.

Same transaction. Two truths.

One payment on the chain. The world sees two unrelated events. The person you trust sees the whole story.

What the whole world sees

Deposit    1.10 USDC   from 9xQt…f3Km
Withdraw   1.00 USDC   to   7hTb…k2Rn

Same payment?          ???
Who paid whom?         ???
Purpose?               ???

What the person you allow sees

Date:    2026-08-05
From:    9xQt…f3Km
To:      7hTb…k2Rn
Amount:  1.00 USDC
Memo:    invoice 114, August
Tx:      38CEsstd…joMEyG3s
1

What it is

Think of cash in an envelope. You hand it over — the street never sees how much, or to whom. But if the tax office asks, you open your own books and show every envelope you sent.

tidex6 does the same for digital money, with one honest difference: the chain still sees envelopes going into the box and envelopes coming out — it just cannot tell which one is yours, or whose hand took it. Unlinkable to the world, fully auditable for the people you allow — and no one else. You grant access; you never ask permission.

Made to be used every month, not once.

The privacy people actually keep is the boring, recurring kind — the toothbrush, not the fireworks.

Payroll, every month

Pay a remote team across countries. Each person sees only their own salary — never anyone else's. The auditor sees the whole ledger.

Support home, monthly

A transfer to family every month, private by default. Your accountant can still verify all of it at tax time, because you chose to share.

Freelance invoices

Bill clients in stablecoin without exposing your rates, your client list, or how often you get paid. Recurring by nature.

A fund, one address forever

Publish a single address instead of rotating wallets. Donors send shielded gifts; the fund's auditor sees every contribution — date, amount, memo.

Cross-border business

Pay suppliers privately, and prove compliance to a regulator on demand — without a freeze, without a public trail.

Fund what must stay private

Back a journalist or a cause. The donation stays private; the work is public; the supporter stays safe.

Recurring by nature — that is why people come back.

2

How it's built

Real cryptography, verified on-chain — not trust, not a promise.

Zero-knowledge proofs

Groth16 over BN254 hides the sender↔receiver link. Verified by Solana's native alt_bn128 syscalls — cheap and on-chain.

Post-quantum encryption

Every memo and address is sealed with ML-KEM-768 — safe even against a future quantum computer (harvest-now-decrypt-later defence).

Stealth delivery

Nothing is handed over. The recipient scans the chain with their own secret and finds the payment. Their wallet never appears.

Immutable & reproducible

The verifier is locked forever — no admin key, no backdoor. The browser code is reproducible: anyone can confirm the code in their tab is the open source.

Coins: USDC and USDT, both with hidden amounts (Token-2022 Confidential Transfers), live on mainnet — inside the pool the chain hides not just the link between sender and recipient, but the number itself.

3

It's live — not a demo

Everything above runs on Solana mainnet, right now.

  • Three programs on mainnet — an immutable, OtterSec-verified verifier, plus live USDC and USDT hidden-amount pools.
  • The verifier's upgrade authority is renounced — no one can change it, ever.
  • Your proof is built in your browser in ~1.7 s — your secret never leaves the tab.
  • The code is reproducible — hash e3337e54… matches live at /verify.
  • Private transactions so far: 167 (mainnet 110 · devnet 57).

You choose how to earn

tidex6 ships the privacy primitive. How you charge for it is entirely your call — a subscription, a per-transaction fee, or a licence. No lock-in, no mandatory protocol fee, no middleman taking a cut. The network and the token are up to you; the privacy is built in.

The live reference wires up one such model — a configurable per-transaction fee. The sender pays the amount plus a small fee on top; the recipient receives the exact amount they asked for, and the operator keeps the fee. It's a single config value — 1% with a 0.1 floor by default, or set it to zero. The payer sees the fee before they sign — nothing hidden from the person paying.

That is also what this site charges: send a payment here and it costs 1% on top, minimum 0.1 — the recipient gets the full amount you typed. How it works and what it pays for.

One thing we can't do alone

The program above is locked and verified — but a Groth16 proof is checked against a set of parameters, and those are a separate question. Generating them produces a piece of secret randomness, and whoever keeps it can forge a proof out of nothing. Ours were generated on a single machine. We destroyed the secret, and you have only our word for that — which is exactly the kind of assurance this project exists to do away with.

A public ceremony replaces that word with arithmetic. Contributors take turns adding their own randomness on top, each destroying theirs, and the result is safe unless every single one of them colluded. So the real answer to “why trust this?” is a list of people — and right now that list is short.

5 contributors so far

If you have a Solana wallet and a spare minute, please take a turn. Connect, click once, done. You sign nothing, you send no transaction and it costs you nothing — the wallet is only the name under your entry in the public transcript. Your randomness is generated and destroyed inside your own tab; we never see it.

Add your randomness
Want the detail? Keep scrolling.

ZK Privacy

Groth16 proofs hide the sender-receiver link. Verified on-chain via native alt_bn128 syscalls.

Selective Disclosure

Share a viewing key with your accountant — and only them. Privacy by default, transparency by choice.

Non-upgradeable

Verifier program locked after deploy. No backdoors, no admin keys, no trust required.

Private transactions: 167 (mainnet 110 · devnet 57) Program: CSDD31Zm...rsJhcd Solana Mainnet OtterSec Verified Powered by Helius RPC

How it Works

Three steps. No intermediaries. Full control.

1

Deposit

Send USDC or USDT into the shielded pool, sealed in a post-quantum ML-KEM envelope addressed to the recipient's key. Inside the pool the amount moves as a Token-2022 confidential transfer; the deposit itself records only a commitment hash — no recipient, no amount, nothing an observer can tie to the withdrawal that will follow.

2

Recipient Scans

Nothing is handed over — no note, no file, no channel. The recipient scans the chain with their own ML-KEM secret and finds the payment addressed to them. The key stays in their tab; the scan itself is the delivery.

3

Withdraw

The recipient presents a ZK proof and claims the funds. The reference relayer pays the on-chain fee, so the recipient wallet never appears as fee-payer — full unlinkability against on-chain analysis.

What Solscan sees

Deposit   commitment 08e44231fddae8cc...
Withdraw  nullifier  121669cf909f2ad6...

Which deposit paid it?   ???
Amount inside the pool?  ???
Purpose?                 ???

What the accountant sees

Date: 2026-08-05
From: 9xQt…f3Km
To:   7hTb…k2Rn
Amount: 100.00 USDC
Memo: invoice 114, August
Tx: 38CEsstd...joMEyG3s

Grand total: 100.00 USDC

Use Cases

Privacy is not about hiding. It is about choosing who sees what.

Family Support

Cross-border transfers, private by default.

Lena sends monthly support to her parents. The public sees a deposit and a withdrawal, never the line between them — and Lena's accountant can verify every transfer, because she chose to share.

Journalist Protection

Fund investigations privately.

A source funds a journalist's investigation. The donation is private. The story is public. The source stays safe.

Freelancer Privacy

Invoice without exposing your rates.

A freelancer invoices clients in USDC. Competitors cannot see the client list, the rates, or the payment frequency.

Payroll

Pay remote teams privately.

A company pays a remote team in 12 countries. Each employee sees only their own salary. No one sees anyone else's.

Donor Anonymity

Support causes without exposure.

A donor supports an independent organisation. The donation stays private, and the organisation keeps its supporters.

Tax Compliance

Full audit trail, zero public exposure.

At year-end, the user shares a viewing key with their accountant. Complete transaction history for the tax return — and nothing more.

Donation Fund + Auditor

One address forever, audit by choice.

A fund publishes one address forever instead of rotating wallets every few weeks. Donors send shielded deposits with the fund's auditor public key attached. The fund hands its auditor one secret key — the auditor sees every contribution with date, amount, sender pubkey, and memo. The public cannot tell which donation came from whom. Privacy by default, transparency by choice — both at the same time, without operational hygiene.

For Developers

Add privacy to your Solana program in five lines.

Rust SDK Copy
let pool = PrivatePool::connect(Cluster::Mainnet, Denomination::OneSol)?;
// Sender seals the payment for the recipient's ML-KEM key — nothing handed over.
pool.deposit(&wallet).to_recipient(recipient_pk).send()?;
// Recipient scans with their own secret and withdraws — no note passed.
let payments = RecipientScanner::new(rpc, program, &secret).scan()?;
CLI Copy
tidex6 keygen
tidex6 deposit --amount 0.1 --recipient <recipient-mlkem-pubkey>
tidex6 receive --identity my.json --to <pubkey>

Roadmap

The honest current state — what runs today, and what comes next.

Shipped — live on mainnet

  • Shielded pool (deposit + withdraw), Groth16 / BN254, per-nullifier double-spend guard
  • Immutable verifier — OtterSec-verified, upgrade authority renounced (can never change)
  • Unlinkable withdraw via reference relayer (relayer pays the fee)
  • Post-quantum encryption everywhere (ML-KEM-768) — every memo, envelope and address
  • Stealth payments — the recipient scans the chain with their own secret, nothing handed over
  • Encrypted memo addressed to an auditor — auditable by choice, per deposit
  • Hidden amounts on mainnet — USDC and USDT (Token-2022 Confidential Transfers): the chain hides the number too
  • Client-side proof in the browser (~1.7 s, secret never leaves the tab)
  • X25519 view-tags — fast recipient / auditor scan
  • Public trusted-setup ceremony at ceremony.tidex6.com — contributions open, publicly verifiable transcript; a fresh immutable verifier ships when it finalizes
  • Reproducible build + live /verify — confirm the browser code is the open source
  • Wallet Standard — Phantom, Solflare, Backpack, Ledger
  • Per-deposit revoke / refund — reclaim a deposit the recipient never withdraws
  • Third-party CPI integration example (tip-jar — built and OtterSec-verified against the historical v1 verifier)

Now — the regulator layer

  • Regulated / multi-auditor pools — a pool-level viewing key for a regulator: sees every transaction, cannot freeze or stop anything. Legal privacy for stablecoins.

Next

  • Proof of Innocence / association sets — prove funds are clean without revealing who you are
  • Time-scoped auditor keys — grant a viewing key for one period (e.g. one tax year), not forever
  • Relayer hardening — HSM keypair, cold multisig, federated discovery across independent relayers
  • Timing defences — random timelock so deposit↔withdraw timing can't be correlated
  • Revoke in the UI — the on-chain refund exists; add the button

Later — 2027 and beyond

  • UTXO model — spend part of a note and get private change, or merge notes (like Bitcoin)
  • Shared anonymity pool — one crowd across every integrating app, stronger privacy for all
  • Post-quantum spender signature (Falcon) — research spike
  • Persistent browser prover — cache the proving key across calls for even faster proofs