algobank
algobank (Algorithm Bank) for composable secure algorithms and software insurance
Algobank gives every function in a Python package a content hash (code Merkle tree) and shows package scope/capability: use files, access network, processes or environment, load native code or run dynamic code it cannot see into (TOP). Algobanking a package means analyzing and recording the report in algobank.
Designed for use by codegens (coding agents, human maintainers and bots)
Diff tool
Before you or your coding agent add or update a dependency, see what changed and what it can do now:
pip install algobank
pip download --no-deps --only-binary :all: -d wheels/ requests==2.31.0
pip download --no-deps --only-binary :all: -d wheels/ requests==2.32.3
algobank diff wheels/requests-2.31.0-py3-none-any.whl wheels/requests-2.32.3-py3-none-any.whl
algobank scope wheels/requests-2.32.3-py3-none-any.whl
Algobank has no network access and writes no files. It reads only the wheel or sdist files you give it. Nothing from the package is installed, imported or run. Your package manager downloads packages because pip already has network access wherever packages can be installed.
Always use --only-binary :all:. Without it, pip may download an sdist and run the sdist's build backend to read its metadata, which executes the package's code before Algobank sees it. Algobank reports any sdist as high for this reason.
To vet a whole dependency closure, leave out --no-deps, analyze every downloaded wheel, then install exactly those files: pip install --no-index --find-links wheels/ NAME==VERSION.
Give algobank scope every downloaded file at once (algobank scope wheels/*.whl). Every package a package calls should be algobanked too. A called package missing from the run gets a warning. Warnings don't change exit status.
algobank reports by severity:
- files that run on every Python start (
.pth,sitecustomize.py) - new powers (network, process, environment, native code,
TOP) and where they enter - new
exec,eval, deserialization and other dynamic code - new native binaries which it cannot analyze
- new dependencies whose code algobank does not analyze, so their scope is unknown
Every result is also checked against the advisories shipped inside algobank (algobank/known.json) for the 1,000 most downloaded packages. These are releases reported as malicious (OpenSSF) or as having a known vulnerability (PyPA), and digests of known malicious files checked against every file in the archive. The records are shipped as published, and algobank's own code decides on your machine whether one applies. Each result states the date of that data; update algobank to get newer advisories.
algobank stores no verdicts. Every file is analyzed every time you check it. An insecure package only needs to be caught once; a secure package passes every time.
Add --json for programs and agents. The exit status is 1 when a finding is high, so it can gate CI.
More
Metadata
Release files for algobank 1.0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| algobank-1.0.2.tar.gz | 929.0 kB | Without provenance | Details for algobank-1.0.2.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| algobank-1.0.2-py3-none-any.whl | Python 3 | none | any | Details for algobank-1.0.2-py3-none-any.whl |
Total release size: 1.9 MB
Release files / algobank-1.0.2.tar.gz
| Download URL | algobank-1.0.2.tar.gz |
|---|---|
| Size | 929.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
84338a4590ce868ddf57e7f74ee8c2ec7e97e87ecf23c0123b3b05536dea00e4
|
|
BLAKE2b-256 checksum How to use checksums |
ece09c9dfc80794011980f06f81a3f80ad5f5f8ecd9f03b6f60f30bbd33e50bd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|
Release files / algobank-1.0.2-py3-none-any.whl
| Download URL | algobank-1.0.2-py3-none-any.whl |
|---|---|
| Size | 950.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
dc70ca815ddd03f32c92c4423e89980d82a040b83dbe15173ec874a6e26fb829
|
|
BLAKE2b-256 checksum How to use checksums |
2427dea687fadeec13c52698b601a68dacdecb6f037b6afcfbe12d6e26922be8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|
Security for algobank 1.0.2
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.