ACA-Py Feature Overview

The below contribution is a joint effort between Northern Block and Animo.

Platform Support

Platform Supported Notes
Server โœ…
Desktop โš ๏ธ Could be run as a local service on the computer
iOS โŒ
Android โŒ
Browser โŒ

Agent Types

Role Supported Notes
Issuer โœ…
Holder โœ…
Verifier โœ…
Mediator โœ… Doesn't support the pickup protocol, so only supports implicit pickup of messages.
Mediatee โš ๏ธ Doesn't support pickup of messages, but can still be used to coordinate with a mediator to forward messages. (e.g. when I as an individual host my own cloud server and want to use herd privacy so I can't be tracked)
Transaction Author โœ…
Transaction Endorser โœ…

AIP Support

AIP Version Supported Notes
AIP 1.0 โœ…
AIP 2.0 โš ๏ธ Missing support for 0183: Revocation Notification, 0557: Discover Features v2 and 0627: Static Peer DIDs. Also needs to fix some additional AIP1 -> AIP2 interop issues (AIP-2 base64url consistency and Small AIP-2 updates)

Credential Types

Credential Type Supported Notes
Indy Credentials โœ…
W3C Credentials โœ… Only JSON-LD Credentials supported with signature suites Ed25519Signature2018, BbsBlsSignature2020 and BbsBlsSignatureProof2020

DID Methods

Method Supported Notes
did:sov โœ…
did:web โš ๏ธ Can only resolve did:web, not create it
did:key โœ…
did:peer โš ๏ธ Indy based did:peer dids are used for DIDComm, however the DIDs are not prefixed with did:peer yet and are not following the conventions from RFC 0627: Static Peer DIDs

Wallet Types

Wallet types Supported Notes
Indy SDK โœ… Indy SDK provides storage, crypto, indy credentials and indy ledger support
Aries Askar โš ๏ธ Askar provides storages and crypto support. Released but not fully stable yet. Other Indy features are now handled by Indy CredX and Indy VDR

Miscellaneous Features

Feature Supported Note
Multi use invitations โœ…
Invitations using public did โœ…
Implicit pickup of messages in role of mediator โœ…
Revocable Indy Credentials โœ…
Multitenancy โœ… Documentation
Connectionless (non OOB protocol) โœ… Only for issue credential and present proof
Signed Attachments โœ… needed for OOB
Multi ledger support (with automatic detection) ๐Ÿšง Pull Request
Persistence of mediated messages โŒ Messages are currently stored in memory
Wallet Import & Export โš ๏ธ Supported in indy-sdk by directly interacting with the indy-sdk. No endpoint availalbe for wallet import & export. Aries Askar doesn't support import & export yet.

Supported RFCs (AIP 1.0 and 2.0)

RFC Supported Note
0003-protocols โœ…
0004-agents โœ…
0005-didcomm โœ…
0008-message-id-and-threading โœ…
0011-decorators โœ…
0015-acks โœ…
0017-attachments โœ…
0019-encryption-envelope โœ…
0020-message-types โœ…
0025-didcomm-transports โœ… Support for HTTP and WebSockets
0044-didcomm-file-and-mime-types โœ…
0047-json-LD-compatibility โœ…
0046-mediators-and-relays โœ…
0048-trust-ping โœ…
0050-wallets โœ…
0056-service-decorator โœ…
0092-transport-return-route โœ…
0094-cross-domain messaging โœ…
0095-basic-message โœ…
0160-connection-protocol โœ…
0211-route-coordination โš ๏ธ Only pre-AIP 2.0 version. Must be updated to use did:key for AIP 2.0 support
0036-issue-credential โœ…
0037-present-proof โœ…
0592-indy-attachments โœ…
0023-did-exchange โœ… Not using DIDDoc conventions yet, still using DID format of 0160-connections (which is incorrect and outdated). Also using incorrect format for did:peer (or not using a did: prefix at all)
0035-report-problem โœ…
0593-json-ld-cred-attach โœ…
0510-dif-pres-exch-attach โœ…
0646-bbs-credentials โœ…
0587-encryption-envelope-v2 ๐Ÿšง PR
0360-use-did-key โš ๏ธ Creating and resolving did:key dids is supported, but not all protocols are updated yet to use did:key. This is a breaking change for AIP 1.0 -> AIP 2.0.
0434-outofband โœ…
0453-issue-credential-v2 โœ…
0454-present-proof-v2 โœ…
0519-goal-codes โœ…
0441-present-proof-best-practices โœ…
0183-revocation-notification โŒ
0557-discover-features-v2 โŒ
0627-static-peer-dids โŒ
0317-please-ack โŒ

Non AIP supported RFCs

RFC Supported Note
0031-discover-features โœ… V1
0028-introduce โœ…
00509-action-menu โœ…
0212-pickup โŒ
0641-linking-binary-objects-to-credentials โŒ