Aries Cloud Agent Python (ACA-Py) is an open-source, production-ready framework written in Python for building interoperable decentralized identity agents that implement the W3C Verifiable Credentials data model and the Decentralized Identifiers (DIDs) specification. It serves as a foundational component in the Hyperledger Aries project ecosystem, providing a standardized set of protocols—such as DIDComm for secure messaging and the Aries RFCs—for issuing, holding, presenting, and verifying credentials in a privacy-preserving manner. ACA-Py enables developers to create cloud-based or edge agents that act on behalf of individuals, organizations, or IoT devices to manage their digital identities and interactions without relying on a central authority.
Aries Cloud Agent Python (ACA-Py)
What is Aries Cloud Agent Python (ACA-Py)?
A technical definition of the open-source framework for building decentralized identity agents.
The architecture of ACA-Py is built around the concept of a mediator agent, which handles secure, peer-to-peer communication channels using the DIDComm v2 encrypted messaging protocol. An agent can hold multiple DIDs and manage associated verifiable credentials, facilitating complex interactions like credential issuance flows and presentation exchanges. It provides a clear separation between the core agent logic and the controller—the business application that dictates the agent's behavior via a well-defined administrative API. This modular design allows developers to integrate ACA-Py into existing systems, such as mobile wallets, enterprise backends, or government services, while ensuring compliance with global interoperability standards like those from the Trust Over IP (ToIP) Foundation.
A key feature of ACA-Py is its support for zero-knowledge proofs (ZKPs) through AnonCreds, a credential format that enables selective disclosure of attributes and predicate proofs (e.g., proving one is over 21 without revealing their exact birth date). This is critical for implementing privacy-by-design principles. The framework also includes built-in support for various ledgers (like Hyperledger Indy, Sovrin, or others via the BCovrin test network) for publishing and resolving DIDs, though it is ledger-agnostic at its core. Developers typically interact with ACA-Py through its Swagger-based Admin API to trigger protocol steps, manage connections, and handle credential workflows.
In practice, ACA-Py is used to power a wide range of digital trust ecosystems. Common implementations include issuers (like universities issuing digital diplomas), verifiers (like employers checking credentials), and holders (like individuals using a mobile wallet). For example, a government health agency could deploy an ACA-Py-based issuer agent to distribute verifiable COVID-19 vaccination credentials, which citizens could then store in their wallet agent and present to a verifier agent at an airport. The framework's active development under the Linux Foundation ensures continuous updates for new protocols, enhanced security, and scalability, making it a cornerstone for building the decentralized identity layer of the internet.
How ACA-Py Works
A technical overview of the Aries Cloud Agent - Python (ACA-Py) framework, detailing its modular architecture and core operational flows for decentralized identity.
Aries Cloud Agent - Python (ACA-Py) is an open-source, production-ready framework for implementing Self-Sovereign Identity (SSI) agents that communicate using the Aries Interoperability Protocol. It provides a set of core services - including DID management, secure messaging, credential issuance and verification, and proof presentation - packaged as a single deployable component. Developers interact with ACA-Py through its administrative API to orchestrate identity interactions, while the agent handles the complex, standards-based cryptography and protocol logic under the hood, connecting to distributed ledgers and other agents.
At its core, ACA-Py operates on a message-based architecture. All interactions, from establishing a connection to presenting a verifiable credential, are modeled as the exchange of DIDComm messages. The agent's internal message router receives these encrypted messages, determines their type (e.g., connection-request, present-proof), and dispatches them to the appropriate protocol handler. This modular design separates the protocol logic from transport concerns, allowing ACA-Py to support multiple transports like HTTP, WebSockets, or other queues while maintaining the same application-level semantics.
A fundamental workflow is the DID Exchange protocol, which establishes a secure, peer-to-peer channel. Two ACA-Py instances exchange their public DIDs and generate a unique, encrypted pairwise DID for the relationship. This creates a private communication channel independent of any public ledger. Once a connection is established, the Issue Credential and Present Proof protocols can execute. These protocols involve a structured series of DIDComm messages that enable an issuer to populate a credential schema with claims, sign it to create a Verifiable Credential, and later allow a holder to generate a Verifiable Presentation that discloses selective claims to a verifier.
ACA-Py relies on several external components. It requires a verifiable data registry (VDR), typically a blockchain like Indy or a universal resolver, to write and resolve Decentralized Identifiers (DIDs). For storing credentials, private keys, and other sensitive data, it uses a wallet backend, with implementations for PostgreSQL, SQLite, and Indy-SDK. The agent's stateless design means all persistent data is stored in this wallet and the VDR, enabling scalable, containerized deployments where multiple agent instances can share the same wallet database.
Key Features of ACA-Py
ACA-Py is a foundational, open-source implementation of the Aries protocols for building interoperable, decentralized identity solutions. Its core features enable developers to create secure, privacy-preserving agents.
Protocol Implementation
ACA-Py provides a production-ready implementation of core Aries RFCs, including DIDComm v2 for secure messaging, the DID Exchange protocol for connection establishment, and the Issue Credential and Present Proof protocols for verifiable credentials. This allows developers to focus on application logic rather than low-level protocol details.
Modular Architecture
Built with a plugin-based architecture, ACA-Py allows for extensibility. Core functions like credential issuance, proof verification, and ledger interactions are modular. Developers can add custom protocols, message handlers, and storage backends (e.g., PostgreSQL, SQLite) to tailor the agent for specific use cases without modifying the core codebase.
Multi-Ledger Support
The agent is ledger-agnostic, supporting interactions with various Distributed Ledger Technologies (DLTs) for anchoring Decentralized Identifiers (DIDs). It includes built-in connectors for Hyperledger Indy, Indy VDR, and can be extended to support others like Sovrin or custom blockchain networks via its plugin system.
Admin API & Webhooks
ACA-Py exposes a comprehensive RESTful Admin API for external control and automation, allowing backend systems to manage connections, issue credentials, and request proofs. It also supports webhook notifications to push events (e.g., connection established, proof received) to external listeners for real-time application integration.
Wallet & Storage Abstraction
It manages a secure, encrypted wallet for storing private keys, DIDs, credentials, and connection metadata. The wallet abstraction allows the use of different storage providers. This ensures cryptographic material is handled securely, separate from application data, following W3C DID and VC Data Model standards.
Interoperability & Test Suite
As a reference implementation, ACA-Py is central to the Aries Interop Profile efforts. It includes a full test suite and is regularly tested against other Aries frameworks (e.g., Aries Framework JavaScript) to ensure cross-platform compatibility and adherence to the protocols, guaranteeing agents can communicate regardless of the underlying implementation.
Core ACA-Py Components
Aries Cloud Agent Python (ACA-Py) is a foundational, open-source framework for building decentralized identity and verifiable credential ecosystems. Its power lies in a modular design of interoperable components.
Message Transport
Handles the secure, asynchronous routing of Aries RFC-compliant messages between agents. It abstracts the underlying communication layer, supporting multiple protocols:
- HTTP (for public endpoints)
- WebSockets (for real-time, push-based communication)
- DIDComm v2 over HTTP(S) for encrypted, authenticated transport
Wallet & Storage
A secure, internal component that manages cryptographic keys and private data. It is responsible for:
- Storing private DIDs and their associated keys
- Securely holding received verifiable credentials
- Managing connection metadata and interaction history ACA-Py supports pluggable backends, including PostgreSQL and SQLite.
Ledger Interface
The component that interacts with a distributed ledger (like Indy, Cardano, or a permissioned blockchain) to perform public, verifiable operations. Its key functions are:
- Writing DIDs and their public keys (DIDDocs) to the ledger
- Publishing schema definitions for credential structure
- Registering credential definitions (issuer's public key for a schema)
Protocol Handler
The core engine that executes the state machines defined by Aries protocols. Each protocol (e.g., Connection, Issue Credential, Present Proof) has a dedicated handler that:
- Processes incoming protocol messages
- Manages the state of each interaction
- Triggers the next appropriate action or message in the sequence
Controller
The external business logic layer that uses the Admin API to drive the agent. While not part of ACA-Py itself, it is a critical architectural component. The controller:
- Implements the application's specific workflows
- Makes decisions based on protocol callbacks/events
- Provides the user interface or service logic that orchestrates the agent's actions
Ecosystem Usage & Deployment
Aries Cloud Agent Python (ACA-Py) is a foundational, open-source framework for building interoperable decentralized identity and verifiable credential applications. It implements the W3C Verifiable Credentials and DIDComm v2 protocols.
Core Architecture
ACA-Py is built as a controller/agent model. The core agent handles secure protocol messaging, credential exchange, and proof presentation. Developers write a controller (e.g., in Python, JavaScript) to define business logic, user interfaces, and integration points, communicating with the agent via a REST API. This separation allows for flexible deployment and integration into existing systems.
Primary Use Cases
- Issuance & Verification: Organizations issue verifiable credentials (e.g., diplomas, licenses) and verify proofs from holders.
- Decentralized Identity Wallets: Serves as the backend engine for digital wallet applications, managing DIDs, credentials, and connections.
- Enterprise SSO & Access: Enables passwordless, cryptographically secure access to systems using verifiable presentations.
- Supply Chain Provenance: Attests to the origin and journey of goods with tamper-evident credentials.
Deployment Models
ACA-Py is highly flexible in deployment:
- Cloud-Native: Deployed as containers (Docker) in Kubernetes or cloud VMs for scalable services.
- Edge/On-Premise: Run on local servers or devices for data sovereignty.
- Mediator/Relay: Can act as a cloud mediator for mobile wallets, ensuring connectivity when the mobile device is offline.
- Multi-Tenant: A single ACA-Py instance can be configured to manage multiple independent tenants (wallets or organizations).
Key Technical Features
- Protocol Implementation: Full support for Aries RFCs, including connection protocols, issue-credential, present-proof, and DID Exchange.
- Pluggable Ledger Registry: Works with multiple Distributed Ledger Technologies (DLTs) like Hyperledger Indy, Sovrin, Cardano, and others via plugins.
- Storage Backends: Supports PostgreSQL, SQLite, and other databases for persistence.
- Admin & Webhook APIs: Comprehensive REST APIs for agent control and real-time event notification via webhooks.
Related Tools & Ecosystem
- Aries Framework JavaScript (AFJ): A TypeScript/JavaScript alternative to ACA-Py.
- Trinsic SDKs: Commercial platforms built on Aries protocols.
- Indy-SDK / Libindy: The underlying cryptographic ledger library often used with ACA-Py for Indy-based networks.
- OpenID4VC: ACA-Py integrates with emerging OpenID for Verifiable Credentials standards for web-based flows.
Protocol & Standard Support
Aries Cloud Agent Python (ACA-Py) is an open-source, production-ready implementation of the decentralized identity protocols defined by the Hyperledger Aries project, designed to create, transmit, and store verifiable credentials.
ACA-Py is a foundational agent framework that provides a comprehensive toolkit for building Self-Sovereign Identity (SSI) ecosystems. It implements the core W3C Verifiable Credentials data model and the Decentralized Identifiers (DIDs) specification, enabling entities to issue, hold, and verify cryptographically secure digital credentials. The agent acts as a secure, cloud-based service that manages keys, performs cryptographic operations, and facilitates peer-to-peer messaging, abstracting the underlying complexity of the Aries protocols for developers.
Its primary function is to support the Aries Interoperability Protocols, a suite of standardized interactions defined in Aries RFCs. This includes the DIDComm v2 encrypted messaging protocol for secure peer-to-peer communication, the Connection protocol for establishing trusted relationships, and the core Issue Credential and Present Proof protocols for credential exchange. By adhering to these open standards, ACA-Py ensures interoperability between different vendors and systems within the broader SSI landscape, preventing vendor lock-in.
The agent provides a flexible architecture with support for multiple ledgers (like Hyperledger Indy, Sovrin, and others via the Aries BDR protocol), wallet backends for secure storage, and pluggable components for extensibility. Developers interact with ACA-Py primarily through its Administrative API, issuing commands to create invitations, manage connections, and handle credential flows, while the agent handles all the protocol-level details and state management automatically.
A key design principle is protocol neutrality. ACA-Py does not enforce specific business logic or user experience; it is a protocol engine. This allows developers to build diverse applications—from mobile wallet apps and enterprise credential issuers to government services—on top of the same robust, standards-compliant foundation. The agent handles the secure, standardized 'plumbing,' freeing developers to focus on application-specific features and user interfaces.
Maintained by the Hyperledger Foundation community, ACA-Py's active development and rigorous adherence to Aries RFCs make it a trusted reference implementation. It is widely used in production deployments across various sectors, serving as the backbone for digital identity networks that require verifiable, privacy-preserving credentials and interoperable trust relationships between organizations and individuals.
ACA-Py vs. Other Aries Implementations
A feature and architectural comparison of prominent Aries-compatible agent frameworks.
| Feature / Metric | Aries Cloud Agent - Python (ACA-Py) | Aries Framework - JavaScript (AFJ) | Aries Framework - .NET (AF-.NET) |
|---|---|---|---|
Primary Language | Python | TypeScript/JavaScript | C#/.NET |
Aries RFC Coverage | Extensive (Reference) | Extensive | Growing |
Production Deployment | |||
Mobile SDK Integration | Via Aries Bifold (React Native) | Direct via AFJ | Via Xamarin/.NET MAUI |
Cloud-Native Architecture | |||
Ledger Abstraction Layer | Indy VDR, Askar (AnonCreds) | Indy VDR, Askar (AnonCreds) | Indy SDK, Hyperledger Ursa |
Performance (Messages/sec) | ~1,200 | ~1,500 | ~1,000 |
Governance & Maintenance | Hyperledger Foundation | Hyperledger Foundation | Hyperledger Foundation |
Frequently Asked Questions (FAQ)
Essential questions and answers about Aries Cloud Agent Python (ACA-Py), the foundational toolkit for building interoperable, decentralized identity applications.
Aries Cloud Agent Python (ACA-Py) is an open-source, production-ready framework for building decentralized identity applications that implement the W3C Verifiable Credentials and Decentralized Identifiers (DIDs) standards, primarily within the Hyperledger Aries ecosystem. It provides the core agent logic to manage DIDs, exchange peer-to-peer (A2A) messages, issue and verify credentials, and facilitate secure connections. Developers use ACA-Py as the backend service for wallets, verifiers, and issuers, enabling use cases like digital driver's licenses, employee credentials, and Self-Sovereign Identity (SSI) solutions without being locked into a specific blockchain.
ACA-Py acts as a middleware component that handles the complex protocols (like DIDComm v2) and cryptographic operations, allowing application developers to focus on business logic and user interfaces. It is commonly deployed with a controller that exposes REST APIs for application integration.
Further Reading & Resources
ACA-Py is a foundational tool for building decentralized identity and credential exchange systems. Explore its core components and the ecosystem it enables.
Get In Touch
today.
Our experts will offer a free quote and a 30min call to discuss your project.