Skip to content

profile credentials proposal#169

Open
pixelplex wants to merge 3 commits intocanton-foundation:mainfrom
pixelplex:party_profile_credentials_proposal
Open

profile credentials proposal#169
pixelplex wants to merge 3 commits intocanton-foundation:mainfrom
pixelplex:party_profile_credentials_proposal

Conversation

@pixelplex
Copy link
Copy Markdown

No description provided.

Copy link
Copy Markdown
Contributor

@meiersi-da meiersi-da left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks a lot for the nice work. Neat and tight. 💪

- MUST treat the value as informational metadata
- MAY link to a GitHub profile URL

## `cip-<nr>/discord`
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi, @meiersi-da, CPRP (#171) already calls cprp/social:* compatible with this Party Profile CIP, so we’re not pulling in different directions - we just used separate cip-<nr>/discord (etc.) keys while CPRP uses cprp/social:discord (etc.). I’d probably lean toward aligning our social/contact fields with CPRP’s cprp/social: convention so we don’t have two ways to encode the same thing - what do you think? If that sounds good, I’ll update this PR accordingly

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hmm... the convention to use cip-<nr>/ prefixes is proving quite valuable, as it makes it very easy to go from data observed in prod to the explanation of the data. I'd rather have your fields be prefixed by the cip-<nr> of your CIP.

- a specific issuer party ID
- `self` (meaning issuer = holder party)

## Resolution Algorithm
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It seems that this is a specialized variant of the resolution algorithm proposed by @pdomenighetti in #171

Can you connect with him and figure out how to best split work and definitions between the two CIPs?

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Makes sense - we probably shouldn’t repeat the full merge/resolution story here when CPRP (#171) already covers the composition side in depth. I’m going to shorten the Resolution section in this CIP and point readers to #171 for the detailed flow, and keep this PR focused on profile claim keys + how to interpret them in the UI. If that sounds off to you, say the word

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I’d second @meiersi-da request to split out the resolution algorithm to a separate CIP.

Copy link
Copy Markdown

@leonidr-c7 leonidr-c7 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Feedback


This CIP standardizes a portable representation of **party profile
metadata** for user‑interface rendering on the Canton Network based on
the **Canton Network Credentials Standard**.
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is this a reference to ?

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since the standard is still in draft, I didn’t think an explicit reference was necessary at this stage, but I can add it.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @vkokosh I found Simon’s gdoc for this.


- MUST treat the value as informational metadata
- MUST NOT treat it as an authoritative identifier
- SHOULD expect an `https://` URL
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we tighten the language here and require a URL that conforms to a spec?

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As far as I remember, Simon and I discussed this as a separate standard, but I could be wrong. However, I will clarify the wording and add more strict guidelines for verification.


## `cip-<nr>/email`

Informational contact email.
Copy link
Copy Markdown

@leonidr-c7 leonidr-c7 Apr 22, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Similar to the above, and applies to other claims below so I won’t repeat, should we require that these values conform to their specifications?

- a specific issuer party ID
- `self` (meaning issuer = holder party)

## Resolution Algorithm
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I’d second @meiersi-da request to split out the resolution algorithm to a separate CIP.

# Party Profile Resolution

Applications may obtain profile credentials for a party **P** from
multiple registries and issuers.
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we make Daml specific claims about an issuer or registrar?

Specifically, I would expect that the issuer gave authorization, is a signatory, on a contract that makes a claim about a user. Furthermore, it would be valuable for there to be more than one issuer; that would allow us to make stronger claims. Ex.

A token where both leonid::1220… and c7trust::1220… are issuers (signatories) on a claim that leo@c7.digital is my email address, that carries more weight then one where it is just leonid:1220… 😄

- enables efficient querying
- allows extensibility

Future profile attributes can be added under the same namespace.
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

But wouldn’t future attributes have to come from a different CIP?

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As Simon and I discussed, new well-known attributes don’t have to mean a brand-new CIP every time - they can be added via amendments to this CIP. The namespace is mainly to keep clients forward-compatible with unknown keys.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants