contacts

Store the wrapped contact key for the current user

Changed on

Create-only, and it returns the key that is actually stored — which is not necessarily the one sent. A second caller gets the first one back rather than replacing it, because two clients minting different keys and overwriting each other leaves every contact sealed under the loser permanently unopenable. Rotation needs its own route: it means re-sealing every row, not swapping a value the server cannot read.

put/users/me/contact-key

Request

Request body

wrappedKeystring required

The data key, wrapped under a key the client derives from a wallet signature

Response

The stored key — the one sent, or the one already there

wrappedKeyobject nullable required

The wrapped data key, exactly as the client stored it

Changes