ZK Circuits & Verifiers (Noir, Circom)
I will build zero knowledge circuits in Noir or Circom with on-chain verifiers

About this gig
A zero-knowledge circuit is a program whose output can be trusted without seeing its inputs. Getting one right takes care: a single missing constraint can let anyone forge a proof.
I write circuits in Noir and Circom from a precise statement of what's public and what's private, test them against forgery attempts, and generate verifiers for the chains you need: Solidity for Ethereum and L2s, or Cairo for Starknet through Garaga, which supports Groth16 on BN254 and BLS12-381 and Noir's UltraKeccakHonk.
What you get:
- A written statement of public and private inputs
- Circuits in Noir or Circom, with tests that try to break them
- Proving-time and gas benchmarks, with optimisations
- Verifier contracts in Solidity and/or Cairo
- Integration code for your app or backend
- A review of an existing circuit, if you have one
I build on Starknet and EVM chains, including Bilateral Escrow, LandReg3 and Tongo shielded balances in WeSelling.
Send me what you need to prove, or the circuit you want reviewed.
Use cases
Membership proofs
Merkle-tree membership with nullifiers, the base for anonymous voting, claims and feedback.
Range and threshold checks
Prove a value sits in a range (age, balance, score) without revealing it.
Credential checks
Verify a signed credential's fields inside the circuit and reveal only the ones you choose.
Porting and review
Move a Circom circuit to Noir, or review constraints for under-constrained signals.
What changes
Today
- Your protocol needs privacy, and nobody on the team writes circuits
- Proofs take too long to generate or cost too much to verify
- An existing circuit may be under-constrained, and nobody has checked
- You need the same proof verified on more than one chain
After
- Circuits written from a precise statement of public and private inputs
- Proving time and verification gas measured and reduced
- Generated verifiers in Solidity, or in Cairo through Garaga
- Constraint tests, including deliberate attempts to forge proofs
How it works
- 01Define public and private inputs
- 02Write the circuit
- 03Test constraints and forgery
- 04Generate verifiers
- 05Integrate and benchmark
Compare packages
| Package | Starter$600 | Business$1,600 | Scale$4,200 |
|---|---|---|---|
| What it is | One small circuit (membership, range or credential) with tests and a verifier | Up to 3 circuits, benchmarks, verifiers and app integration | Circuit suite, verifiers on two chains, Circom-to-Noir port or review, docs |
| Circuits | 1 | Up to 3 | Up to 6 |
| Language | Noir or Circom | Noir or Circom | Both if needed |
| Constraint and forgery tests | ✓ | ✓ | ✓ |
| Verifier contracts | 1 chain | 1 chain | 2 chains |
| Benchmarks and optimisation | – | ✓ | ✓ |
| App or backend integration | – | ✓ | ✓ |
| Circom to Noir port or circuit review | – | – | ✓ |
| Audit-ready documentation | – | – | ✓ |
| Delivery | 8 days | 16 days | 30 days |
| Revisions | 2 | 3 | 4 |
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
- Protocols adding privacy
- Identity and credential projects
- Voting platforms
- Teams porting Circom to Noir
What I'll need from you
- What needs to be proven, with public and private inputs if you know them
- Target chains
- Existing circuits or contracts, if any
- Performance needs: proving device and time budget
Questions, answered
Noir or Circom?
Noir for most new work: readable, Rust-like, with in-browser proving and verifiers on Ethereum and, through Garaga, on Starknet. Circom when you need Groth16's small proofs or an existing Circom library.
Do circuits need an audit?
If they protect money or identity, yes. I write tests that try to forge proofs and prepare documentation an auditor can work from.
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
- Circom
- snarkjs
- Garaga
- Solidity
- Cairo
- TypeScript
- #zkcircuits
- #noir
- #circom
- #groth16
- #zkdeveloper



