AgentClock Working draft

Overview

What is Partition-Tolerant Renewal

The fit, the method, and the atomic verifiable object for a severed agent's authority.

How this fits the NANDA ecosystem

Project NANDA's vision is an Internet of AI Agents — discoverable, identifiable, and able to act autonomously across domains. Discovery (the NANDA Index, AgentFacts) answers "who is this agent and where." Identity and credentialing systems — WIMSE, SPIFFE/SPIRE, an OAuth-style bearer token, or a physical-AI mission authority issued to a satellite, robot, vehicle, or edge fleet — answer "what is this agent authorized to do, and for how long." Partition-tolerant renewal treats whichever of these issued the credential as an opaque, hashed reference: WIMSE is where the reference implementation happens to plug in first, not the boundary of what this is for. Neither layer, nor any identity system underneath them, has ever specified what happens when an agent is cut off mid-task, still healthy, still authorized, with a credential counting down toward an expiry no one designed for. Partition-tolerant renewal is that missing cross-cutting layer — it reaches into whichever identity substrate an agent already trusts, rather than proposing a new one.

  Project NANDA — the Internet of AI Agents
    │
    ├─  Discovery                                      "who is this agent, and where"
    │     └── NANDA Index · AgentFacts
    │
    ├─  Identity & credentials                          "what is it authorized to do"
    │     └── WIMSE · SPIFFE/SPIRE · OAuth-style tokens ·
    │          did:key credentials — any time-bound,
    │          issuer-signed grant of authority
    │
    ├─  Autonomy & physical AI                           "where and how it operates"
    │     └── satellites, robots, vehicles, edge fleets —
    │          any mission-bound agent that can be cut off
    │
    └─  AgentClock — partition-tolerant authority renewal   the cross-cutting layer:
                                                            "the issuer is unreachable —
                                                             may this authority persist,
                                                             unwidened, a little longer?"

AgentClock is drawn as a fourth branch above only because a tree has to end somewhere — in practice it is not a fourth silo, it is the layer any of the other three can invoke the moment their credential holder goes offline. A settled Renewal Chain is a natural evidence artifact for registry systems such as the NANDA Index and its verified AgentFacts — a receipt of partition-time continuity, in the same family as other signed evidence records, regardless of which identity system issued the credential being extended.

The method

A severed requester broadcasts a signed RenewalRequest naming its original credential, the extension it wants, and a fresh nonce. Every peer that receives it runs a fixed independent-evaluation procedure before signing anything:

Verify

Issuer signature & revocation cache

The original credential's issuer signature checks out, and it is not in the peer's own cached revocation state.

Bound

Extend-only & ceiling arithmetic

The request only prolongs authority — scope is unchanged, byte for byte — and the resulting expiry does not exceed the ceiling measured from original issuance.

Observe

First-hand health, freshly timestamped

The peer's own fresh observation of the requester — a heartbeat, task participation, a joint consensus round — not a claim relayed by the requester itself, and bound to a checkable observation time so staleness is a wire-level fact, not a promise.

Only if every check passes does a peer return a signed PeerAttestation. Once the requester holds attestations from ⌈2N/3⌉ of its provisioned peer set (N ≥ 4), it assembles a RenewalProof — an aggregation, not a new signature — and treats its authority as extended through a bounded, mesh-agreed expiry.

The atomic object: the Renewal Chain

A partition may outlast one round. A RenewalChain is the ordered sequence of every RenewalProof issued during one continuous partition, each extending the one before it — re-verified independently by any relying party, without trusting the party that assembled it.

renewal_chain [
  {
    request_id, original_credential_hash, original_scope,
    requester_did, granted_extension_seconds,
    effective_expiry,
    attestations: [ ≥ ceil(2N/3) PeerAttestation, distinct attester_did ]
  },
  ... one entry per round of the same partition
]

A relying party receiving a request after the original expiry does not reject on the timestamp alone. It verifies the presented chain — root credential hash, quorum and distinctness per round, monotonically advancing expiry, scope unchanged throughout, cumulative extension within the ceiling — and treats the requester's authority as valid through the last chain entry, at the original scope, and no further.

What it consumes, produces, and does not do

Consumes

An issuer-signed credential and a peer set

Whatever time-bound credential a requester already holds — WIMSE, SPIFFE/SPIRE, a physical-AI mission authority, or equivalent — and the provisioned did:key peer set it can reach while severed.

Produces

A Renewal Chain

One auditable, independently re-verifiable extension of existing authority — never a new grant, never a wider one.

Does not do

Issue credentials, solve consensus, or enforce mid-partition revocation

It does not parse or verify the original credential itself, does not replicate state across the mesh, and cannot deliver a revocation to a node it cannot reach.

Ecosystem positioning: partition-tolerant renewal is the severed-mode complement to whatever issued the credential — WIMSE, SPIFFE/SPIRE, or a physical-AI mission authority alike. It extends what an issuer already granted, on its behalf, only until that issuer is reachable again. A layer above the issuer, not a replacement for it, and not tied to which issuer it is.