Skip to content

TypeScript: @dnsid-ai/sdk — interfaces

Part of Core SDK (@dnsid-ai/sdk).

Defined in: packages/protocol/src/types.ts:44

lastTransitionAt: Date;

Defined in: packages/protocol/src/types.ts:46

optional revocationReason?: RevocationReason;

Defined in: packages/protocol/src/types.ts:47

state: AgentStatusState;

Defined in: packages/protocol/src/types.ts:45


Defined in: packages/protocol/src/log-events.ts:64

ISSUANCE shape required by the c2sp-tlog codec and verifier.

domain: string;

Defined in: packages/protocol/src/log-events.ts:30

IssuanceEvent.domain

optional entityKey?: IssuanceKeySlot;

Defined in: packages/protocol/src/log-events.ts:46

Accountable-entity record-signing key (ek) recorded in the event.

IssuanceEvent.entityKey

optional entitySig?: string;

Defined in: packages/protocol/src/log-events.ts:50

Entity-key signature over the canonical binding (base64url).

IssuanceEvent.entitySig

governanceId: string;

Defined in: packages/protocol/src/log-events.ts:31

IssuanceEvent.governanceId

initialEntityAlg: string;

Defined in: packages/protocol/src/log-events.ts:70

IssuanceEvent.initialEntityAlg

initialEntityKid: string;

Defined in: packages/protocol/src/log-events.ts:69

c2sp-tlog encoding of the accountable entity key.

IssuanceEvent.initialEntityKid

initialEntityPublicKey: DnsIdJWK;

Defined in: packages/protocol/src/log-events.ts:71

IssuanceEvent.initialEntityPublicKey

initialEntityThumbprint: string;

Defined in: packages/protocol/src/log-events.ts:72

IssuanceEvent.initialEntityThumbprint

initialOperationalAlg: string;

Defined in: packages/protocol/src/log-events.ts:66

IssuanceEvent.initialOperationalAlg

initialOperationalKid: string;

Defined in: packages/protocol/src/log-events.ts:65

c2sp-tlog encoding of the initial operational key.

IssuanceEvent.initialOperationalKid

initialOperationalPublicKey: DnsIdJWK;

Defined in: packages/protocol/src/log-events.ts:67

IssuanceEvent.initialOperationalPublicKey

initialOperationalThumbprint: string;

Defined in: packages/protocol/src/log-events.ts:68

IssuanceEvent.initialOperationalThumbprint

optional kid?: string;

Defined in: packages/protocol/src/log-events.ts:56

superseded by operationalKey/entityKey.

IssuanceEvent.kid

optional newOperationalProof?: string;

Defined in: packages/protocol/src/log-events.ts:13

Base64url new-operational-key proof of possession. Required for c2sp-tlog KEY_ROTATION.

IssuanceEvent.newOperationalProof

optional operationalCountersig?: string;

Defined in: packages/protocol/src/log-events.ts:11

Base64url operational-key countersignature. Required for draft-01 ISSUANCE.

IssuanceEvent.operationalCountersig

optional operationalKey?: IssuanceKeySlot;

Defined in: packages/protocol/src/log-events.ts:48

Initial operational key (ku) recorded in the event.

IssuanceEvent.operationalKey

optional operationalSig?: string;

Defined in: packages/protocol/src/log-events.ts:52

Operational-key countersignature over the same canonical binding (base64url).

IssuanceEvent.operationalSig

optional publicKey?: DnsIdJWK;

Defined in: packages/protocol/src/log-events.ts:58

superseded by operationalKey/entityKey.

IssuanceEvent.publicKey

optional sig?: string;

Defined in: packages/protocol/src/log-events.ts:9

Base64url signature. Set by IdentityManager.signAndWriteEvent; leave undefined when constructing.

IssuanceEvent.sig

optional signingKid?: string;

Defined in: packages/protocol/src/log-events.ts:7

Set by IdentityManager.signAndWriteEvent; leave undefined when constructing.

IssuanceEvent.signingKid

optional thumbprint?: string;

Defined in: packages/protocol/src/log-events.ts:60

superseded by the slot thumbprints.

IssuanceEvent.thumbprint

timestamp: Date;

Defined in: packages/protocol/src/log-events.ts:42

IssuanceEvent.timestamp

type: "ISSUANCE";

Defined in: packages/protocol/src/log-events.ts:29

IssuanceEvent.type


Defined in: packages/protocol/src/log-events.ts:111

  • BaseLogEvent

delegatee: string;

Defined in: packages/protocol/src/log-events.ts:114

domain: string;

Defined in: packages/protocol/src/log-events.ts:113

expiry: Date;

Defined in: packages/protocol/src/log-events.ts:116

optional newOperationalProof?: string;

Defined in: packages/protocol/src/log-events.ts:13

Base64url new-operational-key proof of possession. Required for c2sp-tlog KEY_ROTATION.

BaseLogEvent.newOperationalProof

optional operationalCountersig?: string;

Defined in: packages/protocol/src/log-events.ts:11

Base64url operational-key countersignature. Required for draft-01 ISSUANCE.

BaseLogEvent.operationalCountersig

scope: string;

Defined in: packages/protocol/src/log-events.ts:115

optional sig?: string;

Defined in: packages/protocol/src/log-events.ts:9

Base64url signature. Set by IdentityManager.signAndWriteEvent; leave undefined when constructing.

BaseLogEvent.sig

optional signingKid?: string;

Defined in: packages/protocol/src/log-events.ts:7

Set by IdentityManager.signAndWriteEvent; leave undefined when constructing.

BaseLogEvent.signingKid

timestamp: Date;

Defined in: packages/protocol/src/log-events.ts:117

type: "DELEGATION";

