✨Works out of the box guarantee. If you face any issue at all, hit us up on Telegram and we will write the integration for you.
logoReclaim Protocol Docs
Fully Hosted SolutionBundle specific options

The Education Bundle

Over 20k universities world wide supported

Currently in Beta : Please contact support to get started.

Provider ID is optional

  • If you want to ask the user which university they study in, followed by verification of that university - leave the providerId blank. The user will be presented with a search functionality to search for their university.
  • If you know that the student is from a particular university and you want to verify if the student is enrolled in that specific university, you can pass the provider ID. You can find the provider ID from the Dev Tool.

UI

If the provider ID is not set, the user will be asked to choose their university

Callback

To the callback you set, you will receive a json like so :

{
  "data": {
    "sessionId": "YOUR SESSION ID",
    "applicationId": "YOUR APPLICATION ID",
    "bundleId": "default",
    "proofs": [
      {
        "success": true,
        "data": {
          "fullName": "...", // Mandatory
          "fieldOfStudy": "...", // Optional. What the student is studying
          "dob": "...", // Optional. Date of birth
          "gradYear": "...", // Optional. Expected date of graduation
        },
        "metadata": {
          "verified": true,
          "timestamp": 1766854715373
        }
      }
    ],
    "timestamp": "2025-12-27T16:58:35.373Z"
  },
  "signature": "0x5515a680e6f05d844c1e54aa231b...RECLAIMPROTOCOL_SIGNATURE"
}

You can see all the parameter's descriptions here. The fields in the data section will always be the same for all universities. If you are using this to verify student enrollment, even if you know the provider ID, we recommend using bundleId=education so that we can make sure all the universities responses are consistently formatted. Because, we do see some community providers to have slightly different schema or parameters making it messy to manage all edgecases.

On this page