Datasets
Grouping credentials on the issuer side so consumers can tell them apart.
A dataset is the issuer's label for a group of related credentials. When a firm issues different credential types (attorneys, of counsel, founding partners, alumni), each group is its own dataset. The credential's dataset field points at the one it belongs to, so consumers can render and filter credentials in context.
Shape
Datasets appear inside a credential document's olpn_credential.dataset field:
{
"olpn_credential": {
...
"dataset": {
"id": "§:dataset:hkgclaw.com/attorneys",
"name": "Attorneys"
}
}
}Fields
id(string) — the dataset ID,§:dataset:{domain}/{path}.name(string) — human-readable name.
Why the issuer domain is in the ID
Datasets are scoped to their issuer. Two firms can both have an "Attorneys" dataset; they are distinguished by the domain in the ID. This makes dataset IDs globally unique and avoids a separate registry.
Path encoding
The path after the issuer domain is arbitrary. Common choices are short slugs that describe the group:
§:dataset:firm.com/attorneys§:dataset:firm.com/alumni§:dataset:firm.com/of-counsel§:dataset:bar.example.com/active-members§:dataset:bar.example.com/emeritus§:dataset:olpn.org/founding-supporters
The resolver does not interpret the path. It is opaque from the protocol's perspective. Issuers should keep the path stable if they want credentials to remain legible across renders.
Datasets and the credential ID path
Credential IDs can optionally encode the dataset path: @[email protected]/attorneys. This is a hint for the resolver about where the credential lives, but the credential's dataset.id is the authoritative mapping. The two should agree. When they diverge, consumers should trust the dataset.id in the credential document body.
No enumeration endpoint
OLPN does not define a "list all datasets" or "list all credentials in dataset X" endpoint. Datasets are a grouping label, not an index. A consumer who wants to list every attorney at a firm has to find that through other means (crawling, an out-of-band list, or a platform-specific API). The protocol is designed to verify a claim once you have it, not to enumerate claims at a distance.
Future: dataset manifests
The protocol may grow a separate dataset manifest document in the future ({domain}/{path}/olpn-dataset.json) that lists all credentials in a dataset. This is not currently implemented. When it is, it will be additive and opt-in.