{"blind_signature_key_id":"25f7bb37749355614e24d749df48efd1bca1c3ca24de5810991875e8fcc23d52","cache_secs":60,"deletion_receipts":{"fields":["SHA-256 of a random 32-byte client receipt","day-rounded expiry"],"purpose":"reconcile a lost account deletion response without storing user, device or contact identifiers","retention":"up to 30 days, then removed by the five-minute purge"},"generated_at_ms":1793711369317,"holds":{"account_credentials":{"count":2,"fields":["user_id","HMAC of normalized email username","OPAQUE password record","client-encrypted account-key locker","server-encrypted approval email","credential version"],"note":"Opt-in account login deliberately links an approval email to the existing identity. The server can decrypt the email address, but does not receive the password, export key or account private key."},"account_email_sends":{"count":0,"fields":["HMAC of contact","delivery reservation time"],"retention":"one-hour contact quota, removed by the five-minute purge; failed deliveries also consume quota"},"account_enrollment_attempts":{"count":0,"fields":["user_id","public signed device request and name","hash of random approval token","expiry","temporary encrypted setup data"],"retention":"pending rows removed within one minute after their five-minute expiry; successful claims retain public retry proof for ten minutes"},"active_sessions":0,"blind_mailbox":{"addresses":3,"fields":["opaque 32-byte address (rotating, not invertible to a user)","fixed-size AEAD blob","hour-coarse timestamps","insertion sequence"],"items":4856,"note":"offline ciphertext storage has no sender or recipient column; authenticated requests, IP addresses, timing and address lookups can still reveal relationships","retention":"auto-deleted 30 days after deposit or on acknowledgement"},"devices":{"count":2,"fields":["device_id","platform","created (rounded to the day)","revoked"]},"discoverable_handles":{"note":"opt-in only (B-023): HMAC of the handle, the identity, and a masked request token — each handle proven by a code sent to it"},"identities":{"count":2,"fields":["user_id","ed25519 public key","created (rounded to the day)","last seen (rounded to the hour)"]},"one_time_prekeys_available":0,"pending_verifications":{"count":0,"fields":["HMAC of contact","HMAC of code","expiry"],"note":"failed or interrupted deliveries retain an expired, unusable reservation for abuse limits","retention":"registration codes are removed with their intent; other code rows are purged 24h after expiry"},"public_key_bundles":{"count":1,"fields":["signed public prekey bundle per device (opaque)","timestamps rounded to the hour"]},"registration_intents":{"count":0,"fields":["random registration ID","HMAC of contact","original start and four-hour expiry"],"retention":"removed on confirmation or within one minute after the absolute deadline"},"spent_registration_tokens":{"count":2,"fields":["SHA-256 of token","day spent"],"note":"unlinkable to the contact that obtained it (RFC 9474 blind signature); kept for the lifetime of the signing key so a token can never be replayed"},"verification_contact_locks":{"count":0,"fields":["HMAC of contact"],"note":"serializes the shared verification quota; contains no identity or timestamp","retention":"removed by the five-minute purge after all corresponding verification and registration rows are gone"},"verified_contacts":{"count":2,"fields":["HMAC of contact","how many registration tokens issued","day of last issue"],"note":"registration does not store an identity link here; day-coarse timestamps reduce timing precision but do not prevent correlation; opt-in discovery separately links a handle HMAC to an identity"}},"in_front_of_the_server":{"database_encryption_at_rest":"Not verified by this endpoint. Disk, tablespace and backup encryption depend on the operator configuration. End-to-end encryption of message contents is separate from database encryption.","nginx_access_log":"The supplied deployment disables access logs on /v1/keys, /v1/mls, /v1/mailbox, /v1/rendezvous, /v1/discovery and /v1/invite. Other routes can log IP, status, method and path. Daily rotation keeps two older copies, including rotation of empty logs; retention depends on the operator running logrotate. Upstream proxies may log separately.","nginx_error_log":"The supplied deployment discards error logs on those sensitive API paths. Other error logs can include request paths and IP addresses."},"never_holds":["plaintext message bodies","users' private end-to-end encryption keys","plaintext contact lists and group names","plaintext file and media payloads"],"observable_metadata":["IP addresses, request timing, authenticated device identity, key lookups and mailbox retrieval addresses can be correlated","plaintext phone numbers or e-mail addresses are processed transiently for verification delivery; persisted contact values use HMAC","opt-in discovery stores a handle HMAC linked to an identity","some creation and activity timestamps are coarse; challenges, expiry, revocation and administrative records can have finer timing","the server holds its own registration, release and transparency signing keys"],"privacy_scope":"These statements describe application storage in this implementation, not a guarantee of anonymity against the running server or network observers.","release_public_key":"754626041c4ef901765208b971fd2ab0df5f94a1ef4ec93f7c3ae874a8c1b3f4","server_version":"0.1.0"}