Identity 2/n: signed user-info claims - #339
Open
raubrey-stripe wants to merge 22 commits into
Open
raubrey-stripe wants to merge 22 commits into
raubrey-stripe wants to merge 22 commits into
Conversation
Provision SD-JWT credentials through the issuer's discovered credential endpoint while keeping private holder keys local to the CLI. Co-authored-by: Cursor <cursoragent@cursor.com> Committed-By-Agent: cursor
Avoid breaking unrelated SDK resources when local HTTP API overrides are configured; enforce AAP issuer constraints only when credential issuance begins. Co-authored-by: Cursor <cursoragent@cursor.com> Committed-By-Agent: cursor
Use AAP_ACCESS_TOKEN only for attestation minting while credential issuance follows its documented flag-or-stored-session authentication path. Co-authored-by: Cursor <cursoragent@cursor.com> Committed-By-Agent: cursor
Credential issuance no longer requires aap:represent, so document only the remaining user and payment-method scopes. Co-authored-by: Cursor <cursoragent@cursor.com> Committed-By-Agent: cursor
Rename issuer-origin helpers and describe discovery without the protocol acronym. Keep the well-known metadata path as a wire identifier. Co-authored-by: Cursor <cursoragent@cursor.com> Committed-By-Agent: cursor
Same discovery gate as attestations: register only when opted in, and keep the command out of MCP tool lists. Co-authored-by: Cursor <cursoragent@cursor.com> Committed-By-Agent: cursor
Use `identity credentials get` and describe it as signed user info from Link rather than SD-JWT terminology. Co-authored-by: Cursor <cursoragent@cursor.com> Committed-By-Agent: cursor
Committed-By-Agent: codex Co-authored-by: codex <noreply@openai.com>
Allow identity credentials get to take a public JWK without reading or creating a local private key, and return a portable artifact that distinguishes managed vs external holder ownership. Co-authored-by: Cursor <cursoragent@cursor.com> Committed-By-Agent: cursor
Match the attestations factory so TypeScript 7 accepts the cached ICredentialsResource return. Co-authored-by: Cursor <cursoragent@cursor.com> Committed-By-Agent: cursor
Co-authored-by: Cursor <cursoragent@cursor.com> Committed-By-Agent: cursor Co-authored-by: Cursor <cursoragent@cursor.com> Committed-By-Agent: cursor
Co-authored-by: Cursor <cursoragent@cursor.com> Committed-By-Agent: cursor
Co-authored-by: Cursor <cursoragent@cursor.com> Committed-By-Agent: cursor
Co-authored-by: Cursor <cursoragent@cursor.com> Committed-By-Agent: cursor
Co-authored-by: Cursor <cursoragent@cursor.com> Committed-By-Agent: cursor
Co-authored-by: Cursor <cursoragent@cursor.com> Committed-By-Agent: cursor
Co-authored-by: Cursor <cursoragent@cursor.com> Committed-By-Agent: cursor
Co-authored-by: Cursor <cursoragent@cursor.com> Committed-By-Agent: cursor
raubrey-stripe
marked this pull request as ready for review
September 17, 2026 16:57
drapeau-stripe
left a comment
Contributor
There was a problem hiding this comment.
2 comments for your agent (Handle concurrent first-time holder-key creation can be done in a followup if you prefer). The other one was already flagged in slack for you by @staubman-stripe . I had my agent take a stab at implementing a solution and testing it, ff to use that comment/context (or draft your own).
Otherwise, everything else tracks and looks correct/verifies in my local tests.
Committed-By-Agent: codex Co-authored-by: codex <noreply@openai.com>
Committed-By-Agent: codex Co-authored-by: codex <noreply@openai.com>
Committed-By-Agent: codex Co-authored-by: codex <noreply@openai.com>
raubrey-stripe
commented
Sep 18, 2026
drapeau-stripe
approved these changes
Sep 18, 2026
Committed-By-Agent: codex Co-authored-by: codex <noreply@openai.com>
drapeau-stripe
approved these changes
Sep 21, 2026
sylwang-stripe
approved these changes
Sep 21, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR prepares the second step in our identity work: exposing cryptographically signed user-info claims like name, email, and phone.
A link wallet user/client/agent can present these signed claims to a downstream verifier (like an MPP service verifying incoming requests) and the verifier can derive two interesting properties from this:
Change here include
api.link.com/credentialendpointcnf.jwthttps://api.link.com/.well-known/aap-issuerSimilar to #331, this credential/signed claims functionality is not yet exposed externally and is gated behind a flag in the cli itself to hide it from agents while we prepare for rollout.