Smart contract security scanner — Slither + ML exploitability prediction
Project description
ChainAudit
Smart contract security scanner powered by Slither + ML exploitability prediction.
Requires Python 3.11 or 3.12. Python 3.13 not yet supported on Windows.
Install
pip install chainaudit
Prerequisites:
pip install slither-analyzer
pip install solc-select && solc-select install 0.8.24 && solc-select use 0.8.24
Usage
# Single file
chainaudit scan contract.sol
# Directory
chainaudit scan ./contracts --recursive
# Zip archive
chainaudit scan contracts.zip
# JSON output
chainaudit scan contract.sol --json
# Skip exploit simulation
chainaudit scan contract.sol --ml-only
Exit code 1 if CRITICAL vulnerabilities found — use in CI to block deployments:
chainaudit scan contracts/ --recursive || echo "Vulnerabilities found, blocking deploy"
GitHub Action
- uses: aizen299/smart-contract-auditor@v1
with:
target: contracts/
fail-on-critical: true
What It Detects
EVM (Ethereum, Polygon, BNB Chain...)
| Severity | Examples |
|---|---|
| CRITICAL | Reentrancy, Controlled Delegatecall |
| HIGH | Unchecked Token Transfer, Weak Randomness, tx.origin Auth |
| MEDIUM | Timestamp Dependence, Unchecked Send |
| LOW | Missing Zero Check, Missing Events |
L2 / Arbitrum / Optimism — auto-detected
| Severity | Examples |
|---|---|
| CRITICAL | Cross-Chain Replay Attack, Bridge Reentrancy |
| HIGH | L2 Block Number Assumption, Sequencer Dependence, Address Aliasing |
| MEDIUM | Force-Include Griefing, Gas Price Assumption |
L2 rules activate automatically when the scanner detects Arbitrum/Optimism identifiers (ArbSys, xDomainMessageSender etc.) in the contract source.
ML Predictions
Each finding includes an ML-predicted exploitability score trained on the SmartBugs dataset (143 contracts, 88% accuracy).
{
"title": "Reentrancy",
"severity": "CRITICAL",
"ml_exploitability": "CRITICAL",
"ml_confidence": 0.96
}
Links
- GitHub: aizen299/smart-contract-auditor
- Web app: chainaudit.vercel.app
- Issues: GitHub Issues
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file chainaudit-1.0.6.tar.gz.
File metadata
- Download URL: chainaudit-1.0.6.tar.gz
- Upload date:
- Size: 23.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ef0a9aa66428e4e8ba5124baffb936f34ef348c1d053643266c3bdd23736c7c3
|
|
| MD5 |
89ea5bbb8891f43e73a8d88bf99fa7ed
|
|
| BLAKE2b-256 |
381c66208c21f519c55d24d9120ed8351ae6d68d1fe7d2812deb7cb497d3369b
|
File details
Details for the file chainaudit-1.0.6-py3-none-any.whl.
File metadata
- Download URL: chainaudit-1.0.6-py3-none-any.whl
- Upload date:
- Size: 18.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
65eb2c9fab08150580994a82a8ad29b2908d79c1af347f1896e215b6e699371f
|
|
| MD5 |
318ce9207e901f13a3105b87b2ae745a
|
|
| BLAKE2b-256 |
f2c08b46b8cd70d78af3bfc426b7fed684f83b413205ea1a6bc843f5bba33722
|