After meeting with developers at Mina’s zkApp Developer Meetups, it became clear we needed better resources to ensure developers have the right information and skills to start building on Mina. While we were doing a good job of educating attendees about Mina, zkApps, and o1js (formerly SnarkyJS), our technical follow-up was limited to 1) pointing attendees to our docs & Discord, and 2) inviting them to apply to the zkApps Builders Program.
Therefore, we decided to create a small-scale leaderboard with ‘challenges’ for developers to help them start building zkApps ahead of the formal, incentivized testnet.
Completed ‘challenges’ were recorded on a leaderboard, and the overall standings could be used for Quarterly Grants Program nominations.
Challenges were focused on zkApp development to help devs start using o1js (formerly SnarkyJS) and get familiar with zk programming.
To measure engagement, we manually tracked zkApp development (i.e. asked them to repost in the zkApp devs channel on discord, retweet, etc.).
Updates on Progress / Results
More than 1,300 community members applied to join the leaderboard. For the first iteration, a cohort of 50 builders were invited to participate. Starting with a smaller group allowed for iterating on the challenges throughout the program, hosting intimate builder hangouts, and most importantly—it encouraged zkApp developers to provide 1:1 feedback and support to one another on Discord. These learnings will help shape the next iteration of the leaderboard so more Mina community members and zkApp developers can participate.
Empowered community: Each week beta testers hosted meetings to share their leaderboard, develop zkApps, and inspire each other to build.
Resources created: Additional tutorials were produced by Mina Protocol Co-Founder and Mina Foundation CEO Evan Shapiro, creating more tools for developers to accomplish their desired builds.
Feedback captured: The leaderboard provided a great opportunity to capture feedback from participants. As a result, Mina learned developers have a huge desire for UI tools — which led to starter grants distributed from hackathons to build out UIs.
Through the zkApp Beta Testers Leaderboard, participants were able to provide rich feedback that will be used to inform future leaderboard iterations. Here are some high-level observations made by developers in the program.
Diving into the deep end | «The quality of the docs is really great, but after the basics of o1js (formerly SnarkyJS) there were no real docs for in-depth stuff»
- Moving forward, there will be more tutorials focusing on in-depth development of zkApps, which will include a thorough understanding of core foundational principles and complex building capabilities
- Community member Karol and Evan Shapiro are working to build challenges that include UI capabilities
Where are all my resources? | Builders are seeking detailed explanations in order to guide their development process. Ideally, this would be a «centralized hub» covering various level of difficulty o1js (formerly SnarkyJS) features from the latest updates
- Future challenges will incorporate the development of a library
Endless opportunities for development! | Since Mina provides many unique benefits and opportunities to design applications differently, developers are left with an overwhelming amount of possibilities
- Each week zkApp Beta testers had access to weekly builder hangout calls to understand what their fellow builders were working on, ask questions, and connect with Mina Foundation
- The next iteration of the Leaderboard is intended to inspire developers to uncover real world use cases for zkApps, and also help them learn more about the features of o1js (formerly SnarkyJS)
Leaderboard contributions were nominated for a grant in the upcoming Quarterly Grants Program cycle. In addition;
- 7 beta testers who built a zkApp are eligible for the 2K MINA tokens + 1K USDC grant(s) tier
- 7 beta testers who completed Challenges 1-5 AND provided tangible feedback are eligible for the 750 MINA tokens grant tier
- 15 beta testers who completed Challenges 1-5 are eligible for the 200 MINA tokens grant tier
For a full list of the leaderboard positions and members who are nominated for a grant, please check out this spreadsheet: https://bit.ly/3RtwFM2
Here are a few examples of zkApps created:
@Comdex#3801 built a private NFT prototype (POC) based on the actions/reducer feature of o1js (formerly SnarkyJS) and the associated merkle tree. The zkApp supports minting and transferring NFTs, and verifies the NFT owner through a ZK proof without exposing the owner’s address https://bit.ly/3fweEzA
@temmuz#6937 built a zkApp that allows users to prove they are older than 18 on a zero knowledge basis using hash chains. Included is an optional facial verification / identification pipeline that matches the faces on a passport image and a selfie image, assesses the validity of the passport image, and encrypts the user’s age it obtained from the passport. It’s a good example to demonstrate how Mina’s zkApp architecture allows for off-chain execution and gas cost savings, instead of pushing every transaction on-chain https://bit.ly/3fweNmC
@Gordon Freeman#4502 and @rpanic#3328 both created zkApps that implement multi-sig wallets on Mina leveraging unique zero knowledge characteristics. Multi-sig wallets on Mina will be an important piece of infrastructure to the zkApp ecosystem, and it’s exciting to see them prioritized within the community! (@Gordon Freeman#4502 https://bit.ly/3rhDt4P) (@rpanic#3328 https://bit.ly/3Cm8tHj )
@ioWxss6#6308 built a zkApp that proves a user knows the answer to a math problem without revealing the actual answer. They included a UI that lets users interact with the smart contract deployed directly on Berkeley testnet. This is really useful for beginners to understand the basic architecture of how zkApps work (https://bit.ly/3CoHDOR)
@45930#8225 created a zkApp that allows various users to toggle pixels on and off a shared canvas, and then the app commits the state of the canvas to Mina https://bit.ly/3SP0BUd
@robi#4970 created a gamified zkApp where contestants have to prove they found a secret / answer first, without revealing the solution to other competitors. The result allows the competition to continue until a full ranking of competitors has been set https://bit.ly/3rCJrh3
- Open enrollment for V2 of the leaderboard begins November 14. Seeking developers at any stage of their o1js (formerly SnarkyJS) journey.
- In preparation for V2 — check out these resources