Industry-standard ACDC credential types for the genealogy ecosystem. Generated by
/keri:design0-ecosystem. Schema fields define the ACDCa(attributes) block.
| ID | Name | Issuer | Holder | Verifiers | Disclosure |
|---|---|---|---|---|---|
record_custody |
Record Custody Credential | archive | archive | digitizer, record_host, researcher, individual | full |
digitization_authorization |
Digitization Authorization | archive | digitizer | record_attestor, record_host, researcher | full |
digitization_record |
Digitization Record | digitizer | digitizer | researcher, individual, record_attestor, algorithm_service | full |
record_attestation |
Record Attestation | record_attestor | digitizer | researcher, individual, record_host | full |
index_entry |
Index Entry Credential | indexer | indexer | researcher, individual, algorithm_service | full |
hosting_agreement |
Record Hosting Agreement | archive | record_host | researcher, individual | full |
research_claim |
Research Claim | researcher | researcher | individual, researcher, algorithm_service | full |
identity_resolution |
Identity Resolution Claim | researcher | researcher | individual, researcher, algorithm_service | full |
source_link |
Source Object Link | researcher | researcher | individual, researcher, digitizer | full |
professional_certification |
Professional Genealogist Certification | certification_body | researcher | individual, researcher | selective |
program_accreditation |
Program Accreditation | certification_body | certification_body | researcher, individual | selective |
dna_result |
DNA Result Credential | dna_service | individual | researcher | selective |
ethnicity_estimate |
Ethnicity Estimate | dna_service | individual | researcher | selective |
kinship_match |
Kinship Match | dna_service | individual | individual | selective |
dispute_claim |
Dispute Claim | researcher/individual | researcher/individual | individual, researcher, algorithm_service | full |
endorsement |
Endorsement Claim | researcher/individual | researcher/individual | individual, researcher, algorithm_service | full |
record_custody)Description: Attests that an archive is the custodian of a specified collection of physical records. Root credential in the provenance chain.
Issuer role: archive Holder role: archive Verifier roles: digitizer, record_host, researcher, individual Disclosure mode: full
| Field | Type | Required | Description |
|---|---|---|---|
collection_name |
string | yes | Human-readable name of the record collection |
collection_description |
string | yes | Description of the collection scope and contents |
geographic_scope |
string | yes | Geographic area covered by the collection |
date_range_start |
string | no | Earliest date in the collection |
date_range_end |
string | no | Latest date in the collection |
record_types |
string[] | yes | Types of records in the collection (census, vital, church, etc.) |
access_policy |
string | yes | Policy for accessing the physical collection |
digitization_authorization)Description: Authorizes a digitizer to create digital copies of records in a specified collection. Chains from record_custody. Defines terms of use and copyright constraints.
Issuer role: archive Holder role: digitizer Verifier roles: record_attestor, record_host, researcher Disclosure mode: full
| Field | Type | Required | Description |
|---|---|---|---|
collection_ref |
SAID | yes | Reference to the record_custody credential for the collection |
authorized_scope |
string | yes | What subset of the collection is authorized for digitization |
copyright_terms |
string | yes | Copyright and usage terms for the digitized copies |
expiration_date |
date | no | When this authorization expires |
redistribution_allowed |
boolean | yes | Whether digitized copies may be redistributed |
This credential chains from record_custody. The issuer MUST hold a valid, unrevoked record_custody credential. The edge block (e) of this ACDC references the chained credential’s SAID, creating a cryptographically verifiable provenance chain.
digitization_record)Description: Attests that a digital copy was created from a physical source object. References the source object and capture conditions. May or may not chain from a digitization_authorization (volunteer grave photos do not require archive authorization).
Issuer role: digitizer Holder role: digitizer Verifier roles: researcher, individual, record_attestor, algorithm_service Disclosure mode: full
| Field | Type | Required | Description |
|---|---|---|---|
source_object_description |
string | yes | Description of the physical object digitized |
source_location |
string | yes | Location of the physical object |
capture_method |
string | yes | How the digital copy was created (scan, photo, etc.) |
capture_date |
date | yes | When the digital copy was created |
resolution |
string | no | Resolution or quality of the digital copy |
content_said |
SAID | yes | Self-addressing identifier of the digital content |
authorization_ref |
SAID | no | Reference to digitization_authorization, if applicable |
freeform_notes |
string | no | Additional observations not captured in structured fields |
record_attestation)Description: Verifies the fidelity of a digital copy to its physical original. Issued by a record attestor who has compared the digital and physical versions. Strengthens the provenance chain.
Issuer role: record_attestor Holder role: digitizer Verifier roles: researcher, individual, record_host Disclosure mode: full
| Field | Type | Required | Description |
|---|---|---|---|
digitization_ref |
SAID | yes | Reference to the digitization_record being attested |
attestation_method |
string | yes | How the comparison was performed |
attestation_date |
date | yes | When the attestation was made |
fidelity_assessment |
string | yes | Assessment of how faithfully the digital copy represents the original |
notes |
string | no | Additional observations |
index_entry)Description: A transcription or tagging of a digitized record. Links searchable text to the digitization record it was derived from. Discloses transcription method (manual, AI-assisted, fully automated).
Issuer role: indexer Holder role: indexer Verifier roles: researcher, individual, algorithm_service Disclosure mode: full
| Field | Type | Required | Description |
|---|---|---|---|
digitization_ref |
SAID | yes | Reference to the digitization_record this index was derived from |
transcription_method |
string | yes | How the transcription was created (manual, AI-assisted, automated) |
schema_ref |
SAID | yes | Reference to the shared schema used (census, vital record, etc.) |
structured_fields |
object | yes | Transcribed data in the referenced schema format |
freeform_content |
string | no | Additional content not captured by the schema (marginalia, annotations) |
confidence_notes |
string | no | Notes on uncertain or ambiguous transcriptions |
hosting_agreement)Description: Authorizes a record host to store and serve digital copies from a specified collection. Defines access controls, copyright restrictions, and terms of service.
Issuer role: archive Holder role: record_host Verifier roles: researcher, individual Disclosure mode: full
| Field | Type | Required | Description |
|---|---|---|---|
collection_ref |
SAID | yes | Reference to the record_custody credential for the collection |
hosting_terms |
string | yes | Terms of the hosting arrangement |
access_controls |
string | yes | Who can access the hosted records and under what conditions |
copyright_constraints |
string | yes | Copyright restrictions on hosted content |
expiration_date |
date | no | When this hosting agreement expires |
This credential chains from record_custody. The issuer MUST hold a valid, unrevoked record_custody credential. The edge block (e) of this ACDC references the chained credential’s SAID, creating a cryptographically verifiable provenance chain.
research_claim)Description: A signed assertion about a person, event, date, place, or relationship. References supporting evidence (digitization records, index entries, other claims). The fundamental unit of genealogical research in this ecosystem. Schema references a shared genealogy schema (lifeline, census, vital record, etc.) via schema_ref.
Issuer role: researcher Holder role: researcher Verifier roles: individual, researcher, algorithm_service Disclosure mode: full
| Field | Type | Required | Description |
|---|---|---|---|
claim_type |
string | yes | Type of claim (birth, death, marriage, residence, occupation, relationship, etc.) |
schema_ref |
SAID | yes | Reference to the shared schema used for this claim type |
subject_person_ref |
SAID | yes | Reference to the person this claim is about |
claim_data |
object | yes | The actual claim data in the referenced schema format |
evidence_refs |
SAID[] | yes | References to supporting evidence (digitizations, index entries, other claims) |
methodology_notes |
string | no | How the researcher arrived at this conclusion |
confidence_assessment |
string | no | Researcher’s self-assessment of claim confidence |
identity_resolution)Description: Asserts that two or more records refer to the same person. The decentralized replacement for platform deduplication. Others can endorse or dispute this link. Never destructive – records stay separate, the link is an overlay.
Issuer role: researcher Holder role: researcher Verifier roles: individual, researcher, algorithm_service Disclosure mode: full
| Field | Type | Required | Description |
|---|---|---|---|
person_refs |
SAID[] | yes | References to the person records being linked |
basis |
string | yes | Explanation of why these records are the same person |
evidence_refs |
SAID[] | yes | References to supporting evidence |
confidence_assessment |
string | no | Assessment of link confidence |
source_link)Description: Asserts that multiple digitizations depict the same physical source object (e.g., three photos of the same gravestone). Creates a virtual node representing the source object. Multiple digitizations stay separate but are linked.
Issuer role: researcher Holder role: researcher Verifier roles: individual, researcher, digitizer Disclosure mode: full
| Field | Type | Required | Description |
|---|---|---|---|
digitization_refs |
SAID[] | yes | References to the digitization records being linked |
source_object_description |
string | yes | Description of the physical source object |
source_location |
string | no | Location of the physical source object |
basis |
string | yes | Why these digitizations are of the same object |
professional_certification)Description: Attests that a researcher holds a professional genealogy certification or degree. Issued by certification bodies whose authority is organic and reputation-based. Selective disclosure allows proving certification without revealing personal details.
Issuer role: certification_body Holder role: researcher Verifier roles: individual, researcher Disclosure mode: selective
| Field | Type | Required | Description |
|---|---|---|---|
certification_type |
string | yes | Type of certification (CG, CGL, AG, degree, etc.) |
issuing_body_name |
string | yes | Name of the certifying organization |
specializations |
string[] | no | Areas of specialization (region, time period, ethnic focus) |
issue_date |
date | yes | When the certification was granted |
expiration_date |
date | no | When the certification expires, if applicable |
certificate_number |
string | yes | Unique certificate identifier |
program_accreditation)Description: Accredits a genealogy education program or sub-organization. Enables delegation – an accredited program can issue its own certifications that chain from this accreditation.
Issuer role: certification_body Holder role: certification_body Verifier roles: researcher, individual Disclosure mode: selective
| Field | Type | Required | Description |
|---|---|---|---|
program_name |
string | yes | Name of the accredited program |
institution |
string | yes | Institution offering the program |
accreditation_scope |
string | yes | What the program is accredited to do |
issue_date |
date | yes | When accreditation was granted |
review_date |
date | no | When accreditation is next reviewed |
dna_result)Description: Raw DNA analysis results issued to the individual, not retained by the service. Selective disclosure allows proving specific genetic facts without revealing the full profile.
Issuer role: dna_service Holder role: individual Verifier roles: researcher Disclosure mode: selective
| Field | Type | Required | Description |
|---|---|---|---|
test_type |
string | yes | Type of DNA test (autosomal, Y-DNA, mtDNA, whole genome) |
sample_date |
date | yes | When the sample was collected |
processing_date |
date | yes | When the sample was processed |
result_data_said |
SAID | yes | Self-addressing identifier of the full result dataset |
methodology |
string | yes | Testing methodology and platform used |
lab_identifier |
string | yes | Identifier of the processing laboratory |
ethnicity_estimate)Description: Interpretation of DNA results as ethnicity/ancestry composition. Issued to the individual with selective disclosure. Estimates change as reference populations grow, so versioning is important.
Issuer role: dna_service Holder role: individual Verifier roles: researcher Disclosure mode: selective
| Field | Type | Required | Description |
|---|---|---|---|
dna_result_ref |
SAID | yes | Reference to the dna_result credential this estimate is based on |
estimate_version |
string | yes | Version of the estimation algorithm/reference populations |
regions |
object[] | yes | Array of region/percentage pairs |
reference_population_size |
integer | no | Size of the reference population used |
confidence_intervals |
object | no | Statistical confidence intervals for each region |
This credential chains from dna_result. The issuer MUST hold a valid, unrevoked dna_result credential. The edge block (e) of this ACDC references the chained credential’s SAID, creating a cryptographically verifiable provenance chain.
kinship_match)Description: Asserts a genetic relationship between two individuals based on shared DNA segments. Issued to both matched individuals with selective disclosure. Enables biological family discovery while protecting privacy.
Issuer role: dna_service Holder role: individual Verifier roles: individual Disclosure mode: selective
| Field | Type | Required | Description |
|---|---|---|---|
matched_individual_ref |
SAID | yes | Reference to the other matched individual |
shared_cm |
number | yes | Total shared centimorgans |
shared_segments |
integer | yes | Number of shared DNA segments |
estimated_relationship |
string | yes | Predicted relationship (parent, sibling, cousin, etc.) |
confidence_level |
string | yes | Confidence in the relationship estimate |
This credential chains from dna_result. The issuer MUST hold a valid, unrevoked dna_result credential. The edge block (e) of this ACDC references the chained credential’s SAID, creating a cryptographically verifiable provenance chain.
dispute_claim)Description: A signed disagreement with another claim (research_claim, identity_resolution, source_link, or any other credential). States the basis for disagreement and optionally provides counter-evidence. Visible in the public claim graph.
Issuer role: researcher / individual Holder role: researcher / individual Verifier roles: individual, researcher, algorithm_service Disclosure mode: full
| Field | Type | Required | Description |
|---|---|---|---|
disputed_credential_ref |
SAID | yes | Reference to the credential being disputed |
dispute_basis |
string | yes | Explanation of why this claim is disputed |
counter_evidence_refs |
SAID[] | no | References to evidence supporting the dispute |
proposed_correction |
string | no | What the disputer believes is correct instead |
endorsement)Description: A signed agreement with another claim. Strengthens the corroboration signal for algorithm services. May optionally add supporting evidence beyond what the original claim referenced.
Issuer role: researcher / individual Holder role: researcher / individual Verifier roles: individual, researcher, algorithm_service Disclosure mode: full
| Field | Type | Required | Description |
|---|---|---|---|
endorsed_credential_ref |
SAID | yes | Reference to the credential being endorsed |
endorsement_basis |
string | no | Why the endorser agrees with this claim |
additional_evidence_refs |
SAID[] | no | Additional evidence supporting the claim |
Lists chaining relationships between credentials in this ecosystem.
record_custody --> digitization_authorization
record_custody --> hosting_agreement
dna_result --> ethnicity_estimate
dna_result --> kinship_match
The ecosystem publishes shared schema definitions for common genealogical data types. Credentials like research_claim, index_entry, and digitization_record reference these schemas via schema_ref. Schemas are not credentials – they are infrastructure.
Planned schema types include:
All schemas include a freeform_content field for information that does not fit the structured format, reflecting the reality that historical documents frequently contain valuable information outside their formal fields.
/keri:design1-service to design services that issue, hold, and verify these credentials.