Skip to content

docs: document did:key issuer support in README#146

Merged
RishabhS7 merged 3 commits into
mainfrom
docs/readme-did-key
Jun 3, 2026
Merged

docs: document did:key issuer support in README#146
RishabhS7 merged 3 commits into
mainfrom
docs/readme-did-key

Conversation

@rongquan1

@rongquan1 rongquan1 commented Jun 3, 2026

Copy link
Copy Markdown
Contributor

Summary by CodeRabbit

  • Documentation
    • Updated README to state W3C issuer support for did:web and did:key with ecdsa-sd-2023 and bbs-2023 cryptosuites.
    • Added a guide showing how to create and sign W3C credentials with a did:key issuer, choose cryptosuites, and produce issuer/proof values without hosting a DID document.
    • Documented verification workflow and trust-model caveats for did:key.

Now that @trustvc/w3c-issuer ships did:key resolution (#145, released
as 2.13.0), document the feature in the umbrella package's README:

- About section: call out that signW3C supports both did:web (hosted)
  and did:key (self-certifying) issuers across ecdsa-sd-2023 and bbs-2023
- New "Signing with a did:key issuer" sub-section under signW3C with a
  generateDidKeyPair → signW3C example, including both string and object
  issuer forms
- Note the trust-model caveat (cryptographic proof != real-world identity)
  and link to the in-depth did:key guide in @trustvc/w3c-issuer
- Note that verifyDocument handles did:key transparently — no extra
  configuration needed

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Jun 3, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: ba112724-ed88-4af2-9b30-a5134d5cb152

📥 Commits

Reviewing files that changed from the base of the PR and between ad94362 and 92b8f41.

📒 Files selected for processing (1)
  • README.md
✅ Files skipped from review due to trivial changes (1)
  • README.md

📝 Walkthrough

Walkthrough

This PR updates the README to explicitly document W3C credential signing support for did:key issuers alongside did:web, specifying the supported ecdsa-sd-2023 and bbs-2023 cryptosuites. A new guide section provides code examples showing how to generate did:key keypairs and sign W3C credentials, including trust-model caveats and verification behavior notes.

Changes

W3C Credential Signing Documentation with did:key Issuer

Layer / File(s) Summary
W3C issuer capabilities and did:key signing guide
README.md
Updated "About" section to describe W3C signing support for both did:web and did:key issuers with ecdsa-sd-2023 and bbs-2023 cryptosuites. Added new "Signing with a did:key issuer" section with code examples using generateDidKeyPair and signW3C, including verificationMethod/issuer expectations, trust-model caveats, and in-memory did:key resolution behavior.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Possibly related PRs

  • TrustVC/trustvc#117: Both PRs update README.md’s signing documentation/examples to cover bbs-2023 alongside ecdsa-sd-2023 cryptosuites.
  • TrustVC/trustvc#106: Previous README updates documenting W3C VC signing flows and ECDSA SD 2023 cryptosuite behavior.

Suggested reviewers

  • RishabhS7
  • kmk142789

Poem

🐰 I hopped through docs to leave a mark,
did:key keys glowing in the dark,
ecdsa and bbs in tow,
examples help the signatures show,
verifier hums — the proofs now spark.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Description check ⚠️ Warning No pull request description was provided by the author, but the summary of changes clearly indicates what was modified. The template requires Summary, Changes, and Issues sections. Add a pull request description following the template with Summary, Changes, and Issues sections to provide context and rationale for the documentation updates.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately summarizes the main change: documenting did:key issuer support in the README with new sections and examples.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/readme-did-key

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

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.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@README.md`:
- Line 287: Change the phrase "real world entity" to the hyphenated compound
adjective "real-world entity" in the Trust model caveat sentence that reads
"bind the `did:key` to a real-world entity out-of-band — via a trust
registry..." so the compound modifier is clear; update the README sentence
containing `did:key` and "real world entity" to use "real-world entity"
everywhere it appears in that clause.
- Line 283: The example comment references an undefined identifier
publicKeyMultibase; update the expectation to use the actual variable that holds
the multibase key or a concrete example string. Replace
signingResult.signed.proof.verificationMethod === `${did}#${publicKeyMultibase}`
with either the real variable (e.g., `${did}#${key.publicKeyMultibase}` or
`${did}#${publicKeyMultibaseValue}`) or a literal example such as
`${did}`#keys-1`` so the comment matches defined symbols (did and the actual
multibase key variable).
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 4d066294-1c7e-4ac7-8135-b437f2b41515

📥 Commits

Reviewing files that changed from the base of the PR and between 630687f and ad94362.

📒 Files selected for processing (1)
  • README.md

Comment thread README.md Outdated
Comment thread README.md
The expectation comment referenced ${publicKeyMultibase}, which is not
declared in the snippet (only `did` and `didKeyPairs` are destructured).
Switch to didKeyPairs.id — same canonical value, defined in scope — and
add a brief parenthetical showing the did:key#multibase shape for readers
unfamiliar with the convention.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@rongquan1 rongquan1 requested a review from RishabhS7 June 3, 2026 05:45
did:web has a built-in trust anchor (the domain) — if you trust whoever
controls the domain, you trust their issued credentials. did:key has no
inherent identity binding: it proves "signed by the holder of this key"
but not "by whom". For regulated/production use cases did:web is the
safer default; did:key suits ad-hoc/ephemeral issuers or contexts where
trust comes from a registry, delegation, or sidechannel exchange.

Make that tradeoff visible (and emphasised) in the very first paragraph
so readers don't have to dig through the trust-model caveat in the
signW3C section to find the recommendation.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@sonarqubecloud

sonarqubecloud Bot commented Jun 3, 2026

Copy link
Copy Markdown

@RishabhS7 RishabhS7 merged commit e25106e into main Jun 3, 2026
21 checks passed
@RishabhS7 RishabhS7 deleted the docs/readme-did-key branch June 3, 2026 06:48
nghaninn pushed a commit that referenced this pull request Jun 10, 2026
## [2.14.0](v2.13.0...v2.14.0) (2026-06-10)

### Features

* add support for Polygon (POL) network ([#147](#147)) ([4d07053](4d07053))

### Miscellaneous Chores

* document did:key issuer support in README ([#146](#146)) ([e25106e](e25106e)), closes [#145](#145)
@tradetrustimda

Copy link
Copy Markdown

🎉 This PR is included in version 2.14.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

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

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants