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.7.tar.gz (127.2 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.7-py3-none-any.whl (148.7 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for vyper_guard-0.3.7.tar.gz
Algorithm Hash digest
SHA256 5ea306033c93350549ba22d6753aa01469db885899308cf715db85edbd54d9b8
MD5 c051856bfeb50b98bf77b174684395b8
BLAKE2b-256 1a31bcbcbb76e060c9f41d21bed59d90e3d777ba875c0856c75f4a85d79e93f6

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for vyper_guard-0.3.7-py3-none-any.whl
Algorithm Hash digest
SHA256 a69a1077ae59a141451fe5800009a0125233205771f2fb9203b3035cf7cb5b9f
MD5 ace590c04390cc01fdb2191030462216
BLAKE2b-256 de72e5f0e0922b9a773acee11a47b367ca2b99e03f4b5bdb0f57d539a29dbc4d

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