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
@@ -29,11 +29,11 @@ import { CredentialHero } from "/snippets/credential-hero.jsx";
29
29
30
30
## Introduction
31
31
32
-
The NFC Credential represents a uniquely issued government document. It supports passports and eIDs. The availability generally varies by country and continues to be extended over time. An NFC Credential is **guaranteed to be issued to a single World ID per unique document**. In addition to ICAO-9303 compliant documents (such as passports or eIDs), the Japanese [My Number Card](https://en.wikipedia.org/wiki/My_Number_Card) is also supported. This MNC card has different handling internally for enrollment, but the same credential is issued.
32
+
The NFC Credential represents a unique government-issued document. It supports passports and eIDs. Availability varies by country and continues to expand over time. An NFC Credential is **guaranteed to be issued to a single World ID per unique document**. In addition to ICAO-9303 compliant documents (such as passports or eIDs), the Japanese [My Number Card](https://en.wikipedia.org/wiki/My_Number_Card)(MNC) is also supported. The MNC flow uses different enrollment handling internally, but it issues the same credential.
33
33
34
34
## Use Cases
35
35
36
-
Use the NFC Credential when you need proof of a unique document. This is useful for example for situations where you want to have some sybil resistance but you don't need a strong guarantee of a unique human.
36
+
Use the NFC Credential when you need proof of a unique government document. This is useful for applications that need document-level Sybil resistance without requiring a proof of a unique human.
37
37
38
38
## Credential Structure
39
39
@@ -43,7 +43,7 @@ This credential implements the following attributes beyond the defaults in the [
|`genesis_issued_at`| The timestamp of when the unique document was first verified. |
45
45
|`expires_at`| The expiration of the document with a maximum of 10 years. |
46
-
|`associated_data_commitment`| A commitment to the user's Associated Data (see [Associated Data](#associated-data)). |
46
+
|`associated_data_commitment`| A commitment to the user's Associated Data (see [NFC Issuer implementation notes](/world-id/reference/nfc-issuer#associated-data)). |
47
47
48
48
In addition, the credential implements the following claims:
49
49
@@ -66,123 +66,6 @@ Contains a hash of the document's signature from the issuing authority. For pass
66
66
67
67
Renewal is not supported for this credential. A document can only be enrolled once. From a user standpoint, they will generally obtain a new document from their issuing authority (e.g. a new passport) and register it as a new credential.
68
68
69
-
## API Reference
69
+
## Technical Reference
70
70
71
-
The API Reference here is only relevant for Authenticators and internal development of the credential.
| 400 |`invalid_data`| Request payload is malformed or missing required fields. |
165
-
| 400 |`sub_mismatch`|`sub` does not match the one used in previous migrations for this identity. |
166
-
| 400 |`document_expired`| The identity document has expired and cannot be used for migration. |
167
-
| 401 |`unauthorized`| Authentication failed. |
168
-
| 404 |`not_found`| No matching enrollment record found for this credential. |
169
-
170
-
# Internal Documentation
171
-
172
-
<Note>
173
-
This is advanced documentation about the internal workings of the NFC
174
-
Credential and is not relevant for RP integration.
175
-
</Note>
176
-
177
-
## Associated Data
178
-
179
-
The associated data of this credential contains different data groups found in the original document. More information coming soon.
180
-
181
-
{/* TODO: Add details on the PCP */}
182
-
183
-
### Associated Data Commitment
184
-
185
-
To ensure the associated data has guaranteed integrity and can be re-used in the future for credential re-issuance, the commitment is computed as follows:
186
-
187
-
1. For ICAO-9303 documents, the message digest of the `EF.SOD` signature is used. The message digest is obtained from `SignedData.SignerInfos[0].SignedAttrs` where the signed attribute for the digest is identified by the Object Identifier `1.2.840.113549.1.9.4`. This digest is then hashed with the `blake3` hashing function from the raw bytes. Finally, the `blake3` hash is converted to a field element with modulo reduction.
188
-
2. Information on MNC documents coming soon.
71
+
For issuer endpoints, migration payloads, and implementation-specific details, see the [NFC Issuer reference](/world-id/reference/nfc-issuer).
The NFC issuer exposes endpoints for issuing and migrating NFC credentials. For product-level credential semantics, Sybil-resistance guarantees, and validity details, see [NFC Credential](/world-id/credentials/9303).
9
+
10
+
<Note>
11
+
The base URL is environment-specific. Contact your World ID point of contact for
12
+
environment endpoints and access.
13
+
</Note>
14
+
15
+
## Migration
16
+
17
+
<Warning>
18
+
This endpoint is intended for World ID v3 holders to obtain v4 NFC
19
+
credentials. It is not a general re-issuance endpoint for v4 holders.
This is advanced documentation about the internal workings of the NFC
122
+
Credential and is not relevant for RP integration.
123
+
</Note>
124
+
125
+
### Associated Data
126
+
127
+
The associated data of this credential contains different data groups found in the original document. More information coming soon.
128
+
129
+
{/* TODO: Add details on the PCP */}
130
+
131
+
#### Associated Data Commitment
132
+
133
+
To ensure the associated data has guaranteed integrity and can be re-used in the future for credential re-issuance, the commitment is computed as follows:
134
+
135
+
1. For ICAO-9303 documents, the message digest of the `EF.SOD` signature is used. The message digest is obtained from `SignedData.SignerInfos[0].SignedAttrs` where the signed attribute for the digest is identified by the Object Identifier `1.2.840.113549.1.9.4`. This digest is then hashed with the `blake3` hashing function from the raw bytes. Finally, the `blake3` hash is converted to a field element with modulo reduction.
0 commit comments