For judges¶
GhostDeal is built for the STRK20 Private Sprint. Public repo: github.com/JaDi03/GhostDeal.
This page maps the repo to the four scoring criteria. Every claim points at code or data in this repo, so you can verify it instead of trusting it.
The idea, and where it comes from¶
Using an idea from the list was never required. GhostDeal is its own product that takes two ideas as starting points rather than implementing either:
- IDEA-12 · Marketplace escrow: same shape: buyer pays into private escrow, seller receives a private note. Different trust design: no arbitrator and no buyer confirmation. The seller cashes out with a claim secret held since list time; the buyer cancels with a refund secret saved at pay time.
- IDEA-09 · Payments by identifier: the QR/link entry, but the listing itself is the payment target instead of a wallet address.
That is the innovation case in one line: not a new proving system, a better take on ideas the ecosystem already published.
30% STRK20 integration depth¶
How far into the stack, not how many buzzwords.
| Surface | In GhostDeal? | Where |
|---|---|---|
| Shielded balances | Yes. Account Show balance asks the wallet for STRK and USDC in one consent. A token with no notes shows 0. Counterparty balances are never requested | src/app/account/page.tsx |
| Private transfers into app logic | Yes. Pay, claim, and cancel are strk20InvokeTransaction batches |
src/lib/escrow.ts |
| Anonymizer contract | Yes. Custom privacy_invoke escrow: Deposit, Claim, Cancel |
cairo/src/lib.cairo |
| Private swaps | Yes. Shielded STRK ↔ USDC via AVNU's deployed executor, batched as strk20InvokeTransaction actions |
src/lib/avnu.ts |
Depth here means: a real helper the pool calls, not only a shield button on a starter kit. By design, GhostDeal connects via the Starknet Wallet API and never holds user viewing keys.
30% Working mainnet product¶
The bar from the rules: it runs, on mainnet, for a real user.
| Check | Status to verify before submission |
|---|---|
| No login wall | The PWA is public. Guests can open a listing |
| STRK20 pool on mainnet | Yes. Address in src/utils/constants.ts |
| GhostDeal helper on mainnet | Yes. Mainnet 0x1ad47d7b59f736383221af3847aeb737d358e0c2cce947482ca48dad6c4ca72, Sepolia 0x2fe8c2bc2194ccdf899c0566057217a34e139c0c5e6f7931f2b24cb436a22cf |
| Three mainnet transactions | Yes. In strk20.json. Each touches the pool and the helper in the same tx (not shield-only): Pay +2 STRK, Claim or Cancel −2 STRK, Pay +10 STRK |
| Demo video | Yes. In strk20.json: YouTube demo |
| Live demo URL | Yes. https://ghost-deal.vercel.app |
25% Innovation¶
What the ecosystem does not have yet, or a materially better take.
The take: in-person crypto that feels like cash for ordinary people.
Most private-DeFi demos are swaps, lending, or "hide a transfer." GhostDeal is a neighbor selling a PC. The innovation is the product shape, not a new proving system:
- The other party never sees your wallet or remaining balance.
- Price is public (that is the deal). The rest is not.
- Escrow is a
privacy_invokehelper, so lock and cash-out stay inside the pool. - QR / listing link for two phones, not a DEX UI.
- Honest copy: we do not sell unlinkability against a chain observer.
15% Documentation and open-source quality¶
| Ask | Where |
|---|---|
| A README someone can follow | Root README.md |
| Docs a judge can explain in five minutes | This MkDocs site |
| Code someone can build on | cairo/ helper + src/lib/escrow.ts |
| License | MIT. LICENSE includes starter kit copyright (Philippe ROSTAN, 2023) and GhostDeal (JaDi03, 2026) |