✕
Zero-knowledge, by default.
- Solana
no transaction is ever sent
sees nothing
- Kwest servers
the proof is built in your browser
see nothing
- The verifier
one line, checked on their side
claim + yes
✓witness loaded, stays on this device
✓circuit satisfied
✓proof sealed · 192 bytes
✓verified locally
Succinct proofs, one nullifier per site or poll so two actions can never be linked. Simulated in this demo: the real prover runs the same steps in WebAssembly and anchors to a Solana slot.
Prove it. Show nothing.
One signature, no transaction, no gas. You get a link. Whoever opens it sees one green line and nothing else.
Ask anyone to prove something.
request expires in
They open it, sign, and you get a yes or a no. Never an address, never a number.
Put a proof in front of anything.
visitors let in
1,284example
Sign in as a member, not as yourself.
you aresame wallet, different name
One name per site, all from one wallet. A site can ban a name. It can't link two of them, and neither can I.
<script src="https://kwest.icu/login.js"
data-rule="holder:J1S9…Hc7k"></script>
Vote once. Nobody knows which way.
Example poll · Kwest Holders only · closes in 2 days
Should the treasury buy back tokens this quarter?
Every Kwest Holder gets one ticket per poll, whether they hold 200,000 or 20 million. A second vote bounces. The count is public, the voters are not.
Show one line, not the ledger.
- Total balance
as of today
- Income this year
sum of inflows
- Counterparties
who you traded with
- Transaction dates
when it happened
- Wallet addresses
where it lives
Every open field comes with a proof that it is true and complete. Example fields.
Proofs you can reuse.
Kwest Holder badgerenews every 24 h
Hold at least 200,000 $KWEST and you get the badge. It is a zero-knowledge proof: you show you clear the bar, never your wallet or your exact balance. No staking, no lock. Drop below and it expires the next day.
| without | holder |
| Proofs per month | 10 | unlimited |
| Active gates | 1 | unlimited, with stats |
| Anon logins | 3 sites | unlimited |
| Reveal to an auditor | — | yes |
| MCP agent | read only | presents badges |
| Tally polls | vote | create, holders only |
| New tools | — | 2 weeks early |
Other badges example
- Human
one person, one badge · expires 12 Dec
valid
- Over 18
from a passport chip · no expiry
valid
- Wallet older than 2 years
proved once
valid
- Accredited investor
needs a fresh attestation
expired
Badges live in your browser. Show one in a click, revoke it in another. Two sites can't tell it's the same you. The Holder check goes live with the prover.
Let your agent prove things for you.
{
"mcpServers": {
"kwest": {
"url": "https://mcp.kwest.icu",
"tools": ["request_proof", "verify", "present_badge", "gate"],
"askMe": ["reveal"]
}
}
}
- request_proof
ask a counterparty to prove a claim
allowed
- verify
check a proof before acting on it
allowed
- present_badge
only the badges you picked
allowed
- reveal
open a sealed field to someone
needs you
The agent can show badges. It never holds the wallet behind them.
My proofs example
- Balance ≥ 500 SOL
to alpha.club · today 14:02
opened once
- Not sanctioned
to an OTC desk · yesterday
opened once
- Signed in as anon-7f3a
realms.vote · 17 Sep
session ended
- Voted in "Buy back?"
ticket spent · 15 Sep
counted
Only you can read this list. It is decrypted in your browser and never leaves it.
Check a proof.
✓format is a Kwest proof
✓proof verifies locally
✓Solana slot is recent
✓claim matches the request
Nothing is sent to a server. Close the tab and there is no record you checked anything.
How it works
You sign once
A message with Phantom or Backpack, not a transaction. No fee, nothing on-chain, nothing to trace.
Your browser reads Solana
It pulls the same public account snapshot as everybody else from an RPC, so the request says nothing about you.
It builds the proof
A zero-knowledge proof that some wallet you control meets the claim. Which wallet stays out of it.
They read one line
The claim and a yes. Anyone can re-check it in their own browser.
Try a proof