# Presentation exchange plugin Instead of writing our own implementation of presentation exchange protocol, maybe we can use `@sphereon/pe-js` for this? API: - [ ] getVerifiableCredentialsFromPresentationDefinition - [ ] validatePresentationAgainstPresentationDefinition Initial code: https://github.com/veramolabs/walletconnect-test-wallet/blob/did/src/controllers/plugins/presentation-exchange.ts # IDataStore plugin for browser localStorage We need a data store plugin for storing verifiable data in the browser. It will be a dependency for the Presentation Exchange plugin. Initial code: https://github.com/veramolabs/walletconnect-test-wallet/blob/did/src/controllers/plugins/data-store.ts # DIDStore and KeyStore for HD wallets When integrating Veramo with existing wallets, we usually have access to user's "secret recovery phrase". It should be possible to create DIDs from derived key pairs. Example: `seed = 'lorem ipsum ...'` ``` path = 'm/44’/60’/0’/0' address = '0x123...567' did1 = 'did:ethr:0x123...567' did2 = 'did:ethr:rinkeby:0x123...567' ``` ``` path = 'm/44’/60’/0’/1' address = '0x456...789' did1 = 'did:ethr:0x456...789' did2 = 'did:ethr:rinkeby:0x456...789' ``` Initial code: https://github.com/veramolabs/walletconnect-test-wallet/blob/did/src/controllers/plugins/did-store.ts https://github.com/veramolabs/walletconnect-test-wallet/blob/did/src/controllers/plugins/key-store.ts