@blockxai/evi-sdk
v3.1.4
Published
EVI SDK — AI-powered smart contract development platform with wallet deployment, security auditing, compliance validation, and blockchain verification
Maintainers
Readme
🚀 EVI SDK
███████╗██╗ ██╗██╗ ███████╗██████╗ ██╗ ██╗
██╔════╝██║ ██║██║ ██╔════╝██╔══██╗██║ ██╔╝
█████╗ ██║ ██║██║ ███████╗██║ ██║█████╔╝
██╔══╝ ╚██╗ ██╔╝██║ ╚════██║██║ ██║██╔═██╗
███████╗ ╚████╔╝ ██║ ███████║██████╔╝██║ ██╗
╚══════╝ ╚═══╝ ╚═╝ ╚══════╝╚═════╝ ╚═╝ ╚═╝Latest: v3.1.4 🎉
EVI SDK — AI-powered smart contract development platform with wallet deployment, security auditing, compliance validation, and blockchain verification. Turn your Web3 ideas into reality in minutes, not months.
✨ What's New in v3.1.4
- 🤖 Automated Post-Deployment Checks - After deployment, automatically:
- Find all .sol files in your deployment
- Prompt to run security audit with results
- Prompt to run compliance check with profile selection
- Auto-save reports to deployment directory
- Show smart suggestions when not compliant
- 🔐 Wallet Deployment - Deploy with YOUR wallet (MetaMask, WalletConnect)
- 🛡️ Pre-Deployment Security - Audit Solidity files BEFORE deploying
- ✅ Compliance Validation - Check ERC standards before deployment
- 📊 Session Statistics - Monitor platform usage
- 🎨 Interactive CLI - Beautiful dropdown menus, just type
evi - 🐛 Artifacts Auto-Download - Files saved automatically after deployment
Default API: https://evi-wallet-production.up.railway.app
Default Network: basecamp
🚀 Quick Start
Install
# Install globally for CLI
npm install -g @blockxai/evi-sdk@latest
# Or install in your project
npm install @blockxai/evi-sdk@latestRequirements: Node 18+ (native fetch support)
Launch Interactive Mode
eviThat's it! Just type evi and you'll get a beautiful interactive menu:
? What shall we do today?
❯ ✨ Generate from Prompt and Deploy
📦 Deploy an Existing Solidity File
🔐 Deploy with YOUR Wallet
🛡️ Security Audit
✅ Compliance Check
📊 Platform StatisticsUse arrow keys to navigate, press Enter to select!
🔥 NEW Features in v3.1
🔐 Wallet Deployment
Deploy contracts with YOUR wallet - complete self-custody
import { AcadClient } from '@blockxai/evi-sdk';
const client = new AcadClient();
// Start wallet deployment
const job = await client.start_wallet_deployment({
prompt: 'ERC20 token with 1M supply',
network: 'basecamp-testnet'
});
// Get magic link for signing
const session = await client.get_wallet_magic_link(job.jobId);
console.log('Sign with MetaMask:', session.magicLink);
// Opens browser → User signs → Contract deploysCLI:
evi wallet:deploy "ERC20 token with 1M supply"
# Generates contract → Opens MetaMask → YOU sign → Deploys🛡️ Pre-Deployment Security Auditing
Audit Solidity files BEFORE deploying - save gas, prevent hacks
import fs from 'fs';
const code = fs.readFileSync('MyToken.sol', 'utf-8');
const report = await client.audit_source({
code,
filename: 'MyToken.sol'
});
console.log(`Security Score: ${report.report.score}/100`);
console.log(`Critical Issues: ${report.report.severity?.critical}`);
if (report.report.severity?.critical > 0) {
console.error('❌ Fix critical issues before deploying!');
process.exit(1); // Fail CI/CD build
}CLI:
evi audit:source MyToken.sol --fail-on-critical
# Perfect for CI/CD pipelines!✅ Compliance Validation
Check if your token follows ERC standards
const report = await client.compliance_source({
code: tokenCode,
filename: 'MyToken.sol',
profile: 'erc20',
strict: true
});
if (!report.compliance.passed) {
console.log('Missing functions:', report.compliance.missingFunctions);
console.log('Missing events:', report.compliance.missingEvents);
}CLI:
evi compliance:check MyToken.sol --profile erc20 --strict
# Ensure DEXs will accept your token📊 Session Statistics
Monitor platform usage
const stats = await client.get_session_stats();
console.log(`Total: ${stats.total}, Active: ${stats.active}`);CLI:
evi stats✨ ACV Features (v3.0)
🔍 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 Commands
After install, you get the evi command (aliases: camp, acad for backwards compatibility).
Basic Commands
# Generate and deploy with AI
evi deploy:prompt --prompt "ERC20 with 1M supply"
# Deploy existing Solidity file
evi deploy:file --file ./MyToken.sol
# Wallet-based deployment (sign with MetaMask)
evi wallet:deploy "ERC20 token with 1M supply" --network basecamp-testnetSecurity & Compliance
# Audit Solidity file for vulnerabilities
evi audit:source MyToken.sol --fail-on-critical
# Check ERC standard compliance
evi compliance:check MyToken.sol --profile erc20 --strict
# Platform statistics
evi statsInteractive Wizard (Recommended)
Just run evi with no arguments to launch the interactive wizard:
evi # Opens interactive wizard
evi wizard # Alias
camp # Backwards compatibilityThe wizard guides you through:
🔐 Wallet deployment
🛡️ Security auditing
✅ Compliance checking
🚀 Contract generation & deployment
📊 Platform monitoring
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
