dfinity / dfinity/icskills

New skill: Internet Identity attribute sharing (Verifiable Credentials & identity attributes)

Open
#142 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
35
Forks
13
Avg merge
19h 10m
Merged PRs (30d)
22

Description

Summary

There is no skill covering Internet Identity's attribute sharing capabilities. The existing internet-identity skill covers passkey/OpenID login and delegation-based auth, but says nothing about:

  1. Verifiable Credentials (VCs) -- live since mid-2024. Lets issuer dapps issue W3C-standard credentials that users present to relying parties via II, using privacy-preserving alias principals.
  2. Identity Attributes -- a newer flow (piloting with caffeine.ai) for sharing basic account info like email/name directly from II with user consent.

These are distinct integration patterns from basic II auth and are complex enough to warrant their own skill.

What a skill should cover

Verifiable Credentials flow
  • The three-party model: Issuer, Internet Identity, Relying Party (RP)
  • RP-side: initiating a VC request via window.postMessage() JSON-RPC to II
  • Issuer-side: implementing the required Candid API (derivation_origin, vc_consent_message, prepare_credential, get_credential)
  • Alias principals and how II preserves user privacy across issuer/RP boundaries
  • Verifiable Presentation structure (JWT with two credentials)
  • Common pitfalls (e.g., incorrect issuer canister ID, missing consent message, JWT validation)
Identity Attributes (email/name sharing)
  • How the 1-click consent flow works for social-login-sourced attributes
  • Current status and limitations (pilot stage)
Standards context
  • Relationship to ICRC-21 (consent messages)
  • Relationship to ICRC-34 (delegation, draft stage)
  • W3C Verifiable Credentials Data Model alignment

Existing references

Relationship to existing skills

  • internet-identity -- should cross-reference the new skill for VC/attribute use cases, and explicitly note "Do NOT use for verifiable credentials or attribute sharing"
  • wallet-integration -- covers ICRC-21/25/27/29/49 signer flows; the new skill would reference ICRC-21 for consent messages but is otherwise independent

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading the linked II VC Spec, attribute-sharing flow document, and demo VC issuer, then review the existing internet-identity and wallet-integration skills. Document the issuer, Internet Identity, and relying-party flows, identity attributes, standards context, and listed pitfalls. Done means a new skill covers both use cases and the related existing skills cross-reference it accurately.

Written by the indexing model from the issue text.

Assessment

Tech stack
blockchain, javascript, json
Domain
authentication, blockchain, documentation
Issue type
Documentation
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
50/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.