JedBolthock

Browser ZK Proofs with Noir & Garaga

I will build browser ZK proofs with Noir, verified on Starknet using Garaga

Jedidiah Gabriel
Jedidiah GabrielProduct engineer · Kaduna, Nigeria · Replies within 24 hours
Browser ZK Proofs with Noir & Garaga flyer: Proven in the browser. Settled on Starknet.

About this gig

Zero-knowledge proofs let a user prove something is true without revealing why it's true. With Noir, that proof can now be generated in the user's own browser, and with Garaga it can be verified cheaply on Starknet.

I build ZK features end to end. First we write down, in plain language, what gets proven and what stays private. Then I write the Noir circuit, generate proofs in the browser with NoirJS and Barretenberg, and deploy a Garaga-generated Cairo verifier that your contract calls before it acts.

Use cases I can build:

  • Private clock-ins inside a geofence, with no GPS sent
  • Anonymous membership and private voting with nullifiers
  • Pass or fail certificates that hide the exam score
  • Sealed-bid tenders and proof of reserves
  • Age, region or income checks without documents
  • Hidden-information games on Starknet

What you get:

  • The Noir circuit with constraint and forgery tests
  • In-browser proving, benchmarked on mobile
  • A Garaga verifier deployed on Starknet and wired to your contract

I build on Starknet: Cairo contracts like Bilateral Escrow and LandReg3, and Tongo shielded balances in WeSelling.

Tell me what users need to prove and what must stay private.

Use cases

Private clock-in

Staff prove their phone is inside the work geofence without sending GPS coordinates to anyone.

Anonymous membership

Prove you're on an allow-list, a staff roster or a holder list without revealing which entry is yours.

Private voting

One vote per member, counted on Starknet, with a nullifier stopping double votes and no link from vote to voter.

Pass, without the score

A candidate proves they passed a CBT exam or met a grade threshold without disclosing the mark.

Sealed-bid tenders

Bidders commit to sealed bids and prove each one is valid, so procurement stays fair until bids are opened.

Proof of reserves

A business proves its balance covers what it owes without publishing the balance itself.

Age and eligibility

Prove you're over 18, in a region or under an income cap without handing over the document.

Hidden-information games

Battleship, card games and fog of war on Starknet, where moves are proven legal while the state stays secret.

What changes

Today

  • Your feature needs privacy, and nobody on the team has shipped a ZK circuit
  • Server-side proving means users still hand you their secrets
  • Verifying proofs on-chain sounds expensive and hard to wire up
  • A constraint bug in a circuit can let anyone forge a valid proof

After

  • A Noir circuit written from a plain-language statement of what's proven and what stays private
  • Proofs generated in the browser with NoirJS and Barretenberg, benchmarked on ordinary phones
  • A Cairo verifier generated with Garaga, deployed on Starknet and wired to your contract
  • Tests that try to forge proofs with bad inputs, and documentation an auditor can follow

How it works

  1. 01State what to prove
  2. 02Write the Noir circuit
  3. 03Prove in the browser
  4. 04Verify on Starknet with Garaga
  5. 05Contract acts on the proof

Compare packages

PackageStarter$750Business$1,900Scale$4,600
What it isOne Noir circuit with tests and a Garaga verifier deployed on Starknet testnetCircuit plus in-browser proving, verifier wired to your contract and a dApp screenUp to 3 circuits, nullifiers, relayer, mobile benchmarks, review and mainnet
Noir circuits11Up to 3
Constraint and forgery tests✓✓✓
Garaga verifier on StarknetTestnetTestnet + mainnetTestnet + mainnet
In-browser proving (NoirJS + bb.js)–✓✓
Verifier wired to your contract–✓✓
dApp screen to prove and submit–✓✓
Nullifiers (one action per person)––✓
Relayer for gasless submission––✓
Proving benchmarks on mobile–✓✓
Internal security review––✓
Delivery9 days18 days32 days
Revisions234

Add-ons

  • Faster delivery+30% of the package
  • Internal security review with written findings+$250
  • Written documentation for your team+$50
  • 90 days of support and small changes+$240

Built before

Who it's for

  • Starknet projects
  • Privacy-first apps
  • DAOs and communities
  • Games
  • Fintechs and HR platforms

What I'll need from you

  • What users need to prove, and what must stay private
  • The action the proof should unlock
  • Your Starknet contracts or app, if they exist
  • The devices your users have

Questions, answered

Why prove in the browser?

Because the private input never leaves the user's device. If a server generates the proof, the user has to hand that server their secret, which defeats the point.

How long does proving take on a phone?

It depends on the circuit. Small circuits such as membership or range checks prove in seconds on a recent phone. I benchmark yours early and simplify the circuit if it's too heavy.

Why Garaga and Starknet?

Garaga generates efficient Cairo verifiers for Noir's UltraKeccakHonk proofs and for Groth16, so a Starknet contract can check a proof as one step of a normal transaction at low cost.

Can the same circuit verify on Ethereum?

Yes. Noir can also produce a Solidity verifier, so one circuit can serve both chains.

Who owns the code and accounts when we finish?

You do. Code goes to your repository, and services run on accounts in your name, so you are never locked to me. I hand over logins, keys and a short guide.

What if my project doesn't fit a package?

Send a message describing what you need. I reply with a custom offer priced to the actual scope, often after a short call.

The thinking behind it

Tools and tags

  • Noir
  • NoirJS
  • Barretenberg (bb.js)
  • Garaga
  • Cairo
  • starknet.js
  • Next.js
  • #noir
  • #garaga
  • #zkproof
  • #starknet
  • #zeroknowledge

More in Smart Contracts & Web3