Defined in: packages/protocol/src/log-events.ts:112


Defined in: packages/protocol/src/types.ts:125

Single core configuration entry point. Omit identity for a verification-only manager.

optional identity?: IdentityConfig;

Defined in: packages/protocol/src/types.ts:126

optional transport?: TransportConfig;

Defined in: packages/protocol/src/types.ts:128

optional verification?: VerificationConfig;

Defined in: packages/protocol/src/types.ts:127


Defined in: packages/protocol/src/types.ts:30

[key: string]: unknown

optional alg?: string;

Defined in: packages/protocol/src/types.ts:34

JOSE algorithm metadata. Required for draft-01 live ek/ku keys.

optional crv?: string;

Defined in: packages/protocol/src/types.ts:36

optional e?: string;

Defined in: packages/protocol/src/types.ts:40

kid: string;

Defined in: packages/protocol/src/types.ts:32

kty: string;

Defined in: packages/protocol/src/types.ts:31

optional n?: string;

Defined in: packages/protocol/src/types.ts:39

optional use?: string;

Defined in: packages/protocol/src/types.ts:35

optional x?: string;

Defined in: packages/protocol/src/types.ts:37

optional y?: string;

Defined in: packages/protocol/src/types.ts:38


Defined in: packages/protocol/src/dns-resolver.ts:7

Pluggable DNS resolver dependency. Decouples verifyDomain from the system resolver.

fetchTXT(name, options?): Promise<[TXTRecord[], DNSSECState]>;

Defined in: packages/protocol/src/dns-resolver.ts:14

Fetches TXT records for the given DNS owner name.

string

Normalized FQDN without trailing dot (e.g. “_dnsid.agent.example”). MUST be treated as an absolute name — no search-domain expansion.

AbortSignal

Promise<[TXTRecord[], DNSSECState]>

The record set and the DNSSEC validation state of the response.


Defined in: packages/protocol/src/identity-manager.ts:54

data: unknown;

Defined in: packages/protocol/src/identity-manager.ts:55

tlsCert: TLSCertificate;

Defined in: packages/protocol/src/identity-manager.ts:56


Defined in: packages/protocol/src/identity-cache.ts:11

Cache for verified domain results. Held by IdentityManager and consulted at the start of every verifyDomain call.

Implementation requirements:

  • Get MUST return null for any entry whose VerifiedDomain.expiry() has passed.
  • Put MUST derive the entry TTL from result.expiry() and evict automatically when that time arrives.
  • Implementations MUST be safe for concurrent use.

evict(domain): void;

Defined in: packages/protocol/src/identity-cache.ts:19

Removes a domain from the cache immediately.

string

void

get(domain): VerifiedDomain | null;

Defined in: packages/protocol/src/identity-cache.ts:13

Returns the cached VerifiedDomain for a domain, or null if not cached or expired.

string

VerifiedDomain | null

put(domain, result): void;

Defined in: packages/protocol/src/identity-cache.ts:16

Stores a verified domain result. Entry expires at result.expiry().

string

VerifiedDomain

void


Defined in: packages/protocol/src/types.ts:63

Local identity publication settings (DnsidConfig.identity). Contains no verification or transport policy.

optional capabilitiesUrl?: string;

Defined in: packages/protocol/src/types.ts:83

HTTPS URL for the capabilities document (cu tag).

domain: string;

Defined in: packages/protocol/src/types.ts:65

FQDN of the DNSid identity. Normalized with normalizeFQDN on construction.

optional ekUrl?: string;

Defined in: packages/protocol/src/types.ts:77

HTTPS URL for the accountable-entity JWKS endpoint (ek tag). Required for draft-01 publishing.

governanceId: string;

Defined in: packages/protocol/src/types.ts:67

Registrant domain (gi tag).

optional kuUrl?: string;

Defined in: packages/protocol/src/types.ts:79

HTTPS URL for the identity’s operational/runtime JWKS endpoint (ku tag). Required for draft-01 publishing.

logRef: string;

Defined in: packages/protocol/src/types.ts:69

Log reference for the lr tag. Format: {method}:{entry-ref}.

optional maxKeyAge?: MaxKeyAge;

Defined in: packages/protocol/src/types.ts:75

Maximum signing key age for the ka tag.

optional policyFlags?: string;

Defined in: packages/protocol/src/types.ts:73

Comma-separated policy flags for the fl tag.

optional publishProfile?: string;

Defined in: packages/protocol/src/types.ts:81

_dnsid behavior profile to emit. Defaults to dnsid-draft-01.

statusUrl: string;

Defined in: packages/protocol/src/types.ts:71

HTTPS URL for the lifecycle status endpoint (su tag).


Defined in: packages/protocol/src/identity-manager.ts:84

Runtime objects injected into IdentityManager. Configuration data lives in DnsidConfig.

optional cache?: IdentityCache;

Defined in: packages/protocol/src/identity-manager.ts:91

optional dnsResolver?: DNSResolver;

Defined in: packages/protocol/src/identity-manager.ts:90

optional entityKeyProvider?: KeyProvider;

Defined in: packages/protocol/src/identity-manager.ts:88

Accountable-entity key provider for _dnsid signing and lifecycle events. Rejected without config.identity.

optional fetchJson?: JsonFetcher;

Defined in: packages/protocol/src/identity-manager.ts:92

optional keyProvider?: KeyProvider;

Defined in: packages/protocol/src/identity-manager.ts:86

Local operational signer. Required with config.identity; rejected without it.

optional logRegistry?: LogRegistry;

Defined in: packages/protocol/src/identity-manager.ts:89


Defined in: packages/protocol/src/identity-manager.ts:95

verifyDomain(
domain,
peerCert?,
options?
): Promise<VerifiedDomain>;

Defined in: packages/protocol/src/identity-manager.ts:96

string

TLSCertificate

VerificationOptions

Promise<VerifiedDomain>


Defined in: packages/protocol/src/log-events.ts:28

  • BaseLogEvent

domain: string;

Defined in: packages/protocol/src/log-events.ts:30

optional entityKey?: IssuanceKeySlot;

Defined in: packages/protocol/src/log-events.ts:46

Accountable-entity record-signing key (ek) recorded in the event.

optional entitySig?: string;

Defined in: packages/protocol/src/log-events.ts:50

Entity-key signature over the canonical binding (base64url).

governanceId: string;

Defined in: packages/protocol/src/log-events.ts:31

optional initialEntityAlg?: string;

Defined in: packages/protocol/src/log-events.ts:39

optional initialEntityKid?: string;

Defined in: packages/protocol/src/log-events.ts:38

c2sp-tlog encoding of the accountable entity key.

optional initialEntityPublicKey?: DnsIdJWK;

Defined in: packages/protocol/src/log-events.ts:40

optional initialEntityThumbprint?: string;

Defined in: packages/protocol/src/log-events.ts:41

optional initialOperationalAlg?: string;

Defined in: packages/protocol/src/log-events.ts:34

optional initialOperationalKid?: string;

Defined in: packages/protocol/src/log-events.ts:33

c2sp-tlog encoding of the initial operational key.

optional initialOperationalPublicKey?: DnsIdJWK;

Defined in: packages/protocol/src/log-events.ts:35

optional initialOperationalThumbprint?: string;

Defined in: packages/protocol/src/log-events.ts:36

optional kid?: string;

Defined in: packages/protocol/src/log-events.ts:56

superseded by operationalKey/entityKey.

optional newOperationalProof?: string;

Defined in: packages/protocol/src/log-events.ts:13

Base64url new-operational-key proof of possession. Required for c2sp-tlog KEY_ROTATION.

BaseLogEvent.newOperationalProof

optional operationalCountersig?: string;

Defined in: packages/protocol/src/log-events.ts:11

Base64url operational-key countersignature. Required for draft-01 ISSUANCE.

BaseLogEvent.operationalCountersig

optional operationalKey?: IssuanceKeySlot;

Defined in: packages/protocol/src/log-events.ts:48

Initial operational key (ku) recorded in the event.

optional operationalSig?: string;

Defined in: packages/protocol/src/log-events.ts:52

Operational-key countersignature over the same canonical binding (base64url).

optional publicKey?: DnsIdJWK;

Defined in: packages/protocol/src/log-events.ts:58

superseded by operationalKey/entityKey.

optional sig?: string;

Defined in: packages/protocol/src/log-events.ts:9

Base64url signature. Set by IdentityManager.signAndWriteEvent; leave undefined when constructing.

BaseLogEvent.sig

optional signingKid?: string;

Defined in: packages/protocol/src/log-events.ts:7

Set by IdentityManager.signAndWriteEvent; leave undefined when constructing.

BaseLogEvent.signingKid

optional thumbprint?: string;

Defined in: packages/protocol/src/log-events.ts:60

superseded by the slot thumbprints.

timestamp: Date;

Defined in: packages/protocol/src/log-events.ts:42

type: "ISSUANCE";

Defined in: packages/protocol/src/log-events.ts:29


Defined in: packages/protocol/src/log-events.ts:19

A key slot recorded in a draft-01 bilateral ISSUANCE event (ek or ku).

alg: string;

Defined in: packages/protocol/src/log-events.ts:25

JWS alg the slot’s signature is produced/verified under.

jwk: DnsIdJWK;

Defined in: packages/protocol/src/log-events.ts:20

optional kid?: string;

Defined in: packages/protocol/src/log-events.ts:23

thumbprint: string;

Defined in: packages/protocol/src/log-events.ts:22

RFC 7638 JWK thumbprint of jwk.


Defined in: packages/sdk/src/managed-issuance.ts:64

activateAcceptedIssuance: (issuance) => Promise<void>;

Defined in: packages/sdk/src/managed-issuance.ts:61

Publishes/converges status only after exact-byte log acceptance is durably bound. Must be idempotent because a crash can replay it before activated is persisted.

ManagedIssuanceState

Promise<void>

ManagedIssuanceCoordination.activateAcceptedIssuance

createIssuance: (intent) => Promise<ManagedIssuanceState | undefined>;

Defined in: packages/sdk/src/managed-issuance.ts:54

Atomically creates the intent; returns the existing operation if the create lost a race.

ManagedIssuanceState

Promise<ManagedIssuanceState | undefined>

ManagedIssuanceCoordination.createIssuance

domain: string;

Defined in: packages/sdk/src/managed-issuance.ts:65

entityKey: DnsIdJWK;

Defined in: packages/sdk/src/managed-issuance.ts:68

Trusted accountable-entity public key whose existing sigs.ae is required.

governanceId: string;

Defined in: packages/sdk/src/managed-issuance.ts:66

idempotencyKey: string;

Defined in: packages/sdk/src/managed-issuance.ts:71

loadIssuance: () => Promise<ManagedIssuanceState | undefined>;

Defined in: packages/sdk/src/managed-issuance.ts:52

Loads the one durable setup operation, if it exists.

Promise<ManagedIssuanceState | undefined>

ManagedIssuanceCoordination.loadIssuance

optional logReference?: string;

Defined in: packages/sdk/src/managed-issuance.ts:73

Optional configured reference; a registry response must match it exactly.

operationalKeyProvider: KeyProvider;

Defined in: packages/sdk/src/managed-issuance.ts:69

persistIssuance: (issuance) => Promise<void>;

Defined in: packages/sdk/src/managed-issuance.ts:56

Atomically persists the intent, exact bytes, and every reconciliation transition.

ManagedIssuanceState

Promise<void>

ManagedIssuanceCoordination.persistIssuance

registryClient: ManagedIssuanceRegistry;

Defined in: packages/sdk/src/managed-issuance.ts:70


Defined in: packages/protocol/src/identity-manager.ts:74

optional allowedHost?: string;

Defined in: packages/protocol/src/identity-manager.ts:76

optional domainBoundary?: boolean;

Defined in: packages/protocol/src/identity-manager.ts:77

optional maxResponseBytes?: number;

Defined in: packages/protocol/src/identity-manager.ts:78

optional signal?: AbortSignal;

Defined in: packages/protocol/src/identity-manager.ts:75


Defined in: packages/protocol/src/key-provider.ts:14

Standardized interface for Key Management Systems.

Implementations may wrap local key files, cloud KMS (AWS KMS, GCP Cloud KMS, Azure Key Vault), or HSMs. The SDK never handles private key material directly.

Key states:

  • Pending: generated but not yet promoted (excluded from ListKeyIds / JWKS)
  • Active: current signing key (in JWKS; used for signing)
  • Retained: rotated out; kept for verification/audit (not used for new signing)

activate(kid): Promise<void>;

Defined in: packages/protocol/src/key-provider.ts:55

Promotes a pending key to active. The previously active key transitions to retained.

string

Promise<void>

generateKey(): Promise<string>;

Defined in: packages/protocol/src/key-provider.ts:50

Generates a new key pair in the pending state. Returns the new key’s kid.

Promise<string>

jwk(kid): Promise<DnsIdJWK>;

Defined in: packages/protocol/src/key-provider.ts:27

Returns the JWK representation of a key by ID (active, pending, or retained). Raises if not found.

string

Promise<DnsIdJWK>

listKeyIds(): Promise<string[]>;

Defined in: packages/protocol/src/key-provider.ts:33

Returns the IDs of all active and retained keys (pending keys excluded). The active key ID MUST appear first; retained keys follow in any order.

Promise<string[]>

optional purge(kid): Promise<void>;

Defined in: packages/protocol/src/key-provider.ts:63

string

Promise<void>

Use supersede().

sign(payload): Promise<Uint8Array<ArrayBufferLike>>;

Defined in: packages/protocol/src/key-provider.ts:39

Signs the given payload with the current active signing key. Returns raw signature bytes.

Uint8Array

Promise<Uint8Array<ArrayBufferLike>>

signingKey(): Promise<DnsIdJWK>;

Defined in: packages/protocol/src/key-provider.ts:21

Returns the JWK representation of the current active public signing key. The returned kid MUST NOT contain ’#’.

Promise<DnsIdJWK>

signKey(kid, payload): Promise<Uint8Array<ArrayBufferLike>>;

Defined in: packages/protocol/src/key-provider.ts:42

Signs with a specified active or pending key.

string

Uint8Array

Promise<Uint8Array<ArrayBufferLike>>

supersede(kid): Promise<void>;

Defined in: packages/protocol/src/key-provider.ts:60

Supersedes and removes a retained key from this provider’s published key set.

string

Promise<void>


Defined in: packages/protocol/src/log-events.ts:75

  • BaseLogEvent

domain: string;

Defined in: packages/protocol/src/log-events.ts:77

newOperationalAlg: string;

Defined in: packages/protocol/src/log-events.ts:81

newOperationalKid: string;

Defined in: packages/protocol/src/log-events.ts:80

optional newOperationalProof?: string;

Defined in: packages/protocol/src/log-events.ts:13

Base64url new-operational-key proof of possession. Required for c2sp-tlog KEY_ROTATION.

BaseLogEvent.newOperationalProof

newOperationalPublicKey: DnsIdJWK;

Defined in: packages/protocol/src/log-events.ts:83

newOperationalThumbprint: string;

Defined in: packages/protocol/src/log-events.ts:82

optional operationalCountersig?: string;

Defined in: packages/protocol/src/log-events.ts:11

Base64url operational-key countersignature. Required for draft-01 ISSUANCE.

BaseLogEvent.operationalCountersig

previousOperationalKid: string;

Defined in: packages/protocol/src/log-events.ts:78

previousOperationalThumbprint: string;

Defined in: packages/protocol/src/log-events.ts:79

optional sig?: string;

Defined in: packages/protocol/src/log-events.ts:9

Base64url signature. Set by IdentityManager.signAndWriteEvent; leave undefined when constructing.

BaseLogEvent.sig

optional signingKid?: string;

Defined in: packages/protocol/src/log-events.ts:7

Set by IdentityManager.signAndWriteEvent; leave undefined when constructing.

BaseLogEvent.signingKid

timestamp: Date;

Defined in: packages/protocol/src/log-events.ts:84

type: "KEY_ROTATION";

Defined in: packages/protocol/src/log-events.ts:76


Defined in: packages/protocol/src/log.ts:33

Write interface for the agent’s own immutable log. Implementations may wrap a blockchain, CT-style transparency log, SCITT service, or any append-only log.

Implementations may satisfy both Log and LogReader; C2SP uses a separate prepared-event append workflow instead of the generic writeEvent method.

canonical(event): Promise<Uint8Array<ArrayBufferLike>>;

Defined in: packages/protocol/src/log.ts:39

Returns the canonical byte representation of the event for this log method. Called by IdentityManager.signAndWriteEvent to produce the bytes that are signed. MUST produce identical output to LogReader.canonical for the same event.

LogEvent

Promise<Uint8Array<ArrayBufferLike>>

writeEvent(event): Promise<string>;

