Building midnight-agent-skills: AI-Powered Development for Privacy-First Blockchain
A curated knowledge package to enhance AI coding assistants for Midnight Network development. Generate correct Compact v0.19+ syntax with verified code examples.
The Problem: Privacy Blockchain Development is Hard
Building on Midnight Network presents unique challenges compared to traditional blockchains:
- New Language: Compact, a domain-specific language for zero-knowledge circuits
- Privacy Primitives: Shielded/unshielded states, selective disclosure, witnesses
- Complex Tooling: Proof servers, indexers, specialized nodes
- Limited Resources: Fewer tutorials, examples, and Stack Overflow answers
Developers face significant friction debugging syntax errors, understanding deprecated patterns, and configuring infrastructure components with proper version synchronization.
The Insight: AI Agents Need Midnight-Specific Knowledge
Existing AI coding assistants have knowledge cutoffs and lack domain expertise in:
- Latest Compact syntax (v0.19+ as of December 2025)
- Midnight-specific patterns (commit-reveal, selective disclosure)
- Infrastructure setup quirks
- Common mistakes and corrections
The solution involves packaging domain-specific knowledge that AI agents can consume and utilize effectively.
The Solution: midnight-agent-skills
This project extends AI coding assistants with curated, verified Midnight development knowledge through the Agent Skills format from Vercel.
How It Works
The system provides a structured knowledge base that AI agents read automatically:
AI Agent reads CLAUDE.md/AGENTS.md → accesses skills/ directory →
generates correct Midnight code
Available skills include:
- midnight-compact-guide: Correct Compact v0.19+ syntax and common error prevention
- midnight-sdk-guide: TypeScript SDK integration patterns
- midnight-infra-setup: Local infrastructure configuration
- midnight-deploy: Deployment workflows
- midnight-test-runner: Testing with Vitest
Syntax Corrections Provided
| AI Would Generate | Correct Pattern |
|---|---|
ledger { counter: Counter; } | export ledger counter: Counter; |
circuit fn(): Void | circuit fn(): [] |
pure function helper() | pure circuit helper() |
Choice::rock | Choice.rock |
counter.value() | counter.read() |
Technical Architecture
Project Structure
midnight-agent-skills/
├── bin/cli.js # npx entry point
├── skills/
│ ├── midnight-compact-guide/
│ ├── midnight-sdk-guide/
│ ├── midnight-infra-setup/
│ ├── midnight-deploy/
│ └── midnight-test-runner/
├── AGENTS.md # Agent guidance
├── CLAUDE.md # Claude-specific guidance
└── package.json
Verification Process
All code patterns were verified against authoritative sources prioritized as:
- MeshJS Starter Template (December 2025 update)
- Midnight Official Documentation
- midnight-mcp Syntax Guide
- OpenZeppelin Compact Contracts
Quick Start
mkdir my-midnight-dapp
cd my-midnight-dapp
npx midnight-agent-skills initAfter installation, AI assistants automatically discover and apply the skills when working on Midnight projects.
Example: Voting Contract
The system enables AI to generate properly-structured contracts like shielded voting systems with correct syntax:
pragma language_version >= 0.19;
import CompactStandardLibrary;
export ledger totalVotes: Counter;
export ledger hasVoted: Map<Bytes<32>, Boolean>;
witness local_secret_key(): Bytes<32>;
circuit get_voter_id(): Bytes<32> {
const sk = local_secret_key();
return persistentHash<Vector<2, Bytes<32>>>([pad(32, "vote:id:"), sk]);
}
export circuit vote(choice: Uint<8>): [] {
const voter = get_voter_id();
assert(disclose(!hasVoted.member(voter)), "Already voted");
hasVoted.insert(disclose(voter), true);
totalVotes.increment(1);
}
Problems Solved
- Syntax Generation: Eliminates incorrect return types and deprecated patterns
- Outdated Patterns: Prevents use of deprecated block syntax
- Infrastructure Confusion: Provides exact version requirements
- Missing Patterns: Supplies verified, working implementations
- Testing Struggles: Includes simulator and private state patterns
Future Enhancements
Planned skills include midnight-audit, midnight-upgrade, midnight-bridge, and midnight-identity. Additional tooling planned includes VS Code extension, web interface, and auto-update mechanisms.
Resources
- GitHub: https://github.com/UvRoxx/midnight-agent-skills
- Midnight Documentation: https://docs.midnight.network
- Compact Language Reference: https://docs.midnight.network/develop/reference/compact/lang-ref
- MeshJS Template: https://github.com/MeshJS/midnight-starter-template