Solana Pay Link + Verify — tip-jar in one link

Static client-only submit pack (round 138). Zero backend, zero keys, zero custody. Nothing registered / published / deployed in this round.

Pages (local relative links, no CDN)

All links relative (./pay.html ./verify.html ./monitor.html ./bolt11.html ./index.html). No CDN, no external CSS/JS. Each subpage links back here + to siblings via top nav.

How to use

  1. Pay: open pay.html → paste recipient wallet (NOT ATA) → amount (SOL ≤9dp, USDC ≤6dp, 0 allowed) → label/message/memo → Generate → Copy / QR-share via X/Discord → payer pays in Phantom/Solflare.
  2. Verify: open verify.html → same recipient + reference(s) from URL + expected amount → Check payment → CONFIRMED / MISMATCH / PENDING [finalized]. Use Re-check after payment, Search deeper for older history (5×20).
  3. Monitor: open monitor.html → Refresh → live BTC (blockstream.info) + EVM (blockcypher.com) balances. Pre-existing demo, disclosed per Colosseum rules.
  4. Local run: python3 -m http.server 8766 --directory hack/app → curl each page → expect 200.

Honest limits

Stack

Static HTML+JS, zero deps. Read-only RPC: getBalance, getSignaturesForAddress, getTransaction/getParsedTransaction, getTokenAccountsByOwner, getAccountInfo. Output only via textContent. Sending happens in user wallet.