Skip to main content

JACS - JSON AI Communication Standard: Cryptographic signing and verification for AI agents.

Project description

JACS Python Library

Cryptographic identity, signing, and verification for AI agents — from Python.

pip install jacs

Prebuilt native bindings via maturin. No Rust compilation during install.

Full documentation | Quick Start

Quick start

import jacs.simple as jacs

info = jacs.quickstart(name="my-agent", domain="my-agent.example.com")
signed = jacs.sign_message({"action": "approve", "amount": 100})
result = jacs.verify(signed.raw)
print(f"Valid: {result.valid}, Signer: {result.signer_id}")

quickstart() creates a persistent agent with keys on disk. If jacs.config.json exists, it loads it; otherwise it creates a new agent.

Core operations

Operation Description
quickstart(name, domain) Create a persistent agent with keys — zero config
load() Load an existing agent from config
sign_message() Sign any JSON-serializable data
sign_file() Sign a file with optional embedding
verify() Verify any signed document
verify_standalone() Verify without loading an agent
export_agent() Export agent JSON for sharing
audit() Run a security audit

Verify without an agent

result = jacs.verify_standalone(signed_json, key_directory="./keys")

Cross-language interop tested on every commit — documents signed in Rust or Node.js verify identically in Python.

Framework adapters

pip install jacs[langchain]    # LangChain / LangGraph
pip install jacs[fastapi]      # FastAPI / Starlette
pip install jacs[crewai]       # CrewAI
pip install jacs[anthropic]    # Anthropic / Claude SDK
pip install jacs[a2a]          # A2A protocol
pip install jacs[all]          # Everything

Instance-based API

For multiple agents in one process:

from jacs.client import JacsClient

client = JacsClient.quickstart(name="my-agent", domain="example.com")
signed = client.sign_message({"action": "approve"})

See DEVELOPMENT.md for the full API reference, advanced usage (agreements, A2A, attestation, headless loading), framework adapter examples, and testing utilities.

Links

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jacs-0.9.13.tar.gz (990.3 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

jacs-0.9.13-cp310-abi3-musllinux_1_2_x86_64.whl (8.0 MB view details)

Uploaded CPython 3.10+musllinux: musl 1.2+ x86-64

jacs-0.9.13-cp310-abi3-manylinux_2_38_x86_64.whl (9.0 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.38+ x86-64

jacs-0.9.13-cp310-abi3-manylinux_2_38_aarch64.whl (9.0 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.38+ ARM64

jacs-0.9.13-cp310-abi3-macosx_11_0_arm64.whl (8.3 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

jacs-0.9.13-cp310-abi3-macosx_10_12_x86_64.whl (8.5 MB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

Details for the file jacs-0.9.13.tar.gz.

File metadata

  • Download URL: jacs-0.9.13.tar.gz
  • Upload date:
  • Size: 990.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for jacs-0.9.13.tar.gz
Algorithm Hash digest
SHA256 5b6718af4570a9c95c83ee1564986ce0a72093c14f42fd302299830bdf6cfb0a
MD5 cad9418cb76f3ba1d6c85f107f446a4a
BLAKE2b-256 08fa9875e882d2a9df791829d56519df206f974817cf4b64c94f23bce2f4865f

See more details on using hashes here.

Provenance

The following attestation bundles were made for jacs-0.9.13.tar.gz:

Publisher: release-pypi.yml on HumanAssisted/JACS

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file jacs-0.9.13-cp310-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for jacs-0.9.13-cp310-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 838daf610f164bdd87dcfc942229e6c28fca773db85329586776f1569780dd5a
MD5 be9a694513ef4fc38acaf3650d8eddb8
BLAKE2b-256 8e0d78a61d7926991892b449cf9562fcd89fa5d783ac3f3f97f2847b04fdfcd1

See more details on using hashes here.

Provenance

The following attestation bundles were made for jacs-0.9.13-cp310-abi3-musllinux_1_2_x86_64.whl:

Publisher: release-pypi.yml on HumanAssisted/JACS

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file jacs-0.9.13-cp310-abi3-manylinux_2_38_x86_64.whl.

File metadata

File hashes

Hashes for jacs-0.9.13-cp310-abi3-manylinux_2_38_x86_64.whl
Algorithm Hash digest
SHA256 8890ca780c9bd4b0f80fd29eba7d7c459df37928696aa877cc9bd6bbe6eaa67b
MD5 036d286ff9404569e413e8a465fbc23a
BLAKE2b-256 c7c064b6cdf9734f67d8611832388e5066c1aba6c0c8a63d0bb491f21377be27

See more details on using hashes here.

Provenance

The following attestation bundles were made for jacs-0.9.13-cp310-abi3-manylinux_2_38_x86_64.whl:

Publisher: release-pypi.yml on HumanAssisted/JACS

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file jacs-0.9.13-cp310-abi3-manylinux_2_38_aarch64.whl.

File metadata

File hashes

Hashes for jacs-0.9.13-cp310-abi3-manylinux_2_38_aarch64.whl
Algorithm Hash digest
SHA256 f8060b621282c5311c3cfa7d99a8408e74ca6b4557038c1681fb86a3adb6e400
MD5 19196d9276d05af9cd16528c2c39d19f
BLAKE2b-256 c5a60ab15d43a24cb013b7cddaa6a8e1b3c17f09825ea6796062ba27ea96fc5e

See more details on using hashes here.

Provenance

The following attestation bundles were made for jacs-0.9.13-cp310-abi3-manylinux_2_38_aarch64.whl:

Publisher: release-pypi.yml on HumanAssisted/JACS

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file jacs-0.9.13-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for jacs-0.9.13-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9f8316658973d9a0241aa7058a5ae41a5d34d6b0016edefcc2b0d14a5e8a9f60
MD5 18721bbc09186ef71cd224a86731a13d
BLAKE2b-256 4f45e3828429c166ed4856e31b0c8be505253f7148e049b77083d067458a868f

See more details on using hashes here.

Provenance

The following attestation bundles were made for jacs-0.9.13-cp310-abi3-macosx_11_0_arm64.whl:

Publisher: release-pypi.yml on HumanAssisted/JACS

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file jacs-0.9.13-cp310-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for jacs-0.9.13-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 2805572ee58a047414b66a988e180cbbb24ab71375a727ae526765927b657e92
MD5 9bd11e22c3f67de0cc15ab645e480690
BLAKE2b-256 ebb80667254cde0ca5cca7c091501fb2f5a77ce5881b8dd1e162de61e11acd58

See more details on using hashes here.

Provenance

The following attestation bundles were made for jacs-0.9.13-cp310-abi3-macosx_10_12_x86_64.whl:

Publisher: release-pypi.yml on HumanAssisted/JACS

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page