Data Models

Root Claim

This data model defines the basic ingredients to be able to proof that a certain wallet is associated with a certain passport.

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "rootClaim": {
          "type": "object",
          "properties": {
            "did": {
              "type": "string"
            },
            "identityDocumentHash": {
              "type": "string"
            }
          },
          "required": [
            "did",
            "identityDocumentHash"
          ]
        },
        "proof": {
          "type": "object",
          "properties": {
            "DG15": {
              "type": "string"
            },
            "AASignature": {
              "type": "string"
            },
            "AAChallenge": {
              "type": "string"
            },
            "SOD": {
              "type": "string"
            }
          },
          "required": [
            "DG15",
            "AASignature",
            "AAChallenge",
            "SOD"
          ]
        },
        "extraClaims": {
          "type": "object"
        }
      },
      "required": [
        "rootClaim",
        "proof",
        "extraClaims"
      ]
    },
    "signatureDocument": {
      "type": "object",
      "properties": {
        "message": {
          "type": "string"
        },
        "signature": {
          "type": "object",
          "properties": {
            "publicKey": {
              "type": "string"
            },
            "algorithm": {
              "type": "string"
            },
            "value": {
              "type": "string"
            }
          },
          "required": [
            "publicKey",
            "algorithm",
            "value"
          ]
        },
        "signer": {
          "type": "string"
        }
      },
      "required": [
        "message",
        "signature",
        "signer"
      ]
    }
  },
  "required": [
    "data",
    "signatureDocument"
  ]
}

Subscription request payload

With this payload, any entity can request a subscription on one or more scopes (one or more related claims) of someone's identity.


{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "audience": {
      "type": "string"
    },
    "scopes": {
      "type": "array",
      "items": [
        {
          "type": "string"
        },
        {
          "type": "string"
        }
      ]
    },
    "destination": {
      "type": "string"
    }
  },
  "required": [
    "audience",
    "scopes",
    "destination"
  ]
}

Signed wrapper

This model is used to associate some data to your DID by signing it, and then letting that result be signed by a notary server.


{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "data": {
          "type": "string"
        },
        "signature": {
          "type": "object",
          "properties": {
            "publicKey": {
              "type": "string"
            },
            "algorithm": {
              "type": "string"
            },
            "value": {
              "type": "string"
            }
          },
          "required": [
            "publicKey",
            "algorithm",
            "value"
          ]
        },
        "signer": {
          "type": "string"
        }
      },
      "required": [
        "data",
        "signature",
        "signer"
      ]
    },
    "signature": {
      "type": "object",
      "properties": {
        "publicKey": {
          "type": "string"
        },
        "algorithm": {
          "type": "string"
        },
        "value": {
          "type": "string"
        }
      },
      "required": [
        "publicKey",
        "algorithm",
        "value"
      ]
    },
    "signer": {
      "type": "string"
    }
  },
  "required": [
    "data",
    "signature",
    "signer"
  ]
}