Skip to main content

Attestix

Attestix

Signed identity and evidence for AI agents

CI Lint Security Coverage PyPI Python License Docs Website

Record cryptographically verifiable evidence to support AI governance workflows.
Open-source identity, credentials, compliance automation, and trust scoring.
MCP and REST interfaces, Automated functional tests and Attestix interoperability benchmarks.
Real integrations with LangChain, OpenAI Agents SDK, and CrewAI.

Status: pre-1.0 toolkit; this README describes current main source. Single-maintainer project, community contributions welcome. No independent third-party security audit has been performed yet; deploy with the same diligence you would apply to any pre-1.0 open-source crypto stack.


Source and verification status

The readiness changes are merged to main. This is source status, not a new registry-release announcement. Install from a reviewed source revision when you need changes that are not yet in your registry package.

  • Credential verification binds the stated issuer to the supported proof controller. Ambiguous NFC-normalized keys fail before signing or verification.
  • Presentation verification requires the caller's expected challenge and domain. A signature alone does not provide replay protection.
  • REST use requires an API key by default. The default REST server is single-tenant and rejects non-default tenant headers; a shared API key does not provide cross-tenant authorization.
  • JSON updates use the shared storage lock. Protect the local signing key and data directory; test backup restoration, isolation and your selected signer/backend before production.
  • workflow_complete describes recorded documentation completion. legal_conformity is not assessed; the deprecated compliant field is a workflow alias. Generated declarations are drafts for provider review.
  • Local purge cannot erase external replicas, remote logs, previously shared credentials or third-party backups. Plan historical data and credential migration separately.

Install

# Registry package (check release notes against the main branch):
pip install attestix

Stable 0.4.0 ships only the canonical attestix.* namespace. The older flat layout (from services... import, from auth... import, ...) keeps working via thin deprecation shims that emit a DeprecationWarning on first import and are scheduled for removal in v0.5.0. Update imports to from attestix.services... import at your earliest convenience.

CLI

attestix status                          # System overview
attestix init --name MyBot               # Create agent identity
attestix compliance <agent-id>           # Check recorded documentation gaps
attestix verify <agent-id>               # Verify identity cryptographically
attestix audit <agent-id>                # View hash-chained audit trail
attestix credential --list               # List W3C Verifiable Credentials

REST API

pip install 'attestix[api]'
# Configure ATTESTIX_API_KEY in your environment before starting the API.
uvicorn attestix.api.main:app --reload   # Swagger docs at http://localhost:8000/docs

Web Dashboard

pip install streamlit
streamlit run demo/webapp/app.py         # Opens at http://localhost:8501

Quick Demo

python examples/quickstart.py            # Local synthetic workflow

Verify in any language

Attestix credentials use a published canonical-JSON and Ed25519 verification profile. Language-specific verifier repositories share conformance fixtures, but their trust-input and delegation-chain checks differ. Read each verifier README and pin a reviewed version. Cryptographic validity is separate from issuer trust, authorization, revocation and replay policy.

Language Install Status
Python pip install attestix Python source and registry package
JS / TS npm install @vibetensor/attestix Verifier source (attestix-js)
Go go get github.com/VibeTensor/attestix-go Verifier source (attestix-go)
Rust cargo add attestix Verifier source (attestix-rs)
Java See repository build instructions Verifier source (attestix-java)
R See repository installation instructions Verifier source (attestix-r)

Every verifier targets the Attestix canonical-JSON profile, which differs from strict RFC 8785, and Ed25519 signatures (RFC 8032) against the shared spec/verify/v1 vectors. Verify in the browser at https://attestix.io/verify, or read the bundle wire-format at https://attestix.io/spec/bundle/v1.

Why Attestix

The EU AI Act has a staged application timeline. The European Commission currently lists 2 December 2027 for specified high-risk use cases and 2 August 2028 for high-risk systems embedded in regulated products. Applicability depends on the system and the operator's role. See the European Commission's current AI Act guidance.

Attestix helps organize evidence; a signature or generated declaration does not establish legal conformity or replace the applicable assessment process.

Attestix provides agent identity, signed credentials, delegation, and offline verification for developers who need portable evidence in their applications. Broader governance platforms also offer APIs, SDKs, agent governance, and compliance workflows; evaluate their current capabilities against your requirements.

Agent identity is fragmenting across walled gardens (Microsoft Entra, AWS AgentCore, ERC-8004). Attestix combines agent identity, AI governance evidence and verifiable credentials in one toolkit.

Attestix fills this gap.


