Automated smart contract security analysis powered by formal verification
Project description
Certora Patrol
Automated smart contract security analysis powered by formal verification.
Prerequisites
- Python 3.12+
- Java 21+ (required by the Certora prover)
- Foundry (
forge buildmust succeed on your project) CERTORAKEY— Sign up at certora.com and store the API key from your signup email as an environment variable.ANTHROPIC_API_KEY— Beta testers will receive a Claude API key from Certora to cover LLM-related costs. Set it as an environment variable.
[!IMPORTANT] If you are a beta tester, make sure
ANTHROPIC_API_KEYis set to the key provided by Certora, not your personal key. Patrol will first open your browser to authenticate with prover.certora.com.
Install
uv venv patrol-env && source patrol-env/bin/activate
uv pip install certora-patrol
Or with pip:
python -m venv patrol-env && source patrol-env/bin/activate
pip install certora-patrol
Usage
cd /path/to/your/contracts
patrol src/Token.sol
With explicit contract name (in case contract name does not match the file name):
patrol src/Vault.sol:MyVault
[!IMPORTANT] Both
CERTORAKEYandANTHROPIC_API_KEYmust be set in your environment before running Patrol. You can also pass them inline:ANTHROPIC_API_KEY=sk-... CERTORAKEY=... patrol src/Token.sol.
What it does
- Builds your project and sets up verification infrastructure
- Runs formal verification checks (generic rules and AI-inferred rules)
- Analyzes results with AI and generates an HTML report
Once complete, Patrol prints the path to the generated HTML report in the current working directory.
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 Distributions
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 certora_patrol-0.1.17-py3-none-any.whl.
File metadata
- Download URL: certora_patrol-0.1.17-py3-none-any.whl
- Upload date:
- Size: 994.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0f7f35d207ac2f3382c9c8fecee11e4b9fd65f8dd7cf93113c744b3bd8c001f4
|
|
| MD5 |
0fbda4d9b7bdd5247d06c24a1bf5b223
|
|
| BLAKE2b-256 |
fb88b698d4806ecbdc72af54169c696103f30e45932804f1caf89ffaf9888c0b
|
Provenance
The following attestation bundles were made for certora_patrol-0.1.17-py3-none-any.whl:
Publisher:
publish.yml on Certora/patrol-release
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
certora_patrol-0.1.17-py3-none-any.whl -
Subject digest:
0f7f35d207ac2f3382c9c8fecee11e4b9fd65f8dd7cf93113c744b3bd8c001f4 - Sigstore transparency entry: 1060675710
- Sigstore integration time:
-
Permalink:
Certora/patrol-release@81fb82df551cc3808c820670bcb40411b7f205ae -
Branch / Tag:
refs/tags/v0.1.17 - Owner: https://github.com/Certora
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@81fb82df551cc3808c820670bcb40411b7f205ae -
Trigger Event:
push
-
Statement type: