Help us improve
Share bugs, ideas, or general feedback.
From noir
Patterns for Noir circuit development: data types, stdlib, workspace setup. Use when working with Noir circuits in any capacity unless otherwise specified
npx claudepluginhub critesjosh/noir-claude-plugin --plugin noirHow this skill is triggered — by the user, by Claude, or both
Slash command
/noir:noir-developerThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Comprehensive patterns and best practices for Noir zero-knowledge circuit development.
circuit-dev/circuit-structure.mdcircuit-dev/data-types.mdcircuit-dev/generics.mdcircuit-dev/index.mdcircuit-dev/modules-and-imports.mdcircuit-dev/oracles.mdcircuit-dev/traits.mdcircuit-dev/unconstrained-functions.mdstdlib/collections.mdstdlib/cryptographic-primitives.mdstdlib/field-operations.mdstdlib/index.mdworkspace/dependencies.mdworkspace/index.mdworkspace/nargo-toml.mdworkspace/project-setup.mdGuides building zero-knowledge proof verifiers and privacy patterns on Stellar/Soroban, covering Groth16, BLS12-381, BN254, Poseidon, Noir/RISC Zero integration, and more.
This skill should be used when the user asks about zero-knowledge proofs, ZK SNARKs, witness data, prover/verifier roles, constraint systems, proof generation, proof verification, privacy boundaries, or how Midnight uses ZK cryptography for transaction privacy and data protection.
This skill should be used when the user asks to write, structure, or scaffold a Compact smart contract for Midnight, or asks about contract anatomy, pragma and imports, ledger declarations (including sealed ledger), data types (Field, Bytes, Uint, enums, structs), circuits, witnesses, constructors, export patterns, or disclosure rules. Also triggered by mentions of "pragma language_version", "CompactStandardLibrary", circuit definitions, or Compact common mistakes.
Share bugs, ideas, or general feedback.
Comprehensive patterns and best practices for Noir zero-knowledge circuit development.
Navigate to the appropriate section based on your task:
Start with Circuit Structure for the basic template, then explore:
nargo init, directory structure, workflowFor detailed API documentation and code examples beyond what is covered here, use the Noir MCP tools.
| Tool | Purpose |
|---|---|
noir_sync_repos() | Clone/update Noir repos locally. Run first to enable searching. |
noir_status() | Check which repos are synced and their commit hashes |
noir_search_code({ query }) | Search Noir source code with regex patterns |
noir_search_docs({ query }) | Search Noir documentation |
noir_search_stdlib({ query }) | Search the Noir standard library |
noir_list_examples() | List available Noir example circuits |
noir_read_example({ name }) | Read full source code of an example |
noir_read_file({ path }) | Read any file from cloned repos by relative path |
noir_list_libraries() | List available Noir libraries |
User asks Noir question
|
noir_sync_repos() (if not done)
|
noir_search_code() / noir_search_docs() / noir_search_stdlib()
|
noir_read_example() if needed
|
Respond with VERIFIED current syntax
First, sync the repos (if not already done):
noir_sync_repos()
Search for code patterns:
noir_search_code({ query: "<pattern>", filePattern: "*.nr" })
Search the standard library:
noir_search_stdlib({ query: "poseidon" })
List and read examples:
noir_list_examples()
noir_read_example({ name: "<example-name>" })
Search documentation:
noir_search_docs({ query: "<question>" })