Private freelance milestones and creator subscriptions

Private compute.
Verifiable outcomes.

Gigstark uses ZK proofs for enforceable STRK20 settlement and optional Oyster attestations for independently verifiable execution receipts. Helper amounts and timing are not cryptographically hidden.

See the compute pathNon-custodial · no Athera L1/L3 · onchain deployment gated

Live release state

What works, what is gated, what comes next.

View strk20.json

Public demo

ReadyStatic production build on Cloudflare Pages.

Wallet path

Review onlyCapability check, network check, exact pool check, and wallet dry run.

Mainnet contracts

LockedIndependent review, production verifier, ceremony, and attestor gates remain open.

Sprint evidence

0 / 3No Mainnet transaction hashes or demo video are claimed yet.

The demo is public. Contract declaration, deployment, signatures, and fund movement are not authorized by this page and remain fail-closed.

Escrow

Commit, prove, settle.

Private deposit → delivery commitment → buyer confirmation or ZK dispute outcome → one private note for exactly one winner.

Subscriptions

Start with one period.

Cancellation, expiry, bounded prepaid periods, and creator claims are sequenced after the escrow demo—not autonomous charges.

Access

Prove tier, not wallet history.

A verifier checks an audience-bound access proof. It never scans a connected wallet to infer patron status.

ZK settlement · Oyster receipt

One authority, one independent witness.

Cairo settles only when the policy-pinned Groth16 verifier accepts the proof and all eight public signals match. Oyster can attest to the same workload and result, but its optional receipt cannot block or override settlement.

  1. 1 · CommitEvidence stays private; only its commitment enters the statement.
  2. 2 · ProveThe canonical circuit proves the policy result against the committed input.
  3. 3 · SettleStarknet verifies the proof, matches every signal, and rejects replay.
  4. 4 · AttestOyster optionally binds image ID and result in a separately checked receipt.

Current boundary: real synthetic Groth16 proof verification is wired through Cairo. A paid Oyster job and raw attestation have not been created.

Wallet API readiness

Review first. Ask the wallet second.

Capability detection asks installed wallets only for supported Wallet API versions. It does not connect an account, request a private balance, discover notes, collect a viewing key, prepare a transfer, or submit a transaction.

No Starknet wallet discovered.

Mainnet release connection

Connect only to confirm the selected public Mainnet account. No transaction will be prepared.

Connection-only gate: this control cannot read balances, prepare STRK20 actions, request signatures, or submit transactions.

Legacy Sepolia contract review

Private escrow deposit review

Public settlement fields

STRK20 hides the pool-side user link, but the helper, token, amount, timing, and open-note amount remain public. Values below are never treated as cryptographically hidden.

Network
Starknet Sepolia
Pool
0x0254a6b2997ef52e9f830ce1f543f6b29768295e8d17e2267d672c552cfe0d91
Action
Private withdraw → escrow invoke
Submission
One explicit wallet request after dry run

Connect only after reviewing the public settlement fields below.

The current observed Sepolia pool class is still fail-closed because its source build has not reproduced the deployed class hash. This screen cannot bypass that gate.

Private winner-note review

Open exactly one note for the winner

The wallet creates one open note and invokes the escrow claim atomically. Its amount and timing are public. The signed Passport receipt is public authorization data; never paste a viewing key, spending key, seed phrase, or private witness here.

Network
Starknet Sepolia
Recipient
Connect winning wallet
Public amount
Available after dry run
Action
Open note → escrow claim invoke
Output
Exactly one pool-pulled OpenNoteDeposit

Connect the winning wallet before preparing its private note.

Must-ship demo

Private milestone settlement

Buyer commitment: buyer:8b2…91aSeller commitment: seller:4c7…0efAmount: not sent
Private depositactive
Delivery commitmentwaiting
Buyer confirmationwaiting
Private-note claimwaiting

Demo only: no wallet, proof, contract, or funds are used.

Passport-inspired tier verifier

Verify access, never scan a wallet.

The verifier accepts only a current, audience-bound Studio-tier receipt with a scoped anti-replay value. It receives no wallet history, identity, proof witness, or delivery data.

No proof checked. No wallet information is requested.

GigstarkPassport

Purpose-bound private access.

Only an opaque proof commitment, a scoped replay value, purpose, audience, and expiry are evaluated. No identity document, wallet history, witness, or Athera contract is involved.

No Passport claim checked. This app does not inspect a wallet.

Explicit boundaries

Privacy is specific, not absolute.

Hidden by intent: party identity inside the STRK20 pool, private evidence, proof witnesses, role mapping, and delivery content.

Still observable: compute outcome and commitments, proof calldata, deposits, withdrawals, helper amount, timing, and pool/helper interactions.

Still gated: production proving setup, live Oyster receipt, live transfers, recurring charges, and deployment are not enabled.