Respond to a presentation
Open a presentation request DIDComm message
typescript
1import { isPresentationRequestJwm } from "wallet-sdk-react-native";
2const openResult = await wallet.did.messaging.openDidCommMessage(message);
3
4if (openResult.isErr() || !isPresentationRequestJwm(openResult.value)) {
5 return;
6}
7
8const presentationRequest = openResult.value;
Look up for matching credentials
typescript
1const credentialData = [
2 { id: "a", credential: credentialA },
3 { id: "b", credential: credentialB },
4];
5
6const filterResult = await wallet.credential.webSemantic.filterCredentialsByQuery({ credentials: credentialData });
Create and send presentation
typescript
1const createPresentationResult = await wallet.credential.webSemantic.createPresentation({
2 challenge: presentationRequest.body.challenge,
3 domain: presentationRequest.body.domain,
4 credentials,
5 holder: did,
6});
7
8
9if (createPresentationResult.isErr()) {
10 // Handle error from createPresentationResult.error
11 return;
12}
13
14const presentaiton = createPresentationResult.value;
15
16const sendPresentationResult = await wallet.credential.webSemantic.sendPresentationResponse({
17 presentationRequest,
18 presentation,
19});
Find the comprehensive SDK interfaces for these examples and others in the documentation https://github.com/mattrglobal/docs-wallet-sdk. Get in touch if you wish to find out more about using the Wallet SDK in production.