Please note that zkApp programmability is not yet available on Mina, but zkApps can now be deployed to Berkeley QANet. These docs are a preview of work that is currently in progress.
zkApps ("zero-knowledge apps") are Mina Protocol’s smart contracts powered by zero-knowledge proofs, specifically using zk-SNARKs.
zkApps use an off-chain execution and mostly off-chain state model. This allows for private computation and state that can be either private or public.
zkApps can perform arbitrarily-complex computations off chain while incurring only a flat fee to send the resulting zero-knowledge proof to the chain for verification of this computation, as opposed to other blockchains that run computations on chain and use a variable gas-fee based model.
You can learn more on the how zkApps work page.
zkApps are written in TypeScript.
You can learn more on the how to write a zkApp page.
Play around with a few example zkApps to see what’s possible:
Join the #zkapps-general channel on Discord.
On the upcoming pages, you can read about how zkApps work, how to write a zkApp, and see our zkApps for Ethereum Developers page.