vault

Submit a recipient proof-of-open (rev 44 D210)

Recipient-grade (gitvault.read_envelope) PLUS a strict principal self-match: the authenticated principal MUST equal the path's principal_id (never overridable, admin keys included -- proof-of-open is a recipient's own evidence). Mints a recipient_open_receipt recording fsck's own chain_verified_to_generation / decryptable_to_generation split -- the recipient's claim that it opened its envelope through the real reader path (openEpochRotationForRecipient traversal). The gateway verifies ledger consistency (the fingerprint names a live envelope on this vault; decryptable_to_generation does not exceed the newest committed generation; chain_verified_to_generation >= decryptable_to_generation) and refuses OPEN_PROOF_MISMATCH otherwise; THE DECRYPTION CLAIM ITSELF IS HONEST-CLIENT EVIDENCE the server cannot verify, and every consumer (the coverage read's openability dimension) presents it as recipient-attested. IDEMPOTENT on the tuple (principal, fingerprint, decryptable_to_generation): an exact replay returns 200 with the SAME previously-minted receipt. Never lifecycle-gated and never transfer-frozen.

post/vaults/v1/{vault_id}/recipients/{principal_id}/proof-of-open

Request

  • Base URL: https://api.run402.com
  • URL: https://api.run402.com/vaults/v1/{vault_id}/recipients/{principal_id}/proof-of-open
  • Auth: one of:
    • API key in header SIGN-IN-WITH-X
    • HTTP bearer

Path parameters

vault_idstring required

The vault id (src_<32 hex>); the wire field is repo_id (protocol D185).

principal_idstring required

The recipient principal submitting the proof -- MUST equal the authenticated caller's own principal.

Headers

SIGN-IN-WITH-Xstring required

SIWX auth header — base64-encoded JSON payload containing a signed CAIP-122 (EIP-4361) message. See https://docs.x402.org/extensions/sign-in-with-x.

Request body

ek_fingerprintstring required

The recipient's ek_<32 hex> fingerprint whose envelope was opened.

chain_verified_to_generationstring required

fsck's chain_verified_to_generation, verbatim (16-hex generation).

decryptable_to_generationstring required

fsck's decryptable_to_generation, verbatim (16-hex generation).

reader_entrypointstring required

Audit provenance: the client implementation + reader entry point that produced the evidence (1-200 chars).

Response

Idempotent replay of the SAME previously-minted receipt for this identical tuple

object required

Changes

No recorded changes to this operation across all 1 revision of this API.