4. Create a Wallet

Creating a wallet from the web extension.


API Documentation for a Wallet creation

POST /api/wallets

This endpoint allows the creation of a new hash as raw bytes encoded in base64. These are the same bytes used to generate the QR code.

Before we get started, the web extension utilizes an additional encryption which is the PGP Encryption, that will enable us to communicate safely from the web extension to the server where we will generate the hash. This process is very simple, first we get the public key that we called it a session PGP Public Key, this key will be used to encrypt every message that we consider private with this key, each session (each user) gets a different key so decrypting the content will require to match the same secret key that we assigned to the session.

1. Retrieve public key

Request

  • Endpoint: /api/wallets

  • Method: POST

  • Content-Type: application/json

Request Body

The request body should be a JSON object containing the following fields:

{
  "faceBase64": "<PGP_encrypted_message>",
  "wordsCount": "12",
  "os": "DESKTOP",
  "password": "(optional)<PGP_encrypted_message>",
  "addServerPassword": false,
  "removePGP": true
}

Fields:

  • faceBase64: string (Required) - PGP Encrypted message containing your selfie. We will perform a liveness test

  • wordsCount: number (Optional) - Specifies the total of words for your mnemonic phrase, e.g., 12

  • os: string (Optional) - The operating system where the request originates, e.g., "DESKTOP".

  • password: string (Optional) - PGP Encrypted message containing your password, which adds a second layer of security besides the liveness detection that is done prior the biometric encryption.

  • addServerPassword: Boolean (Optional) - An authentication key required for decrypting the ZelfProof if specified, we as Zelf, we add it as another layer of security.

  • removePGP: Boolean(Optional) - If true, we are removing the decryption of the previous keys using PGP, all the variables are sent in plain text.

Responses

  • 200 OK: The request was successful, and the hash bytes are returned in base64 format.

    {
        "data": {
            "anonymous": true,
            "image": "data:image/png;base64,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",
            "hasPassword": false,
            "_id": "66db50478227ebe2160b171a",
            "publicData": {
                "ethAddress": "0x294532caF130a151A85fa1C61037DE28720161F1",
                "solanaAddress": "FUcagy5VDUpTcfbFHAd3rs1ak7L4U71wrP2WrkPFtKio",
                "_id": "66db50478227ebe2160b171a"
            },
            "zelfProof": "AhsiK97bPwbDswDf0biNGGruvFYJPBZS3fR583WXpd9t5XzFgv+pFV3ODEXBtmZuTX8n/LUWiEhm/FiuweN2lbYaB8ZL3+/VEmF7JWgoT3Kr9DbsKWOHpZtv5wxIJQiaJulPuX3bKK8gcm8vYe3Dsutd8hDTOiKuO8DS1W06Q2vz7Ow+VclGEvsgXSnv65A8wneKMhDcMJw+HMMV4FpPgDvWMf9aLZ/Iax6pvJ2pXToVAmCvc0T4LskOmTlnPzIPQWfGcdb+riKUGyPXVLcNfQ3BB39KmFe8+UoM8wFvDvlWRXxWuZDDOF4rsmYIN95EaqJLIwex2pykZyy6nS0J1gcuJOeExeN+e/p6CPhQyU8RofMpmVIYCN2xp9FFj2cPfmSI4tdh5p6/vs4WOqcj0S9qEM3dIiHR/uJChd3ugouxZkQm89dbwboSz9jAeyQR6MQH0lWxMMqgjJQa9Yy9trJ/ABJ4mcJafgtOydUEY3RGtHvflGdr9sXtA3UjDMW2stnCcd8HkChVaGlH4UHYE4FORxciMF3yUT0lbVtzBeqdeo8Xx4YYAIFYxLIUn+2EPxDVVOI6TtmB9pH3vEuJ9Y313HZQUAQhAJ3YqrTDKYBAq9CRWlDwJIwohyHvQnrhfHmN8h1mczJgopk88mw8YLpdi8YN592l4vlwMrEMnDQ6A4v6JKxgpGm0n/rRvQs3IaLyvehNRY1jZlFIR+6CSe9uMyvlzs9K4tEzJ6rwO0s5n3OzIj1eA6KPNVE+lt1Ja47BJYmE0qv92c7B55ZQ3sP0z8ZQEFPich5gvvkOQAilStvF2DgqxWi9qRAz4CdfE//A/9LFRZ7oAf5+opzElrSyB+/wRP09Dje4sUWMN4K1HiHFpzpuFycpf2GliXIp2FQ7aclO",
            "zkProof": "23471513040722528416703247511587677152019662831073743712986608904738830237744",
            "ethAddress": "0x294532caF130a151A85fa1C61037DE28720161F1",
            "solanaAddress": "FUcagy5VDUpTcfbFHAd3rs1ak7L4U71wrP2WrkPFtKio",
            "updatedAt": "2024-09-06T18:56:07.700Z",
            "createdAt": "2024-09-06T18:56:07.700Z",
            "__v": 0,
            "qrCode": null
        }
    }
  • 400 Bad Request: There was an error with the request. Possible error codes include:

    {
      "code": "ERR_INVALID_IMAGE",
      "message": "Invalid base64 string for the face image."
    }
  • 403 Forbidden: The API Key is incorrect or there is an issue with licensing. Possible error codes include:

    • ERR_CANNOT_CONNECT_TO_TIME_SERVER: Cannot connect to the time server to verify license expiry.

    • ERR_CANNOT_CONNECT_TO_HOME_SERVER: Cannot connect to the home server to verify license expiry.

    • ERR_NUMBER_OF_AVAILABLE_INSTANCES_EXCEEDED: The number of available instances for this license has been exceeded.

  • 413 Payload Too Large: The request sent is too large. Reduce the size of the image or data.

    {
      "code": "ERR_PAYLOAD_IS_TOO_LARGE",
      "message": "The request sent is too big. Please try reducing the size of image(s)/data."
    }
  • 422 Un processable Entity: The request is invalid due to a specific error related to its content.

    {
      "code": "ERR_UNPROCESSABLE_CONTENT",
      "message": "Invalid request: <specific message related to error>"
    }

