EVI SDK β AI-powered smart contract development platform with wallet deployment, security auditing, compliance validation, and blockchain verification
npm install @blockxai/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.
- π€ 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 basecamp
Default Network:
---
`bashInstall globally for CLI
npm install -g @blockxai/evi-sdk@latest
Requirements: Node 18+ (native
fetch support)$3
`bash
evi
`That'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 Statistics
`Use arrow keys to navigate, press Enter to select!
---
π₯ NEW Features in v3.1
$3
Deploy contracts with YOUR wallet - complete self-custody`typescript
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 deploys
`CLI:
`bash
evi wallet:deploy "ERC20 token with 1M supply"
Generates contract β Opens MetaMask β YOU sign β Deploys
`---
$3
Audit Solidity files BEFORE deploying - save gas, prevent hacks`typescript
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:
`bash
evi audit:source MyToken.sol --fail-on-critical
Perfect for CI/CD pipelines!
`---
$3
Check if your token follows ERC standards`typescript
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:
`bash
evi compliance:check MyToken.sol --profile erc20 --strict
Ensure DEXs will accept your token
`---
$3
Monitor platform usage`typescript
const stats = await client.get_session_stats();
console.log(Total: ${stats.total}, Active: ${stats.active});
`CLI:
`bash
evi stats
`---
β¨ ACV Features (v3.0)
$3
Verify deployed contracts on block explorers (Etherscan, Basescan, etc.)`typescript
const result = await client.verify_by_job('job-id', 'basecamp');
console.log('Verified:', result.verified);
console.log('Explorer URL:', result.explorerUrl);
`$3
AI-powered vulnerability detection with severity levels`typescript
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);
`$3
Validate contracts against ERC standards (ERC-20, ERC-721, ERC-1155, DeFi, DAO)`typescript
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);
`$3
Complete workflow in one call: Generate β Deploy β Verify β Audit β Compliance`typescript
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 (or ACAD_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; set 0 to disable)
- MAGICAL_WEBHOOK_URL=https://your-bridge.example.com/magical (optional)
- MAGICAL_STREAM=1 (stream each event) or 0 (send one final summary)π¨ CLI Commands
After install, you get the
evi command (aliases: camp, acad for backwards compatibility).$3
`bash
Generate and deploy with AI
evi deploy:prompt --prompt "ERC20 with 1M supply"Deploy existing Solidity file
evi deploy:file --file ./MyToken.solWallet-based deployment (sign with MetaMask)
evi wallet:deploy "ERC20 token with 1M supply" --network basecamp-testnet
`$3
`bash
Audit Solidity file for vulnerabilities
evi audit:source MyToken.sol --fail-on-criticalCheck ERC standard compliance
evi compliance:check MyToken.sol --profile erc20 --strictPlatform statistics
evi stats
`$3
Just run
evi with no arguments to launch the interactive wizard:`bash
evi # Opens interactive wizard
evi wizard # Alias
camp # Backwards compatibility
`The 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/ for prompt-based runs
- ai_pipeline_runs/ 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/:
- pipeline/ or file/
- job.id, final.status.json
- logs.ndjson
- artifacts/ with sources/, abis/, scripts/Examples:
`bash
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 MyNFT
`Programmatic (optional)
The SDK exports
AcadClient if you want to call the API directly.`ts
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)
`bash
inside camp-codegen-js/
npm install
npm run build
`Outputs 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.jsonExamples:
`jsonc
// 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." }
]
``text
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 (default 1)
- MAGICAL_WEBHOOK_URL β optional webhook to receive events
- MAGICAL_STREAM β 1 to stream events, or 0 to receive one magical_log_summaryPayload 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 addressNotes
- No API key required to try it out
- Default network is
basecamp
- Works best on a TTY; NO_ANIMATION=1` is recommended for CI logs