Defined in: packages/protocol/src/log.ts:46

Appends a signed event to the log. The event MUST already carry the signatures required by its log method before writeEvent is called. Returns a LogRef identifying the recorded entry.

LogEvent

Promise<string>


Defined in: packages/protocol/src/log.ts:7

Verified proof boundary accepted for a complete lifecycle-state decision.

checkpoint: Uint8Array;

Defined in: packages/protocol/src/log.ts:21

Opaque accepted checkpoint or equivalent log-state evidence.

completenessMode: string;

Defined in: packages/protocol/src/log.ts:19

Binding-defined completeness mechanism.

completeThrough: string;

Defined in: packages/protocol/src/log.ts:17

Opaque method-specific position through which completeness was established.

freshnessTime: Date;

Defined in: packages/protocol/src/log.ts:23

Independently verified freshness time.

optional historyEnd?: string;

Defined in: packages/protocol/src/log.ts:15

Method-specific final applied event reference, when one exists.

historyStart: string;

Defined in: packages/protocol/src/log.ts:13

Method-specific genesis reference included in the verified history.

loggedState: AgentStatusState;

Defined in: packages/protocol/src/log.ts:11

Verified lifecycle state through historyEnd, not current protocol status.

logReference: string;

Defined in: packages/protocol/src/log.ts:9

Complete identity-instance log reference verified by the binding.


Defined in: packages/protocol/src/log.ts:57

Read and verify interface for a specific log entry. Bound at construction to a full lr value (e.g. “algorand:AGENT_ADDR_BASE32”).

Evidence-returning methods MUST verify the applicable inclusion, timestamp, append-only consistency, and lifecycle signatures before returning success. canonical only serializes an event; it does not verify log evidence.

canonical(event): Promise<Uint8Array<ArrayBufferLike>>;

Defined in: packages/protocol/src/log.ts:63

Returns the canonical byte representation of the event for this log method. Used to verify the signatures required by the log method on events read from the log. MUST produce identical output to Log.canonical for the same supported event.

LogEvent

Promise<Uint8Array<ArrayBufferLike>>

keyTimestamp(domain, keyThumbprint): Promise<Date>;

Defined in: packages/protocol/src/log.ts:69

Returns the timestamp at which the given key thumbprint was bound to the domain (ISSUANCE or KEY_ROTATION event). Used for ka validation.

string

string

Promise<Date>

readEvent(ref): Promise<LogEvent>;

Defined in: packages/protocol/src/log.ts:92

Reads a single event by its log reference. MUST verify inclusion proof and timestamp proof before returning.

string

Promise<LogEvent>

rebuildHistory(domain): Promise<LogEvent[]>;

Defined in: packages/protocol/src/log.ts:102

Rebuilds the full event history for the domain in authoritative log order. MUST verify inclusion proofs, timestamp proofs, append-only consistency, and required lifecycle signatures on every returned event. Event signature verification MUST use the public keys valid for that event in the reconstructed lifecycle history. Events with invalid signatures MUST NOT be returned.

string

Promise<LogEvent[]>

verifyBilateralBinding(
record,
entityKey,
operationalKey
): Promise<{
initialEntityThumbprint: string;
initialOperationalThumbprint: string;
timestamp: Date;
}>;

Defined in: packages/protocol/src/log.ts:72

Verifies draft-01 bilateral ISSUANCE binding for the current TXT record.

unknown

unknown

unknown

Promise<{ initialEntityThumbprint: string; initialOperationalThumbprint: string; timestamp: Date; }>

verifyNonRevocation(domain, at): Promise<LoggedStateEvidence>;

Defined in: packages/protocol/src/log.ts:86

Verifies that the domain is neither REVOKED nor RETIRED at the given timestamp. Raises on a terminal state or if complete, fresh evidence cannot be established. Returns the accepted proof boundary.

string

Date

Promise<LoggedStateEvidence>

verifyOperationalContinuity(
domain,
initialOperationalThumbprint,
currentOperationalThumbprint
): Promise<void>;

Defined in: packages/protocol/src/log.ts:79

Verifies KEY_ROTATION continuity from ISSUANCE to the current operational key.

string

string

string

Promise<void>


Defined in: packages/sdk/src/managed-issuance.ts:50

activateAcceptedIssuance: (issuance) => Promise<void>;

Defined in: packages/sdk/src/managed-issuance.ts:61

Publishes/converges status only after exact-byte log acceptance is durably bound. Must be idempotent because a crash can replay it before activated is persisted.

ManagedIssuanceState

Promise<void>

createIssuance: (intent) => Promise<ManagedIssuanceState | undefined>;

Defined in: packages/sdk/src/managed-issuance.ts:54

Atomically creates the intent; returns the existing operation if the create lost a race.

ManagedIssuanceState

Promise<ManagedIssuanceState | undefined>

loadIssuance: () => Promise<ManagedIssuanceState | undefined>;

Defined in: packages/sdk/src/managed-issuance.ts:52

Loads the one durable setup operation, if it exists.

Promise<ManagedIssuanceState | undefined>

persistIssuance: (issuance) => Promise<void>;

Defined in: packages/sdk/src/managed-issuance.ts:56

Atomically persists the intent, exact bytes, and every reconciliation transition.

ManagedIssuanceState

Promise<void>


Defined in: packages/sdk/src/managed-issuance.ts:17

prepareIssuance(domain, idempotencyKey): Promise<PreparedRegistryEvent>;

Defined in: packages/sdk/src/managed-issuance.ts:18

string

string

Promise<PreparedRegistryEvent>

submitPreparedEvent(
domain,
entryBytes,
idempotencyKey
): Promise<SubmissionResult>;

Defined in: packages/sdk/src/managed-issuance.ts:19

string

