Practical overview
When it fits
Use Moonworm when a development workflow needs generated Python tooling for a contract or command-line access to decoded contract activity. Monitoring requires an ABI, contract address, Web3 provider URL and starting block.
Who it is for
- Python developers building tools around Ethereum smart contracts.
- Brownie users who want generated contract interfaces and CLIs.
- Developers who need decoded contract activity for incident analysis, alerting or dataset creation.
Documented uses
- Generate a Python interface and CLI from a contract ABI.
- Generate contract-specific tooling from a Brownie project.
- Crawl decoded events and transactions over a selected block range.
- Save monitored activity as JSONL for analysis or dataset creation.
Requirements & limits
The repository is public and lists an Apache-2.0 license. Installation is documented with pip.
- Choose
generatefor pure Web3 use orgenerate-browniewhen working from a Brownie project. - The watcher can crawl historic and ongoing activity; an end block makes the requested crawl bounded.
- Monitoring can write output to JSONL, and event-only mode is available.
- Moonstream database use is an optional watcher mode and requires a network value.
Check current requirements in the official documentation. Source-based guidance does not mean OpenViST has run or independently tested this project.
Monitor decoded contract activity
Crawl decoded events and transactions for a contract over a chosen block range.
Before you start
- Moonworm installed with pip.
- The contract ABI file and contract address.
- A Web3 provider URL and starting block.
Steps
Install Moonworm with the command below.
pip install moonwormRun
moonworm watchwith--abi,--contract,--web3and--startvalues.Optionally provide
--endto stop at a block, or--outfileto write events and transactions to JSONL.
Expected outcome
Moonworm crawls decoded contract data; with `--outfile`, it writes the results to a JSONL file.
Guide limitations
- Without
--end, the crawler does not stop. - The documented command requires a Web3 provider URL and contract ABI.
Generate a Brownie contract interface and CLI
Create generated Python files for a contract in an existing Brownie project.
Before you start
- Moonworm installed with pip.
- A Brownie project and contract name.
- An output directory for generated files.
Steps
Install Moonworm with the command below.
pip install moonwormRun
moonworm generate-browniewith the project path, output directory and contract name.Place the generated files in a subdirectory of the Brownie project, as the README recommends.
Expected outcome
The command generates a Python interface and CLI for the specified contract.
Guide limitations
- The recipe requires a Brownie project; the separate
generatecommand is documented for pure Web3 use.
Sources & review
Source record details
- Source availability
- Active
- Sources checked
- 15 October 2026
- Original website title
- moonstream-to/moonworm · Official homepage title · retained in its source language

