Pay like cash. You pay the agreed price. The other person never sees your wallet or how much crypto you still hold.
- Try it live: ghost-deal.vercel.app (on a phone, open inside a privacy-enabled wallet)
- Demo video: YouTube walkthrough
- Mainnet escrow helper:
0x1ad4...a72on Starkscan - Documentation: how GhostDeal works
Privacy on Starknet already exists, but it was built for traders: private swaps, private lending, private transfers between wallets. The everyday layer was missing: buying something from a person, in person.
Cash works like that. You agree on a price, hand over the bills, take the item home. Nobody asks for your bank statement. Public crypto does the opposite: one payment puts your whole wallet on display for a stranger. Your address, your history, your remaining balance, one click away on any explorer. Fine for a trader. Not fine when you are buying a used PC from a neighbor.
GhostDeal is that missing layer: a mobile PWA for ordinary people, for the purchases you already make today. No app store, no sign-up: it opens in the phone's browser and pays from a privacy-enabled wallet you already have. The other side sees that the price was paid. Never what else you hold.
- Lock payment: The buyer locks the agreed price (USDC or STRK) into private escrow via the Cairo helper inside the STRK20 privacy pool.
- In-person delivery: Both parties meet and exchange the item. Neither party sees the other's wallet address or remaining balance.
- Claim funds: The seller claims the payment into a fresh private note using the secret generated at listing time. If the deal falls through, the buyer can cancel and receive a private refund.
We promise: the other person does not see your wallet, your balance, or your history. Only the price.
We do not promise: invisibility against a chain observer. Pool deposits, cash-out amounts, and timing stay public. We say this plainly, because privacy oversold is privacy broken.
| Paying from a public wallet | Paying with GhostDeal |
|---|---|
| The seller opens your address on an explorer and sees your full history | The seller sees that the price was locked into escrow. No address, no balance |
| The rest of your wallet is one click away | The rest of your shielded balance stays yours |
The app never touches your keys. GhostDeal runs on the Starknet Wallet API: your wallet builds and proves the private transactions on your device. Escrow is a small Cairo contract with privacy_invoke that only the STRK20 pool can call: no admin key, no upgrade, no custody. Pay and cash out happen inside the pool's shielded zone; the app just orchestrates.
Full details in the Architecture page.
- Next.js 16, React 19, TypeScript: mobile-first PWA
- starknet.js 10 + get-starknet v6: Starknet Wallet API (
WalletAccountV6,strk20InvokeTransaction) - Cairo
privacy_invokeescrow (cairo/): Deposit, Claim, Cancel - Official STRK20 privacy pool on mainnet
git clone https://github.com/JaDi03/GhostDeal.git
cd GhostDeal
yarn install
cp .env.example .env.local
# put your Alchemy Starknet API key in NEXT_PUBLIC_PROVIDER_URL
yarn devOpen http://localhost:3000. Desktop: Chrome + a privacy-enabled wallet extension. Phone: open the PWA inside the wallet app.
Built for the STRK20 Private Sprint. Bootstrapped from the official STRK20 starter kit (Philippe ROSTAN, 2023, MIT); the GhostDeal escrow, marketplace, and UI are original work (JaDi03, 2026). MIT, see LICENSE.

