...
High-level Framework architecture
Aries framework go Framework Go wallet has plugin based architecture which can be replaced used to replace specific features to customize a wallet implementations.
Initialize wallet:
Since "wallet per aries instance" approach to be used for aries-framework-go, all additional wallet specific initialization steps like creating keys, DIDs can be either performed during very first access to any of the below interface functions or it can be done using a dedicated initialization method.
We should rule out the possibility of using "multiple wallets per aries instance" approach due to challenges in handling data leaks between the wallet users.
Wallet core features:
...
Does aries wallet really needs lock/unlock feature?
→ Open question : Still investigating- Should we provide password in each api call as given in specification?
→ to be decided during design discussion.
VC plugin:
VC plugin adds verifiable credential features to the wallet. By default aries-framework-go verifiable command features will be used for creating and verifying credentials/presentations.
The new additional interface 'presentationSubmission' can be used to submit presentation definitions to the wallet and to get presentation submission as response.DID plugin & aries kms will be used for generating proofs.
- Verify: Takes a Verifiable Credential or Verifiable Presentation as input, returns a boolean
verified
, and an error ifverified
is false. - Issue: Adds proof to verifiable credential provided. (
options
contains at least averificationMethod
, andproofPurpose
.) - Prove: Takes an id of the verifiable credential and verifies the proof (
options
contains at least achallenge
.) - presentationSubmission: Produces presentation submission based on wallet contents.
...