Skip to content
midnight-tooling:midnight-setup logo

midnight-tooling:midnight-setup

Use when setting up Midnight development environment, installing Compact compiler and developer tools, configuring proof server, verifying prerequisites, or getting started with Midnight development.

SKILL.md

Full skill instructions

Midnight Development Environment Setup

Guide developers through setting up a complete Midnight development environment for building zero-knowledge smart contracts and dApps.

Prerequisites Overview

Before installing Midnight-specific tools, verify these prerequisites:

RequirementMinimumRecommendedCheck Command
Node.js18.x20.x LTSnode --version
npm9.xLatestnpm --version
Docker20.xLatestdocker --version
Git2.xLatestgit --version
ChromeLatestLatestRequired for Lace wallet

Run the prerequisite check script to verify:

bash ${CLAUDE_PLUGIN_ROOT}/​skills/​midnight-setup/​scripts/​check-prerequisites.sh

For detailed prerequisite verification:

python3 ${CLAUDE_PLUGIN_ROOT}/​skills/​midnight-setup/​scripts/​check-prerequisites.py

Installation Steps

1. Install Node.js via nvm (Recommended)

Using nvm provides easy version management:

# Install nvm
curl -o- https://raw.githubusercontent.com/​nvm-sh/​nvm/​v0.39.0/​install.sh | bash

# Restart terminal or source profile
source ~/​.zshrc  # or ~/​.bashrc

# Install Node.js 18 LTS
nvm install 18 --lts
nvm alias default 18

Important: After installing or switching Node versions, open a new terminal window. Simply sourcing the profile may leave stale references.

2. Install Docker Desktop

Download from docker.com/​products/​docker-desktop for your platform. After installation:

  1. Launch Docker Desktop
  2. Wait for the Docker daemon to start
  3. Verify with docker info

3. Install Compact Developer Tools

The Compact developer tools manage compiler versions and provide the compact CLI:

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/​midnightntwrk/​compact/​releases/​latest/​download/​compact-installer.sh | sh

After installation, add the binary to your PATH. The installer will show the exact path, typically:

# Add to ~/​.zshrc or ~/​.bashrc
export PATH="$HOME/​.compact/​bin:$PATH"

Then restart your terminal or source the profile.

4. Install the Compact Compiler

With the developer tools installed, download the compiler:

# Download latest compiler
compact update

# Verify installation
compact --version          # Shows developer tools version
compact compile --version  # Shows compiler version

5. Pull the Proof Server Image

The proof server generates zero-knowledge proofs locally:

docker pull midnightnetwork/​proof-server:latest

To start the proof server (when needed for development):

docker run -p 6300:6300 midnightnetwork/​proof-server -- midnight-proof-server --network testnet

6. Install VS Code Extension (Optional)

The Midnight Compact VS Code extension provides syntax highlighting and IntelliSense:

  1. Download the .vsix file from the Compact releases
  2. In VS Code: Extensions → "..." menu → "Install from VSIX..."
  3. Select the downloaded file

7. Install Lace Midnight Preview Wallet (Optional)

For testing dApps with a wallet:

  1. Install from Chrome Web Store: search "Lace Midnight"
  2. Create a new wallet and save seed phrase securely
  3. Get test tokens from midnight.network/​test-faucet/

Verification

After completing setup, verify everything works:

# Check all tools
node --version      # Should be 18+
docker info         # Should show Docker running
compact --version   # Should show developer tools version
compact compile --version  # Should show compiler version

# Check proof server image
docker images | grep proof-server

Or run the environment check command: /​midnight:check

Compact Developer Tools Reference

CommandPurpose
compact updateDownload/​update to latest compiler
compact update <version>Switch to specific version
compact listShow all available versions
compact list --installedShow locally installed versions
compact checkCheck for updates without downloading
compact compile <file> <outdir>Compile a contract
compact compile +0.25.0 <file> <outdir>Compile with specific version
compact self updateUpdate the developer tools themselves
compact helpShow help

Common Setup Issues

IssueSolution
compact: command not foundAdd ~/​.compact/​bin to PATH, restart terminal
Node version wrong after installOpen a new terminal window
Docker daemon not runningStart Docker Desktop application
Proof server won't startCheck Docker is running, port 6300 is free

