Skip to content

Commit 87db98c

Browse files
authored
Update spec.md
1 parent 5db9e02 commit 87db98c

File tree

1 file changed

+142
-0
lines changed

1 file changed

+142
-0
lines changed

spec/spec.md

Lines changed: 142 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,3 +133,145 @@ A LinkedClaim:
133133
* **MAY** have a separate published date and effective date
134134
* **MAY** be public or access controlled
135135

136+
## Advanced Patterns
137+
138+
_enabled by implementing the SHOULD recommendations_
139+
140+
### Signer Attestation and Content Integrity Pattern
141+
```mermaid
142+
143+
graph LR
144+
subgraph Claim-A
145+
A_id["id: URI_A"]
146+
A_subject["subject: did:example:456"]
147+
A_content["content: {...}"]
148+
A_sig["signature: xyz"]
149+
end
150+
151+
subgraph Claim-B
152+
B_id["id: URI_B"]
153+
B_subject["subject: URI_X"]
154+
B_content["content: {...}"]
155+
B_sig["signature: xyz"]
156+
B_signer["signer: did:example:456"]
157+
B_evidence["evidence: {
158+
url: https://example.com/doc,
159+
hash: abc123
160+
}"]
161+
end
162+
163+
subgraph Evidence
164+
E["Document"]
165+
end
166+
167+
%% Only Claim B points to evidence, A points to B's signer
168+
A_subject -.-> B_signer
169+
B_evidence -.-> E
170+
171+
classDef claim fill:#f8f8ff,stroke:#333,stroke-width:2px
172+
classDef claimPart fill:#ffffff,stroke:#666,stroke-width:1px
173+
classDef evidence fill:#f0fff0,stroke:#333,stroke-width:2px
174+
175+
class A_id,A_subject,A_content,A_sig,B_id,B_subject,B_content,B_sig,B_signer,B_evidence claimPart
176+
style Claim-A fill:#f8f8ff,stroke:#333,stroke-width:2px
177+
style Claim-B fill:#f8f8ff,stroke:#333,stroke-width:2px
178+
style Evidence fill:#f0fff0,stroke:#333,stroke-width:2px
179+
180+
linkStyle 0,1 stroke:#666,stroke-width:2px,stroke-dasharray: 5
181+
```
182+
### Public evidence supporting a Private Claim
183+
184+
```mermaid
185+
186+
graph LR
187+
subgraph Private-Wallet
188+
subgraph Private-Claim
189+
P_id["id: URI_P"]
190+
P_subject["subject: URI_X"]
191+
P_content["content: {...}"]
192+
P_sig["signature: xyz"]
193+
end
194+
end
195+
196+
subgraph Public-Validations
197+
subgraph Validation-A
198+
V1_id["id: URI_V1"]
199+
V1_subject["subject: URI_P"]
200+
V1_content["validation data"]
201+
end
202+
subgraph Evidence
203+
E["Public Evidence"]
204+
end
205+
end
206+
207+
%% Links
208+
V1_subject -.-> P_id
209+
V1_content -.-> E
210+
211+
classDef claim fill:#f8f8ff,stroke:#333,stroke-width:2px
212+
classDef claimPart fill:#ffffff,stroke:#666,stroke-width:1px
213+
classDef private fill:#fff0f5,stroke:#333,stroke-width:2px
214+
classDef public fill:#f0fff0,stroke:#333,stroke-width:2px
215+
216+
class P_id,P_subject,P_content,P_sig,V1_id,V1_subject,V1_content claimPart
217+
style Private-Wallet fill:#fff0f5,stroke:#333,stroke-width:2px
218+
style Public-Validations fill:#f0fff0,stroke:#333,stroke-width:2px
219+
style Private-Claim fill:#f8f8ff,stroke:#333,stroke-width:2px
220+
style Validation-A fill:#f8f8ff,stroke:#333,stroke-width:2px
221+
style Evidence fill:#ffffff,stroke:#666,stroke-width:1px
222+
223+
linkStyle 0,1 stroke:#666,stroke-width:2px,stroke-dasharray: 5
224+
```
225+
226+
## Minimal Example
227+
228+
```
229+
{
230+
"id": "https://claims.example.com/claim/123",
231+
"subject": "https://resource.example.com/entity/456",
232+
"signature": {
233+
"type": "Ed25519Signature2020",
234+
"verificationMethod": "did:example:abc#key-1",
235+
"signatureValue": "zQeVbY4oey5q66..."
236+
}
237+
}
238+
```
239+
240+
## Advanced Example
241+
242+
```
243+
{
244+
"@context": [
245+
"http://cooperation.org/credentials/v1/",
246+
"https://w3id.org/security/v2"
247+
],
248+
"type": "LinkedClaim",
249+
"id": "https://claims.example.com/claim/123",
250+
"object": "https://resource.example.com/entity/456",
251+
"statement": "This resource has been verified as meeting quality standards",
252+
"effectiveDate": "2024-01-06T13:42:19Z",
253+
"intendedAudience": {
254+
"type": "OAuth2Audience",
255+
"id": "https://api.example.com",
256+
"scope": ["read:claims"]
257+
},
258+
"source": {
259+
"type": "ClaimSource",
260+
"id": "https://evidence.example.com/doc/789",
261+
"digestMultibase": "zQmWvQxTqbG2Z9HPJgG57jjwR154cKhbtJenbyYTWkjgF3e",
262+
"dateObserved": "2024-01-06T12:00:00Z",
263+
"howKnown": "direct observation",
264+
"retrieveFrom": "https://evidence.example.com/doc/789"
265+
},
266+
"respondAt": "https://claims.example.com/claim/123/responses",
267+
"aspect": "quality verification",
268+
"confidence": 0.95,
269+
"proof": {
270+
"type": "Ed25519Signature2020",
271+
"created": "2024-01-06T13:42:19Z",
272+
"verificationMethod": "did:example:abc#key-1",
273+
"proofPurpose": "assertionMethod",
274+
"proofValue": "zQeVbY4oey5q66..."
275+
}
276+
}
277+
```

0 commit comments

Comments
 (0)