App guide

Everything in the Qietr app, what it does, and how to use it.

The Qietr app runs on Solana devnet. You connect a Phantom or Solflare wallet, deposit USDC into a shielded pool, then spend privately using zero-knowledge proofs. No account signup, no email, no database. Your state lives in your wallet, your browser, and your note file.

Below is a walkthrough of every screen in /app.

Heads up: This is unaudited devnet software with a dev proving key. Use throwaway USDC only. Real funds will be lost or compromised.

Deposit

This is where you put money into the shielded pool. Pick a fixed tier — 0.1, 1, 10, or 100 USDC — and your wallet signs an SPL transfer. The pool program records a commitment on-chain, and your browser stores the corresponding note locally.

What actually happens

If you lose the note file or forget the passphrase, the money is gone. There is no recovery, no reset, no support ticket. The note is the only key to your deposit.

Pay

Two ways to spend from your shielded note:

Direct payment

Enter a Solana address, an amount, and your note passphrase. The app generates a Groth16 ZK proof in your browser, submits it to the pool program, and the recipient gets USDC from the pool. The proof proves you own a deposit without revealing which one.

x402 endpoint

Enter a URL that speaks the x402 protocol (HTTP 402 Payment Required). The app hits the URL, parses the 402 response, matches a denomination from your note, and retries with an X-PAYMENT header. The endpoint gets paid without knowing who you are.

Partial spends create a “change” commitment on-chain that is linked to the spend. If privacy matters, spend whole denominations or re-deposit the change.

Note Manager

Your encrypted notebook. A note is a JSON blob holding your commitments (deposits) and their metadata. It is encrypted with AES-256-GCM using a key derived from your passphrase via Argon2id. The encrypted blob sits in your browser's localStorage; the decrypted contents only exist in memory while the tab is open.

From here you can:

You should back up your note somewhere safe (external drive, password manager, wherever) before clearing your browser data. If the localStorage blob goes away and you have no backup, the commitments inside it become unspendable. The money is still in the pool, but nobody can withdraw it.

Messaging

On-chain encrypted messaging between wallets. Built on the qietr-msgprogram. Messages are encrypted with AES-256-GCM before they leave your browser, and the ciphertext lives on Solana. Only the recipient can decrypt (with your shared passphrase).

Two tabs:

The passphrase is never stored. If the other person loses it, the message is permanently unreadable. Max body size is 1024 bytes.

Escrow

Trust-minimized escrow for agent commerce. Built on the qietr-escrowprogram. The lifecycle goes: Create → Accept → Complete → Release. If something goes wrong, the client can dispute, and either party can escalate.

Two tabs:

States: Created → Accepted → Completed → Released (happy path). Or: Created → Cancel (client backs out), Disputed → Refund (client wins dispute) or Release (agent wins). Once released or refunded, anyone can close the job account to reclaim rent.

Activity

A local event log stored in your browser. Tracks deposits, payments, backups, restores, and clears with timestamps and status. Nothing is sent to a server. Cleared when you clear browser data, or when you hit the “Clear” button on the activity page.

Useful for keeping track of what you did during a session without having to dig through Solana Explorer links.

Devnet test funds

The app runs on devnet. To use it you need two things:

  1. USDC-Dev from Circle's faucet at faucet.circle.com — choose Solana Devnet, paste your wallet address, claim. The pool only accepts the Circle devnet mint: 4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU.
  2. SOL from the Solana faucet for transaction fees. You only need a little.

If you claim USDC from a different faucet and the deposit fails, the mint doesn't match. Use Circle's faucet. You can claim repeatedly.

View on GitHub · @QietrCom