Modules

Module What it does
Identity Unified Agent Identity Tokens (UAITs) bridging MCP OAuth, A2A, DIDs, and API keys. local data erasure tooling
Agent Cards Parse, generate, and discover A2A-compatible agent cards
DID Create and resolve W3C Decentralized Identifiers (did:key, did:web)
Delegation UCAN-style capability delegation with EdDSA-signed JWT tokens
Reputation Recency-weighted trust scoring (0.0 - 1.0) with category breakdown
Compliance EU AI Act risk profiles, conformity assessments (Article 43), Annex V declarations
Credentials W3C Verifiable Credentials with Ed25519Signature2020 proofs, presentations
Provenance Training data provenance (Article 10), model lineage (Article 11), hash-chained audit trail (Article 12)
Blockchain Anchor artifact hashes to Base L2 via Ethereum Attestation Service, Merkle batching

Quick Start

As an MCP Server (Claude Code)

Add to your Claude Code config (~/.claude.json):

{
  "mcpServers": {
    "attestix": {
      "type": "stdio",
      "command": "python",
      "args": ["-m", "attestix.main"]
    }
  }
}

Then ask Claude:

"Create an identity for my data analysis agent with capabilities: data_analysis, reporting"

As a Python Library

from attestix.services.identity_service import IdentityService
from attestix.services.compliance_service import ComplianceService
from attestix.services.credential_service import CredentialService

identity_svc = IdentityService()
compliance_svc = ComplianceService()
credential_svc = CredentialService()

# 1. Create an agent identity
agent = identity_svc.create_identity(
    display_name="MyAgent",
    source_protocol="manual",
    capabilities=["data_analysis", "reporting"],
    description="Analyzes quarterly financial data",
    issuer_name="VibeTensor",
    expiry_days=365,
)
agent_id = agent["agent_id"]      # attestix:f9bdb7a94ccb40f1
agent_did = agent["issuer"]["did"]  # did:key:z6Mk...

# 2. Create a compliance profile
profile = compliance_svc.create_compliance_profile(
    agent_id=agent_id,
    risk_category="limited",
    provider_name="VibeTensor",
    intended_purpose="Analyzes quarterly financial data",
)

# 3. Issue a verifiable credential
credential = credential_svc.issue_credential(
    subject_id=agent_id,
    credential_type="AgentIdentityCredential",
    issuer_name="VibeTensor",
    claims={"capabilities": ["data_analysis", "reporting"]},
    expiry_days=365,
)
print(credential["proof"]["type"])  # Ed25519Signature2020

For a complete end-to-end walkthrough covering all 9 modules, run the quickstart:

python examples/quickstart.py

From Source

git clone https://github.com/VibeTensor/attestix.git
cd attestix
pip install -r requirements.txt
python -m attestix.main

AI governance evidence workflow

Record a high-risk AI agent documentation workflow for provider review:

1. create_agent_identity        --> UAIT with DID (Ed25519 signed)
2. record_training_data         --> Article 10 data governance
3. record_model_lineage         --> Article 11 technical documentation
4. create_compliance_profile    --> Risk categorization + obligations
5. record_conformity_assessment --> Operator-recorded assessment details
6. generate_declaration_of_conformity --> Annex V declaration + W3C VC
7. create_verifiable_presentation     --> Signed VP for a verifier with a fresh challenge

The current Attestix workflow blocks self-assessment for a profile marked high-risk. This application policy is not a universal determination of the legally applicable assessment route:

record_conformity_assessment(assessment_type="self", ...)
--> ERROR: "High-risk AI systems require third_party conformity assessment"

Full walkthrough: EU AI Act Compliance Guide


How It Works

Credentials and presentations carry signatures; audit chains carry integrity hashes. Not every record or external artifact is independently signed:

Artifact Standard Signed
Agent Identity (UAIT) Custom + DID Ed25519
Verifiable Credential W3C VC Data Model 1.1 Ed25519Signature2020
Verifiable Presentation W3C VP Ed25519Signature2020
Delegation Token UCAN-style JWT EdDSA
Draft evidence credential Attestix documentation profile Ed25519
Audit Trail Hash-chained log SHA-256 chain
Blockchain Anchor EAS on Base L2 On-chain

Local operation. Core identity and credential operations can use local JSON storage. Remote DID resolution, hosted signers and blockchain integrations require their configured services.


Architecture

