Skip to main content

🔥 Napalm

Napalm is a project management utility for custom solidity vulnerability detectors.

If you're an auditor you've probably played around with various static analysis tools, maybe even written a couple of custom modules. If so, you'll have noticed that you're reaching for different tools all the time, and that organising your 100+ custom modules is starting to become a hassle.

Napalm to the rescue!

With Napalm you can manage, and easily run your custom detection modules for multiple tools, all from one place.

  • reporting - Napalm takes care of building a comprehensive report for you, so you can focus on writing your modules.
  • installation - Zero hassle installation of your modules, and their dependencies, in a clean virtual environment.
  • batch processing - Run your modules against multiple contracts, or multiple versions of the same contract, in one go.

Installation

Napalm is available on PyPi, so you can install it with pip:

pip install 'napalm-toolbox[slither]'

You can install napalm without slither too! Just omit the [slither]

Quick start guides:

💣 Running scans with Napalm

Using napalm is simple, you've got two main concepts to keep in mind:

  1. Collection - A collection is a group of detection rules / modules.
  2. Workflow - A workflow is a set of collections that you commonly want to use together when analyzing a contract.

You've got three default workflows:

  • detect - This is likely your main workflow, and is commonly used to run all high-confidence detectors.
  • direct - Direct is a workflow commonly used by bounty hunters, it's detectors provide suggestions on where to look for bugs. Usually focused on high-impact.
  • inform - This workflow has all your common optimisations, suggestions, informational modules.

Running a workflow

To run a workflow, simply run the following command:

napalm run <workflow> <contract>
# or
napalm run <workflow> <directory>

💼 Installing Napalm packages

When you first install Napalm, things might seem a little boring. That's because you haven't installed any packages yet!

Napalm packages are simply python packages that contain Napalm collections. Here is the napalm base package that comes pre-loaded with tons of useful detection modules!

pip install napalm-core

Next time you run napalm it will automatically prompt you to add the collections in this package to your default workflows!

💡 Note: Try re-running napalm run detect now that you've got some collections installed!


🧑‍💻 Using Napalm as a module dev

To start a new Napalm project, run the following command in an empty directory:

napalm-dev init

This will automatically set up a napalm project for you that takes care of everything! The only thing you need to do is write detection modules and rules.

You'll see that the default project structure comes with two collections pre-loaded, detectors and indicators. Add your detection modules to either of these collections, and they'll be automatically loaded when you run napalm! Of course, if you'd like to add more collections, you can do so by just creating a new directory!

Note: the project acts like a python project so don't forget to add init.py files!

Metadata

Release files for napalm-toolbox 0.1.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for napalm-toolbox 0.1.5
File Size Uploaded Provenance Actions
napalm_toolbox-0.1.5.tar.gz 33.3 kB Without provenance Details for napalm_toolbox-0.1.5.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for napalm-toolbox 0.1.5
File Interpreter ABI Platform Actions
napalm_toolbox-0.1.5-py3-none-any.whl Python 3 none any Details for napalm_toolbox-0.1.5-py3-none-any.whl

Total release size: 83.5 kB

Release files / napalm_toolbox-0.1.5.tar.gz

Download URL napalm_toolbox-0.1.5.tar.gz
Size 33.3 kB
Tags Source
SHA-256 checksum
How to use checksums
cd942f09990d3a66c885915d51f3b3fbaa04a854222ec5e708ed4aa6b6f99a47
BLAKE2b-256 checksum
How to use checksums
99e38c8d277232ca99791f4187abbf01b6d9879f841ee4505fb7e6dc6da6d094
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.8.2 CPython/3.12.2 Linux/6.5.0-1015-azure

Release files / napalm_toolbox-0.1.5-py3-none-any.whl

Download URL napalm_toolbox-0.1.5-py3-none-any.whl
Size 50.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
476369a6b44c4159b05b1bb9f677ef536e0ddbc66fe323e0ea6556a107230eff
BLAKE2b-256 checksum
How to use checksums
bee025bf878090a765d43aa05c4cb0aa52c3851b4d32045e20144ba32af401e7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.8.2 CPython/3.12.2 Linux/6.5.0-1015-azure

Security for napalm-toolbox 0.1.5

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page