You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
'endorserRelationship': "Project maintainer who merged their contributions"
196
+
'endorsementBasis': "Direct observation of code quality and collaboration"
197
+
'disclosedLimitations': "Only reviewed backend security; cannot speak to frontend skills"
198
+
'validFrom': 2026-02-02
204
199
]
205
-
} 'signed': Signature
200
+
} [
201
+
'signed': {
202
+
Signature [
203
+
'signer': XID(endorser)
204
+
]
205
+
} ['signed': Signature]
206
+
]
206
207
```
207
208
208
209
## Referenced Predicates
@@ -327,32 +328,30 @@ All proposed codepoints are in the **Community Assigned (specification required)
327
328
328
329
```
329
330
{
330
-
{
331
-
XID(alice) [
332
-
'acceptedEndorsement': {
333
-
{
334
-
Digest(endorsement-from-bob) [
335
-
'endorsementTarget': XID(alice)
336
-
'endorserStatement': "..."
337
-
]
338
-
} 'signed': Signature
339
-
[
340
-
'signer': XID(bob)
341
-
]
342
-
} 'signed': Signature
331
+
XID(alice) [
332
+
'acceptedEndorsement': {
333
+
Digest(endorsement-from-bob) [
334
+
'endorsementTarget': XID(alice)
335
+
'endorserStatement': "..."
336
+
]
337
+
} [
338
+
'signed': {
339
+
Signature ['signer': XID(bob)]
340
+
} ['signed': Signature]
343
341
]
344
-
} 'signed': Signature
345
-
[
346
-
'signer': XID(alice)
347
342
]
348
-
} 'signed': Signature
343
+
} [
344
+
'signed': {
345
+
Signature ['signer': XID(alice)]
346
+
} ['signed': Signature]
347
+
]
349
348
```
350
349
351
350
**Notes**:
352
351
- The acceptance model ensures subjects maintain control over their identity
353
352
- Subject's signature on the containing document implies acceptance
354
353
- Subjects may decline endorsements they find inaccurate or unwanted
355
-
- Both endorser (Bob) and subject (Alice) use double-signing pattern (BCR-2026-004)
354
+
- Both endorser (Bob) and subject (Alice) use signature-with-assertions pattern (BCR-2026-004)
356
355
357
356
---
358
357
@@ -454,23 +453,24 @@ A well-formed peer endorsement includes observation, relationship, basis, and tr
454
453
455
454
```
456
455
{
457
-
{
458
-
Digest(complete-endorsement) [
459
-
'isA': 'PeerEndorsement'
460
-
'endorsementTarget': XID(alice)
461
-
'endorserStatement': "I reviewed 8 of their security-focused PRs. All demonstrated understanding of constant-time operations, proper key handling, and defense in depth."
462
-
'endorserRelationship': "Project maintainer for crypto library; merged their contributions over 6 months"
463
-
'endorsementBasis': "15 years security engineering; maintain similar libraries at 2 other organizations"
464
-
'endorsementContext': "Cryptographic implementation and secure coding practices"
465
-
'disclosedLimitations': "Only reviewed their crypto code; cannot speak to UI/UX or project management skills"
466
-
'disclosedBias': "We have become professional friends through this collaboration"
467
-
'validFrom': 2026-02-02
468
-
]
469
-
} 'signed': Signature
470
-
[
471
-
'signer': XID(endorser)
456
+
Digest(complete-endorsement) [
457
+
'isA': 'PeerEndorsement'
458
+
'endorsementTarget': XID(alice)
459
+
'endorserStatement': "I reviewed 8 of their security-focused PRs. All demonstrated understanding of constant-time operations, proper key handling, and defense in depth."
460
+
'endorserRelationship': "Project maintainer for crypto library; merged their contributions over 6 months"
461
+
'endorsementBasis': "15 years security engineering; maintain similar libraries at 2 other organizations"
462
+
'endorsementContext': "Cryptographic implementation and secure coding practices"
463
+
'disclosedLimitations': "Only reviewed their crypto code; cannot speak to UI/UX or project management skills"
464
+
'disclosedBias': "We have become professional friends through this collaboration"
465
+
'validFrom': 2026-02-02
472
466
]
473
-
} 'signed': Signature
467
+
} [
468
+
'signed': {
469
+
Signature [
470
+
'signer': XID(endorser)
471
+
]
472
+
} ['signed': Signature]
473
+
]
474
474
```
475
475
476
476
### Acceptance Model
@@ -479,61 +479,59 @@ The subject accepts endorsements by including them in their signed XIDDoc:
479
479
480
480
```
481
481
{
482
-
{
483
-
XID(alice) [
484
-
'acceptedEndorsement': {
485
-
{
486
-
Digest(endorsement-from-bob) [
487
-
'isA': 'CodeReviewEndorsement'
488
-
'endorsementTarget': XID(alice)
489
-
'endorserStatement': "..."
490
-
]
491
-
} 'signed': Signature
492
-
[
493
-
'signer': XID(bob)
494
-
]
495
-
} 'signed': Signature
496
-
'acceptedEndorsement': {
497
-
{
498
-
Digest(endorsement-from-carol) [
499
-
'isA': 'CollaborationEndorsement'
500
-
'endorsementTarget': XID(alice)
501
-
'endorserStatement': "..."
502
-
]
503
-
} 'signed': Signature
504
-
[
505
-
'signer': XID(carol)
506
-
]
507
-
} 'signed': Signature
482
+
XID(alice) [
483
+
'acceptedEndorsement': {
484
+
Digest(endorsement-from-bob) [
485
+
'isA': 'CodeReviewEndorsement'
486
+
'endorsementTarget': XID(alice)
487
+
'endorserStatement': "..."
488
+
]
489
+
} [
490
+
'signed': {
491
+
Signature ['signer': XID(bob)]
492
+
} ['signed': Signature]
493
+
]
494
+
'acceptedEndorsement': {
495
+
Digest(endorsement-from-carol) [
496
+
'isA': 'CollaborationEndorsement'
497
+
'endorsementTarget': XID(alice)
498
+
'endorserStatement': "..."
499
+
]
500
+
} [
501
+
'signed': {
502
+
Signature ['signer': XID(carol)]
503
+
} ['signed': Signature]
508
504
]
509
-
} 'signed': Signature
510
-
[
511
-
'signer': XID(alice)
512
505
]
513
-
} 'signed': Signature
506
+
} [
507
+
'signed': {
508
+
Signature ['signer': XID(alice)]
509
+
} ['signed': Signature]
510
+
]
514
511
```
515
512
516
-
The subject's signature on the outer document implies acceptance of all included endorsements. All signatures use the double-signing pattern (BCR-2026-004) to bind signer identity.
513
+
The subject's signature on the outer document implies acceptance of all included endorsements. All signatures use the signature-with-assertions pattern (BCR-2026-004) to bind signer identity.
517
514
518
515
### Combined with Signing Event Attestations
519
516
520
517
For endorsements that involve delegation or institutional context, combine with BCR-2026-004:
0 commit comments