Skip to content

docs(adr-003): drop the stale capability renewal wording in capability delegation #2373

Closed

Description

@yigitdot

Problem

ADR 003 § Capability delegation describes capability expiry two ways that don't agree. Both lines are on main (cdd1db5e).

Line 49 suggests the owner can renew a capability:

The expiry retires the key when the owner does not renew it.

Line 51 says renewal does not exist. Capability registration is write-once per (poolId, signer):

The first capability that lands on-chain for a signer fixes its cap and expiry. The contract ignores every later capability for that signer. The protocol has no capability renewal. To change the terms, the owner authorizes a new signer key.

The write-once rule is the current design. The pool-solvency read-fault and clamp bullets depend on it, and the SignerCapExhausted / CapabilityExpired recovery text says each recovery names a new signer key. Line 49 is left over from an earlier version.

Fix

Reword line 49 so it no longer implies renewal. For example:

The expiry retires the key; to extend or change its terms, the owner authorizes a new signer key.

Also check line 546 (a short-TTL \expiry` plus non-renewal retires the key`). It is consistent in meaning, but it could point to § Capability delegation so the write-once rule has one home.

Context

Found while resyncing docs.decdn.org with the ADRs in decdn/website#271. The docs follow the write-once rule.

Metadata

Metadata

Assignees

No one assigned

    Labels

    ADRRelates to an Architecture Decision RecordconsistencyConsistency issue across ADRs or designdocumentationImprovements or additions to documentationlowLow prioritypayments

    Type

    No type

    Fields

    Priority

    None yet

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions