Comprehensive smart contract development advisor based on Trail of Bits' best practices. Analyzes codebase to generate documentation/specifications, review architecture, check upgradeability patterns, assess implementation quality, identify pitfalls, review dependencies, and evaluate testing. Provides actionable recommendations.
Systematically examine codebases to provide guidance on:
Framework: Building Secure Contracts - Development Guidelines
Explores project structure, contract files, existing documentation, architecture patterns, testing setup, and dependencies.
Creates plain English system descriptions, architectural diagrams, and NatSpec completeness recommendations.
Analyzes on-chain/off-chain distribution, upgradeability approaches, and proxy patterns.
Assesses function composition, inheritance structure, event logging, common pitfalls, dependencies, and testing coverage.
Presents prioritized improvement suggestions, best practices, and actionable next steps.
Analyzes 11 comprehensive areas:
| Rationalization | Why It's Wrong | Required Action |
|---|---|---|
| "System is simple, description covers everything" | Plain English descriptions miss security-critical details | Complete all 5 phases |
| "No upgrades detected, skip upgradeability section" | Upgradeability can be implicit (ownable patterns, delegatecall) | Search for proxy patterns before declaring N/A |
| "Not applicable" without verification | Premature scope reduction misses vulnerabilities | Verify with explicit codebase search |
| "Architecture is straightforward, no analysis needed" | Obvious architectures have subtle trust boundaries | Analyze on-chain/off-chain distribution, access control |
| "Common pitfalls don't apply to this codebase" | Every codebase has common pitfalls | Systematically check all guideline pitfalls |
| "Tests exist, testing guideline is satisfied" | Test existence != test quality | Check coverage, property-based tests, integration tests |
| "I can provide generic best practices" | Generic advice isn't actionable | Provide project-specific findings with file:line references |
| "User knows what to improve from findings" | Findings without prioritization = no action plan | Generate prioritized improvement roadmap |
What I'll need: