Use when adding new error messages to React, or seeing "unknown error code" warnings.
npx skills add UvRoxx/midnight-agent-skills --skill "midnight-deploy"
Install specific skill from multi-skill repository
# Description
Deploy and manage Midnight smart contracts to local or preview network. Use this skill when deploying contracts, starting local infrastructure, or connecting to testnet. Triggers on "deploy contract", "start local node", "setup standalone", "deploy to preview", or "midnight infrastructure".
# SKILL.md
name: midnight-deploy
description: Deploy and manage Midnight smart contracts to local or preview network. Use this skill when deploying contracts, starting local infrastructure, or connecting to testnet. Triggers on "deploy contract", "start local node", "setup standalone", "deploy to preview", or "midnight infrastructure".
license: MIT
metadata:
author: webisoft
version: "1.0.0"
midnight-version: "0.27.0"
Midnight Deploy
Deploy Midnight smart contracts to local development environment or preview network (testnet).
When to Use
Use this skill when:
- Deploying a new Compact contract
- Starting local Midnight infrastructure
- Connecting to preview network (testnet)
- Troubleshooting deployment issues
- Setting up development environment
How It Works
- Compiles Compact contract to WebAssembly + ZK circuits
- Starts required infrastructure (node, indexer, proof server)
- Deploys contract with initial state
- Returns contract address for frontend integration
Prerequisites
Before deploying, ensure you have:
# Check Compact compiler
compact check
# Check Node.js
node -v # v23+
# Check Docker (for local infrastructure)
docker -v
Local Development (Standalone)
Start Local Infrastructure
# From project root
npm run setup-standalone
This starts:
- Midnight Node: ws://127.0.0.1:9944
- Indexer: http://127.0.0.1:8088
- Proof Server: http://127.0.0.1:6300
Deploy to Local
# Build contract first
cd counter-contract
npm run build
# Deploy via CLI
cd ../counter-cli
npm run deploy:local
Preview Network (Testnet)
Configure Environment
Create counter-cli/.env:
MY_PREVIEW_MNEMONIC="your twelve word mnemonic phrase here"
MY_UNDEPLOYED_UNSHIELDED_ADDRESS=""
Get Test Tokens
- Visit Midnight Faucet
- Enter your wallet address
- Receive tSTAR tokens
Deploy to Preview
# Build contract
cd counter-contract
npm run build
# Deploy to testnet
cd ../counter-cli
npm run deploy:preview
Deployment Output
Successful deployment returns:
{
"contractAddress": "0x1234567890abcdef...",
"deploymentTxHash": "0xabcdef1234567890...",
"network": "preview",
"timestamp": "2024-01-15T10:30:00Z"
}
Configure Frontend
After deployment, update frontend environment:
# frontend-vite-react/.env
VITE_CONTRACT_ADDRESS="0x1234567890abcdef..."
Network Configuration
Local (Standalone)
const config = {
node: "ws://127.0.0.1:9944",
indexer: "http://127.0.0.1:8088",
proofServer: "http://127.0.0.1:6300",
};
Preview (Testnet)
const config = {
node: "wss://rpc.preview.midnight.network",
indexer: "https://indexer.preview.midnight.network",
proofServer: "https://proof.preview.midnight.network",
};
Deployment Script
For automated deployments, use:
bash /path/to/skills/midnight-deploy/scripts/deploy.sh [network] [contract-path]
Arguments:
- network - Target network: local or preview (default: local)
- contract-path - Path to contract directory (default: current directory)
Examples:
# Deploy to local
bash scripts/deploy.sh local ./counter-contract
# Deploy to preview testnet
bash scripts/deploy.sh preview ./counter-contract
Present Results to User
After successful deployment:
Deployment successful!
Contract Address: 0x1234567890abcdef1234567890abcdef12345678
Network: preview
Transaction: 0xabcdef1234567890abcdef1234567890abcdef12
Next steps:
1. Update VITE_CONTRACT_ADDRESS in frontend-vite-react/.env
2. Start frontend: npm run dev:frontend
3. Connect wallet and interact with contract
Troubleshooting
Docker Not Running
Error: Cannot connect to Docker daemon
Solution: Start Docker Desktop or Docker daemon
Compact Compiler Not Found
Error: compact: command not found
Solution: Install Compact compiler:
curl --proto '=https' --tlsv1.2 -LsSf \
https://github.com/midnightntwrk/compact/releases/latest/download/compact-installer.sh | sh
compact update +0.27.0
Insufficient Funds
Error: Insufficient balance for transaction
Solution: Get test tokens from faucet
Proof Server Timeout
Error: Proof generation timeout
Solution:
- Check proof server is running
- Simplify circuit complexity
- Increase timeout in config
Contract Already Deployed
Error: Contract at address already exists
Solution: Use a new deployment or join existing contract
Deployment Checklist
- [ ] Contract compiled successfully (
npm run build) - [ ] Tests passing (
npm run test) - [ ] Environment variables configured (
.env) - [ ] Wallet funded with tSTAR (for preview)
- [ ] Infrastructure running (for local)
- [ ] Contract address saved
- [ ] Frontend configured
References
# Supported AI Coding Agents
This skill is compatible with the SKILL.md standard and works with all major AI coding agents:
Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.