{
  "markdown": "<!-- mcp-name: io.github.VibeTensor/attestix -->\n\n<p align=\"center\">\n  <img src=\"https://raw.githubusercontent.com/VibeTensor/attestix/main/docs/assets/atx_icon.png\" alt=\"Attestix\" width=\"120\" height=\"120\" />\n</p>\n\n<h1 align=\"center\">Attestix</h1>\n\n<p align=\"center\">\n  <strong>Compliance Automation for AI Agents</strong>\n</p>\n\n<p align=\"center\">\n  <a href=\"https://github.com/VibeTensor/attestix/actions/workflows/test.yml\"><img src=\"https://img.shields.io/github/actions/workflow/status/VibeTensor/attestix/test.yml?branch=main&label=tests&style=flat-square\" alt=\"CI\"></a>\n  <a href=\"https://github.com/VibeTensor/attestix/actions/workflows/lint.yml\"><img src=\"https://img.shields.io/github/actions/workflow/status/VibeTensor/attestix/lint.yml?branch=main&label=lint&style=flat-square\" alt=\"Lint\"></a>\n  <a href=\"https://github.com/VibeTensor/attestix/actions/workflows/security.yml\"><img src=\"https://img.shields.io/github/actions/workflow/status/VibeTensor/attestix/security.yml?branch=main&label=security&style=flat-square\" alt=\"Security\"></a>\n  <a href=\"https://codecov.io/gh/VibeTensor/attestix\"><img src=\"https://img.shields.io/codecov/c/github/VibeTensor/attestix?style=flat-square\" alt=\"Coverage\"></a>\n  <a href=\"https://pypi.org/project/attestix/\"><img src=\"https://img.shields.io/pypi/v/attestix?color=4f46e5&style=flat-square\" alt=\"PyPI\"></a>\n  <a href=\"https://pypi.org/project/attestix/\"><img src=\"https://img.shields.io/pypi/pyversions/attestix?color=4f46e5&style=flat-square\" alt=\"Python\"></a>\n  <a href=\"https://pypi.org/project/attestix/\"><img src=\"https://img.shields.io/pypi/dm/attestix?color=4f46e5&style=flat-square\" alt=\"Downloads\"></a>\n  <a href=\"https://github.com/VibeTensor/attestix/blob/main/LICENSE\"><img src=\"https://img.shields.io/github/license/VibeTensor/attestix?color=4f46e5&style=flat-square\" alt=\"License\"></a>\n  <a href=\"https://attestix.io/docs\"><img src=\"https://img.shields.io/badge/docs-attestix.io%2Fdocs-4f46e5?style=flat-square\" alt=\"Docs\"></a>\n  <a href=\"https://attestix.io\"><img src=\"https://img.shields.io/badge/website-attestix.io-4f46e5?style=flat-square\" alt=\"Website\"></a>\n</p>\n\n<p align=\"center\">\n  Make your AI agents EU AI Act compliant with cryptographically verifiable proof.<br/>\n  Open-source identity, credentials, compliance automation, and trust scoring.<br/>\n  47 MCP tools across 9 modules, 44 REST API endpoints,\n  531-test suite (440 functional + 91 RFC / W3C conformance benchmarks).<br/>\n  Real integrations with LangChain, OpenAI Agents SDK, and CrewAI.\n</p>\n\n<p align=\"center\">\n  <em>Status: v0.4.0 stable (pre-release 0.4.1rc1 available via the --pre channel).\n  Single-maintainer project, community\n  contributions welcome. No independent third-party security audit has been\n  performed yet; deploy with the same diligence you would apply to any\n  pre-1.0 open-source crypto stack.</em>\n</p>\n\n---\n\n## Install\n\n```bash\n# Stable 0.4.0:\npip install attestix\n\n# Pre-release 0.4.1rc1 (opt in with --pre):\npip install --pre attestix\n```\n\n> Stable 0.4.0 ships only the canonical\n> `attestix.*` namespace. The older flat layout (`from services... import`,\n> `from auth... import`, ...) keeps working via thin deprecation shims that\n> emit a `DeprecationWarning` on first import and are scheduled for removal in\n> v0.5.0. Update imports to `from attestix.services... import` at your earliest\n> convenience.\n\n### CLI\n\n```bash\nattestix status                          # System overview\nattestix init --name MyBot               # Create agent identity\nattestix compliance <agent-id>           # Check EU AI Act compliance\nattestix verify <agent-id>               # Verify identity cryptographically\nattestix audit <agent-id>                # View hash-chained audit trail\nattestix credential --list               # List W3C Verifiable Credentials\n```\n\n### REST API\n\n```bash\npip install fastapi uvicorn\nuvicorn attestix.api.main:app --reload   # Swagger docs at http://localhost:8000/docs\n```\n\n### Web Dashboard\n\n```bash\npip install streamlit\nstreamlit run demo/webapp/app.py         # Opens at http://localhost:8501\n```\n\n### Quick Demo\n\n```bash\npython examples/quickstart.py            # Full 9-module workflow in 0.1 seconds\n```\n\n## Verify in any language\n\nAttestix credentials are issued once (Python core or cloud) and verify\n**anywhere**. Six independent verifier implementations share one conformance\nsuite (`spec/verify/v1`): verify offline, no Python runtime, zero trust in the\nissuer. The verifiers are verifier-only: issuance stays in the Python core.\n\n| Language | Install | Status |\n|----------|---------|--------|\n| **Python** | `pip install attestix` | live (full lib: issue + verify) |\n| **JS / TS** | `npm install attestix` | live ([attestix-js](https://github.com/VibeTensor/attestix-js)) |\n| **Go** | `go get github.com/VibeTensor/attestix-go` | live ([attestix-go](https://github.com/VibeTensor/attestix-go)) |\n| **Rust** | `cargo add attestix` | live ([attestix-rs](https://github.com/VibeTensor/attestix-rs)) |\n| **Java** | `com.vibetensor:attestix:0.4.0` | publishing soon ([attestix-java](https://github.com/VibeTensor/attestix-java)) |\n| **R** | `install.packages(\"attestix\")` | coming to CRAN ([attestix-r](https://github.com/VibeTensor/attestix-r)) |\n\nEvery verifier checks the same canonical-JSON form ([RFC 8785](https://www.rfc-editor.org/rfc/rfc8785))\nand Ed25519 signatures ([RFC 8032](https://www.rfc-editor.org/rfc/rfc8032)) against\nthe shared [`spec/verify/v1`](https://github.com/VibeTensor/attestix/tree/main/spec/verify/v1)\nvectors. Verify in the browser at <https://attestix.io/verify>, or read the\nbundle wire-format at <https://attestix.io/spec/bundle/v1>.\n\n## Why Attestix\n\nOn **August 2, 2026**, the EU AI Act enforcement begins. Fines reach EUR 35M or 7% of global revenue.\n\nExisting compliance tools (Credo AI, Holistic AI, Vanta) are organizational dashboards. None produce **machine-readable, cryptographically verifiable proof** that an AI agent can present to another agent, regulator, or system.\n\nAgent identity is fragmenting across walled gardens (Microsoft Entra, AWS AgentCore, Google A2A, ERC-8004). No single tool combines **agent identity + EU AI Act compliance + verifiable credentials** in one protocol.\n\nAttestix fills this gap.\n\n---\n\n## Modules\n\n| Module | Tools | What it does |\n|--------|:-----:|-------------|\n| **Identity** | 8 | Unified Agent Identity Tokens (UAITs) bridging MCP OAuth, A2A, DIDs, and API keys. GDPR Article 17 erasure |\n| **Agent Cards** | 3 | Parse, generate, and discover A2A-compatible agent cards |\n| **DID** | 3 | Create and resolve W3C Decentralized Identifiers (`did:key`, `did:web`) |\n| **Delegation** | 4 | UCAN-style capability delegation with EdDSA-signed JWT tokens |\n| **Reputation** | 3 | Recency-weighted trust scoring (0.0 - 1.0) with category breakdown |\n| **Compliance** | 7 | EU AI Act risk profiles, conformity assessments (Article 43), Annex V declarations |\n| **Credentials** | 8 | W3C Verifiable Credentials with Ed25519Signature2020 proofs, presentations |\n| **Provenance** | 5 | Training data provenance (Article 10), model lineage (Article 11), hash-chained audit trail (Article 12) |\n| **Blockchain** | 6 | Anchor artifact hashes to Base L2 via Ethereum Attestation Service, Merkle batching |\n\n---\n\n## Quick Start\n\n### As an MCP Server (Claude Code)\n\nAdd to your Claude Code config (`~/.claude.json`):\n\n```json\n{\n  \"mcpServers\": {\n    \"attestix\": {\n      \"type\": \"stdio\",\n      \"command\": \"python\",\n      \"args\": [\"-m\", \"attestix.main\"]\n    }\n  }\n}\n```\n\nThen ask Claude:\n\n> \"Create an identity for my data analysis agent with capabilities: data_analysis, reporting\"\n\n### As a Python Library\n\n```python\nfrom attestix.services.identity_service import IdentityService\nfrom attestix.services.compliance_service import ComplianceService\nfrom attestix.services.credential_service import CredentialService\n\nidentity_svc = IdentityService()\ncompliance_svc = ComplianceService()\ncredential_svc = CredentialService()\n\n# 1. Create an agent identity\nagent = identity_svc.create_identity(\n    display_name=\"MyAgent\",\n    source_protocol=\"manual\",\n    capabilities=[\"data_analysis\", \"reporting\"],\n    description=\"Analyzes quarterly financial data\",\n    issuer_name=\"VibeTensor\",\n    expiry_days=365,\n)\nagent_id = agent[\"agent_id\"]      # attestix:f9bdb7a94ccb40f1\nagent_did = agent[\"issuer\"][\"did\"]  # did:key:z6Mk...\n\n# 2. Create a compliance profile\nprofile = compliance_svc.create_compliance_profile(\n    agent_id=agent_id,\n    risk_category=\"limited\",\n    provider_name=\"VibeTensor\",\n    intended_purpose=\"Analyzes quarterly financial data\",\n)\n\n# 3. Issue a verifiable credential\ncredential = credential_svc.issue_credential(\n    subject_id=agent_id,\n    credential_type=\"AgentIdentityCredential\",\n    issuer_name=\"VibeTensor\",\n    claims={\"capabilities\": [\"data_analysis\", \"reporting\"]},\n    expiry_days=365,\n)\nprint(credential[\"proof\"][\"type\"])  # Ed25519Signature2020\n```\n\nFor a complete end-to-end walkthrough covering all 9 modules, run the quickstart:\n\n```bash\npython examples/quickstart.py\n```\n\n### From Source\n\n```bash\ngit clone https://github.com/VibeTensor/attestix.git\ncd attestix\npip install -r requirements.txt\npython -m attestix.main\n```\n\n---\n\n## EU AI Act Compliance Workflow\n\nTake a high-risk AI agent from zero to fully compliant:\n\n```\n1. create_agent_identity        --> UAIT with DID (Ed25519 signed)\n2. record_training_data         --> Article 10 data governance\n3. record_model_lineage         --> Article 11 technical documentation\n4. create_compliance_profile    --> Risk categorization + obligations\n5. record_conformity_assessment --> Article 43 third-party assessment\n6. generate_declaration_of_conformity --> Annex V declaration + W3C VC\n7. create_verifiable_presentation     --> Signed VP for regulator\n```\n\nHigh-risk systems are blocked from self-assessment:\n\n```\nrecord_conformity_assessment(assessment_type=\"self\", ...)\n--> ERROR: \"High-risk AI systems require third_party conformity assessment\"\n```\n\nFull walkthrough: [EU AI Act Compliance Guide](https://attestix.io/docs/guides/eu-ai-act-compliance)\n\n---\n\n## How It Works\n\nEvery artifact Attestix produces is cryptographically signed with Ed25519:\n\n| Artifact | Standard | Signed |\n|----------|----------|--------|\n| Agent Identity (UAIT) | Custom + DID | Ed25519 |\n| Verifiable Credential | W3C VC Data Model 1.1 | Ed25519Signature2020 |\n| Verifiable Presentation | W3C VP | Ed25519Signature2020 |\n| Delegation Token | UCAN-style JWT | EdDSA |\n| Compliance Records | EU AI Act Annex V | Ed25519 |\n| Audit Trail | Hash-chained log | SHA-256 chain |\n| Blockchain Anchor | EAS on Base L2 | On-chain |\n\n**No cloud dependency.** All core operations work offline with local JSON storage.\n\n---\n\n## Architecture\n\n```\nattestix/                  # Canonical Python package (v0.4.0)\n  main.py                  # MCP server entry point (47 tools)\n  cli.py                   # `attestix` console script\n  config.py                # Environment-based configuration\n  errors.py                # Error handling with JSON logging\n  api/                     # FastAPI REST surface\n    main.py                # uvicorn entry: `attestix.api.main:app`\n    routers/               # one router per service (44 endpoints)\n  auth/\n    crypto.py              # Ed25519 key management\n    ssrf.py                # SSRF protection for outbound HTTP\n  services/\n    identity_service.py    # UAIT lifecycle, GDPR erasure\n    agent_card_service.py  # A2A agent card operations\n    did_service.py         # DID creation and resolution\n    delegation_service.py  # UCAN delegation tokens\n    reputation_service.py  # Trust scoring\n    compliance_service.py  # EU AI Act profiles and assessments\n    credential_service.py  # W3C VCs and VPs\n    provenance_service.py  # Training data, lineage, audit trail\n    blockchain_service.py  # Base L2 anchoring via EAS\n  storage/                 # Repository seam (file / memory / pg)\n  signing/                 # Signer seam (in-process / kms)\n  audit/                   # Tamper-evident event chain\n  tenancy/                 # Tenant context\n  idempotency/             # Stripe-style idempotency keys + middleware\n  blockchain/\n    merkle.py              # Merkle tree for batch anchoring\n  tools/                   # MCP tool definitions (one file per module)\n```\n\nThe pre-v0.4.0 flat layout (`services/`, `auth/`, `storage/`, ...) is\npreserved as deprecation shims at the same paths. They re-export from the\ncanonical `attestix.*` namespace and emit a `DeprecationWarning` on first\nimport. The shims are scheduled for removal in v0.5.0.\n\n---\n\n## All 47 Tools\n\n<details>\n<summary><strong>Identity</strong> (8 tools)</summary>\n\n| Tool | Description |\n|------|-------------|\n| `create_agent_identity` | Create a UAIT from any identity source |\n| `resolve_identity` | Auto-detect token type and register |\n| `verify_identity` | Check existence, revocation, expiry, signature |\n| `translate_identity` | Convert to A2A, DID Document, OAuth, or summary |\n| `list_identities` | List UAITs with protocol/revocation filters |\n| `get_identity` | Get full UAIT details |\n| `revoke_identity` | Mark a UAIT as revoked |\n| `purge_agent_data` | GDPR Article 17 right to erasure across all stores |\n\n</details>\n\n<details>\n<summary><strong>Agent Cards</strong> (3 tools)</summary>\n\n| Tool | Description |\n|------|-------------|\n| `parse_agent_card` | Parse an A2A Agent Card JSON |\n| `generate_agent_card` | Generate agent.json for hosting |\n| `discover_agent` | Fetch `/.well-known/agent.json` from a URL |\n\n</details>\n\n<details>\n<summary><strong>DID</strong> (3 tools)</summary>\n\n| Tool | Description |\n|------|-------------|\n| `create_did_key` | Generate ephemeral `did:key` with Ed25519 keypair |\n| `create_did_web` | Generate `did:web` DID Document for self-hosting |\n| `resolve_did` | Resolve any DID to its DID Document |\n\n</details>\n\n<details>\n<summary><strong>Delegation</strong> (4 tools)</summary>\n\n| Tool | Description |\n|------|-------------|\n| `create_delegation` | UCAN-style capability delegation token |\n| `verify_delegation` | Verify JWT signature, expiry, structure |\n| `list_delegations` | List delegations by agent and role |\n| `revoke_delegation` | Revoke a delegation token |\n\n</details>\n\n<details>\n<summary><strong>Reputation</strong> (3 tools)</summary>\n\n| Tool | Description |\n|------|-------------|\n| `record_interaction` | Record outcome and update trust score |\n| `get_reputation` | Get score with category breakdown |\n| `query_reputation` | Search agents by reputation criteria |\n\n</details>\n\n<details>\n<summary><strong>Compliance</strong> (7 tools)</summary>\n\n| Tool | Description |\n|------|-------------|\n| `create_compliance_profile` | Create EU AI Act profile with risk categorization |\n| `get_compliance_profile` | Retrieve full compliance profile |\n| `update_compliance_profile` | Update an existing compliance profile |\n| `get_compliance_status` | Gap analysis: completed vs missing requirements |\n| `record_conformity_assessment` | Record self or third-party assessment (Article 43) |\n| `generate_declaration_of_conformity` | Generate Annex V declaration + auto-issue VC |\n| `list_compliance_profiles` | Filter by risk category and compliance status |\n\n</details>\n\n<details>\n<summary><strong>Credentials</strong> (8 tools)</summary>\n\n| Tool | Description |\n|------|-------------|\n| `issue_credential` | Issue W3C VC with Ed25519Signature2020 proof |\n| `verify_credential` | Check signature, expiry, revocation |\n| `verify_credential_external` | Verify any VC JSON from an external source |\n| `revoke_credential` | Revoke a Verifiable Credential |\n| `get_credential` | Get full VC details |\n| `list_credentials` | Filter by agent, type, validity |\n| `create_verifiable_presentation` | Bundle VCs into a signed VP for a verifier |\n| `verify_presentation` | Verify a VP with embedded credentials |\n\n</details>\n\n<details>\n<summary><strong>Provenance</strong> (5 tools)</summary>\n\n| Tool | Description |\n|------|-------------|\n| `record_training_data` | Record training data source (Article 10) |\n| `record_model_lineage` | Record model chain and metrics (Article 11) |\n| `log_action` | Log agent action with hash-chained audit trail (Article 12) |\n| `get_provenance` | Get full provenance record |\n| `get_audit_trail` | Query audit log with filters |\n\n</details>\n\n<details>\n<summary><strong>Blockchain</strong> (6 tools)</summary>\n\n| Tool | Description |\n|------|-------------|\n| `anchor_identity` | Anchor identity hash to Base L2 via EAS |\n| `anchor_credential` | Anchor credential hash to Base L2 via EAS |\n| `anchor_audit_batch` | Merkle batch anchor of audit log entries |\n| `verify_anchor` | Verify an on-chain anchor against local data |\n| `get_anchor_status` | Get anchoring status for an artifact |\n| `estimate_anchor_cost` | Estimate gas cost for anchoring |\n\n</details>\n\n---\n\n## Standards Conformance\n\nEvery standards claim is validated by 91 automated conformance benchmarks that\nrun alongside the rest of the suite for a total of 531 tests passing (1 skipped\non Windows). These benchmarks demonstrate cryptographic conformance with the\nlisted standards; they are not a substitute for a legal compliance audit.\nRun them yourself:\n\n```bash\ndocker build -f Dockerfile.test -t attestix-bench . && docker run --rm attestix-bench\n```\n\n| Standard | What is tested | Tests |\n|----------|---------------|:-----:|\n| **RFC 8032 (Ed25519)** | 4 IETF canonical vectors: key derivation, signature generation (exact match), verification, tamper rejection | 18 |\n| **W3C VC Data Model 1.1** | Credential structure, Ed25519Signature2020 proof, mutable field exclusion, VP structure, replay protection | 25 |\n| **W3C DID Core 1.0** | `did:key` and `did:web` document structure, roundtrip resolution, Ed25519VerificationKey2020 | 18 |\n| **UCAN v0.9.0** | JWT header (alg/typ/ucv), all payload fields, capability attenuation, expiry enforcement, revocation | 18 |\n| **MCP Protocol** | 47 tools registered, 9 modules, async convention, snake\\_case naming | 5 |\n| **Performance** | Ed25519 key gen, JSON canonicalization, sign/verify, identity creation, credential ops | 7 |\n\n### Performance (median latency, 1000 runs)\n\n| Operation | Latency |\n|-----------|---------|\n| Ed25519 key generation | 0.08 ms |\n| JSON canonicalization | 0.02 ms |\n| Ed25519 sign + verify | 0.28 ms |\n| Identity creation | ~14 ms |\n| Credential issuance | ~17 ms |\n| Credential verification | ~2 ms |\n| UCAN token creation | ~9 ms |\n\n---\n\n## Security\n\n- **Ed25519** signatures on all UAITs, VCs, assessments, declarations, and audit entries\n- **Hash-chained audit trail** with SHA-256 for tamper-evident logging\n- **SSRF protection** blocks private IPs, metadata endpoints, and DNS rebinding\n- **Encrypted key storage** with AES-256-GCM when `ATTESTIX_KEY_PASSWORD` is set\n- Private keys never exposed in tool responses\n- No external API calls required for core operations\n\n---\n\n## Research Paper\n\nAttestix 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).\n\n**[Attestix: A Unified Attestation Infrastructure for Autonomous AI Agents](https://github.com/VibeTensor/attestix/blob/main/paper/attestix-paper.pdf)**\nPavan Kumar Dubasi, VibeTensor Private Limited, 2026.\n\n### Citing Attestix\n\nIf you use Attestix in your research, please cite:\n\n```bibtex\n@article{dubasi2026attestix,\n  title     = {Attestix: A Unified Attestation Infrastructure for Autonomous AI Agents},\n  author    = {Dubasi, Pavan Kumar},\n  year      = {2026},\n  url       = {https://github.com/VibeTensor/attestix},\n  note      = {Open-source. Apache License 2.0}\n}\n```\n\n---\n\n## Documentation\n\nFull documentation at **[attestix.io/docs](https://attestix.io/docs)**\n\n| Guide | Description |\n|-------|-------------|\n| [Getting Started](https://attestix.io/docs/getting-started) | Installation and first identity in 5 minutes |\n| [EU AI Act Compliance](https://attestix.io/docs/guides/eu-ai-act-compliance) | Step-by-step compliance workflow |\n| [Risk Classification](https://attestix.io/docs/guides/risk-classification) | How to determine your AI system's risk category |\n| [Architecture](https://attestix.io/docs/guides/architecture) | System design and data flows |\n| [API Reference](https://attestix.io/docs/reference/api-reference) | All 47 tools with parameter tables |\n| [Integration Guide](https://attestix.io/docs/guides/integration-guide) | LangChain, OpenAI Agents SDK, CrewAI, MCP client |\n| [Configuration](https://attestix.io/docs/reference/configuration) | Environment variables, storage, Docker |\n| [Research Paper](https://attestix.io/docs/project/research) | Paper, citation formats, evaluation highlights |\n| [Reputation Scoring](https://attestix.io/docs/guides/reputation) | Recency-weighted trust scoring and categories |\n| [Examples](https://attestix.io/docs/examples) | End-to-end code examples for common workflows |\n\n---\n\n## Disclaimer\n\nAttestix 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.\n\n---\n\n## Sponsors\n\nAttestix is free and open-source. If you or your organization benefit from it, please consider sponsoring to support continued development, security audits, and infrastructure.\n\n<a href=\"https://github.com/sponsors/VibeTensor\"><img src=\"https://img.shields.io/badge/Sponsor-GitHub%20Sponsors-ea4aaa?style=flat-square&logo=github\" alt=\"GitHub Sponsors\" /></a>\n\n---\n\n## Contributing\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for development setup and guidelines.\n\n## License\n\nApache License 2.0. See [LICENSE](LICENSE).\n\n---\n\n<p align=\"center\">\n  <a href=\"https://vibetensor.com\">\n    <img src=\"https://raw.githubusercontent.com/VibeTensor/attestix/main/docs/assets/atx_gold.svg\" alt=\"Attestix\" width=\"48\" />\n  </a>\n</p>\n\n<p align=\"center\">\n  Built by <a href=\"https://vibetensor.com\">VibeTensor</a>\n</p>\n",
  "bytes": 22167,
  "sha": "20d3e140b767eb1bb3464e2b7ab1345addf375d8e39d13a9294416a0999af9b6",
  "repo_slug": "vibetensor/attestix",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_vibetensor_attestix_2bf96c68/readme"
}