Uint8Array

string

Promise<SubmissionResult>


Defined in: packages/sdk/src/managed-issuance.ts:22

readonly activated: boolean;

Defined in: packages/sdk/src/managed-issuance.ts:41

readonly domain: string;

Defined in: packages/sdk/src/managed-issuance.ts:23

readonly entityKid: string;

Defined in: packages/sdk/src/managed-issuance.ts:26

readonly entityThumbprint: string;

Defined in: packages/sdk/src/managed-issuance.ts:27

readonly optional entryBytes?: Uint8Array<ArrayBufferLike>;

Defined in: packages/sdk/src/managed-issuance.ts:33

Exact completed canonical bytes. Undefined only for an intent.

readonly optional entryHash?: string;

Defined in: packages/sdk/src/managed-issuance.ts:35

SHA-256 of entryBytes, persisted before the first submission.

readonly governanceId: string;

Defined in: packages/sdk/src/managed-issuance.ts:24

readonly idempotencyKey: string;

Defined in: packages/sdk/src/managed-issuance.ts:25

readonly optional logReference?: string;

Defined in: packages/sdk/src/managed-issuance.ts:31

Undefined only while the durable intent precedes remote preparation.

readonly operationalKid: string;

Defined in: packages/sdk/src/managed-issuance.ts:28

readonly operationalThumbprint: string;

Defined in: packages/sdk/src/managed-issuance.ts:29

readonly optional submission?: ManagedIssuanceSubmission;

Defined in: packages/sdk/src/managed-issuance.ts:36

readonly optional terminalFailure?: object;

Defined in: packages/sdk/src/managed-issuance.ts:37

readonly optional errorCode?: string;
readonly stage: "preparation" | "submission";

Defined in: packages/sdk/src/managed-key-rotation.ts:20

prepareKeyRotation(
domain,
request,
idempotencyKey
): Promise<PreparedRegistryEvent>;

Defined in: packages/sdk/src/managed-key-rotation.ts:21

string

KeyRotationPreparationRequest

string

Promise<PreparedRegistryEvent>

submitPreparedEvent(
domain,
entryBytes,
idempotencyKey
): Promise<SubmissionResult>;

Defined in: packages/sdk/src/managed-key-rotation.ts:26

string

Uint8Array

string

Promise<SubmissionResult>


Defined in: packages/sdk/src/managed-key-rotation.ts:46

readonly activated: boolean;

Defined in: packages/sdk/src/managed-key-rotation.ts:58

readonly applicationSigningPaused: boolean;

Defined in: packages/sdk/src/managed-key-rotation.ts:59

readonly domain: string;

Defined in: packages/sdk/src/managed-key-rotation.ts:47

readonly entryBytes: Uint8Array;

Defined in: packages/sdk/src/managed-key-rotation.ts:55

Persist these exact bytes with idempotencyKey while activated is false. Callers must pause new application signing until this rotation is accepted.

readonly idempotencyKey: string;

Defined in: packages/sdk/src/managed-key-rotation.ts:56

readonly logReference: string;

Defined in: packages/sdk/src/managed-key-rotation.ts:48

readonly newKid: string;

Defined in: packages/sdk/src/managed-key-rotation.ts:50

readonly previousKid: string;

Defined in: packages/sdk/src/managed-key-rotation.ts:49

readonly optional submission?: SubmissionResult;

Defined in: packages/sdk/src/managed-key-rotation.ts:57


Defined in: packages/protocol/src/log-events.ts:100

  • BaseLogEvent

domain: string;

Defined in: packages/protocol/src/log-events.ts:102

finalEntryRef: string;

Defined in: packages/protocol/src/log-events.ts:105

newLog: string;

Defined in: packages/protocol/src/log-events.ts:104

optional newOperationalProof?: string;

Defined in: packages/protocol/src/log-events.ts:13

Base64url new-operational-key proof of possession. Required for c2sp-tlog KEY_ROTATION.

BaseLogEvent.newOperationalProof

optional operationalCountersig?: string;

Defined in: packages/protocol/src/log-events.ts:11

Base64url operational-key countersignature. Required for draft-01 ISSUANCE.

BaseLogEvent.operationalCountersig

previousLog: string;

Defined in: packages/protocol/src/log-events.ts:103

optional sig?: string;

Defined in: packages/protocol/src/log-events.ts:9

Base64url signature. Set by IdentityManager.signAndWriteEvent; leave undefined when constructing.

BaseLogEvent.sig

optional signingKid?: string;

Defined in: packages/protocol/src/log-events.ts:7

Set by IdentityManager.signAndWriteEvent; leave undefined when constructing.

BaseLogEvent.signingKid

timestamp: Date;

Defined in: packages/protocol/src/log-events.ts:106

type: "MIGRATION";

Defined in: packages/protocol/src/log-events.ts:101


Defined in: packages/protocol/src/identity-manager.ts:59

publishKeySet: (keySet) => Promise<void>;

Defined in: packages/protocol/src/identity-manager.ts:61

Publishes the pending operational JWKS at the configured ku endpoint before continuity is appended.

JWKS

Promise<void>

optional timestamp?: Date;

Defined in: packages/protocol/src/identity-manager.ts:62


Defined in: packages/protocol/src/identity-manager.ts:65

event: KeyRotationEvent;

Defined in: packages/protocol/src/identity-manager.ts:66

keySet: JWKS;

Defined in: packages/protocol/src/identity-manager.ts:68

logRef: string;

Defined in: packages/protocol/src/identity-manager.ts:67


Defined in: packages/sdk/src/managed-issuance.ts:76

activateAcceptedIssuance: (issuance) => Promise<void>;

Defined in: packages/sdk/src/managed-issuance.ts:61