attestix/                  # Canonical Python package (v0.4.0)
  main.py                  # MCP server entry point (MCP tools)
  cli.py                   # `attestix` console script
  config.py                # Environment-based configuration
  errors.py                # Error handling with JSON logging
  api/                     # FastAPI REST surface
    main.py                # uvicorn entry: `attestix.api.main:app`
    routers/               # REST routers
  auth/
    crypto.py              # Ed25519 key management
    ssrf.py                # SSRF protection for outbound HTTP
  services/
    identity_service.py    # UAIT lifecycle, local data erasure
    agent_card_service.py  # A2A agent card operations
    did_service.py         # DID creation and resolution
    delegation_service.py  # UCAN delegation tokens
    reputation_service.py  # Trust scoring
    compliance_service.py  # Operator-recorded profiles and assessment evidence
    credential_service.py  # W3C VCs and VPs
    provenance_service.py  # Training data, lineage, audit trail
    blockchain_service.py  # Base L2 anchoring via EAS
  storage/                 # Repository seam (file / memory / pg)
  signing/                 # Signer seam (in-process / kms)
  audit/                   # Tamper-evident event chain
  tenancy/                 # Tenant context
  idempotency/             # Stripe-style idempotency keys + middleware
  blockchain/
    merkle.py              # Merkle tree for batch anchoring
  tools/                   # MCP tool definitions (one file per module)

The pre-v0.4.0 flat layout (services/, auth/, storage/, ...) is preserved as deprecation shims at the same paths. They re-export from the canonical attestix.* namespace and emit a DeprecationWarning on first import. The shims are scheduled for removal in v0.5.0.


MCP tools

Identity
Tool Description
create_agent_identity Create a UAIT from any identity source
resolve_identity Auto-detect token type and register
verify_identity Check existence, revocation, expiry, signature
translate_identity Convert to A2A, DID Document, OAuth, or summary
list_identities List UAITs with protocol/revocation filters
get_identity Get full UAIT details
revoke_identity Mark a UAIT as revoked
purge_agent_data Remove locally managed records and parseable local backups; external copies need separate handling
Agent Cards
Tool Description
parse_agent_card Parse an A2A Agent Card JSON
generate_agent_card Generate agent.json for hosting
discover_agent Fetch /.well-known/agent.json from a URL
DID
Tool Description
create_did_key Generate ephemeral did:key with Ed25519 keypair
create_did_web Generate did:web DID Document for self-hosting
resolve_did Resolve any DID to its DID Document
Delegation
Tool Description
create_delegation UCAN-style capability delegation token
verify_delegation Verify JWT signature, expiry, structure
list_delegations List delegations by agent and role
revoke_delegation Revoke a delegation token
Reputation
Tool Description
record_interaction Record outcome and update trust score
get_reputation Get score with category breakdown
query_reputation Search agents by reputation criteria
Compliance
Tool Description
create_compliance_profile Create EU AI Act profile with risk categorization
get_compliance_profile Retrieve full compliance profile
update_compliance_profile Update an existing compliance profile
get_compliance_status Gap analysis: completed vs missing requirements
record_conformity_assessment Record self or third-party assessment (Article 43)
generate_declaration_of_conformity Generate Annex V declaration + auto-issue VC
list_compliance_profiles Filter by risk category and compliance status
Credentials
Tool Description
issue_credential Issue W3C VC with Ed25519Signature2020 proof
verify_credential Check signature, expiry, revocation
verify_credential_external Verify any VC JSON from an external source
revoke_credential Revoke a Verifiable Credential
get_credential Get full VC details
list_credentials Filter by agent, type, validity
create_verifiable_presentation Bundle VCs into a signed VP for a verifier
verify_presentation Verify a VP with embedded credentials
Provenance
Tool Description
record_training_data Record training data source (Article 10)
record_model_lineage Record model chain and metrics (Article 11)
log_action Log agent action with hash-chained audit trail (Article 12)
get_provenance Get full provenance record
get_audit_trail Query audit log with filters
Blockchain
Tool Description
anchor_identity Anchor identity hash to Base L2 via EAS
anchor_credential Anchor credential hash to Base L2 via EAS
anchor_audit_batch Merkle batch anchor of audit log entries
verify_anchor Verify an on-chain anchor against local data
get_anchor_status Get anchoring status for an artifact
estimate_anchor_cost Estimate gas cost for anchoring

Standards Conformance

Public tests and conformance fixtures cover selected signature, canonicalization, credential, delegation and interface behavior. They do not establish universal W3C interoperability, legal conformity, certification or operating acceptance. Consult the test cases and the selected verifier's documented boundaries. Run them yourself:

