Industry-standard ACDC credential types for the small-trades-cooperative ecosystem. Generated by
/keri:design0-ecosystem. Schema fields define the ACDCa(attributes) block.
| ID | Name | Issuer | Holder | Verifiers | Disclosure |
|---|---|---|---|---|---|
trade_license |
Trade License | licensing_board | tradesperson | homeowner, city, coop, inspector | Selective |
insurance_credential |
Insurance Coverage | insurance ecosystem | tradesperson | homeowner, city, coop | Selective |
bond_credential |
Surety Bond | surety ecosystem | tradesperson | homeowner, city | Selective |
background_check |
Background Check | issuing agency | tradesperson | coop | Selective |
drug_test |
Drug Screening | testing facility | tradesperson | coop | Selective |
safety_certification |
Safety Certification | training provider | tradesperson | homeowner, inspector, city, coop | Full |
skill_level |
Skill Level Designation | licensing_board / master_tradesperson | tradesperson | homeowner, coop, inspector | Full |
apprenticeship_attestation |
Apprenticeship Attestation | master_tradesperson | apprentice | homeowner, coop, licensing_board | Full |
master_designation |
Master Designation | licensing_board | master_tradesperson | all | Full |
coop_membership |
Cooperative Membership | coop | tradesperson | homeowner, connector_service | Full |
coop_governance_framework |
Coop Governance Framework | coop | coop | all | Full |
coop_registration |
Coop Registration | licensing_board | coop | all | Full |
job_completion_attestation |
Job Completion Attestation | homeowner | tradesperson | anyone (worker-controlled) | Full |
financial_responsibility |
Financial Responsibility | financial institution | homeowner | tradesperson, escrow_service | Selective |
property_credential |
Property Ownership | city/county | homeowner | tradesperson, city, inspector | Selective |
inspector_license |
Inspector License | licensing_board / city | inspector | all | Full |
code_compliance_attestation |
Code Compliance Attestation | inspector | tradesperson | city, homeowner | Full |
mediator_credential |
Mediator Credential | arbitration body | mediator | all | Full |
mediation_ruling |
Mediation Ruling | mediator | contract parties | escrow_service | Contractual |
escrow_contract |
Escrow Contract | escrow_service | homeowner + tradesperson | mediator | Contractual |
escrow_release |
Escrow Release | escrow_service | tradesperson | homeowner, coop, connector | Selective |
witnessed_recording |
Witnessed Recording | device_attestor + recording party | recording party | mediator, inspector | Contractual |
hardware_attestation |
Hardware Device Attestation | device_attestor | device owner | inspector, mediator | Full |
connector_registration |
Connector Registration | coop / self-attested | connector_service | all | Full |
trade_license)Description: State-issued license to practice a specific trade (plumbing, electrical, HVAC, welding, carpentry, concrete, etc.). The entry floor — a valid license means you can work today, regardless of experience level.
Issuer role: licensing_board Holder role: tradesperson Verifier roles: homeowner, city_building_dept, coop, inspector Disclosure mode: Selective
| Field | Type | Required | Description |
|---|---|---|---|
trade_category |
string | Yes | Trade type (plumbing, electrical, HVAC, etc.) |
license_number |
string | Yes | State-issued license identifier |
jurisdiction |
string | Yes | State or jurisdiction of issuance |
issue_date |
date | Yes | Date license was issued |
expiration_date |
date | Yes | Date license expires |
license_status |
string | Yes | Active, suspended, expired |
restrictions |
string[] | No | Any restrictions on the license |
insurance_credential)Description: Proof of liability insurance coverage and amount. Verifiers see coverage status and amount but not policy details, premiums, or claims history. Auto-expires when policy lapses — no more stale certificates floating around.
Issuer role: insurance ecosystem (interoperability bridge) Holder role: tradesperson Verifier roles: homeowner, city_building_dept, coop Disclosure mode: Selective
| Field | Type | Required | Description |
|---|---|---|---|
coverage_type |
string | Yes | General liability, professional, etc. |
coverage_amount |
number | Yes | Coverage amount in dollars |
policy_status |
string | Yes | Active, lapsed, expired |
effective_date |
date | Yes | Policy start date |
expiration_date |
date | Yes | Policy end date |
insurer_name |
string | Yes | Insurance company name |
bond_credential)Description: Proof of surety bond for larger jobs. Guarantees financial recourse if work is not completed. In the mature ecosystem, escrow may replace most bonding needs for smaller jobs.
Issuer role: surety ecosystem (interoperability bridge) Holder role: tradesperson Verifier roles: homeowner, city_building_dept Disclosure mode: Selective
| Field | Type | Required | Description |
|---|---|---|---|
bond_amount |
number | Yes | Bond amount in dollars |
bond_type |
string | Yes | Performance, payment, license, etc. |
surety_company |
string | Yes | Surety company name |
effective_date |
date | Yes | Bond start date |
expiration_date |
date | Yes | Bond end date |
background_check)Description: Pass/fail background check. No underlying details disclosed — the credential says “cleared” not “here’s the report.” Issued once, held by the worker, verifiable by any coop without re-running the check.
Issuer role: issuing agency (interoperability bridge) Holder role: tradesperson Verifier roles: coop Disclosure mode: Selective
| Field | Type | Required | Description |
|---|---|---|---|
check_type |
string | Yes | Type of background check conducted |
result |
string | Yes | Pass/fail |
check_date |
date | Yes | Date check was conducted |
valid_until |
date | Yes | Expiration date of the check |
issuing_agency |
string | Yes | Agency that conducted the check |
drug_test)Description: Pass/fail drug screening result. Disclosed to coop membership verification only — homeowners see “coop member” which implies the coop’s requirements are met. Worker controls further disclosure.
Issuer role: testing facility Holder role: tradesperson Verifier roles: coop Disclosure mode: Selective
| Field | Type | Required | Description |
|---|---|---|---|
test_type |
string | Yes | Type of screening |
result |
string | Yes | Pass/fail |
test_date |
date | Yes | Date test was conducted |
valid_until |
date | Yes | Expiration date |
safety_certification)Description: Job site safety training completion (OSHA 10, OSHA 30, trade-specific safety certifications). Full disclosure — there’s no reason to hide that you’re safety-trained.
Issuer role: training provider Holder role: tradesperson Verifier roles: homeowner, inspector, city_building_dept, coop Disclosure mode: Full
| Field | Type | Required | Description |
|---|---|---|---|
certification_type |
string | Yes | OSHA 10, OSHA 30, trade-specific, etc. |
issuing_organization |
string | Yes | Training organization |
completion_date |
date | Yes | Date training was completed |
expiration_date |
date | No | Expiration if applicable |
hours_completed |
number | Yes | Training hours |
skill_level)Description: Apprentice, journeyman, or master designation for a specific trade. Issued by licensing board (formal path) or by a master tradesperson (mentorship path). Both are verifiable — the market decides which it values more.
Issuer role: licensing_board / master_tradesperson Holder role: tradesperson Verifier roles: homeowner, coop, inspector Disclosure mode: Full
| Field | Type | Required | Description |
|---|---|---|---|
trade_category |
string | Yes | Trade type |
level |
string | Yes | Apprentice, journeyman, or master |
attested_by |
string | Yes | AID of the attesting entity |
attestation_date |
date | Yes | Date of attestation |
years_experience |
number | No | Years in the trade |
This credential chains from trade_license. The issuer MUST hold a valid, unrevoked trade_license credential. The edge block (e) of this ACDC references the chained credential’s SAID, creating a cryptographically verifiable provenance chain.
apprenticeship_attestation)Description: Issued by a master tradesperson to their apprentice. Records scope of training, duration, and the mentor’s identity. Creates a verifiable lineage — who trained you, who trained them. The mentor’s reputation flows to the apprentice. Alternative to formal trade school path. Mentor stakes their reputation on the apprentice’s competence.
Issuer role: master_tradesperson Holder role: apprentice Verifier roles: homeowner, coop, licensing_board Disclosure mode: Full
| Field | Type | Required | Description |
|---|---|---|---|
mentor_aid |
string | Yes | AID of the mentoring master |
mentor_name |
string | Yes | Name of the mentor |
trade_category |
string | Yes | Trade type |
training_scope |
string[] | Yes | Areas of training covered |
start_date |
date | Yes | Apprenticeship start date |
end_date |
date | No | End date (null if ongoing) |
hours_completed |
number | Yes | Total training hours |
competency_areas |
string[] | Yes | Specific competencies attested |
This credential chains from master_designation. The issuer MUST hold a valid, unrevoked master_designation credential. The edge block (e) of this ACDC references the chained credential’s SAID, creating a cryptographically verifiable provenance chain.
master_designation)Description: Recognized master-level practitioner in a specific trade. Issued by the licensing board. Authorizes the holder to mentor apprentices and issue apprenticeship attestations. In the mature ecosystem, a master with strong reputation becomes a trust anchor independent of institutional backing.
Issuer role: licensing_board Holder role: master_tradesperson Verifier roles: all Disclosure mode: Full
| Field | Type | Required | Description |
|---|---|---|---|
trade_category |
string | Yes | Trade type |
designation_date |
date | Yes | Date master status was granted |
years_in_trade |
number | Yes | Total years of experience |
specializations |
string[] | No | Areas of specialization |
This credential chains from trade_license. The issuer MUST hold a valid, unrevoked trade_license credential. The edge block (e) of this ACDC references the chained credential’s SAID, creating a cryptographically verifiable provenance chain.
coop_membership)Description: Active member of a specific cooperative. Implies the coop’s published membership requirements are met — background check, drug test, insurance minimums, whatever the coop demands. The coop’s brand and requirements ARE the value of membership. Worker presents this instead of individual screening credentials to homeowners.
Issuer role: coop Holder role: tradesperson Verifier roles: homeowner, connector_service Disclosure mode: Full
| Field | Type | Required | Description |
|---|---|---|---|
coop_name |
string | Yes | Cooperative name |
coop_aid |
string | Yes | Cooperative’s AID |
membership_date |
date | Yes | Date membership was granted |
trade_categories |
string[] | Yes | Trade categories the member practices |
membership_tier |
string | No | Tier level if coop uses tiered membership |
This credential chains from coop_governance_framework. The issuer MUST hold a valid, unrevoked coop_governance_framework credential. The edge block (e) of this ACDC references the chained credential’s SAID, creating a cryptographically verifiable provenance chain.
coop_governance_framework)Description: Public document of membership requirements and standards. The coop publishes this so homeowners can see what “member of XYZ Coop” actually means. Different coops have different requirements — this is how they differentiate. Premium coops demand more; budget coops demand the legal minimum. Both are transparent.
Issuer role: coop Holder role: coop (self-published) Verifier roles: all Disclosure mode: Full
| Field | Type | Required | Description |
|---|---|---|---|
required_credentials |
string[] | Yes | List of credential IDs required for membership |
minimum_insurance_amount |
number | Yes | Minimum insurance coverage required |
background_check_required |
boolean | Yes | Whether background check is required |
drug_test_required |
boolean | Yes | Whether drug testing is required |
minimum_skill_level |
string | No | Minimum skill level (apprentice/journeyman/master) |
continuing_education_required |
boolean | No | Whether ongoing training is required |
version |
string | Yes | Framework version number |
effective_date |
date | Yes | When this version takes effect |
coop_registration)Description: State or city registration as a legally recognized cooperative entity.
Issuer role: licensing_board Holder role: coop Verifier roles: homeowner, tradesperson, city_building_dept Disclosure mode: Full
| Field | Type | Required | Description |
|---|---|---|---|
registration_number |
string | Yes | State registration identifier |
jurisdiction |
string | Yes | State or jurisdiction |
registration_date |
date | Yes | Date registered |
entity_type |
string | Yes | Cooperative, LLC, etc. |
job_completion_attestation)Description: The atomic unit of reputation. Homeowner attests that a specific job was completed by a specific tradesperson. Not a review — just a fact. Signed as part of contract close-out with zero extra effort. Friends and neighbors see it and ask for recommendations through the relationship, not through a platform. Workers accumulate these as portable, verifiable work history.
Issuer role: homeowner Holder role: tradesperson Verifier roles: anyone (worker-controlled) Disclosure mode: Full
| Field | Type | Required | Description |
|---|---|---|---|
job_type |
string | Yes | Category of work performed |
job_description |
string | Yes | Brief description of the work |
completion_date |
date | Yes | Date work was completed |
property_type |
string | Yes | Residential, commercial, etc. |
trade_category |
string | Yes | Trade category of the work |
contract_aid |
string | Yes | Reference to the contract/escrow |
escrow_released_clean |
boolean | Yes | Whether escrow released without dispute |
escrow_released_clean field is a powerful reputation signal without being a rating.financial_responsibility)Description: Proof that the homeowner can fund escrow for a given amount. Financial institution attests fundability without revealing bank balance, account details, or any other financial information. The tradesperson sees “escrow fundable to $X” — that’s it.
Issuer role: financial institution (interoperability bridge) Holder role: homeowner Verifier roles: tradesperson, escrow_service Disclosure mode: Selective
| Field | Type | Required | Description |
|---|---|---|---|
fundable_amount |
number | Yes | Maximum escrow amount the holder can fund |
attestation_date |
date | Yes | Date of attestation |
valid_until |
date | Yes | Expiration of the attestation |
property_credential)Description: Proof of property ownership for permit and contract purposes. Issued by city or county records. Selective disclosure — prove you own the property without revealing purchase price or mortgage details.
Issuer role: city_building_dept (county records) Holder role: homeowner Verifier roles: tradesperson, city_building_dept, inspector Disclosure mode: Selective
| Field | Type | Required | Description |
|---|---|---|---|
property_address |
string | Yes | Property address |
owner_name |
string | Yes | Name of the owner |
parcel_id |
string | Yes | County parcel identifier |
ownership_type |
string | Yes | Fee simple, trust, etc. |
inspector_license)Description: Authorization to inspect and attest code compliance. Issued by licensing board or city building department. In the mature ecosystem, private inspectors with this credential compete with city inspectors on speed and availability, breaking the inspection bottleneck.
Issuer role: licensing_board / city_building_dept Holder role: inspector Verifier roles: city_building_dept, homeowner, tradesperson Disclosure mode: Full
| Field | Type | Required | Description |
|---|---|---|---|
inspection_categories |
string[] | Yes | Types of inspection authorized |
jurisdiction |
string | Yes | Jurisdiction of authority |
license_number |
string | Yes | License identifier |
issue_date |
date | Yes | Date issued |
expiration_date |
date | Yes | Date expires |
code_compliance_attestation)Description: Specific work items verified against building code schema. Inspector attests each item individually — electrical passed, plumbing passed, ventilation passed. City accepts the complete attestation set automatically when issued by a credentialed inspector. AI-assisted verification with hardware-attested images serves as first pass.
Issuer role: inspector Holder role: tradesperson (per-job) Verifier roles: city_building_dept, homeowner Disclosure mode: Full
| Field | Type | Required | Description |
|---|---|---|---|
permit_number |
string | Yes | Associated permit |
inspection_type |
string | Yes | Electrical, plumbing, structural, etc. |
code_section |
string | Yes | Building code section verified against |
result |
string | Yes | Pass, fail, conditional |
inspection_date |
date | Yes | Date of inspection |
deficiencies |
string[] | No | Specific deficiencies if any |
re_inspection_required |
boolean | Yes | Whether re-inspection is needed |
inspector_aid |
string | Yes | AID of the inspector |
This credential chains from inspector_license. The issuer MUST hold a valid, unrevoked inspector_license credential. The edge block (e) of this ACDC references the chained credential’s SAID, creating a cryptographically verifiable provenance chain.
mediator_credential)Description: Authorization to mediate disputes in trade contracts. Issued by a recognized arbitration body or licensing board. Mediator selection happens before work begins — both parties agree in the contract.
Issuer role: arbitration body / licensing_board Holder role: mediator Verifier roles: homeowner, tradesperson, escrow_service Disclosure mode: Full
| Field | Type | Required | Description |
|---|---|---|---|
certification_type |
string | Yes | Type of mediation certification |
issuing_body |
string | Yes | Arbitration body or licensing board |
specializations |
string[] | No | Trade-specific specializations |
issue_date |
date | Yes | Date credential was issued |
expiration_date |
date | Yes | Date credential expires |
mediation_ruling)Description: Binding ruling on a dispute. Triggers escrow release or reallocation. Contractual disclosure — only the parties, escrow service, and any appellate adjudicator see the ruling details. The existence of a ruling (and whether it was needed) may be visible; the details are not.
Issuer role: mediator Holder role: contract parties Verifier roles: escrow_service Disclosure mode: Contractual
| Field | Type | Required | Description |
|---|---|---|---|
contract_aid |
string | Yes | Reference to the disputed contract |
ruling_date |
date | Yes | Date of ruling |
ruling_summary |
string | Yes | Summary of the ruling |
escrow_disposition |
string | Yes | How funds are to be distributed |
amount_to_tradesperson |
number | Yes | Amount released to tradesperson |
amount_to_homeowner |
number | Yes | Amount returned to homeowner |
mediator_fee |
number | Yes | Mediator’s fee deducted from escrow |
This credential chains from mediator_credential. The issuer MUST hold a valid, unrevoked mediator_credential credential. The edge block (e) of this ACDC references the chained credential’s SAID, creating a cryptographically verifiable provenance chain.
escrow_contract)Description: Funds locked between contract signing and job completion. Defines release conditions, milestone schedule, mediator designation, and mediator fee. Both parties sign before work begins. Cross-ecosystem primitive — this pattern applies to any service contract.
Issuer role: escrow_service Holder role: homeowner + tradesperson Verifier roles: mediator Disclosure mode: Contractual
| Field | Type | Required | Description |
|---|---|---|---|
total_amount |
number | Yes | Total escrowed amount |
milestones |
object[] | No | Milestone schedule with partial release amounts |
release_conditions |
string | Yes | Conditions for fund release |
mediator_aid |
string | Yes | AID of the pre-designated mediator |
mediator_fee_percentage |
number | Yes | Mediator fee as percentage of escrow |
dispute_deadline_days |
number | Yes | Days after completion to raise dispute |
contract_date |
date | Yes | Date contract was signed |
homeowner_aid |
string | Yes | AID of the homeowner |
tradesperson_aid |
string | Yes | AID of the tradesperson |
escrow_release)Description: Funds released — either clean close (mutual attestation) or mediated ruling. The release record shows outcome type but not amounts. A tradesperson with many clean releases has a strong reputation signal.
Issuer role: escrow_service Holder role: tradesperson Verifier roles: homeowner, coop, connector_service Disclosure mode: Selective
| Field | Type | Required | Description |
|---|---|---|---|
contract_aid |
string | Yes | Reference to the contract |
release_type |
string | Yes | Mutual attestation or mediated ruling |
release_date |
date | Yes | Date funds were released |
clean_release |
boolean | Yes | Whether release was dispute-free |
This credential chains from escrow_contract. The issuer MUST hold a valid, unrevoked escrow_contract credential. The edge block (e) of this ACDC references the chained credential’s SAID, creating a cryptographically verifiable provenance chain.
clean_release is the key reputation field — shows dispute-free history without revealing financial details.witnessed_recording)Description: Hardware-attested photo or video of work, timestamped, geolocated, and witnessed by KERI witnesses. Locked box — existence is known, content is encrypted, access requires credentialed adjudicator and dispute trigger defined in contract. The existence of the recording is itself a deterrent. Both parties can create witnessed recordings.
Issuer role: device_attestor (via attested device) Holder role: recording party (tradesperson or homeowner) Verifier roles: mediator, inspector (dispute only) Disclosure mode: Contractual
| Field | Type | Required | Description |
|---|---|---|---|
recording_type |
string | Yes | Photo, video, sensor data |
capture_timestamp |
datetime | Yes | When the recording was made |
geolocation |
string | Yes | Where the recording was made |
device_aid |
string | Yes | AID of the attesting device |
content_hash |
string | Yes | Hash of the recording content |
access_conditions |
string | Yes | Conditions under which content can be accessed |
This credential chains from hardware_attestation. The issuer MUST hold a valid, unrevoked hardware_attestation credential. The edge block (e) of this ACDC references the chained credential’s SAID, creating a cryptographically verifiable provenance chain.
hardware_attestation)Description: Certifies that a device produces authentic, unmodified media. Manufacturer or certifier attests to the device’s integrity. Enables the physical-to-digital bridge — without this, photos and videos have no cryptographic provenance.
Issuer role: device_attestor Holder role: device owner Verifier roles: inspector, mediator Disclosure mode: Full
| Field | Type | Required | Description |
|---|---|---|---|
device_model |
string | Yes | Device model name |
device_serial |
string | Yes | Device serial number |
manufacturer |
string | Yes | Device manufacturer |
certification_standard |
string | Yes | Standard the device is certified against |
certification_date |
date | Yes | Date device was certified |
connector_registration)Description: Registration for a recommendation/matching service. Self-attested or coop-attested. Deliberately lightweight — connectors are optional, replaceable, and must not accumulate power over reputation data.
Issuer role: coop / self-attested Holder role: connector_service Verifier roles: homeowner, tradesperson Disclosure mode: Full
| Field | Type | Required | Description |
|---|---|---|---|
service_name |
string | Yes | Name of the connector service |
service_type |
string | Yes | Matching, directory, community board, etc. |
coverage_area |
string | Yes | Geographic area served |
registration_date |
date | Yes | Date registered |
Lists chaining relationships between credentials in this ecosystem.
trade_license --> skill_level
trade_license --> master_designation
master_designation --> apprenticeship_attestation
coop_governance_framework --> coop_membership
inspector_license --> code_compliance_attestation
mediator_credential --> mediation_ruling
escrow_contract --> escrow_release
hardware_attestation --> witnessed_recording
/keri:design1-service to design services that issue, hold, and verify these credentials.