adp-agent-anchor
Optional Neo3 blockchain anchor for adp-agent (Python runtime). Commits signed calibration snapshots to a Neo3-compatible chain on a schedule for third-party tamper evidence.
pip install adp-agent adp-agent-anchor
Why it's optional
The always-on signed calibration snapshot at /.well-known/adp-calibration.json (ADJ §7.4) is the primary trust mechanism — peers and registries verify against it with one HTTPS fetch plus a signature check, no chain required. The chain anchor is a strictly optional overlay that adds:
- Third-party verification without routing through the registry
- Evidence that survives agent disappearance — the anchored record stays on-chain even if the agent's HTTPS endpoint goes offline
- Anti-rewrite defense — on-chain records are mechanically detectable if an agent later rewrites its journal
Supported targets
All four targets use the same Neo3BlockchainStore client and the same CalibrationStore.cs smart contract — only the RPC URL, contract hash, and signing wallet change.
| Target | Use case |
|---|---|
mock |
Unit tests (in-memory, no network) |
neo-express |
Local dev chain |
neo-custom |
Operator's existing private Neo3 chain |
neo-testnet |
Public Neo N3 testnet |
neo-mainnet |
Public Neo N3 mainnet |
Usage
from adp_agent import AdpAgentHost
from adp_agent_anchor import BlockchainStoreFactory, CalibrationAnchorScheduler
host = AdpAgentHost(config)
if config.calibration_anchor and config.calibration_anchor.enabled:
store = BlockchainStoreFactory.create(config.calibration_anchor)
if store:
scheduler = CalibrationAnchorScheduler(config, host.journal, store)
host.after_start(scheduler.start)
host.before_stop(scheduler.stop)
await host.run()
Status
v0.1.0: Neo3BlockchainStore is stubbed. The interface is defined and
MockBlockchainStore + CalibrationAnchorScheduler are fully functional, but
the actual Neo3 RPC client wiring is deferred to v0.2.0. Adopters who need
Neo3 anchoring today should use the TypeScript runtime's
@ai-manifests/adp-agent-anchor package, which has a working implementation
built on @cityofzion/neon-js.
License
Apache-2.0 — see LICENSE for the full license text and NOTICE for attribution.
Metadata
Release files for adp-agent-anchor 0.6.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 | Provenance | Actions |
|---|---|---|---|---|
| adp_agent_anchor-0.6.0.tar.gz | 12.5 kB | Without provenance | Details for adp_agent_anchor-0.6.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| adp_agent_anchor-0.6.0-py3-none-any.whl | Python 3 | none | any | Details for adp_agent_anchor-0.6.0-py3-none-any.whl |
Total release size: 25.4 kB
Release files / adp_agent_anchor-0.6.0.tar.gz
| Download URL | adp_agent_anchor-0.6.0.tar.gz |
|---|---|
| Size | 12.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
65a28e41357fde7414e62e1ff51ae5821204ec3e95c4c7777e63abc8ecab766b
|
|
BLAKE2b-256 checksum How to use checksums |
64c26912eae35d3afb3f8e1d9199751cb8c485fcfb3e7fced0dca604db0d4222
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.3
|
Release files / adp_agent_anchor-0.6.0-py3-none-any.whl
| Download URL | adp_agent_anchor-0.6.0-py3-none-any.whl |
|---|---|
| Size | 12.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8d0d0ce4ea35ab53f4c28b9aac900cbf0bbb44c15a52a06ae3724b876444c508
|
|
BLAKE2b-256 checksum How to use checksums |
920243df72737b62512e4d445ed12fc684cfe0ee158fc41a20370cad854b7be0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.3
|
Security for adp-agent-anchor 0.6.0
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.