DAML Coder for Visual Studio Code
AI-powered DAML smart contract development assistant for Visual Studio Code. DAML Coder uses a specialized language model (v1.1.3) based on the latest DAML 2.x/3.x patterns, DAML SDK 2.10.2 LTS, Canton Network standards, and CIP-0056 token specifications to generate production-grade contracts, provide conversational assistance, review code security, explain patterns, and debug errors with built-in best practices.
Developed by Tenzro Labs
Features
Chat with DAML Coder via MCP Server
DAML Coder now uses the Model Context Protocol (MCP) to provide AI assistance directly in VSCode's agent mode. The MCP server runs as a tool that VSCode's AI can access for DAML-specific tasks.
Setup:
Install the DAML Coder MCP server:
npm install -g @tenzro/daml-coder-mcp
Get an API key from team@tenzro.com
Set your API key:
export DAML_CODER_API_KEY="your-api-key-here"
Configure VSCode MCP server in .vscode/mcp.json:
{
"mcpServers": {
"daml-coder": {
"command": "npx",
"args": ["@tenzro/daml-coder-mcp"],
"env": {
"DAML_CODER_API_KEY": "${env:DAML_CODER_API_KEY}"
}
}
}
}
Enable agent mode in VSCode settings: chat.agent.enabled: true
Restart VSCode
Usage:
- Open Chat view (
Cmd+Shift+I or Ctrl+Shift+I)
- Select Agent mode in the chat dropdown
- Use the tools picker to enable DAML Coder tools
- Ask DAML-related questions naturally
Example prompts:
- "Generate a CIP-0056 compliant token with two-step transfer"
- "Review this DAML code for security issues"
- "Explain the Canton Protocol v7 smart contract upgrade pattern"
- "Debug this authorization error in my contract"
- "Generate comprehensive tests for my Token template"
The MCP server provides six specialized tools:
- generate_daml_code - Generate DAML contracts from descriptions
- review_daml_code - Security analysis and review
- explain_daml_concept - Explain DAML patterns and concepts
- debug_daml_error - Debug errors with fix suggestions
- generate_daml_tests - Auto-generate test cases
- chat_with_daml_coder - Conversational assistance
Generate Code
Generate complete DAML contracts from natural language descriptions with proper security patterns and best practices.
Usage:
- Press
Cmd+Shift+G (Mac) or Ctrl+Shift+G (Windows/Linux)
- Or: Command Palette > "DAML Coder: Generate Code"
- Describe the contract you want to generate
- Code is inserted at your cursor position
Example prompts:
- "Create a Token template with two-step transfer pattern"
- "Generate a CIP-0056 compliant token with metadata"
- "Build a multi-signature treasury with 3-of-5 approval"
- "Create a token vesting contract with cliff period"
Review Code
Get comprehensive security analysis and improvement suggestions for your DAML contracts. The review examines authorization patterns, validates state transitions, and identifies potential security issues.
Usage:
- Press
Cmd+Shift+R (Mac) or Ctrl+Shift+R (Windows/Linux)
- Or: Right-click in editor > "DAML Coder: Review Code"
- Review opens in side panel with specific recommendations
Analysis includes:
- Authorization pattern validation (two-step patterns)
- Security vulnerability detection
- Best practice compliance
- Missing validation checks
- State transition logic review
Explain Code
Get detailed explanations of DAML code patterns, template structures, and choice implementations.
Usage:
- Select the DAML code you want explained
- Press
Cmd+Shift+E (Mac) or Ctrl+Shift+E (Windows/Linux)
- Or: Command Palette > "DAML Coder: Explain Selection"
- Explanation opens in side panel
Debug Errors
Get AI-powered assistance debugging DAML compilation and runtime errors with specific fix suggestions.
Usage:
- Command Palette > "DAML Coder: Debug Error"
- Paste your error message when prompted
- Receive analysis and suggested fixes with code examples
- Solution opens in side panel
Generate Tests
Automatically generate comprehensive Daml.Script test cases for your contracts, including setup, successful scenarios, and failure cases.
Usage:
- Open a DAML contract file
- Command Palette > "DAML Coder: Generate Tests"
- Test script opens in new editor window
What's New in v1.1.0
MCP Server Integration
- DAML Coder now uses Model Context Protocol for chat features
- Install via npm:
@tenzro/daml-coder-mcp
- Works with VSCode agent mode for seamless AI assistance
- Six specialized tools available through MCP
- Universal compatibility with other MCP-enabled editors
Model v1.1.3 Enhancements
- Based on DAML SDK 2.10.2 LTS (October 2025)
- DAML-LF 1.17 support
- Canton Protocol Version 7 (Smart Contract Upgrades)
- CIP-0056 Token Standard (Approved March 2025)
- Enhanced authorization bug detection
- Improved two-step transfer pattern generation
API Improvements
- Fixed response format to use
code field
- Added
/chat endpoint for conversational features
- Better error handling and validation
- Improved caching performance
UI/UX Enhancements
- All colors use VSCode native theme variables
- No hardcoded colors - respects user themes
- Better dark/light mode support
- Improved webview panels
Installation
Extension Installation
- Install the extension from the Visual Studio Code Marketplace
- Request an API key from team@tenzro.com
- Open Settings > Extensions > DAML Coder
- Enter your API key in the configuration
MCP Server Installation (for Chat Features)
For chat and conversational features, install the DAML Coder MCP server:
npm install -g @tenzro/daml-coder-mcp
Then configure VSCode to use the MCP server (see Chat with DAML Coder via MCP Server above).
Configuration
Access settings via: File > Preferences > Settings > Extensions > DAML Coder
damlCoder.apiKey (required)
- Your DAML Coder API key
- Contact team@tenzro.com to request access
damlCoder.apiUrl
- API endpoint URL
- Default:
https://api.damlcoder.tenzro.network
damlCoder.maxTokens
- Maximum tokens to generate per request
- Default: 2048
- Range: 512-4096
- Higher values allow more complete code generation
damlCoder.temperature
- Generation temperature controlling output randomness
- Default: 0.1
- Range: 0.0-1.0
- Lower values produce more deterministic, focused output
Commands
All commands are accessible via Command Palette, keyboard shortcuts, or right-click context menu.
| Command |
Keybinding (Mac) |
Keybinding (Win/Linux) |
Description |
| DAML Coder: Generate Code |
Cmd+Shift+G |
Ctrl+Shift+G |
Generate code at cursor position |
| DAML Coder: Review Code |
Cmd+Shift+R |
Ctrl+Shift+R |
Review current file for security |
| DAML Coder: Explain Selection |
Cmd+Shift+E |
Ctrl+Shift+E |
Explain selected code |
| DAML Coder: Debug Error |
- |
- |
Debug error with AI assistance |
| DAML Coder: Generate Tests |
- |
- |
Generate Daml.Script test cases |
For chat features, use VSCode's Chat view with agent mode and the DAML Coder MCP server.
Requirements
- Visual Studio Code version 1.99.0 or higher (for MCP support)
- Valid DAML Coder API key
- Active internet connection
- Node.js 18+ (for MCP server)
What Makes DAML Coder Different
Latest DAML Standards (Model v1.1.3)
- DAML SDK 2.10.2 LTS (October 2025)
- DAML-LF 1.17 (Latest Ledger Format)
- Canton Protocol Version 7
- CIP-0056 Token Standard (Approved March 2025)
- Smart Contract Upgrade patterns
Specialized Training
- Fine-tuned on latest DAML 2.x/3.x patterns
- Trained on Canton Network production patterns
- CIP-0056 institutional token standards
- Real-world security patterns from production systems
- Deep understanding of DAML-specific best practices
Security-First Approach
- Critical: Always uses two-step (propose/accept) patterns for transfers
- Automatic authorization bug detection and warnings
- Validates all state transitions
- Implements multi-party authorization correctly
- Prevents common security vulnerabilities
- Uses proper signatory/observer patterns
Conversational Intelligence
- Natural language understanding of DAML concepts
- Context-aware multi-turn conversations through MCP
- Explains "why" behind patterns, not just "how"
- Understands authorization model deeply
- Can debug and explain errors in plain English
Production-Ready Output
- Complete contracts with validation logic
- Proper signatory and observer separation
- Comprehensive error handling
- Professional code structure and documentation
- No truncated or incomplete generation
Performance and Reliability
- Response caching for instant repeated queries
- Typical response time of 2-3 seconds
- Extended timeout support for complex contracts
- Reliable API with high uptime
Error Handling
The extension handles common API issues gracefully:
- Invalid API Key: Clear message directing to settings
- Rate Limiting: Informative message to retry later
- Timeout: Notification if API is slow or unavailable
- Network Errors: General error message with details
MCP Server Troubleshooting
If the MCP server is not working in VSCode:
- Verify MCP server is installed:
npm list -g @tenzro/daml-coder-mcp
- Check API key is set:
echo $DAML_CODER_API_KEY
- Verify MCP configuration in
.vscode/mcp.json
- Enable agent mode: Settings >
chat.agent.enabled > true
- Restart VSCode completely (not just reload window)
- Check MCP server list: Command Palette > "MCP: List Servers"
- View MCP logs in Output panel
Privacy and Data
- Code is sent to the DAML Coder API for processing
- API requests include your code and prompts
- Responses are cached locally for performance
- MCP server runs locally and communicates via stdio
- Review the privacy policy at tenzro.com
Testing Before Publishing
To test the extension locally before publishing:
- Clone/Download the extension source code
- Install dependencies:
npm install
- Compile TypeScript:
npm run compile
- Press F5 in VSCode to launch Extension Development Host
- Test all features:
- Install MCP server:
npm install -g @tenzro/daml-coder-mcp
- Configure MCP server in test workspace
- Test Generate, Review, Explain commands
- Verify API calls work correctly
- Test agent mode with MCP tools
- Package extension:
vsce package
- Install locally:
code --install-extension daml-coder-1.1.0.vsix
Support
Changelog
v1.1.0
- MCP Server Integration: Chat features now use Model Context Protocol
- Universal Compatibility: Works with VSCode, Claude Desktop, Cursor, Zed
- Model v1.1.3: Latest DAML 2.10.2 LTS, CIP-0056, Canton Protocol 7
- Fixed API: Aligned with correct response format (
code field)
- UI: All colors now use VSCode native theme variables
- Six Specialized Tools: Generate, review, explain, debug, test, chat
- Enhanced Knowledge: Smart Contract Upgrades, CIP-0056 patterns
- Performance: Better caching and error handling
v1.0.0
- Initial release
- Generate, Explain, Review, Debug, and Generate Tests commands
- Basic DAML code generation
- Security pattern support
License
Licensed under the Apache License, Version 2.0. See the LICENSE file for details.
Copyright © 2025 Tenzro Labs
Note: DAML Coder v1.1.0 uses Model v1.1.3, which is based on the latest research from October 2025 including DAML SDK 2.10.2 LTS, Canton Protocol Version 7, and CIP-0056 Token Standard. The extension continues to be refined with the latest DAML patterns and best practices.
For chat and conversational features, install the DAML Coder MCP server: npm install -g @tenzro/daml-coder-mcp