Reference Data Model
This document defines canonical data objects for Portable Trust Infrastructure (PTI) v1.0.
Normative language
The key words MUST: MUST NOT: REQUIRED: SHALL: SHALL NOT: SHOULD: SHOULD NOT: RECOMMENDED: MAY: and OPTIONAL are to be interpreted as described in RFC 2119.
Object overview
Trust Identity
Represents a portable subject in the trust fabric.
| Field | Type | Required | Description |
|---|---|---|---|
pti_id | string | MUST | Stable portable identifier (pti_ prefix + opaque suffix) |
identity_type | enum | MUST | individual, organization, device_proxy |
status | enum | MUST | active, suspended, merged, erased |
created_at | datetime | MUST | ISO 8601 UTC |
partner_refs | array | OPTIONAL | Partner-local entity mappings |
verification_level | enum | SHOULD | unverified, document, registry, in_person |
Partner reference object
{
"partner_id": "prt_acme_lending",
"entity_id": "borrower_88421",
"linked_at": "2026-01-15T10:22:00Z"
}
pti_id values MUST NOT embed personally identifiable information.
Trust Context
Defines a life-area or lens scope for signals and lookups.
| Field | Type | Required | Description |
|---|---|---|---|
context_id | string | MUST | Stable slug (e.g., lending, risk_compliance) |
context_tier | enum | MUST | primary, lens |
label | string | MUST | Human-readable name |
derivation_rules | array | OPTIONAL | Upstream contexts for lens derivation |
enabled | boolean | MUST | Registry publication flag |
Lens contexts MUST declare derivation_rules when context_tier is lens.
Trust Event
See Reference Event Model for full lifecycle. Summary fields:
| Field | Type | Required |
|---|---|---|
event_id | UUID | MUST |
event_type | string | MUST |
context_id | string | MUST |
pti_id | string | MUST |
producer_id | string | MUST |
occurred_at | datetime | MUST |
payload | object | MUST |
schema_version | string | MUST |
Trust Signal
Normalized, queryable representation derived from events.
| Field | Type | Required | Description |
|---|---|---|---|
signal_id | UUID | MUST | Unique signal identifier |
pti_id | string | MUST | Subject reference |
context_id | string | MUST | Bound context |
signal_type | string | MUST | Catalogued signal classification |
polarity | enum | MUST | positive, negative, neutral |
weight | number | SHOULD | Normalized influence weight (0.0–1.0) |
source_event_id | UUID | MUST | Provenance link |
effective_at | datetime | MUST | Signal validity start |
expires_at | datetime | OPTIONAL | TTL for ephemeral signals |
Signals MUST NOT exist without a source_event_id except for governed manual attestations recorded as events.
Trust Evidence
Supporting material for assertions and verification.
| Field | Type | Required | Description |
|---|---|---|---|
evidence_id | UUID | MUST | Unique evidence identifier |
evidence_type | enum | MUST | document, endorsement, registry_match, badge, third_party_report |
uri | string | OPTIONAL | Secure reference to artifact |
hash | string | SHOULD | Content digest for integrity |
attestor_id | string | MUST | Producer or verifier identity |
attested_at | datetime | MUST | Attestation timestamp |
Evidence URIs MUST use HTTPS or governed internal schemes.
Trust Assertion
A signed statement about a subject in a context.
| Field | Type | Required | Description |
|---|---|---|---|
assertion_id | UUID | MUST | Globally unique |
pti_id | string | MUST | Subject |
context_id | string | MUST | Context scope |
claim | object | MUST | Machine-readable claim body |
confidence | number | SHOULD | 0.0–1.0 attestor confidence |
evidence_ids | array | SHOULD | Supporting evidence |
issuer_id | string | MUST | Signing producer or registry |
issued_at | datetime | MUST | Issue time |
expires_at | datetime | OPTIONAL | Assertion TTL |
signature | string | MUST | JWS compact serialization |
Context Score (derived object)
Output of the Trust Intelligence Engine; not directly writable by producers.
| Field | Type | Required | Description |
|---|---|---|---|
pti_id | string | MUST | Subject |
context_id | string | MUST | Context |
score_pct | integer | MUST | 0–100 normalized outcome |
band | enum | MUST | thin, fair, good, strong |
confidence | number | MUST | Model confidence 0.0–1.0 |
computed_at | datetime | MUST | Last refresh timestamp |
coverage_gaps | array | SHOULD | Explicit thin-data flags |
Validation rules
- All objects MUST include
schema_version. context_idon events, signals, and assertions MUST match registry-published contexts.- Erased subjects (
status: erased) MUST NOT appear in consumer lookups. - Merged identities MUST redirect lookups to the surviving
pti_idwith301semantic in registry APIs.