Skip to main content
Acknowledgement tells the Cache that it may remove specific messages for a recipient. Call it only after your client has safely stored or processed the returned encrypted envelopes. This is not a read receipt for the sender. It is a recipient-authorized Cache deletion. Acknowledgement applies only to the Cache receiving this request. A recipient should acknowledge the message at each Cache from which it actually retrieves a copy. A response from one Cache does not purge other replicas.

Build the proof subject

  1. Trim every message ID.
  2. Remove blank values.
  3. Remove duplicates.
  4. Sort the IDs lexicographically.
  5. Join them with commas and no spaces.
For IDs b, a, and b, the subject is:
Use operation ack in the proof:

Request

string
required
Recipient DID that owns the cached messages.
string[]
required
Message UUIDs to remove.
string
Device bound into the proof.
string
required
Authorized Cache service ID.
string
required
Exact Cache endpoint.
string
required
Authorized Ed25519 verification method.
string
required
Signed timestamp.
string
required
New one-time nonce.
string
required
Base64 Ed25519 signature over the exact proof.

Response

200 Response
acked may be smaller than the submitted array if some IDs were already absent. For replicated delivery, track acknowledgement by the Cache endpoint used for each retrieval. Retry a failed acknowledgement while that endpoint still holds the copy and before expires_at. Never assume another Cache forwarded the acknowledgement, and do not assume the Cache must retain a copy until its upper-bound expiration.

Straight to the point

  • Proof operation: ack
  • Proof subject: sorted, unique, comma-joined message IDs
  • Effect: removes acknowledged entries from this Cache only
  • Replicas: acknowledge each Cache from which the recipient retrieves a copy