TrustGraph

Browse api referenceAPI referenceAttestationsBind a deviceContent certificatesDevice authorityEdgesEpoch commitmentsExternal signing keysGit signer membershipGraph keysPublic handlesHealth and readinessNodes and account deletionReachabilityRelationship tags

Epoch commitments

Read current graph roots and compare an earlier event-log commitment.

Auth: No device authorization.

Request and response

Angle-bracket values describe placeholders, including nested objects and numeric types; these are wire shapes, not captured service data. Replace them before sending.

GET /v1/graph/epoch/current HTTP/1.1
Host: trust-staging.rebellion.systems

Response shape:

{
  "graphEpochRoot": "<graph-root>",
  "poseidonEpochRoot": "<poseidon-root>",
  "eventLogRoot": "<log-root>",
  "eventLogSize": "<nonnegative-integer>"
}

Current commitment

GET /v1/graph/epoch/current requires no authorization. It returns:

export type EpochCommitment = {
  graphEpochRoot: string;
  poseidonEpochRoot: string;
  eventLogRoot: string;
  eventLogSize: number;
};

graphEpochRoot commits to current active edge state. poseidonEpochRoot is the circuit-compatible graph commitment. eventLogRoot and eventLogSize identify the append-only history commitment. Keep a previously trusted root-and-size pair if you want to compare history later.

eventLogSize is a non-negative safe integer. poseidonEpochRoot is a canonical BN254 field element encoded as 0x followed by 64 lowercase hexadecimal characters. The current server always returns both fields.

The SDK makes both fields optional for legacy responses and saved snapshots. Missing fields remain absent; they do not become zero or null. Explicit null, malformed values, unsafe or negative sizes, and non-canonical field elements are rejected.

Append-only report

POST /v1/graph/epoch/append-only takes {eventLogRoot, eventLogSize}. The size must be a nonnegative integer; malformed request shapes return 400. No device signature is required.

The response contains appendOnly, unsignedServerAssertion: true, prior, current, assertion and an optional reason. The server compares the supplied prior pair with the prefix of its current log at that size.

Does not establishThis endpoint returns an unsigned server assertion, not a signed attestation or an independently verified consistency proof. It does not establish the authenticity of the prior pair, completeness of what was logged, or that the reported state is the latest. The current-epoch GET response is also unsigned.

Use the commitment fields inside a verified reachability attestation when you need signed evidence tied to a query. A graph state root may change while earlier event history remains a valid prefix.

Checked against server 9f47f2d · SDK 12053abLast updated 2026-11-04Edit on GitHub