Publishes/converges status only after exact-byte log acceptance is durably bound. Must be idempotent because a crash can replay it before activated is persisted.

ManagedIssuanceState

Promise<void>

ManagedIssuanceCoordination.activateAcceptedIssuance

createIssuance: (intent) => Promise<ManagedIssuanceState | undefined>;

Defined in: packages/sdk/src/managed-issuance.ts:54

Atomically creates the intent; returns the existing operation if the create lost a race.

ManagedIssuanceState

Promise<ManagedIssuanceState | undefined>

ManagedIssuanceCoordination.createIssuance

entityKey: DnsIdJWK;

Defined in: packages/sdk/src/managed-issuance.ts:77

loadIssuance: () => Promise<ManagedIssuanceState | undefined>;

Defined in: packages/sdk/src/managed-issuance.ts:52

Loads the one durable setup operation, if it exists.

Promise<ManagedIssuanceState | undefined>

ManagedIssuanceCoordination.loadIssuance

operationalKeyProvider: KeyProvider;

Defined in: packages/sdk/src/managed-issuance.ts:78

persistIssuance: (issuance) => Promise<void>;

Defined in: packages/sdk/src/managed-issuance.ts:56

Atomically persists the intent, exact bytes, and every reconciliation transition.

ManagedIssuanceState

Promise<void>

ManagedIssuanceCoordination.persistIssuance

registryClient: ManagedIssuanceRegistry;

Defined in: packages/sdk/src/managed-issuance.ts:79


ResumeManagedOperationalKeyRotationOptions

Section titled “ResumeManagedOperationalKeyRotationOptions”

Defined in: packages/sdk/src/managed-key-rotation.ts:62

keyProvider: KeyProvider;

Defined in: packages/sdk/src/managed-key-rotation.ts:63

persistRotation: (rotation) => Promise<void>;

Defined in: packages/sdk/src/managed-key-rotation.ts:66

ManagedKeyRotationResult

Promise<void>

registryClient: Pick<ManagedKeyRotationRegistry, "submitPreparedEvent">;

Defined in: packages/sdk/src/managed-key-rotation.ts:64

rotation: ManagedKeyRotationResult;

Defined in: packages/sdk/src/managed-key-rotation.ts:65

setApplicationSigningPaused: (paused) => Promise<void>;

Defined in: packages/sdk/src/managed-key-rotation.ts:67

boolean

Promise<void>


Defined in: packages/protocol/src/log-events.ts:94

  • BaseLogEvent

domain: string;

Defined in: packages/protocol/src/log-events.ts:96

optional newOperationalProof?: string;

Defined in: packages/protocol/src/log-events.ts:13

Base64url new-operational-key proof of possession. Required for c2sp-tlog KEY_ROTATION.

BaseLogEvent.newOperationalProof

optional operationalCountersig?: string;

Defined in: packages/protocol/src/log-events.ts:11

Base64url operational-key countersignature. Required for draft-01 ISSUANCE.

BaseLogEvent.operationalCountersig

optional sig?: string;

Defined in: packages/protocol/src/log-events.ts:9

Base64url signature. Set by IdentityManager.signAndWriteEvent; leave undefined when constructing.

BaseLogEvent.sig

optional signingKid?: string;

Defined in: packages/protocol/src/log-events.ts:7

Set by IdentityManager.signAndWriteEvent; leave undefined when constructing.

BaseLogEvent.signingKid

timestamp: Date;

Defined in: packages/protocol/src/log-events.ts:97

type: "RETIREMENT";

Defined in: packages/protocol/src/log-events.ts:95


Defined in: packages/protocol/src/retry.ts:3

optional initialDelayMs?: number;

Defined in: packages/protocol/src/retry.ts:7

Delay before the first retry. Default: 100ms.

optional jitter?: boolean;

Defined in: packages/protocol/src/retry.ts:13

Apply full jitter in the range [0, delay]. Default: true.

optional maxAttempts?: number;

Defined in: packages/protocol/src/retry.ts:5

Total attempts including the initial call. Default: 3.

optional maxDelayMs?: number;

Defined in: packages/protocol/src/retry.ts:9

Maximum delay between attempts. Default: 2000ms.

optional multiplier?: number;

Defined in: packages/protocol/src/retry.ts:11

Exponential multiplier applied after each failed attempt. Default: 2.

optional shouldRetry?: (error, attempt) => boolean;

Defined in: packages/protocol/src/retry.ts:15

Optional policy override. Defaults to retrying transient VerificationError only.

unknown

number

boolean

optional sleep?: (ms) => Promise<void>;

Defined in: packages/protocol/src/retry.ts:17

Test hook for sleeping.

number

Promise<void>


Defined in: packages/protocol/src/log-events.ts:87

  • BaseLogEvent

domain: string;

Defined in: packages/protocol/src/log-events.ts:89

optional newOperationalProof?: string;

Defined in: packages/protocol/src/log-events.ts:13

Base64url new-operational-key proof of possession. Required for c2sp-tlog KEY_ROTATION.

BaseLogEvent.newOperationalProof

optional operationalCountersig?: string;

Defined in: packages/protocol/src/log-events.ts:11

Base64url operational-key countersignature. Required for draft-01 ISSUANCE.

BaseLogEvent.operationalCountersig

reason:
| "keyCompromise"
| "policyViolation"
| "superseded"
| "cessationOfOperation";

Defined in: packages/protocol/src/log-events.ts:91

optional sig?: string;

Defined in: packages/protocol/src/log-events.ts:9

Base64url signature. Set by IdentityManager.signAndWriteEvent; leave undefined when constructing.

BaseLogEvent.sig

optional signingKid?: string;

Defined in: packages/protocol/src/log-events.ts:7

