Skip to content

Conversation

mysteryon88
Copy link
Contributor

Issue

Closes #3478.

Summary

This PR adds a new documentation page that shows how to integrate zero-knowledge proofs into Tact smart contracts in TON, using zkJetton as an example. zkJetton is a minimal Jetton contract with private balances (Paillier homomorphic encryption) and Groth16 proofs verified in Tact.

What’s included

  • Introduction to zk in TON via a minimal Jetton example (zkJetton)
  • Environment setup
  • Circom circuits (registration, mint, transfer)
  • Trusted setup (Groth16)
  • Exporting verifiers for Tact and wiring them into contracts
  • Testing proofs locally and via contract get-methods
  • Useful references (Circom, snarkjs, export-ton-verifier, example repos)
  • Sorted cspell-list.txt alphabetically for consistency

Docs location

  • Added page: docs\src\content\docs\cookbook\zk-proofs-on-tact.mdx

Motivation

Provide a concise, production-adjacent starting point for TON developers to adopt ZK patterns in smart contracts (e.g., private tokens, DeFi, payments) with a minimal, auditable example.

Notes

  • The example intentionally uses a simplified Jetton implementation intended for educational purposes (not audited).

- Added new Markdown page: cookbook/zk-proofs-on-tact.mdx
- Guide explains zkJetton — a minimal Jetton contract with hidden balances
- Covers Circom circuits (registration, mint, transfer) with Groth16
- Includes trusted setup, verifier export for Tact, and testing flow
- Provides useful references for zk integration in TON
- Sorted `cspell-list.txt` alphabetically for consistency
@mysteryon88 mysteryon88 requested a review from a team as a code owner September 1, 2025 18:16
@novusnota novusnota self-requested a review September 1, 2025 20:00
@anton-trunov anton-trunov merged commit 13b24bc into tact-lang:main Sep 8, 2025
20 of 23 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add a guide on how to use zk in Tact
3 participants