@blockxai/camp-codegen
v3.0.3
Published
Camp Codegen CLI & SDK — AI-powered smart contract generation with verification, security auditing, and compliance checking
Maintainers
Readme
@blockxai/camp-codegen
Latest: v3.0.3 🎉
Camp Codegen CLI & SDK — AI-powered smart contract generation with verification, security auditing, and compliance checking. Interactive wizard with magical narrative logs and searchable preset library.
✨ NEW: Auto-verification prompt after deployments!
- Default API:
https://evi-v4-production.up.railway.app - Default network:
basecamp
Install
npm install @blockxai/camp-codegen@latestNode 18+ is required (native fetch).
✨ New in v3.0: ACV Features
🔍 Contract Verification
Verify deployed contracts on block explorers (Etherscan, Basescan, etc.)
const result = await client.verify_by_job('job-id', 'basecamp');
console.log('Verified:', result.verified);
console.log('Explorer URL:', result.explorerUrl);🛡️ Security Auditing
AI-powered vulnerability detection with severity levels
const audit = await client.audit_orchestrate({ jobId: 'job-id' });
const report = await client.get_audit_report('job-id');
console.log('Security Score:', report.score); // 0-100
console.log('Critical Issues:', report.summary?.critical);✅ Compliance Checking
Validate contracts against ERC standards (ERC-20, ERC-721, ERC-1155, DeFi, DAO)
const comp = await client.compliance_orchestrate({
jobId: 'job-id',
targetProfile: 'erc721',
strict: true
});
const report = await client.get_compliance_report('job-id');
console.log('Compliance Passed:', report.passed);🚀 Full ACV Pipeline
Complete workflow in one call: Generate → Deploy → Verify → Audit → Compliance
const result = await client.run_acv_pipeline({
prompt: 'ERC721 NFT with minting',
runVerify: true,
runAudit: true,
runCompliance: true,
complianceProfile: 'erc721'
});See: QUICK_START_ACV.md for complete usage guide
Environment
No API key required
Optional overrides:
API_BASE_URL(orACAD_BASE_URL)NETWORK(default:basecamp)MAX_ITERS(default:11)NO_ANIMATION=1(disable intro animation; colors still apply)
Magical Logger (narrative logs → webhook):
MAGICAL_LOGS=1(default on; set0to disable)MAGICAL_WEBHOOK_URL=https://your-bridge.example.com/magical(optional)MAGICAL_STREAM=1(stream each event) or0(send one final summary)
CLI (two simple commands)
After install, you get two commands: camp and acad.
# 1) Generate from prompt and deploy
camp deploy:prompt --prompt "ERC20 with 1,000,000 supply" [--filename AIGenerated.sol] [--maxIters 11] [--arg value]*
# 2) Deploy from a local Solidity file
camp deploy:file --file ./MyToken.sol [--contractName MyToken] [--filename MyToken.sol] [--maxIters 11]Interactive wizard (recommended)
Just run camp with no arguments to launch a colorful, guided wizard. It asks what you want to do today, offers popular templates and a searchable preset library, collects minimal inputs, and streams logs live while saving everything locally.
camp # opens the interactive wizard
camp wizard # alias
camp interactive- Run directories are named after your prompt (or filename), no timestamps:
ai_pipeline_runs/<prompt-slug>/pipeline/for prompt-based runsai_pipeline_runs/<file-slug>/file/for file-based runs- If a folder already exists, a simple
-2,-3, … suffix is added. - Example:
ai_pipeline_runs/erc721-with-minting-and-baseuri/pipeline/
What you’ll see and where things are saved:
- Colorful, live logs streamed while the job runs (plus “magical” narrative logs)
- All outputs under
./ai_pipeline_runs/<name>/:pipeline/orfile/job.id,final.status.jsonlogs.ndjsonartifacts/withsources/,abis/,scripts/
Examples:
# Generate and deploy from a prompt
camp deploy:prompt --prompt "ERC721 with minting and baseURI"
# Deploy from a local Solidity file
camp deploy:file --file ./contracts/MyNFT.sol --contractName MyNFTProgrammatic (optional)
The SDK exports AcadClient if you want to call the API directly.
import { AcadClient } from "@blockxai/camp-codegen";
const client = new AcadClient();
const jobId = await client.start_pipeline("ERC20 token", "basecamp", 11, "Token.sol", [1000000]);
const job = await client.wait_for_completion(jobId, { intervalSec: 2, timeoutSec: 2700 });Build (for contributors)
# inside camp-codegen-js/
npm install
npm run buildOutputs ESM to dist/.
Preset library (search)
In the wizard, pick “🔎 Browse preset library (search)” to choose from built-in and user-provided presets.
- User presets can be added via any of:
presets.user.json(array of{ title, prompt })presets.user.txt(one preset per paragraph; first token before:is the title)src/presets.user.json
Examples:
// presets.user.json
[
{ "title": "MessageBoard", "prompt": "MessageBoard: EMPTY CONSTRUCTOR. post(string message). Events: MessagePosted. No constructor args." },
{ "title": "SimpleBank", "prompt": "SimpleBank: EMPTY CONSTRUCTOR. deposit() payable. withdraw(uint256 amount). Events: Deposited, Withdrawn." }
]MessageBoard: EMPTY CONSTRUCTOR. post(string message). Events: MessagePosted. No constructor args.
SimpleBank: EMPTY CONSTRUCTOR. deposit() payable. withdraw(uint256 amount). Events: Deposited, Withdrawn.Search is fuzzy across title, description, and prompt text. If your prompts version lacks autocomplete, it falls back to a simple select list.
Magical logs (GTM/CS friendly)
We emit a narrative alongside raw SSE logs to keep non-technical teammates engaged.
Categories: generation, compilation, errors, deployment, celebration, bonus, verification 🔍, audit 🛡️, compliance ✅
Configure via env vars:
MAGICAL_LOGS— enable/disable (default1)MAGICAL_WEBHOOK_URL— optional webhook to receive eventsMAGICAL_STREAM—1to stream events, or0to receive onemagical_log_summary
Payload fields include runLabel, jobId, network, prompt, filename, contractName, category, msg, and optional meta.
Tip: route the webhook to a tiny middleware (e.g., Cloudflare Worker, Vercel, Express) that transforms into Apollo.io Notes/Activities for GTM/CS visibility.
Colors and banners
- Intro banner: animated rainbow gradient (respects
NO_ANIMATION=1) - Log theme: orange & white after banner
- Deploy congrats banner: static, clean orange-only (no animation) with deployed address
Notes
- No API key required to try it out
- Default network is
basecamp - Works best on a TTY;
NO_ANIMATION=1is recommended for CI logs
