info
Please note that zkApp programmability is not yet available on Mina Mainnet, but zkApps can now be deployed to Berkeley Testnet.
zkApps Roadmap
High-level overview of features available now, next, or later
Now
Mina zkApp CLI
- Scaffold projects & files
- Example projects
- Deployment
- Create a project with an accompanying UI — SvelteKit, NextJS, or NuxtJS
note
To view all commands offered by the zkApp CLI, install it via npm install -g zkapp-cli
and then run zk --help
.
SnarkyJS
- Built-in data types — Field, Bool, UInt32, UInt64, PublicKey, PrivateKey, Signature, Group, Scalar, & CircuitString
- Custom data types — a.k.a. Struct
- Composability
- Recursion — a.k.a. ZkProgram
- Events — writing events to the archive node
- Encryption & decryption — using Mina’s curves
- Actions & reducer
- Merkle tree
- Custom tokens
- Using on-chain values — a.k.a. protocol & account preconditions
- Local blockchain
- And more...
Data Availability
- On-chain state — 8 x 32 bytes of arbitrary data per zkApp account
- Off-chain storage — for Merkle tree data; see Tutorial 6
Other
Next
SnarkyJS
- Events — reading events from the archive node; awaiting Archive Node API; ETA Q1 2023
- Actions — reading events from the archive node; awaiting Archive Node API; ETA Q1 2023
- Reduce memory requirements during file import — ETA H1 2023
- Remove need for a dev to use a service worker for their UI — ETA H1 2023
- Reduce KB file size, for aspects needed for UIs — ETA H1 2023
- Improve error messages — ETA H1 2023
Data Availability
- Off-chain storage for Merkle tree data with better guarantees — WIP; two teams awarded grants by Mina Foundation
Other
- Archive Node API — Phase I; link to RFC on Github coming; ETA Q1 2023
Later
Mina zkApp CLI
SnarkyJS
- Dynamic array access — awaiting support in proof system for extended lookup tables
- Dynamic-length strings — awaiting dynamic array access
- JSON parsing — awaiting dynamic-length strings
- secp256k1 — awaiting support in Kimchi
- keccak256 — awaiting support in Kimchi
- ECDSA — awaiting support in Kimchi
- sha256 — awaiting support in Kimchi
Other
- Archive Node API — Phase II; for serverless hosts!
- zkOracles — with robust privacy guarantees