docker build -f Dockerfile.test -t attestix-bench . && docker run --rm attestix-bench
Standard What is tested Tests
RFC 8032 (Ed25519) 4 IETF canonical vectors: key derivation, signature generation (exact match), verification, tamper rejection 18
W3C VC Data Model 1.1 Credential structure, Ed25519Signature2020 proof, mutable field exclusion, VP structure, replay protection 25
W3C DID Core 1.0 did:key and did:web document structure, roundtrip resolution, Ed25519VerificationKey2020 18
UCAN v0.9.0 JWT header (alg/typ/ucv), all payload fields, capability attenuation, expiry enforcement, revocation 18
MCP Protocol MCP tools registered, 9 modules, async convention, snake_case naming 5
Performance Ed25519 key gen, JSON canonicalization, sign/verify, identity creation, credential ops 7

Performance

Benchmark results depend on interpreter, hardware, storage and workload. Run the repository benchmarks on your target environment; no static latency figure here is an operating guarantee.

Security

  • Ed25519 signatures on all UAITs, VCs, assessments, declarations, and audit entries
  • Hash-chained audit trail with SHA-256 for tamper-evident logging
  • SSRF protection blocks private IPs, metadata endpoints, and DNS rebinding
  • Encrypted key storage with AES-256-GCM when ATTESTIX_KEY_PASSWORD is set
  • Private keys never exposed in tool responses
  • No external API calls required for core operations

Research Paper

Attestix is described in a research paper covering system architecture, cryptographic pipeline, EU AI Act compliance automation, and evaluation with 531 automated tests (440 functional + 91 RFC / W3C conformance benchmarks).

Attestix: A Unified Attestation Infrastructure for Autonomous AI Agents Pavan Kumar Dubasi, VibeTensor Private Limited, 2026.

Citing Attestix

If you use Attestix in your research, please cite:

@article{dubasi2026attestix,
  title     = {Attestix: A Unified Attestation Infrastructure for Autonomous AI Agents},
  author    = {Dubasi, Pavan Kumar},
  year      = {2026},
  url       = {https://github.com/VibeTensor/attestix},
  note      = {Open-source. Apache License 2.0}
}

Documentation

Full documentation at attestix.io/docs

Guide Description
Getting Started Installation and first identity in 5 minutes
EU AI Act Compliance Step-by-step compliance workflow
Risk Classification How to determine your AI system's risk category
Architecture System design and data flows
API Reference MCP tools with parameter tables
Integration Guide LangChain, OpenAI Agents SDK, CrewAI, MCP client
Configuration Environment variables, storage, Docker
Research Paper Paper, citation formats, evaluation highlights
Reputation Scoring Recency-weighted trust scoring and categories
Examples End-to-end code examples for common workflows

Disclaimer

Attestix generates machine-readable, cryptographically signed compliance documentation. It is a documentation and evidence tooling system. It does not replace legal counsel, notified body assessments, or official regulatory submissions. Always consult qualified legal professionals for compliance decisions.


Sponsors

Attestix is free and open-source. If you or your organization benefit from it, please consider sponsoring to support continued development, security audits, and infrastructure.

GitHub Sponsors


Contributing

See CONTRIBUTING.md for development setup and guidelines.

License

Apache License 2.0. See LICENSE.


Attestix

Built by VibeTensor

Metadata

Release files for attestix 0.4.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 attestix 0.4.2
File Size Uploaded
attestix-0.4.2.tar.gz 191.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for attestix 0.4.2
File Interpreter ABI Platform
attestix-0.4.2-py3-none-any.whl Python 3 none any Details

Total release size: 425.0 kB

Release files / attestix-0.4.2.tar.gz

Download URL attestix-0.4.2.tar.gz
Size 191.7 kB
Tags Source
SHA-256 checksum
How to use checksums
7b63787bacd1fbbf8889f838d02c26c4ca359e6d3432150dde0c5861ba552634
BLAKE2b-256 checksum
How to use checksums
317aaab74b78c3602b0b90c0938c5ee19ad8eceb7e889197956a632fc9e0aee8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.13

Release files / attestix-0.4.2-py3-none-any.whl

Download URL attestix-0.4.2-py3-none-any.whl
Size 233.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
47a44c85bd56b3d4bc695e8e13b687a7fb1dea288bfe9e7ad8eabc06e5dd2654
BLAKE2b-256 checksum
How to use checksums
0acd0c164dbbc062ef4a622c3d96554f6a67d8b8f4b05487d96d7486c2dc6d12
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.13
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