Video thumbnail

ZkDev

Verify your code contributions across projects—anonymously and trustlessly using ZK

ZkDev

Created At

ETHGlobal Prague

Project Description

ZkDev - Your Dev portfolio. Private and verified

ZkDev is a privacy-preserving developer identity system powered by zero-knowledge (ZK) cryptography, designed to let developers prove their code contributions across projects—including both open-source and closed-source work—without revealing their identity or linking their pseudonyms, GitHub accounts or emails.

Today, developers often work in multiple contexts:

A day job in a corporate or high-security environment (e.g., banking or defense).

A side identity in open-source or Web3 communities under a pseudonym or anonymously.

Private or freelance work that can't be openly shared.

Maintaining separate personas protects privacy, but it creates a problem: there’s no unified, trustable record of one’s contributions without compromising anonymity.

This system solves that by allowing developers to:

Generate cryptographic proofs that they authored specific code, commits, or pull requests.

Aggregate those proofs into a portable, privacy-preserving contribution profile.

Avoid identity leaks—no emails, usernames, or commit metadata need to be exposed.

Stay pseudonymous or anonymous, while building real, verifiable reputation across projects.

Verify contributions to closed-source codebases (e.g., via signed attestations or ZK-backed CI integrations) without revealing proprietary content.

Think of it as a ZK-based GitHub for alter-egos—a way to maintain a reputation layer without risking de-anonymization.

How do use it? Simply create an account on ZkDev, and use GitHub/GitLab Oauth inside our app to login and query all of your repos for the number of commits, pull requests, code reviews etc both for the public and private repos you contributed to. This information is combined with information regarding the importance score of a particular repo - for example the number of stars, forks, contributors, age of the repo and published as two separate aggregate scores - on for your open-source and the other for your closed-source code contributions. We don't keep any of your repo data or meta-data since it does not go through our back-end, the proofs are generated on the front-end. After the proofs are done, these two aggregate scores are published on the your profile, without linking the repos which were queried, but keeping the proofs on-chain for anyone to publicly verify.

How it's Made

We built this project as a full-stack, zero-knowledge-powered system that enables developers to prove code contributions—across open-source and closed-source projects—without revealing their identity or linking personas.

🔐 Zero-Knowledge Layer – Vlayer Web Proofs We used Vlayer's web proofs to generate and verify zero-knowledge proofs (ZKPs) of developer contributions. Vlayer provided a developer-friendly API to integrate ZK logic into the browser, enabling users to locally prove authorship of commits or code snippets without exposing raw metadata. This made it possible to generate on-device attestations that are privacy-preserving, tamper-resistant, and compatible with public or private repositories.

📊 Blockchain + Contribution Attestations – Blockscout API We integrated Blockscout’s API to verify and anchor proofs to EVM-based blockchains. This enables developers to submit ZK proofs to a smart contract, where the contribution record becomes immutable and verifiable on-chain. Blockscout's explorer and API made it easy to index and display these on-chain attestations in a transparent yet identity-agnostic way.

💻 Frontend Stack – React, Next.js, TypeScript The frontend is built with React and Next.js, ensuring performance, fast routing, and SSR where needed. We used TypeScript to maintain type safety across the board, especially useful for handling cryptographic data structures and ZK proof types.

🔐 Auth & Identity Abstraction – Passport.js + GitHub OAuth While the app emphasizes anonymity, we needed a bridge to optionally verify code contributions from GitHub in a private, non-linkable way. We used Passport.js with GitHub OAuth to let users authorize scoped access to their repo data (e.g., commit hashes) without permanently linking their GitHub identity to their ZK profile. The OAuth token is only used locally to extract proofable data and discarded after the proof is generated.

🧠 Proof-of-Contribution Logic – Node.js + Express Backend The backend was built in Node.js with Express, serving two key roles:

Acting as a ZK proof coordinator, relaying ZK setup params, and verifying client-side proofs before pushing them on-chain.

Handling OAuth exchange and temporary, in-memory storage of contribution metadata used to create proofs—without persisting any identity-related data.

background image mobile

Join the mailing list

Get the latest news and updates