TRUST-LD v0.1.0
The functional LD profile for attestation, verification, and trust relationships — extending CORE-LD with trust semantics for representing attestations, verification results, trust anchors, and trust graphs.Status: Draft Extends: CORE-LD v0.1.0 Constitutional dependencies: URS v0.1.0 → CORE-LD v0.1.0 Spec family: Functional Profile (see CORE-LD §6.1 — Composition Rules) Dimension registry prefix: TRUST-LD Canonical @context: https://specs.initialcore.net/ns/trust-ld.jsonld
1. Preamble
TRUST-LD is the functional profile for attestation, verification, and trust relationships. It defines how trust anchors, attestations, verification results, and trust graphs are expressed as CORE-LD entities with standardised trust semantics.
What TRUST-LD is:
- A set of entity types and properties specialised for representing trust
- An attestation model: who attests what, with what authority, with what proof
- A verification model: how claims are checked, what results mean, how failures degrade
- A trust graph model: how trust propagates across entities and authorities
What TRUST-LD is not:
- Not a cryptographic protocol — TRUST-LD defines the representation, not the signature scheme
- Not an identity system — it uses CORE-LD identity; it does not define identity itself
- Not a replacement for CORE-LD — TRUST-LD inherits all CORE-LD invariants and adds its own
1.1 Composition rule
TRUST-LD = CORE-LD + TrustAnchor + Attestation + VerificationResult + TrustLink + TrustPolicy
Any conforming TRUST-LD implementation MUST also conform to CORE-LD at the same conformance level. An encoded TRUST-LD binding MUST preserve both CORE-LD and TRUST-LD invariants.
1.2 Trust as a functional complement
| Aspect | INPUT-LD | MEMORY-LD | TRUST-LD |
|---|---|---|---|
| Direction | Inbound requests | Internal persistence | Inter-entity assurance |
| Question | What to do? | What to remember? | What to believe? |
| Lifetime | Transient | Persistent | Persistent, revocable |
| Mutation | Request/respond | Consolidate/forget | Attest/verify/revoke |
2. Entity Types
2.1 TrustAnchor
A TrustAnchor represents a root of trust — an entity whose attestations are trusted without further verification.
{
"@id": "_:ta1",
"@type": "TrustAnchor",
"name": "ICore Constitutional Root",
"anchorType": "constitutional",
"keyReference": "did:icore:root#key-1",
"trustLevel": "absolute",
"revoked": false
}
Registered anchor types:
| Type | Meaning |
|---|---|
| `constitutional` | Root defined by the constitution itself |
| `organizational` | Root defined by an organization |
| `personal` | Root defined by an individual |
| `technical` | Root defined by technical mechanism (e.g., HSM) |
Registered trust levels:
| Level | Meaning |
|---|---|
| `absolute` | Unconditional within its domain |
| `high` | Strong but conditional |
| `medium` | Limited to declared scope |
| `low` | Minimal, highest scrutiny |
| Property | Type | Required | Description |
|---|---|---|---|
| `anchorType` | String | Yes | Type of trust anchor |
| `keyReference` | IRI | Yes | Reference to the cryptographic key material |
| `trustLevel` | String | Yes | Degree of trust |
| `revoked` | Boolean | No | Whether this anchor has been revoked (default false) |
2.2 Attestation
An Attestation is a signed claim by one entity about another entity, property, or fact.
{
"@id": "_:att1",
"@type": "Attestation",
"attestor": "did:icore:root",
"subject": "_:entity1",
"claims": [
{ "predicate": "authorityType", "value": "inherent" }
],
"validFrom": "2026-07-30T00:00:00Z",
"validUntil": "2027-07-30T00:00:00Z",
"proof": {
"type": "Ed25519Signature2020",
"created": "2026-07-30T00:00:01Z",
"verificationMethod": "did:icore:root#key-1",
"proofValue": "z..."
}
}
| Property | Type | Required | Description |
|---|---|---|---|
| `attestor` | IRI | Yes | DID or IRI of the attesting entity |
| `subject` | Entity ref | Yes | Entity or fact being attested |
| `claims` | Array of Claim | Yes | The asserted claims (at least one) |
| `validFrom` | ISO 8601 | No | Start of validity window |
| `validUntil` | ISO 8601 | No | End of validity window |
| `proof` | Proof object | No | Cryptographic proof (required for constitutional attestations) |
Claim structure:
{ "predicate": "...", "value": "...", "confidence": 1.0 }
2.3 VerificationResult
A VerificationResult records the outcome of checking an attestation or trust claim.
{
"@id": "_:vr1",
"@type": "VerificationResult",
"target": "_:att1",
"verifier": "did:icore:verifier",
"status": "verified",
"timestamp": "2026-07-30T00:00:05Z",
"checks": [
{ "name": "signature", "passed": true },
{ "name": "expiry", "passed": true },
{ "name": "anchor-chain", "passed": true }
],
"notes": "All checks passed"
}
Registered statuses:
| Status | Meaning |
|---|---|
| `verified` | All checks passed |
| `unverified` | No verification attempted |
| `pending` | Verification in progress |
| `failed` | One or more checks failed |
| `expired` | Outside validity window |
| `revoked` | Attestation revoked since issuance |
| Property | Type | Required | Description |
|---|---|---|---|
| `target` | Entity ref | Yes | The attestation or claim verified |
| `verifier` | IRI | Yes | Entity performing verification |
| `status` | String | Yes | Verification outcome |
| `checks` | Array of Check | No | Individual check results |
| `notes` | String | No | Human-readable detail |
2.4 TrustLink
A TrustLink is a directed trust relationship between two entities, distinct from a CORE-LD Link because it carries trust-specific semantics.
{
"@id": "_:tl1",
"@type": "TrustLink",
"source": "_:entity1",
"target": "_:entity2",
"trustType": "delegation",
"degree": 0.9,
"scope": ["representation", "governance"],
"revocable": true
}
Registered trust types:
| Type | Meaning |
|---|---|
| `direct` | Direct first-hand trust |
| `delegation` | Trust transferred from another trustor |
| `recommendation` | Trust via trusted third party's endorsement |
| `institutional` | Trust granted by institutional role |
| Property | Type | Required | Description |
|---|---|---|---|
| `trustType` | String | Yes | Type of trust relationship |
| `degree` | Number [0,1] | No | Strength of trust (default 0.5) |
| `scope` | Array of String | No | Domains in which trust applies |
| `revocable` | Boolean | No | Whether this link can be revoked (default true) |
2.5 TrustPolicy
A TrustPolicy defines how trust is computed, propagated, and constrained within a system.
{
"@id": "_:tp1",
"@type": "TrustPolicy",
"name": "ConstitutionalTrustPolicy",
"anchors": ["_:ta1"],
"propagation": {
"maxDepth": 5,
"decayFactor": 0.7,
"requireScopeMatch": true
},
"verification": {
"requireProof": true,
"allowedProofTypes": ["Ed25519Signature2020"]
}
}
| Property | Type | Required | Description |
|---|---|---|---|
| `anchors` | Array of Entity ref | Yes | TrustAnchors this policy recognizes |
| `propagation` | PropagationConfig | No | Rules for trust propagation |
| `verification` | VerificationConfig | No | Rules for verification |
PropagationConfig:
{
"maxDepth": 5,
"decayFactor": 0.7,
"requireScopeMatch": true
}
VerificationConfig:
{
"requireProof": true,
"allowedProofTypes": ["Ed25519Signature2020", "EcdsaSecp256k1Signature2019"]
}
3. Trust Lifecycle
Anchor Established → Attestation Issued → Verification Performed → Trust Computed → (Revoked | Expired | Renewed)
| State | Meaning |
|---|---|
| `Anchor Established` | Root of trust registered |
| `Attestation Issued` | Claim signed and published |
| `Verification Performed` | Claim checked against anchors and policy |
| `Trust Computed` | Propagation applied, degree assigned |
| `Revoked` | Anchor or attestation withdrawn |
| `Expired` | Validity window passed |
| `Renewed` | Re-issued with new validity |
4. Invariants
TRUST-LD inherits all 23 CORE-LD invariants (I1–I23). The following TRUST-LD-specific invariants are ADDITIONAL:
4.1 Anchor invariants (I-TRUST-1 through I-TRUST-4)
| ID | Invariant | Check |
|---|---|---|
| I-TRUST-1 | Every TrustAnchor has anchorType | `anchorType` present and non-empty |
| I-TRUST-2 | Anchor type is registered | `anchorType` ∈ {constitutional, organizational, personal, technical} |
| I-TRUST-3 | Every TrustAnchor has keyReference | `keyReference` present and non-empty |
| I-TRUST-4 | Trust level is registered | `trustLevel` ∈ {absolute, high, medium, low} |
4.2 Attestation invariants (I-TRUST-5 through I-TRUST-10)
| ID | Invariant | Check |
|---|---|---|
| I-TRUST-5 | Every Attestation has attestor | `attestor` present and non-empty |
| I-TRUST-6 | Every Attestation has subject | `subject` present |
| I-TRUST-7 | Every Attestation has at least one claim | `claims` non-empty |
| I-TRUST-8 | Claim predicate is a defined term | Each `claims[].predicate` resolves via @context |
| I-TRUST-9 | Attestation validity window is ordered | `validFrom` ≤ `validUntil` when both present |
| I-TRUST-10 | Constitutional attestations have proof | When subject is constitutional, `proof` is present |
4.3 Verification invariants (I-TRUST-11 through I-TRUST-14)
| ID | Invariant | Check |
|---|---|---|
| I-TRUST-11 | Every VerificationResult has target | `target` present |
| I-TRUST-12 | Every VerificationResult has verifier | `verifier` present |
| I-TRUST-13 | Status is registered | `status` ∈ {verified, unverified, pending, failed, expired, revoked} |
| I-TRUST-14 | Verification checks have names and outcomes | Each `checks[]` has `name` and boolean `passed` |
4.4 TrustLink invariants (I-TRUST-15 through I-TRUST-17)
| ID | Invariant | Check |
|---|---|---|
| I-TRUST-15 | TrustLink has registered trustType | `trustType` ∈ {direct, delegation, recommendation, institutional} |
| I-TRUST-16 | TrustLink degree is in [0,1] | `degree` absent (defaults 0.5) or in [0,1] |
| I-TRUST-17 | TrustLink source and target are distinct | `source` ≠ `target` |
4.5 Policy invariants (I-TRUST-18 through I-TRUST-20)
| ID | Invariant | Check |
|---|---|---|
| I-TRUST-18 | Every TrustPolicy has anchors | `anchors` non-empty |
| I-TRUST-19 | Propagation maxDepth is positive | `propagation.maxDepth` absent (defaults 5) or > 0 |
| I-TRUST-20 | Propagation decayFactor is in (0,1] | `decayFactor` absent (defaults 0.7) or in (0,1] |
5. TRUST-LD @context Extension
The TRUST-LD @context extends the CORE-LD @context with the following term mappings:
{
"@context": {
"TrustAnchor": "https://specs.initialcore.net/ns/trust#TrustAnchor",
"Attestation": "https://specs.initialcore.net/ns/trust#Attestation",
"VerificationResult": "https://specs.initialcore.net/ns/trust#VerificationResult",
"TrustLink": "https://specs.initialcore.net/ns/trust#TrustLink",
"TrustPolicy": "https://specs.initialcore.net/ns/trust#TrustPolicy",
"anchorType": "https://specs.initialcore.net/ns/trust#anchorType",
"keyReference": "https://specs.initialcore.net/ns/trust#keyReference",
"trustLevel": "https://specs.initialcore.net/ns/trust#trustLevel",
"revoked": "https://specs.initialcore.net/ns/trust#revoked",
"constitutional": "https://specs.initialcore.net/ns/trust#constitutional",
"organizational": "https://specs.initialcore.net/ns/trust#organizational",
"personal": "https://specs.initialcore.net/ns/trust#personal",
"technical": "https://specs.initialcore.net/ns/trust#technical",
"absolute": "https://specs.initialcore.net/ns/trust#absolute",
"high": "https://specs.initialcore.net/ns/trust#high",
"medium": "https://specs.initialcore.net/ns/trust#medium",
"low": "https://specs.initialcore.net/ns/trust#low",
"attestor": { "@id": "https://specs.initialcore.net/ns/trust#attestor", "@type": "@id" },
"subject": { "@id": "https://specs.initialcore.net/ns/trust#subject", "@type": "@id" },
"claims": { "@id": "https://specs.initialcore.net/ns/trust#claims", "@container": "@set" },
"validFrom": { "@id": "https://specs.initialcore.net/ns/trust#validFrom", "@type": "xsd:dateTime" },
"validUntil": { "@id": "https://specs.initialcore.net/ns/trust#validUntil", "@type": "xsd:dateTime" },
"proof": "https://specs.initialcore.net/ns/trust#proof",
"proofValue": "https://specs.initialcore.net/ns/trust#proofValue",
"verificationMethod": "https://specs.initialcore.net/ns/trust#verificationMethod",
"target": { "@id": "https://specs.initialcore.net/ns/trust#target", "@type": "@id" },
"verifier": { "@id": "https://specs.initialcore.net/ns/trust#verifier", "@type": "@id" },
"status": "https://specs.initialcore.net/ns/trust#status",
"checks": { "@id": "https://specs.initialcore.net/ns/trust#checks", "@container": "@set" },
"notes": "https://schema.org/description",
"verified": "https://specs.initialcore.net/ns/trust#verified",
"unverified": "https://specs.initialcore.net/ns/trust#unverified",
"pending": "https://specs.initialcore.net/ns/trust#pending",
"failed": "https://specs.initialcore.net/ns/trust#failed",
"expired": "https://specs.initialcore.net/ns/trust#expired",
"trustType": "https://specs.initialcore.net/ns/trust#trustType",
"degree": "https://specs.initialcore.net/ns/trust#degree",
"scope": { "@id": "https://specs.initialcore.net/ns/trust#scope", "@container": "@set" },
"revocable": "https://specs.initialcore.net/ns/trust#revocable",
"direct": "https://specs.initialcore.net/ns/trust#direct",
"delegation": "https://specs.initialcore.net/ns/trust#delegation",
"recommendation": "https://specs.initialcore.net/ns/trust#recommendation",
"institutional": "https://specs.initialcore.net/ns/trust#institutional",
"anchors": { "@id": "https://specs.initialcore.net/ns/trust#anchors", "@container": "@set" },
"propagation": "https://specs.initialcore.net/ns/trust#propagation",
"verification": "https://specs.initialcore.net/ns/trust#verification",
"maxDepth": "https://specs.initialcore.net/ns/trust#maxDepth",
"decayFactor": "https://specs.initialcore.net/ns/trust#decayFactor",
"requireScopeMatch": "https://specs.initialcore.net/ns/trust#requireScopeMatch",
"requireProof": "https://specs.initialcore.net/ns/trust#requireProof",
"allowedProofTypes": { "@id": "https://specs.initialcore.net/ns/trust#allowedProofTypes", "@container": "@set" }
}
}
6. Composition Examples
6.1 Trust-anchored attestation of a constitutional entity
{
"@context": [
"https://specs.initialcore.net/ns/core-ld.jsonld",
"https://specs.initialcore.net/ns/trust-ld.jsonld"
],
"@id": "_:att1",
"@type": "Attestation",
"attestor": "did:icore:root",
"subject": "_:entity1",
"claims": [
{ "predicate": "authorityType", "value": "inherent" },
{ "predicate": "constitutionalHash", "value": "zb2rhXj..." }
],
"validFrom": "2026-07-30T00:00:00Z",
"validUntil": "2027-07-30T00:00:00Z",
"proof": {
"type": "Ed25519Signature2020",
"created": "2026-07-30T00:00:01Z",
"verificationMethod": "did:icore:root#key-1",
"proofValue": "z3vX4..."
}
}
6.2 Verification result with check breakdown
{
"@context": [
"https://specs.initialcore.net/ns/core-ld.jsonld",
"https://specs.initialcore.net/ns/trust-ld.jsonld"
],
"@id": "_:vr1",
"@type": "VerificationResult",
"target": "_:att1",
"verifier": "did:icore:gateway",
"status": "verified",
"timestamp": "2026-07-30T00:00:05Z",
"checks": [
{ "name": "signature", "passed": true },
{ "name": "expiry", "passed": true },
{ "name": "anchor-chain", "passed": true },
{ "name": "scope-match", "passed": true }
],
"notes": "Attestation verified against constitutional root anchor"
}
6.3 Trust policy with propagation config
{
"@context": [
"https://specs.initialcore.net/ns/core-ld.jsonld",
"https://specs.initialcore.net/ns/trust-ld.jsonld"
],
"@id": "_:tp1",
"@type": "TrustPolicy",
"name": "ICore Default Trust Policy",
"anchors": ["_:ta1"],
"propagation": {
"maxDepth": 5,
"decayFactor": 0.7,
"requireScopeMatch": true
},
"verification": {
"requireProof": true,
"allowedProofTypes": ["Ed25519Signature2020"]
}
}
6.4 Composition with INPUT-LD and MEMORY-LD
INPUT-LD Request ──carries──> Attestation (TRUST-LD)
│ │
▼ ▼
System processes ──records──> VerificationResult (TRUST-LD)
│
▼
Episode stored (MEMORY-LD) ──linked to──> VerificationResult
7. Conformance
7.1 Implementation requirements
A conforming TRUST-LD implementation MUST: 1. Satisfy all CORE-LD conformance requirements (§9 of CORE-LD) 2. Parse the TRUST-LD @context extension (§5) in addition to the CORE-LD @context 3. Validate all 20 TRUST-LD invariants (I-TRUST-1 through I-TRUST-20) 4. Reject documents that violate any CORE-LD or TRUST-LD invariant 5. Accept any valid CORE-LD document as also valid at the CORE-LD level (TRUST-LD is additive)
7.2 Conformance levels
| Level | Requirements |
|---|---|
| L1 Anchor | CORE-LD L1 + I-TRUST-1 through I-TRUST-4 (anchors) |
| L2 Attestation | L1 + I-TRUST-5 through I-TRUST-10 (attestations) |
| L3 Verification | L2 + I-TRUST-11 through I-TRUST-20 (verification, links, policy) |
8. Relationship to Other Profiles
| Profile | Relationship |
|---|---|
| CORE-LD | TRUST-LD extends CORE-LD; TrustLinks build on CORE-LD Links; provenance provides attestation substrate |
| INPUT-LD | Inputs may carry attestations; verification results may gate request acceptance |
| MEMORY-LD | Verification results stored as episodes; trust state persists in memory |
| POLICY-LD | Trust policies are policies; trust computations may be governed by constitutional rules |
9. Future Considerations
- Distributed trust graphs: Federation of trust anchors across organizations
- Reputation dynamics: Trust degrees that evolve with verification history
- Selective disclosure: Attestations that reveal only required claims
- Zero-knowledge proofs: Proof types beyond signatures (zk-SNARKs, BBS+)
- Trust revocation transparency: Public revocation logs as constitutional records
TRUST-LD v0.1.0 — July 30, 2026. Draft. Extends CORE-LD v0.1.0. Fourth functional profile in the DAG--LD specification family.*