NEAR Developer Governance is pleased to sponsor this track, as it is exploring the potential for a ZK application layer for its protocol, with SnarkyJS as a leading candidate SDK.

Introduction

SnarkyJS is a TypeScript library that makes it easy for developers to build powerful ZK applications without being cryptographers. Smart contracts written with SnarkyJS run in a user’s web browser retaining privacy for the user’s data inputs.

SnarkyJS is built on a state-of-the-art Plonkish proof system called Kimchi, offering fixed proof size, infinite recursion, no trusted set up, and custom gates for better performance. It's expressive and easy to learn.

With SnarkyJS, instead of deploying smart contract code that runs on a blockchain, only a ZK verification key (VK) is deployed to the blockchain. Smart contracts execute in the browser and output a ZK proof (ZKP). When sent as part of a user’s transaction, the chain uses the VK to verify that the ZKP is valid for this application. If it is, it allows the on-chain state to be updated. These SnarkyJS-generated ZKPs can currently be verified by Mina Protocol.

This new ZK paradigm provides exciting ways to rethink Web3, leveraging infinite recursion, unlimited off-chain execution–no gas fees, optional full privacy for user’s data inputs, and more!

We hope that you enjoy exploring the new possibilities enabled by SnarkyJS and look forward to helping you along the way.

Program Task Description

We’ll introduce you to the tools you need, help you decide what to build, support you along the way, and, finally, award some prizes.

The Mina Docs tutorials are a great place to get started if you have never worked with SnarkyJS. They are easy to jump into and can help build intuition for what’s possible as you consider what you want to build. They are also a great place to draw inspiration from, even if you are already familiar with SnarkyJS.

SnarkyJS enables a whole new world of applications, but we understand that finding a place to start can be daunting. So, here's a list of existing projects and ideas for new applications to help you get started.

Snarky JS office hours are at 9 - 10am PT every Wednesday. There’s an additional session every second Wednesday at 10 - 11am CET to cover more timezones. The schedule can be found here.

Existing Projects:

Games:

Wordle
Nonogram
Canvas
Mastermind

Libraries:

JSON Parsing Library
Zero Knowledge SSO
Shamir Secret Sharing

Voting:

Minotaur

DeFi:

Mina Price Oracle

Project ideas:

Private voting
Highly scalable voting
Limited information games (e.g., poker, Hanabi, etc.)
Games with many turns
Decentralized identity
Prooving off-chain execution of business logic
Procedural world generation
Rate limiting nullifiers

Details

Prizes will be awarded to the value of $10,000 for participants that best showcase the potential of zero-knowledge applications written in SnarkyJS. More details to follow.