Download OpenAPI specification:
OpenAPI normative surface for GQTS Core discovery and linear signed-token replication.
This OpenAPI file is the normative endpoint contract for GQTS Core.
Semantics:
Versioning strategy:
info.version and media types.Returns governance-scoped naming, canonicalization, proof profile, and publication-floor metadata.
| governanceCode required | string (GovernanceCode) ^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$ Examples: eu fi-traficom us-nist Lowercase ASCII governance identifier. Producers MUST normalize to lowercase before publication. |
| If-None-Match | string ETag validator for conditional retrieval. |
{- "kind": "scheme",
- "governanceCode": "eu",
- "version": "v1",
- "canonicalization": "JCS",
- "integrityModel": "signature-bound-content",
- "chainModel": "directed-linear-signed-token-chain",
- "proofSuites": [
- "eddsa-jcs-2022",
- "ecdsa-jcs-2019"
], - "endpointKinds": [
- "scheme",
- "type",
- "event"
], - "endpointKindsRef": "../dictionary",
- "discovery": {
- "schemeTemplate": "/.well-known/gidas/gqts/scheme/{governanceCode}",
- "typeTemplate": "/.well-known/gidas/gqts/type/{serviceId}",
- "eventTemplate": "/.well-known/gidas/gqts/event/{logId}"
}
}Returns the normative endpoint-kind mapping (scheme, type, event) for a governance profile.
This operation provides machine-readable requirement-level conformance metadata.
| governanceCode required | string (GovernanceCode) ^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$ Examples: eu fi-traficom us-nist Lowercase ASCII governance identifier. Producers MUST normalize to lowercase before publication. |
| If-None-Match | string ETag validator for conditional retrieval. |
{- "governanceCode": "eu",
- "generatedAt": "2026-02-18T00:00:00Z",
- "endpointKinds": [
- {
- "kind": "scheme",
- "purpose": "Governance profile metadata discovery.",
- "pathTemplate": "/.well-known/gidas/gqts/scheme/{governanceCode}",
- "operationIds": [
- "getSchemeDescriptor",
- "getEndpointKindCatalog"
], - "primarySchema": "#/components/schemas/SchemeDescriptor",
- "consistencyModel": "mutable-with-versioning"
}, - {
- "kind": "type",
- "purpose": "Service descriptor publication.",
- "pathTemplate": "/.well-known/gidas/gqts/type/{serviceId}",
- "operationIds": [
- "getTypeDescriptor"
], - "primarySchema": "#/components/schemas/ServiceDescriptor",
- "consistencyModel": "mutable-with-versioning"
}, - {
- "kind": "event",
- "purpose": "Append-only event history operations.",
- "pathTemplate": "/.well-known/gidas/gqts/event/{logId}",
- "operationIds": [
- "getEventHeadMeta",
- "getEventLogView",
- "postEventIngest",
- "getEventById"
], - "primarySchema": "#/components/schemas/EventEnvelope",
- "consistencyModel": "append-only",
- "asyncIngestSupported": true
}
]
}Returns metadata for one trust-service instance, including the current token-chain head state.
| serviceId required | string (Identifier) [ 3 .. 128 ] characters ^[A-Za-z0-9._:-]+$ Examples: a8bb9d18-c3bc-4f5b-9158-3ce0d48f4f8c eu-qts-registry Trust-service instance identifier. |
| If-None-Match | string ETag validator for conditional retrieval. |
{- "kind": "type",
- "serviceId": "a8bb9d18-c3bc-4f5b-9158-3ce0d48f4f8c",
- "serviceType": "gdis-binding",
- "governanceCode": "eu",
- "profileVersion": "v1",
- "eventLog": {
- "logId": "a8bb9d18-c3bc-4f5b-9158-3ce0d48f4f8c",
- "headTokenId": "a8bb9d18-c3bc-4f5b-9158-3ce0d48f4f8c",
- "activeVerificationMethod": "string",
- "reportEndpoint": "../dictionary",
- "gossipEndpoints": [
- "../dictionary"
], - "updatedAt": "2019-08-24T14:15:22Z"
},
}Returns either a compact head-token view (default) or paged tokens for an append-only linear chain.
Implementations SHOULD use conditional retrieval and compare headTokenId before expensive sync work.
| logId required | string (Identifier) [ 3 .. 128 ] characters ^[A-Za-z0-9._:-]+$ Examples: a8bb9d18-c3bc-4f5b-9158-3ce0d48f4f8c eu-qts-registry Signed-token history namespace identifier. |
| view | string Default: "head" Enum: "head" "events" Controls head-only versus paged-token retrieval. |
| fromTokenId | string (Identifier) [ 3 .. 128 ] characters ^[A-Za-z0-9._:-]+$ Examples: fromTokenId=a8bb9d18-c3bc-4f5b-9158-3ce0d48f4f8c fromTokenId=eu-qts-registry Resume cursor for paged token retrieval. |
| limit | integer [ 1 .. 200 ] Default: 50 Page size for event retrieval. |
| If-None-Match | string ETag validator for conditional retrieval. |
{- "kind": "event",
- "logId": "a8bb9d18-c3bc-4f5b-9158-3ce0d48f4f8c",
- "view": "head",
- "headTokenId": "a8bb9d18-c3bc-4f5b-9158-3ce0d48f4f8c",
- "activeVerificationMethod": "string",
- "linearChain": true,
- "events": [
- {
- "eventId": "a8bb9d18-c3bc-4f5b-9158-3ce0d48f4f8c",
- "logId": "a8bb9d18-c3bc-4f5b-9158-3ce0d48f4f8c",
- "sequence": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "eventType": "rotate",
- "previousEventId": null,
- "actorController": "string",
- "delegatedIdentityContext": {
- "gdisSource": "../dictionary",
- "gqscdControllerDid": "string",
- "pidDelegationReference": "string"
}, - "declaredVerificationMethod": "string",
- "nextVerificationMethod": "string",
- "mergedCandidateHeadEventIds": [
- "a8bb9d18-c3bc-4f5b-9158-3ce0d48f4f8c"
], - "gossipEndpoints": [
- "../dictionary"
], - "reportEndpoint": "../dictionary",
- "blindVerificationMaterial": {
- "scheme": "oprf-blind",
- "materialReference": "../dictionary",
- "assertion": { }
}, - "payload": { },
- "proofs": [
- {
- "type": "DataIntegrityProof",
- "cryptosuite": "eddsa-jcs-2022",
- "verificationMethod": "string",
- "created": "2019-08-24T14:15:22Z",
- "proofPurpose": "assertionMethod",
- "proofValue": "string"
}
]
}
], - "nextFromTokenId": "a8bb9d18-c3bc-4f5b-9158-3ce0d48f4f8c"
}Accepts a signed history token for asynchronous processing.
Successful acceptance returns 202 Accepted; replication and merge-reconciliation outcomes are observed via GET event-log views.
| logId required | string (Identifier) [ 3 .. 128 ] characters ^[A-Za-z0-9._:-]+$ Examples: a8bb9d18-c3bc-4f5b-9158-3ce0d48f4f8c eu-qts-registry Signed-token history namespace identifier. |
required | object (EventEnvelope) Signed history token. Acceptance is determined by schema validity, directed linear chain-link validity, and proof verification. Standalone content-hash claims are ignored by protocol. |
| expectedHeadEventId | string (Identifier) [ 3 .. 128 ] characters ^[A-Za-z0-9._:-]+$ |
| correlationId | string [ 8 .. 128 ] characters |
{- "event": {
- "eventId": "a8bb9d18-c3bc-4f5b-9158-3ce0d48f4f8c",
- "logId": "a8bb9d18-c3bc-4f5b-9158-3ce0d48f4f8c",
- "sequence": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "eventType": "rotate",
- "previousEventId": null,
- "actorController": "string",
- "delegatedIdentityContext": {
- "gdisSource": "../dictionary",
- "gqscdControllerDid": "string",
- "pidDelegationReference": "string"
}, - "declaredVerificationMethod": "string",
- "nextVerificationMethod": "string",
- "mergedCandidateHeadEventIds": [
- "a8bb9d18-c3bc-4f5b-9158-3ce0d48f4f8c"
], - "gossipEndpoints": [
- "../dictionary"
], - "reportEndpoint": "../dictionary",
- "blindVerificationMaterial": {
- "scheme": "oprf-blind",
- "materialReference": "../dictionary",
- "assertion": { }
}, - "payload": { },
- "proofs": [
- {
- "type": "DataIntegrityProof",
- "cryptosuite": "eddsa-jcs-2022",
- "verificationMethod": "string",
- "created": "2019-08-24T14:15:22Z",
- "proofPurpose": "assertionMethod",
- "proofValue": "string"
}
]
}, - "expectedHeadEventId": "a8bb9d18-c3bc-4f5b-9158-3ce0d48f4f8c",
- "correlationId": "stringst"
}{- "status": "accepted",
- "correlationId": "string",
- "logId": "a8bb9d18-c3bc-4f5b-9158-3ce0d48f4f8c",
- "acceptedAt": "2019-08-24T14:15:22Z",
- "queuedEventId": "a8bb9d18-c3bc-4f5b-9158-3ce0d48f4f8c"
}Returns compact head-token metadata for opportunistic synchronization. Peers SHOULD compare this result before requesting token pages or merge-reconciliation processing.
| logId required | string (Identifier) [ 3 .. 128 ] characters ^[A-Za-z0-9._:-]+$ Examples: a8bb9d18-c3bc-4f5b-9158-3ce0d48f4f8c eu-qts-registry Signed-token history namespace identifier. |
| If-None-Match | string ETag validator for conditional retrieval. |
{- "kind": "event",
- "logId": "a8bb9d18-c3bc-4f5b-9158-3ce0d48f4f8c",
- "headTokenId": "a8bb9d18-c3bc-4f5b-9158-3ce0d48f4f8c",
- "activeVerificationMethod": "string",
- "linearChain": true,
- "eventCount": 0,
- "updatedAt": "2019-08-24T14:15:22Z",
- "recommendedPollSeconds": 1
}Retrieves one immutable signed history token by identifier.
| logId required | string (Identifier) [ 3 .. 128 ] characters ^[A-Za-z0-9._:-]+$ Examples: a8bb9d18-c3bc-4f5b-9158-3ce0d48f4f8c eu-qts-registry Signed-token history namespace identifier. |
| eventId required | string (Identifier) [ 3 .. 128 ] characters ^[A-Za-z0-9._:-]+$ Examples: a8bb9d18-c3bc-4f5b-9158-3ce0d48f4f8c eu-qts-registry Immutable signed-token identifier. |
{- "eventId": "a8bb9d18-c3bc-4f5b-9158-3ce0d48f4f8c",
- "logId": "a8bb9d18-c3bc-4f5b-9158-3ce0d48f4f8c",
- "sequence": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "eventType": "rotate",
- "previousEventId": "a8bb9d18-c3bc-4f5b-9158-3ce0d48f4f8c",
- "actorController": "string",
- "delegatedIdentityContext": {
- "gdisSource": "../dictionary",
- "gqscdControllerDid": "string",
- "pidDelegationReference": "string"
}, - "declaredVerificationMethod": "string",
- "nextVerificationMethod": "string",
- "mergedCandidateHeadEventIds": [
- "a8bb9d18-c3bc-4f5b-9158-3ce0d48f4f8c"
], - "gossipEndpoints": [
- "../dictionary"
], - "reportEndpoint": "../dictionary",
- "blindVerificationMaterial": {
- "scheme": "oprf-blind",
- "materialReference": "../dictionary",
- "assertion": { }
}, - "payload": { },
- "proofs": [
- {
- "type": "DataIntegrityProof",
- "cryptosuite": "eddsa-jcs-2022",
- "verificationMethod": "string",
- "created": "2019-08-24T14:15:22Z",
- "proofPurpose": "assertionMethod",
- "proofValue": "string"
}
]
}