Skip to main content

Real-time vulnerability monitoring and auto-remediation for Vyper smart contracts

Project description

Vyper Guard

Vyper Guard is a static security analyzer for Vyper smart contracts. It helps teams detect common vulnerability patterns, review security posture before deployment, and generate structured reports for engineering and CI workflows.

Highlights

  • Native Vyper-focused static analysis
  • 12 built-in detectors across reentrancy, access control, external call safety, arithmetic risks, and compiler advisories
  • Multiple report formats: CLI, JSON, Markdown, SARIF, and HTML
  • Optional baseline suppression and baseline-diff workflows for CI stability
  • Optional remediation mode with tiered auto-fix controls
  • Explorer and on-chain analysis workflows (explorer, analyze-address)
  • AI advisory triage support with explicit fallback control (--allow-ai-fallback)

Installation

pip install vyper-guard

Verify:

vyper-guard --version

Quick Start

Analyze a contract:

vyper-guard analyze contract.vy

Generate a machine-readable report:

vyper-guard analyze contract.vy --format json --output report.json

Generate a SARIF report for code scanning:

vyper-guard analyze contract.vy --format sarif --output report.sarif

Generate an HTML report:

vyper-guard analyze contract.vy --format html --output report.html

Core Commands

Command Purpose
analyze <file_or_dir> Analyze a single contract or directory of contracts
scan <file_or_dir> Alias for analyze
ast <file> Structural AST-oriented contract output
flow <file> Function/call-flow visualization data
fix <file> Remediation workflow
stats <file> Contract metrics and graph artifacts
diff <before> <after> Compare security posture between revisions
explorer <address> Fetch verified source and ABI metadata
analyze-address <address> Analyze explorer-fetched contract source
detectors List detector catalog with severity/category
benchmark [dir] Detector quality benchmark run
baseline <address> Build monitor baseline profile
monitor <address> Runtime monitoring and alerts
help Full command catalog and usage hints

Security Scoring

Each run produces a score from 0 to 100 and a grade.

Base score is 100 with severity-based deductions:

  • CRITICAL: -40 points (capped at -50)
  • HIGH: -20 points (capped at -40)
  • MEDIUM: -8 points (capped at -20)
  • LOW: -3 points (capped at -10)
  • INFO: -1 point (capped at -5)

Additional trust penalty:

  • Detector runtime failures: -10 each (capped at -30)

Detector Catalog

  1. missing_nonreentrant
  2. unsafe_raw_call
  3. missing_event_emission
  4. timestamp_dependence
  5. integer_overflow
  6. unprotected_selfdestruct
  7. dangerous_delegatecall
  8. unprotected_state_change
  9. send_in_loop
  10. unchecked_subtraction
  11. cei_violation
  12. compiler_version_check

Remediation

Use remediation mode for guided fixes:

vyper-guard analyze contract.vy --fix

Limit remediation scope by risk tier:

vyper-guard analyze contract.vy --fix --max-auto-fix-tier B

Dry-run remediation:

vyper-guard analyze contract.vy --fix-dry-run --fix-report remediation-report.json

License

MIT. See LICENSE.

Disclaimer

Vyper Guard is a static analysis aid and does not guarantee absence of vulnerabilities. Use it together with manual review, testnet validation, and professional audits for high-value deployments.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vyper_guard-0.3.8.tar.gz (127.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

vyper_guard-0.3.8-py3-none-any.whl (149.0 kB view details)

Uploaded Python 3

File details

Details for the file vyper_guard-0.3.8.tar.gz.

File metadata

  • Download URL: vyper_guard-0.3.8.tar.gz
  • Upload date:
  • Size: 127.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.19

File hashes

Hashes for vyper_guard-0.3.8.tar.gz
Algorithm Hash digest
SHA256 61ebcc171de226a1ea0cfa8110f474312c1300f1490daa4ecaeeb66c418d468d
MD5 b9794e72dd1fe01e9c02ab2feff094f1
BLAKE2b-256 73b9f6ed8ecce309d89f065eacb16177a6b2d2adc1daf424476f4ca7f7813faa

See more details on using hashes here.

File details

Details for the file vyper_guard-0.3.8-py3-none-any.whl.

File metadata

  • Download URL: vyper_guard-0.3.8-py3-none-any.whl
  • Upload date:
  • Size: 149.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.19

File hashes

Hashes for vyper_guard-0.3.8-py3-none-any.whl
Algorithm Hash digest
SHA256 e5027e6f4c79e3f63d5f428406e55714228e1e21ca6bf417272d30adc48678b6
MD5 d7882c9fbe16939e1c78de704cb90859
BLAKE2b-256 abb7544a6851c0dd3946244f69b18eaec1469d8e84abe9b76248c23af2cab19d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page