This tool is in beta, use at your own risk
A fast, pythonic, Vyper smart contract testing and development framework.
The smaller bar is better, it means it's faster
You can see how we conducted these tests from the benchmarking repo.
Fast to install, test, and run python commands on your smart contracts.
- 🐍 Pythonic start to finish, built on top of Vyper's titanoboa
- 🔐 ZKsync built-in support
- 📑 Named Contracts allow you to define smart contract addresses without scaffolding anything yourself
- 🧪 Custom staging pytest markers so you can run tests anywhere, anyhow
- 🦊 Support for encrypting wallets, no private keys in
.env
files! - 🧳 GitHub and Python smart contract dependency installation
Head over to the moccasin installation documentation to for other install methodologies and getting stated.
To install the moccasin mox
command, we recommend the uv tool.
uv tool install moccasin --prerelease=allow
Then, see a list of commands with:
mox --help
You can view the documentation here.
If you're interested in helping build moccasin, please see the contributing guide.
mox --help
usage: Moccasin CLI [-h] [-d] [-q]
{init,compile,build,test,run,script,deploy,wallet,console,install,purge,config,explorer,inspect,deployments,utils,u,util}
...
🐍 Pythonic Smart Contract Development Framework
positional arguments:
{init,compile,build,test,run,script,deploy,wallet,console,install,purge,config,explorer,inspect,deployments,utils,u,util}
init Initialize a new project.
compile (build) Compiles the project.
test Runs all tests in the project.
run (script) Runs a script with the project's context.
deploy Deploys a contract named in the config with a deploy script.
wallet Wallet management utilities.
console BETA, USE AT YOUR OWN RISK: Interact with the network in a python shell.
install Installs the project's dependencies.
purge Purge a given dependency
config View the Moccasin configuration.
explorer Work with block explorers to get data.
inspect Inspect compiler data of a contract.
deployments View deployments of the project from your DB.
utils (u, util) Helpful utilities - right now it's just the one.
options:
-h, --help show this help message and exit
-d, --debug Run in debug mode
-q, --quiet Suppress all output except errors
Agkistrodon piscivorus is a species of venomous snake, a pit viper in the subfamily Crotalinae of the family Viperidae. The generic name is derived from the Greek words ἄγκιστρον agkistron "fish-hook, hook" and ὀδών odon "tooth", and the specific name comes from the Latin piscis 'fish' and voro '(I) eat greedily, devour'; thus, the scientific name translates to "hook-toothed fish-eater". Common names include cottonmouth, northern cottonmouth, water moccasin, swamp moccasin, black moccasin, and simply viper.
moccasin is licensed under either of:
- Apache License, Version 2.0, (LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or https://opensource.org/licenses/MIT)
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in moccasin by you, as defined in the Apache-2.0 license, shall be dually licensed as above, without any additional terms or conditions.