Error Codes

Here are some specific error codes that might be returned:

  • ERR_INVALID_IMAGE: Invalid base64 string for the face image.

  • ERR_NO_FACE_DETECTED: No face detected in the image.

  • ERR_MULTIPLE_FACES_DETECTED: Multiple faces detected in the image.

  • ERR_REF_FACE_NOT_MATCHED: Reference face does not match the input face.

  • ERR_LIVENESS_FAILED: Liveness check failed for the input face.

  • ERR_LIVENESS_FACE_ANGLE_TOO_LARGE: The face angle is too large, making liveness check impossible.

  • ERR_LIVENESS_FACE_IS_OCCLUDED: The face is occluded (e.g., by a mask).

  • ERR_LIVENESS_FACE_CLOSE_TO_BORDER: The face is too close to the border of the image.

  • ERR_LIVENESS_FACE_TOO_SMALL: The face is too small in the image.

  • ERR_LIVENESS_EYES_CLOSED: The eyes are closed in the image.

Frequently Asked Questions (FAQs)

Q: What happens if someone else tries to generate a ZelfProof using my face?

A: Zelf's algorithm ensures that each ZelfProof is unique and tied to the specific conditions (metadata, password) provided at the time of creation. Without the exact same inputs, a different ZelfProof will be generated, preventing unauthorized access. That without considering that we require a liveness detection on the encryption as one of the params of our SDK/API function.

Q: Can the Zelf be used across different wallets/platforms?

A: Yes, a ZelfProof can be used across various platforms for authentication, encryption, and verification purposes. The integration is seamless and designed to work in diverse environments.


This documentation should serve as a comprehensive guide for understanding and implementing Zelf. If you need more specific sections or have additional details to include, feel free to contact us at miguel@verifik.co

Last updated