Additional Resources

  • references/​installation-steps.md - Detailed platform-specific instructions
  • references/​bun-setup.md - Alternative setup using Bun runtime

For troubleshooting, use the /​midnight:doctor command or consult the midnight-debugging skill.

More skills from aaronbassett

dapp-sdd:implement logo
aaronbassett/midnight-knowledgebase

dapp-sdd:implement

Use when executing implementation tasks with commits after each task and reviews after each phase.

0 0
View
compact-core:clone-examples logo
aaronbassett/midnight-knowledgebase

compact-core:clone-examples

Use when starting a new Midnight project, cloning example contracts (counter, tokens, NFTs, DEX), scaffolding from OpenZeppelin templates, or bootstrapping a Compact contract development environment with working starter code.

0 0
View
midnight-proofs:proof-caching logo
aaronbassett/midnight-knowledgebase

midnight-proofs:proof-caching

Use when caching ZK proofs for performance, implementing proof cache invalidation, storing verification results, caching intermediate proof components, or building distributed proof caches with Redis.

0 0
View
midnight-tooling:midnight-ci logo
aaronbassett/midnight-knowledgebase

midnight-tooling:midnight-ci

Use when setting up CI/CD for Midnight projects, configuring GitHub Actions for Compact contract compilation, running TypeScript tests in CI, validating version consistency, or automating contract builds.

0 0
View
midnight-dapp:proof-handling logo
aaronbassett/midnight-knowledgebase

midnight-dapp:proof-handling

Use when building witness data for ZK proofs, showing proof generation progress to users, implementing disclosure consent flows, handling proof timeouts and retries, or explaining privacy guarantees.

0 0
View
dapp-sdd:constitution logo
aaronbassett/midnight-knowledgebase

dapp-sdd:constitution

Use when implementing any Midnight example dApp to ensure compliance with quality standards and project conventions.

0 0
View
compact-core:typescript-integration logo
aaronbassett/midnight-knowledgebase

compact-core:typescript-integration

Use when implementing witness functions in TypeScript, mapping Compact types to TypeScript (Field→bigint, Bytes→Uint8Array), deploying contracts, calling circuits from TypeScript, reading ledger state, or building Midnight DApps with the JavaScript SDK.

0 0
View
midnight-dapp:state-management logo
aaronbassett/midnight-knowledgebase

midnight-dapp:state-management

Use when reading public ledger state, implementing reactive UI that updates with chain state, caching state for performance, or understanding public vs private state in Midnight DApps.

0 0
View
midnight-proofs:prover-optimization logo
aaronbassett/midnight-knowledgebase

midnight-proofs:prover-optimization

Use when optimizing prover performance, reducing proof generation memory usage, configuring prover infrastructure in Docker or Kubernetes, implementing parallel proof generation, or diagnosing prover bottlenecks.

0 0
View
dapp-sdd:plan logo
aaronbassett/midnight-knowledgebase

dapp-sdd:plan

Use when creating a phased implementation plan from a specification, with review gates after each phase.

0 0
View
dapp-sdd:specify logo
aaronbassett/midnight-knowledgebase

dapp-sdd:specify

Use when expanding a README-based dApp description into a full specification with user stories and acceptance criteria.

0 0
View
midnight-tooling:contract-calling logo
aaronbassett/midnight-knowledgebase

midnight-tooling:contract-calling

Use when calling deployed Midnight contracts from Node.js backends, querying contract state, executing state-changing transactions, building API endpoints that interact with contracts, or automating contract interactions.

0 0
View

Popular AI tools

Kaiber logo
Video

Kaiber

Generate, edit, and beat-sync AI video with leading models in one workspace.

Paid
View
Vimcal logo
Productivity

Vimcal

The world's fastest calendar for remote work

Free
View

Transform Your Design with AI Designer by ImgCreator.ai

Freemium
View
Akool AI logo
Content & writing

Akool AI

Revolutionizing Video Production with AI-Powered Creativity

Paid
View

Extend an image past the frame and let AI fill the new aspect ratio.

Freemium
View
StarByFace logo
Security

StarByFace

Discover your celebrity doppelgänger with StarByFace!

Free
View
C

ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.

Freemium
View
Opus Clip logo
Coding & apps

Opus Clip

Opus.ai: Revolutionize Your Web Experience

Free
View