Workflow
Assume an external company, XYZ, wants to access an user’s KYC data stored inside their Galxe Passport. From XYZ’s website, the user will first be redirected to https://app.galxe.com/passportauth, where they are prompted to connect their wallet and go through the passport decryption flow on the frontend using their own password. Decrypted data will then be sent as HTTP POST request to XYZ’s endpoint. For example, upon user decryption, they get the following JSON (this is what will be sent as POST payload to XYZ’s endpoint):body.plain
is a base64 encoded string. Decoding it as follows:
hash = keccak256(body)
signer = recoverSigner(hash, Base64.decode(signature))
0x36066A2d5c8D4A486E0d1EC3FB51b0E242e3Fb75
. In future we will release a REST endpoint to verify the validity of signer.