The Verida Wallet supports Reclaim protocol verifiable credentials. This allows users to receive and store Reclaim credentials as well as reply to proof requests in a privacy-preserving way thanks to Reclaim Zero Knowledge technology.
Users can install the Verida Wallet to receive verifiable credentials from Issuers using the Zero Knowledge technology. These credentials are stored in your Vault (your private and secured storage space on the Verida Network) and therefore shown in the Verida Wallet alongside other credentials.
Verifiers can also send you Reclaim proof requests. The Verida Wallet will automatically generate the Zero-Knowledge proof (ZKP) for you and send it to the Verifier. The Zero-Knowledge proof means no data is actually shared with the Verifier, only the fact that you have a valid credential satisfying the request.
constdid="..."; // Verida Did// Get message object from verida contextconstmessaging=awaitcontext.getMessaging();// setup a callback to show the responseawaitmessaging.onMessage((data) => {// This callback should be called once user shares credentialconsole.log('Received credentials: ', data); });constmessageType="inbox/type/dataRequest";constconfig= { did, recipientContextName:"Verida: Vault", };constdataToSend= { requestSchema:"https://common.schemas.verida.io/credential/base/v0.2.0/schema.json", filter: { $or: [ { credentialSchema:"https://common.schemas.verida.io/credential/reclaim/v0.1.0/schema.json" } ] }, userSelect:true, };// This is the DID the message will go toconstrequestFromDID= did;constmessageSubject="Please select your verifiable credential to verify",const res =awaitmessaging.send( requestFromDID, messageType, dataToSend,msg.messageSubject, config );console.log("Request sent");
The proof-connector app can issue Reclaim Protocol credential. You need to provide veridaDid where generated credential will go to in the url. For example, the url can be like this:
Verify ownership of your Uber account: f3a4394b-191a-4889-9f5c-e0d70dc26fac
Verify ownership of your Kaggle account: c94476a0-8a75-4563-b70a-bf6124d7c59b
It redirects you to page where you select schemas. Once you select schema from Reclaim protocol, you can start process to create credentials.
It will redirect you to the platform (For example: Uber, Kaggle) and the the process should start.
Generate requestUrl and statusUrl from reclaim protocol
import { Reclaim } from"@reclaimprotocol/js-sdk";// You can create your app and schema from Reclaim protocolconstapp_id="...";constschema_id="...";constAPP_SECRET="...";constreclaimClient=newReclaim.ProofRequest(app_id,uuidv4());awaitreclaimClient.buildProofRequest(schema_id);reclaimClient.setSignature(awaitreclaimClient.generateSignature(APP_SECRET) );const { requestUrl,statusUrl } =awaitreclaimClient.createVerificationRequest();return {requestUrl, statusUrl};
Monitor statusUrl and send message to Verida Wallet