Install
$ agentstack add skill-uvroxx-midnight-agent-skills-midnight-deploy ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ● Network access Used
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ● Environment & secrets Used
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
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:localorpreview(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
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: UvRoxx
- Source: UvRoxx/midnight-agent-skills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.