com.linkedclaims.claim
Schema Diff
+1 -1
Compatibility Analysis
Breaking Changes Detected
1 breaking change, 0 non-breaking changes.
Breaking Changes (1)
- KindChanged KindChanged { vertex_id: "com.linkedclaims.claim:body.confidence", old_kind: "object", new_kind: "string" }
Migration Guidance
Additional Notes
- Breaking: KindChanged { vertex_id: "com.linkedclaims.claim:body.confidence", old_kind: "object", new_kind: "string" }
1
1
{
2
2
"id": "com.linkedclaims.claim",
3
3
"defs": {
4
4
"main": {
5
5
"key": "tid",
6
6
"type": "record",
7
7
"record": {
8
8
"type": "object",
9
9
"required": [
10
10
"subject",
11
11
"claimType",
12
12
"createdAt"
13
13
],
14
14
"properties": {
15
15
"stars": {
16
16
"type": "integer",
17
17
"maximum": 5,
18
18
"minimum": 1,
19
19
"description": "Star rating (for rating-type claims)."
20
20
},
21
21
"aspect": {
22
22
"type": "string",
23
23
"description": "The specific aspect being rated or assessed (e.g., quality, reliability, timeliness)."
24
24
},
25
25
"object": {
26
26
"type": "string",
27
27
"description": "Optional object of the claim (e.g., skill name, credential type, rating category)."
28
28
},
29
29
"source": {
30
30
"ref": "#claimSource",
31
31
"type": "ref",
32
32
"description": "Where this claim comes from — a person, a website, a document. For example: 'I saw this on Wikipedia' (source.uri = the Wikipedia URL), or 'My colleague told me' (source.uri = their DID, howKnown = SECOND_HAND). Source is not evidence — it's the origin of the information."
33
33
},
34
34
"subject": {
35
35
"type": "string",
36
36
"format": "uri",
37
37
"description": "The entity this claim is about. Can be any URI: HTTPS URL, DID, AT-URI, IPFS CID, or another claim's claimUri (for claims-about-claims such as endorsements or disputes)."
38
38
},
39
39
"claimUri": {
40
40
"type": "string",
41
41
"format": "uri",
42
42
"description": "Persistent URI identity of this claim per the DIF Labs LinkedClaims spec. This is how other claims reference this one (by using this URI as their subject). May be an AT-URI if the claim originated on ATProto, or an HTTPS URL or other URI if it originated elsewhere. Must be a well-formed, persistent, dereferenceable URI."
43
43
},
44
44
"evidence": {
45
45
"type": "array",
46
46
"items": {
47
47
"ref": "#evidenceItem",
48
48
"type": "ref"
49
49
},
50
50
"description": "Supporting materials provided to back up this claim — photos, videos, screenshots, documents, links. For example: source might be a Wikipedia article, evidence is the screenshot you took of it. Source might be you (first-hand), evidence is the video you recorded. Each item has a URI and optionally a content hash for integrity."
51
51
},
52
52
"claimType": {
53
53
"type": "string",
54
54
"description": "Category of claim. Open vocabulary — common values include skill, credential, impact, endorsement, dispute, rating, review, membership, supersedes, revocation."
55
55
},
56
56
"createdAt": {
57
57
"type": "string",
58
58
"format": "datetime",
59
59
"description": "When this record was created."
60
60
},
61
61
"respondAt": {
62
62
"type": "string",
63
63
"format": "uri",
64
64
"description": "URI where endorsements, disputes, or other responses to this claim may be sent. Per the LinkedClaims spec, MAY behave like an ActivityPub inbox."
65
65
},
66
66
"statement": {
67
67
"type": "string",
68
68
"maxLength": 10000,
69
69
"description": "Human-readable explanation of the claim."
70
70
},
71
71
"confidence": {
72
-
"type": "number",
72
+
"type": "string",
73
73
"maximum": 1,
74
74
"minimum": 0,
75
75
"description": "Signer's confidence in this claim (0-1)."
76
76
},
77
77
"effectiveDate": {
78
78
"type": "string",
79
79
"format": "datetime",
80
80
"description": "When the claim became/becomes true (may differ from createdAt)."
81
81
},
82
82
"embeddedProof": {
83
83
"ref": "#embeddedProof",
84
84
"type": "ref",
85
85
"description": "For claims signed by external methods (MetaMask, aca-py, Digital Bazaar, etc.) before being published to ATProto. Preserves the original signer identity when the ATProto repo owner differs from the claim signer."
86
86
}
87
87
}
88
88
},
89
89
"description": "A verifiable claim about any URI-addressable subject."
90
90
},
91
91
"claimSource": {
92
92
"type": "object",
93
93
"properties": {
94
94
"uri": {
95
95
"type": "string",
96
96
"format": "uri",
97
97
"description": "URI of the evidence (HTTPS URL, IPFS CID, AT-URI, etc.)."
98
98
},
99
99
"author": {
100
100
"type": "string",
101
101
"format": "uri",
102
102
"description": "Original author of the evidence (if different from claim signer)."
103
103
},
104
104
"curator": {
105
105
"type": "string",
106
106
"format": "uri",
107
107
"description": "Entity that curated/surfaced this evidence."
108
108
},
109
109
"howKnown": {
110
110
"type": "string",
111
111
"description": "How the signer knows this claim to be true.",
112
112
"knownValues": [
113
113
"FIRST_HAND",
114
114
"SECOND_HAND",
115
115
"WEB_DOCUMENT",
116
116
"VERIFIED_LOGIN",
117
117
"SIGNED_DOCUMENT",
118
118
"BLOCKCHAIN",
119
119
"RESEARCH",
120
120
"OPINION",
121
121
"OTHER"
122
122
]
123
123
},
124
124
"dateObserved": {
125
125
"type": "string",
126
126
"format": "datetime",
127
127
"description": "When the evidence was observed/collected."
128
128
},
129
129
"digestMultibase": {
130
130
"type": "string",
131
131
"description": "Multibase-encoded hash of the evidence content for integrity verification, per W3C VC Data Model 2.0 (e.g., zQm...)."
132
132
}
133
133
},
134
134
"description": "Where this claim comes from. A source can be a person (DID, URL), a website, a document, or any URI-addressable origin. Based on the cooperation.org/credentials/v1 ClaimSource vocabulary."
135
135
},
136
136
"evidenceItem": {
137
137
"type": "object",
138
138
"properties": {
139
139
"uri": {
140
140
"type": "string",
141
141
"format": "uri",
142
142
"description": "URI of the evidence (HTTPS URL, IPFS CID, AT-URI, blob reference, etc.)."
143
143
},
144
144
"mediaType": {
145
145
"type": "string",
146
146
"description": "MIME type of the evidence (e.g., image/jpeg, video/mp4, application/pdf)."
147
147
},
148
148
"description": {
149
149
"type": "string",
150
150
"maxLength": 1000,
151
151
"description": "What this evidence shows or contains."
152
152
},
153
153
"digestMultibase": {
154
154
"type": "string",
155
155
"description": "Multibase-encoded hash of the content for integrity verification (e.g., zQm...)."
156
156
}
157
157
},
158
158
"description": "A piece of supporting material for a claim — a photo, video, screenshot, document, or link. Evidence is what backs up the claim; source is where the claim comes from."
159
159
},
160
160
"embeddedProof": {
161
161
"type": "object",
162
162
"required": [
163
163
"type",
164
164
"verificationMethod",
165
165
"proofValue",
166
166
"created"
167
167
],
168
168
"properties": {
169
169
"type": {
170
170
"type": "string",
171
171
"description": "Signature suite type (e.g., EthereumEip712Signature2021, Ed25519Signature2020, JsonWebSignature2020)."
172
172
},
173
173
"created": {
174
174
"type": "string",
175
175
"format": "datetime",
176
176
"description": "When the signature was created."
177
177
},
178
178
"proofValue": {
179
179
"type": "string",
180
180
"description": "The signature value (format depends on type)."
181
181
},
182
182
"proofPurpose": {
183
183
"type": "string",
184
184
"default": "assertionMethod",
185
185
"description": "Purpose of the proof (typically assertionMethod for claims)."
186
186
},
187
187
"verificationMethod": {
188
188
"type": "string",
189
189
"description": "DID or key identifier of the actual claim signer (e.g., did:pkh:eip155:1:0xABC..., did:key:z6Mk..., did:web:example.com)."
190
190
}
191
191
},
192
192
"description": "Cryptographic proof from external signing methods. Allows claims signed via MetaMask, aca-py, Digital Bazaar, etc. to be published on ATProto while preserving the original signer identity."
193
193
}
194
194
},
195
195
"$type": "com.atproto.lexicon.schema",
196
196
"lexicon": 1,
197
197
"description": "A LinkedClaim record per the DIF Labs LinkedClaims specification (https://identity.foundation/labs-linkedclaims/). Claims are immutable, signed assertions about any URI-addressable subject. Each claim has a persistent URI (claimUri) so other claims can reference it as their subject, enabling a cross-system web of trust. LinkedClaims flow on ATProto but are not exclusive to it — the claimUri may point to any system where the claim originated."
198
198
}