Agent Passport System: Python SDK
Enforcement and accountability layer for AI agents. Bring your own identity. Python implementation of the Agent Passport Protocol, cross-language compatible with the TypeScript SDK. Signatures created in Python verify in TypeScript and the reverse. The Python port is a strict subset of the TS SDK. See the note under "What's Included" below for the current scope boundary.
Install
pip install agent-passport-system
Current stable: the version on PyPI, installed by default with
pip install agent-passport-system. The 2.4 line added the Wave 1 accountability primitives (ActionReceipt, AuthorityBoundaryReceipt, CustodyReceipt, ContestabilityReceipt, APSBundle), Cognitive Attestation (Paper 4), and Instruction Provenance Receipts (v0.2). It also adds evidentiary type safety: a claim and evidence registry, a claim verifier, and a contestation cascade. All primitives are tested for byte-identical canonical JSON against the TypeScript SDK npm 3.1.0 fixtures.
Quick Start
Lead with the minimum you need to get a signed passport and a verifiable delegation: identity, delegation, and policy evaluation. Import the rest from agent_passport when you need it. Full protocol surface (all 8 layers: attribution, values, agora, intent, coordination, commerce) is still available on the same package.
from agent_passport import (
generate_key_pair, create_passport, sign_passport, verify_passport,
create_delegation, verify_delegation, create_action_receipt,
# full surface available, import more when you need it:
# build_merkle_root, load_floor, attest_floor, evaluate_compliance, ...
)
# Create agent identity (Ed25519)
keys = generate_key_pair()
passport = create_passport(
agent_id="agent-alpha-001",
public_key=keys["public_key"],
capabilities=["code_execution", "web_search"]
)
signed = sign_passport(passport, keys["private_key"])
assert verify_passport(signed, keys["public_key"])
# Delegate authority
delegation = create_delegation(
from_agent="human-001",
to_agent="agent-alpha-001",
scope=["code_execution"],
private_key=keys["private_key"],
spend_limit=500
)
assert verify_delegation(delegation, keys["public_key"])
# Record work as signed receipt
receipt = create_action_receipt(
agent_id="agent-alpha-001",
delegation_id=delegation["id"],
action="code_execution",
scope_used="code_execution",
private_key=keys["private_key"],
spend=50,
result="success",
description="Implemented feature X"
)
# Merkle proofs for attribution
hashes = [receipt["receipt_hash"]]
root = build_merkle_root(hashes)
proof = get_merkle_proof(hashes, hashes[0])
assert verify_merkle_proof(hashes[0], proof, root)
What's Included
| Module | Layer | What It Does |
|---|---|---|
crypto |
base | Ed25519 key generation, signing, verification |
canonical |
base | Deterministic JSON serialization (cross-language compatible) |
passport |
1 | Agent identity creation, signing, verification, expiry |
delegation |
1 | Pre-draft compatibility delegation chains, sub-delegation, revocation. Deprecated, frozen, not on the draft-03 path |
v2.authority_delegation |
1 | AuthorityDelegationV1, the draft-03 delegated authority record: closed schema, seven-facet narrowing, chain verification with an explicit now and caller-supplied key, trust and revocation resolvers, and an in-memory spend ledger |
values |
2 | Human Values Floor: load YAML/JSON, attestation, compliance, graduated enforcement |
attribution |
3 | Merkle proofs, beneficiary tracing, contribution tracking |
agora |
4 | Signed message feeds, topics, threading, agent registry |
intent |
5a | Roles, deliberation, consensus, tradeoff evaluation, precedents |
policy |
5b | 3-signature chain, FloorValidatorV1, action intents |
coordination |
6 | Task lifecycle: briefs, evidence, review, handoff, deliverables |
integration |
7 | Cross-layer bridges (commerce+intent, coord+agora, etc.) |
commerce |
8 | 4-gate checkout, human approval, spend tracking, receipts |
Cross-Language Compatibility
The Python SDK produces identical canonical JSON and Ed25519 signatures as the TypeScript SDK. This means:
-
A passport signed in Python can be verified in TypeScript Two delegation records ship, and they are not interchangeable.
AuthorityDelegationV1(record_typeaps:authority-delegation:v1) inv2.authority_delegationis the delegated authority record ofdraft-pidlisnyi-aps-03section 3.1, with the seven signed facets and a chain verifier that returns valid, invalid, indeterminate or unsupported. The olderDelegationfromcreate_delegation,sub_delegateandverify_delegationis a pre-draft compatibility surface, deprecated and frozen: it predates the draft wire format and is not on the draft path. Its scope rules are pre-draft too and differ from section 3.2 in both directions, which is recorded on each function. New work usesAuthorityDelegationV1. -
Delegation chains can span Python and TypeScript agents
-
Merkle roots computed from the same receipts match across languages
from agent_passport import canonical_json
# Same input produces identical output in Python and TypeScript
data = {"z": 1, "a": 2, "nested": {"b": 3, "a": 1}}
assert canonical_json(data) == '{"a":2,"nested":{"a":1,"b":3},"z":1}'
Verification boundary
The verification boundary names the verification APIs that establish authority from caller-supplied trust, and the trust input each one takes.
Protocol Layers
This Python SDK implements all 8 Agent Passport Protocol layers:
- Identity + Delegation: Ed25519 passports, scoped delegation chains, cascade revocation
- Human Values Floor: 7 principles (F-001 through F-007), graduated enforcement (inline/audit/warn)
- Beneficiary Attribution: Merkle proofs for contribution tracking
- Agent Agora: Signed message feeds with topics, threading, and agent registry
- Intent Architecture + Policy Engine: Roles, deliberation, consensus, 3-signature policy chain
- Coordination: Full task lifecycle: briefs, evidence, review, handoff, deliverables
- Integration Wiring: Cross-layer bridges (commerce+intent, coordination+agora)
- Agentic Commerce: 4-gate checkout, human approval, spend limits
Cross-language parity with the TypeScript SDK at the reference version pinned in this repository's fixtures. Python SDK 3.0.0 ships the full Wave 1 surface: ActionReceipt, AuthorityBoundaryReceipt, CustodyReceipt, ContestabilityReceipt, APSBundle (with balanced Merkle commitment), Cognitive Attestation (Paper 4: three-stage verification, typed dispute primitives), and Instruction Provenance Receipts v0.2 (path canonicalization, context-root binding, action-time recompute). The four evidentiary type safety primitives also ship in 3.0.0. All surfaces are tested against TS-issued fixtures for byte-identical canonical JSON. Cross-language signature verification covers every signed primitive in the SDK. Also available via the MCP server.
Links
- Website: https://agent-passport.org
- TypeScript SDK: https://www.npmjs.com/package/agent-passport-system
- Rust SDK: https://crates.io/crates/agent-passport-system
- Go SDK: https://pkg.go.dev/github.com/aeoess/agent-passport-go
- MCP Server: https://www.npmjs.com/package/agent-passport-system-mcp
- Remote MCP: https://mcp.aeoess.com/sse
- Papers:
- LLM docs: https://agent-passport.org/llms-full.txt
Tests
pip install -e ".[test]"
pytest tests/
# the tally is whatever pytest reports on the current checkout
# plus the v2 evidentiary type safety, Wave 1 accountability, Cognitive Attestation,
# and Instruction Provenance Receipt surfaces. The cross-impl byte-parity tests assert
# byte-identical canonical JSON against TS-issued fixtures (rfc8785 ships in the test
# extra). Two cross-language tests also need the agent-passport-system TS SDK checked
# out next to this repo; without that sibling they skip.
License
Apache-2.0
Release files for agent-passport-system 4.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| agent_passport_system-4.2.0.tar.gz | 375.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| agent_passport_system-4.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 839.9 kB
Release files / agent_passport_system-4.2.0.tar.gz
| Download URL | agent_passport_system-4.2.0.tar.gz |
|---|---|
| Size | 375.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
63924175e96d0aa6713b361f01ec1a66eee839fd7ab9ba6ce682a2f296a5d899
|
|
BLAKE2b-256 checksum How to use checksums |
bf79acb296b9c10092939163cf305acc7121249e961c70d8ba2a326e31ddf2f9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.
Transparency logRelease files / agent_passport_system-4.2.0-py3-none-any.whl
| Download URL | agent_passport_system-4.2.0-py3-none-any.whl |
|---|---|
| Size | 465.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2596e6ab44c953e36ab33c4f00485051cd3e36223b5e7194fd31a41f8b540f7e
|
|
BLAKE2b-256 checksum How to use checksums |
434219f7a429925e0c5a6cf49af890a534d80b6c2b839e2f4ca8d992f33587c2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.
Transparency log