Skip to main content

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)

Source distribution for algobank 1.0.2
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)

Table of built distributions (wheels) for algobank 1.0.2
File Interpreter ABI Platform Actions
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.

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