passport icon indicating copy to clipboard operation
passport copied to clipboard

Spike: Explore updating onchain Passports to write the full credential

Open Jkd-eth opened this issue 9 months ago • 1 comments

User Story:

As a Passport Product Manager or Passport Engineer I want to write each credential onchain So that I can simplify the data

As a Passport ecosystem developer I want to be able to read the same information onchain and offchain So that I can more easily write and maintain integrations

Acceptance Criteria

GIVEN a Passport user WHEN they push that onchain THEN the individual credentials are saved onchain

This would be the same data / payload is pushed onchain that is pushed to Ceramic. I think this would require an updated EAS schema and a change to how we write. The big question is how much does this change the gas cost(s) with the new EIP to reduce L2 gas costs. We should test on OP & Linea.

Product & Design Links:

Tech Details:

Open Questions:

Notes/Assumptions:

Jkd-eth avatar May 06 '24 15:05 Jkd-eth

The Schema for writing a VC onchain: Option 1

hash: bytes32, provider: string

Option 2 If we want to include the exact same dates as in the VC

hash: bytes32, provider: string, issuance_data: uint64 [, expiration_data: uint64, ]

Option 3 If we want to also include the proof to track offline revoked attestations. In the future we might add a proper ID instead of this ...

hash: bytes32, provider: string, issuance_data: uint64, expiration_data: uint64, r: bytes32, s: byte, v: bytes32

Notes

  • we don't need to write the did, as the this is basically the recipient
  • the hash would be the unencoded 256 bit hash value (without the version prefix)
  • I would make the schema and the attestation revocable
  • set the expiration date to match the expiration date of the VC

Open questions

  • do we want the issuance / expiration dates to be the exact same as the ones in the VC (issuance date of the attestation would be set automatically to the date the attestation is created, which would be after the date of the VC issuance. We would normally only be able to set the expiration date to be the same as for the VC, unless we include an extra field in the attestation payload.

nutrina avatar Jun 24 '24 19:06 nutrina