Set by IdentityManager.signAndWriteEvent; leave undefined when constructing.

BaseLogEvent.signingKid

timestamp: Date;

Defined in: packages/protocol/src/log-events.ts:90

type: "REVOCATION";

Defined in: packages/protocol/src/log-events.ts:88


Defined in: packages/sdk/src/managed-key-rotation.ts:33

domain: string;

Defined in: packages/sdk/src/managed-key-rotation.ts:34

idempotencyKey: string;

Defined in: packages/sdk/src/managed-key-rotation.ts:39

keyProvider: KeyProvider;

Defined in: packages/sdk/src/managed-key-rotation.ts:37

logReference: string;

Defined in: packages/sdk/src/managed-key-rotation.ts:36

Exact unindexed c2sp-tlog reference configured for this identity.

persistRotation: (rotation) => Promise<void>;

Defined in: packages/sdk/src/managed-key-rotation.ts:41

Durably persists exact bytes and every subsequent reconciliation state.

ManagedKeyRotationResult

Promise<void>

registryClient: ManagedKeyRotationRegistry;

Defined in: packages/sdk/src/managed-key-rotation.ts:38

setApplicationSigningPaused: (paused) => Promise<void>;

Defined in: packages/sdk/src/managed-key-rotation.ts:43

Pauses application signing before submission and resumes it only after durable activation.

boolean

Promise<void>


Defined in: packages/sdk/src/conformance.ts:9

Immutable protocol-facing conformance metadata for this SDK release.

readonly knownDeviations: readonly string[];

Defined in: packages/sdk/src/conformance.ts:14

readonly logBindings: Readonly<Record<string, string>>;

Defined in: packages/sdk/src/conformance.ts:13

readonly publishProfile: string;

Defined in: packages/sdk/src/conformance.ts:10

readonly specificationStatus: "internet-draft" | "rfc";

Defined in: packages/sdk/src/conformance.ts:12

readonly verificationProfiles: Readonly<Record<string, string>>;

Defined in: packages/sdk/src/conformance.ts:11


Defined in: packages/protocol/src/identity-manager.ts:99

config: object;

Defined in: packages/protocol/src/identity-manager.ts:100

optional identity?: object;
domain: string;

getKeyProvider(): KeyProvider;

Defined in: packages/protocol/src/identity-manager.ts:101

KeyProvider

verifyDomain(
domain,
peerCert?,
options?
): Promise<VerifiedDomain>;

Defined in: packages/protocol/src/identity-manager.ts:96

string

TLSCertificate

VerificationOptions

Promise<VerifiedDomain>

IdentityResolver.verifyDomain


Defined in: packages/protocol/src/types.ts:50

notAfter: Date;

Defined in: packages/protocol/src/types.ts:51

san: string[];

Defined in: packages/protocol/src/types.ts:52


Defined in: packages/protocol/src/types.ts:105

SDK-managed DNS and HTTPS deployment settings (DnsidConfig.transport). Never alters protocol semantics.

optional caBundlePath?: string;

Defined in: packages/protocol/src/types.ts:109

Path to a PEM CA bundle appended to the system root certificates for TLS verification.

optional dnsServer?: string;

Defined in: packages/protocol/src/types.ts:107

Custom DNS server (host, host:port, or [ipv6]:port). Omit to use the system resolver.

optional privateAddressHosts?: readonly string[];

Defined in: packages/protocol/src/types.ts:121

Hostnames, or leading-dot suffixes such as .test, whose SDK-managed HTTPS destinations may resolve to loopback or private-use addresses. An exact entry matches only that name; .test matches test and every name beneath it on a DNS-label boundary, case-insensitively and ignoring a trailing dot. Link-local, multicast, reserved, and mixed public/private resolutions stay rejected, IP-literal URLs are never exempted, and every redirect hop is matched independently. Nothing is allowed by default; there is no built-in .test exemption. Entries are validated at construction (IP literals, ports, schemes, paths, credentials → ArgumentError). Applies only to the default fetcher; rejected when fetchJson is injected. Not a DNSid protocol field.


Defined in: packages/protocol/src/types.ts:87

One counterparty allowlist entry. Exact gi match; optional pins on the current record-signing key.

optional entityKeyThumbprints?: string[];

Defined in: packages/protocol/src/types.ts:91

Unpadded base64url RFC 7638 SHA-256 thumbprints the current ek signing key must match. Non-empty when present.

governanceId: string;

Defined in: packages/protocol/src/types.ts:89

Accountable-entity governance domain. Normalized with normalizeFQDN on construction.


Defined in: packages/protocol/src/types.ts:57

strings: string[];

Defined in: packages/protocol/src/types.ts:58

ttl: number;

Defined in: packages/protocol/src/types.ts:59


Defined in: packages/protocol/src/types.ts:95

Protocol verification and counterparty acceptance settings (DnsidConfig.verification).

optional dnssecMode?: DNSSECMode;

Defined in: packages/protocol/src/types.ts:99

DNSSEC enforcement mode. Default: ‘auto’.

optional statusCheckInterval?: number;

Defined in: packages/protocol/src/types.ts:97

Maximum age (seconds) of cached status before re-fetching su. Default: 0 (re-fetch every call).

optional trustedEntities?: TrustedEntity[];

Defined in: packages/protocol/src/types.ts:101

Counterparty allowlist. Absent: no acceptance decision. []: deny all.


Defined in: packages/protocol/src/verification-budget.ts:3

optional signal?: AbortSignal;

Defined in: packages/protocol/src/verification-budget.ts:6

optional timeoutMs?: number;

Defined in: packages/protocol/src/verification-budget.ts:5

Overall invocation budget, including all discovery and evidence. Default: 30 seconds.