Skip to main content
zk-evm Activate when the user works with Tokamak zk-EVM, tokamak-cli, zero-knowledge proofs for Ethereum transactions, the Synthesizer, QAP compiler, subcircuits, Circom circuits, zk-SNARK backend, trusted setup, placementVariables, permutation, or TokamakL2JS.
跳到安装 Skills Marketplace 发现并探索由社区构建的 Agent Skills
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/tokamak-network/agent-skills --skill zk-evm命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
下载 Zip 下载中... name zk-evm description Activate when the user works with Tokamak zk-EVM, tokamak-cli, zero-knowledge proofs for Ethereum transactions, the Synthesizer, QAP compiler, subcircuits, Circom circuits, zk-SNARK backend, trusted setup, placementVariables, permutation, or TokamakL2JS.
license MIT metadata {"author":"tokamak-network","version":"1.0.0"}
Tokamak zk-EVM
Converts Tokamak L2 transactions into zero-knowledge proofs. The system has two halves: a frontend (TypeScript, compiles transactions → circuits) and a backend (Rust, proves and verifies circuits).
Source : https://github.com/tokamak-network/Tokamak-zk-EVM
Architecture
tokamak-cli (entry point)
│
├── Frontend (compilers)
│ ├── qap-compiler — Circom subcircuit library for EVM opcodes
│ │ Output: subcircuits/library/
│ └── synthesizer — Converts a transaction batch into a circuit
│ Output: placementVariables.json, instance.json,
│ instance_description.json, permutation.json
│
└── Backend (Rust)
├── trusted-setup — Generates reference string from subcircuit library
│ Output: combined_sigma.rkyv, sigma_verify.rkyv
├── prover — Generates zk proof from circuit + setup outputs
│ Output: zk proof file
└── verify — Accepts or rejects the proof
tokamak-cli Commands
The main entry point. All commands run from the repo root:
./tokamak-cli --install <ALCHEMY_API_KEY | RPC_URL>
./tokamak-cli --synthesize <path/to/input.json>
./tokamak-cli --preprocess
./tokamak-cli --prove
./tokamak-cli --verify
./tokamak-cli --extract-proof <output.zip>
Monorepo Structure Tokamak-zk-EVM/
├── tokamak-cli # Bash wrapper → scripts/tokamak-cli-core
├── packages/
│ ├── frontend/
│ │ ├── qap-compiler/ # Circom subcircuits (ALU1-5, crypto primitives)
│ │ │ ├── subcircuits/circom/ # Source .circom files
│ │ │ ├── subcircuits/library/ # Compiled output
│ │ │ └── scripts/compile.sh # Build script
│ │ └── synthesizer/ # TypeScript, converts tx → circuit
│ │ ├── src/
│ │ │ ├── synthesizer/ # EVM opcode hooking
│ │ │ ├── circuitGenerator/ # Witness/permutation generation
│ │ │ ├── interface/ # Input helpers (RPC, state)
│ │ │ └── TokamakL2JS/ # L2-specific primitives
│ │ ├── examples/ # L2TONTransfer, L2StateChannel
│ │ └── outputs/ # Generated circuit artifacts
│ └── backend/
│ ├── setup/ # trusted-setup (Rust) + mpc-setup (Rust)
│ ├── prove/ # Prover (Rust, ICICLE GPU acceleration)
│ └── verify/ # Verifier (Rust + Solidity)
├── synthesizer-input-template/ # Template input.json
├── config/ # Lerna/TS configs
└── docs/ # Team formatting rules
Synthesizer Input Format The transaction config JSON (input.json):
{
"privateKeySeedsL2" : [ "sender seed" , "recipient seed" , ...] ,
"addressListL1" : [ "0x..." , "0x..." , ...] ,
"userStorageSlots" : [ 0 ] ,
"senderIndex" : 0 ,
"recipientIndex" : 1 ,
"initStorageKey" : "0x07" ,
"txNonce" : 0 ,
"blockNumber" : 23224548 ,
"contractAddress" : "0x2be5e8c109e2197D077D13A82dAead6a9b3433C5" ,
"amount" : "0x4563918244f400000" ,
"transferSelector" : "0xa9059cbb"
}
Template: synthesizer-input-template/input.json
Synthesizer Outputs After --synthesize, the outputs/ directory contains:
File Description Used By placementVariables.jsonSubcircuit instances with wire values Prover instance.jsonPublic + private input values Prover, Verifier instance_description.jsonHuman-readable description of public inputs Documentation permutation.jsonCopy constraints (wiring between subcircuits) Prover
QAP Compiler: Subcircuit Library 5 ALUs handle 256-bit EVM operations:
ALU Operations ALU1 ADD, MUL, SUB, SubExp, EQ, ISZERO, NOT ALU2 DIV, SDIV, MOD, SMOD, ADDMOD, MULMOD ALU3 SHL, SHR, SAR ALU4 LT, GT, SLT, SGT ALU5 SIGNEXTEND, BYTE
Crypto primitives: Poseidon hash, EdDSA (jubjub + Poseidon) signatures, Merkle tree proofs.
Build the subcircuit library:
cd packages/frontend/qap-compiler
npm install
./scripts/compile.sh
Prerequisites Dependency Purpose Node.js >= 18 Synthesizer, CLI Circom Subcircuit compilation Rust Backend (setup, prove, verify) CMake Backend build Bun Synthesizer binary build dos2unix Line ending conversion Alchemy API key Ethereum RPC for state queries
macOS auto-setup: ./scripts/setup-macos.sh
Common Mistakes Mistake Fix Running without --install first Always run --install before other commands CRLF line endings on tokamak-cli dos2unix tokamak-cli && chmod +x tokamak-cliForgetting .env with RPC URL Create packages/frontend/synthesizer/.env with RPC_URL=... Insufficient buffer sizes in qap-compiler Increase buffer subcircuit sizes, recompile Committing .env with API key Delete .env after use, rotate key if exposed
Code Style
120 char line width (not 80)
Compact code preferred — one info unit = one line
Prettier: printWidth: 120, semi: true, singleQuote: true, arrowParens: "avoid"
Format: npm run format
Supported / Unsupported Opcodes Supported : ADD–SAR, EXP, SIGNEXTEND, ADDRESS–BASEFEE, POP, MLOAD/MSTORE, SLOAD/SSTORE, PUSH0–PUSH32, DUP/SWAP, LOG0–LOG4, CALL/CALLCODE/DELEGATECALL/STATICCALL, RETURN, REVERT
Not supported : KECCAK256, BLOBHASH, BLOBBASEFEE, TLOAD, TSTORE, CREATE, CREATE2, SELFDESTRUCT
Related Skills
tokamak-contracts : Contract addresses used in synthesizer inputs
thanos-l2 : Thanos L2 where zk-EVM proofs are verified
同仓库更多 Skills Activate when the user works with Dust Protocol, stealth transfers, stealth addresses, privacy swaps, DustPool, DustSwap, DustPaymaster, .tok names, ERC-5564, ERC-6538, ZK privacy pools, Poseidon Merkle trees, gasless claims, ERC-4337 stealth accounts, or private payments on Tokamak.
Activate when the user works with Tokamak Private App Channels, zkp-channel-manager, L2 state channels with ZK proof verification, BridgeCore, BridgeDepositManager, BridgeProofManager, BridgeWithdrawManager, channel lifecycle (open/deposit/initialize/transact/close/withdraw), MPT keys, Groth16 channel proofs, or off-chain ERC20 transfers.
Activate when the user asks about Tokamak Network, TON token, WTON, Tokamak ecosystem, L2 on-demand, or needs help choosing which Tokamak skill to use. Provides ecosystem overview and routes to specialized skills.