How to express when claims are/were valid when there is more than one verified claim

Issue #1251 new
Julian White created an issue

Its not clear how to express when a claim was valid when claims change over time, e.g. when someone changed their address or name. The current specification seems to assume that only current details are sent. Many AML processes will often need some historical data for KYC purposes, especially if the details have changed recently.

It would be useful have a start and end date. Both can be optional. Where a start date is missing then it means its probably true from birth, when the end date is missing its still current. Addresses tend to be more fluid so it would also be useful to have dates for those that are separate from the name claims. For example:

"claims": {
  "given_name": "Max",
  "family_name": "Meier",
  "date_from": "2016-12-22",
  "birthdate": "1956-01-28",
  "place_of_birth": {
    "country": "DE",
    "locality": "Musterstadt"
  },
  "nationalities": [
    "DE"
  ],
  "address": {
    "date_until": "2020-06-02",
    "locality": "Maxstadt",
    "postal_code": "12344",
    "country": "DE",
    "street_address": "An der Weide 22"
  },
}

Comments (4)

  1. David W Chadwick

    I raised a similar issue with the W3C VC WG a while back. There is not only the validity period of a cryptographically protected claim, but also the validity period of the underlying data. So in the case of an old residential address, both the start and end dates will be in the past, even though the claim may be made today and valid for 1 hour (in the future).

    However I do not like the way the date_from and date_until have been split up in the above example. I think they should be kept together with the data they refer to. Thus the address should have both fields, and if the name has changed then it too would have both fields. (It makes no sense to have a date_from applying to the birth_date, and certainly not for a date after the birth_date

  2. Julian White reporter

    Apologies, I wasn’t clear. Both the name and address can have both a from and until. I just made a mistake in the address claim example in missing out the from field. Should look like this:

    "claims": {
      "given_name": "Max",
      "family_name": "Meier",
      "date_from": "2016-12-22",
      "birthdate": "1956-01-28",
      "place_of_birth": {
        "country": "DE",
        "locality": "Musterstadt"
      },
      "nationalities": [
        "DE"
      ],
      "address": {
        "date_from": "2018-01-15",
        "date_until": "2020-06-02",
        "locality": "Maxstadt",
        "postal_code": "12344",
        "country": "DE",
        "street_address": "An der Weide 22"
      },
    }
    

  3. David W Chadwick

    I still think that the dates need to be encapsulated in the data object to which they apply. So if you want them to apply to name then it should be something like “name”:{ “given_name…. date_from”:”2020-01-01”}, ”birthdate…..

  4. Julian White reporter

    Maybe something more along the lines of:

    "historical_claims": {
      "name": {
        "given_name": "Masiko",
        "family_name": "Muteesa",
        "date_from": "1956-01-28",
        "date_until": "2016-12-22"
      },
      "nationality": {
        "country": "UGA",
        "date_from": "1956-01-28",
        "date_until": "1972-10-19"
      },
      "address": {
        "locality": "Maxstadt",
        "postal_code": "12344",
        "country": "DE",
        "street_address": "An der Weide 22",
        "date_from": "1998-05-24",
        "date_until": "2016-12-22"
      }
    }
    

  5. Log in to comment