One-liner: Fiş/receipt verisini özel olarak ZK ile işler, 0G (Galileo) üzerinde ödül talebine dönüştürür.
Yerel Python worker → rc/nul/pub üretir; Kişisel veri (PII) cihazdan çıkmaz.
Akıllı kontrat Foundry ile; talep “tek komut” script’iyle zincire gider.
- Dashboard (Live Claims): https://erkancamli.github.io/zkspend/
- TX Viewer: https://erkancamli.github.io/zkspend/tx.html
- Claims manifest (JSON): https://erkancamli.github.io/zkspend/docs/claims/index.json
- Contracts (Foundry):
contracts/(Campaign + Factory, 0G Galileo testnet) - Worker (Python):
worker/(lokalde ZK stub →rc,nul,pub,proof) - Tek komut claim:
scripts/claim_once.sh(güvenli gas ayarı, JSON-RPC fallback) - Storage stub:
scripts/store_claim_stub.sh→ claim JSON’unudocs/claims/içine yazar,index.json’ı günceller - Docs/Pages: hafif dashboard
docs/index.html(live claims), TX viewerdocs/tx.html - Doğrulama:
scripts/validate_claims.sh→ JSON ↔ zincir tutarlılığı & manifest yeniden inşa
- Chain ID:
16601 - Explorer: https://evm-testnet.0g.ai/
- Public RPC (örnek):
https://evmrpc-testnet.0g.ai - Campaign (0.11 ETH reward):
0xd35116e3984b9e7564079750ab726aa4c1d7e77d - Demo cüzdan (FROM):
0x63798AD4eb791a8247Bb522bCE38062E41F7CE26
Kendi RPC’n ile denemek istersen QuickNode/Infura benzeri endpoint kullanabilirsin.
Linux/macOS üzerinde sorunsuz; temiz bir sunucuda Foundry & Python kurulumunu yapar, .env doldurmanı ister.
bash -c "$(curl -fsSL https://raw.githubusercontent.com/erkancamli/zkspend/main/scripts/bootstrap.sh)"
2) Konfigürasyon
~/zkspend/scripts/configure.sh
# İstenecek alanlar:
# RPC_URL, PRIVATE_KEY, FROM, CAMPAIGN
3) Tek komut ile claim
~/zkspend/scripts/claim_once.sh ~/zkspend/receipts/receipt_3.png
# Çıktı:
# - TX hash (zincirde)
# - rc / nul / pub (lokalde)
# - docs/claims/<TX>.json ve docs/claims/index.json güncellenir
# - GitHub Pages’e push edersen dashboard otomatik güncellenir
Hızlı bağlantı:
Live claims: https://erkancamli.github.io/zkspend/
Son claim JSON: docs/claims/<TX>.json
Doğrulama (optional)
# Manifest ve tekil JSON’ları zincire göre doğrular, gerekiyorsa index.json’u yeniden kurar
~/zkspend/scripts/validate_claims.sh
Storage Roadmap
v0.1: JSON artefact’lar GitHub Pages altında tutuluyor (kanıt izi).
v0.2: 0G Storage (CLI/SDK) ile upload; manifest’te CID/hash koruma.
v0.3: Zincirde ZK doğrulama + 0G Storage pointer (tam uçtan-uca kanıt zinciri).
Roadmap & Next
Gerçek ZK proof (Groth16/Plonk) entegre (stub yerine)
Web Claim UI (tek sayfa): upload → lokalde rc/nul/pub → zincire gönder
Multi-campaign seçim & parametre görünümü
Mobile (kamera ile receipt scan)
0G Storage prod entegrasyon (CID/pointer’lı claim kaydı)
Watcher/Explorer (event decoder, analytics)
Testler, edge-case’ler, JSON-RPC fallback’ler
Latest demo TX
0x51ad231e20976681553fca4f660cd474b2cec8c1112363c6feead30536840672
Explorer’da aratarak zincir üzerindeki log’u görebilirsiniz.
Örnek .env
# scripts/env.local
RPC_URL=https://evmrpc-testnet.0g.ai
PRIVATE_KEY=0x........................................................
FROM=0x....................................
CAMPAIGN=0xd35116e3984b9e7564079750ab726aa4c1d7e77d
Lisans
MIT
---
### Storage Roadmap
- **v0.1**: Public JSON artifacts (GitHub Pages under `docs/claims/`)
- **v0.2**: Push artifacts to **0G Storage** (CLI/SDK), keep CID/hash in claim record
- **v0.3**: ZK verifier emits storage pointer; end-to-end verifiable proof trail
**Claims (JSON artifacts):**
Public proof artifacts are published under GitHub Pages:
`https://erkancamli.github.io/zkspend/claims/<FILE>.json`
### Storage Roadmap
- **v0.1:** Public JSON artifacts (GitHub Pages under `docs/claims/`)
- **v0.2:** Push artifacts to **0G Storage** (CLI/SDK), keep CID/hash in claim record *(stubbed now: see `scripts/uploader_0g_stub.sh`)*
- **v0.3:** ZK verifier emits storage pointer; end-to-end verifiable proof trail
## Claims (Published)
The latest claim artifacts are published via GitHub Pages:
- Manifest: `docs/claims/index.json`
- Each claim: `docs/claims/<tx>.json` (contains `rc`, `nul`, `pub`, `tx`, optional storage pointer)
> You can validate locally:
>
> ```bash
> ./scripts/validate_claims.sh
> ```
### Published Claims
- Live list: **https://erkancamli.github.io/zkspend/claims/**
- Manifest (raw): **https://erkancamli.github.io/zkspend/claims/index.json**
Live
Dashboard: https://erkancamli.github.io/zkspend/
Claims: https://erkancamli.github.io/zkspend/claims.html
## Data / Exports
- **NDJSON:** https://erkancamli.github.io/zkspend/docs/claims/claims.ndjson
- **CSV:** https://erkancamli.github.io/zkspend/docs/claims/claims.csv