Photograph every room before the keys change hands.
A dated, room-by-room record of the unit on move-in and move-out day. Location data is stripped on your phone, each photo gets a signed hash receipt, and you send the finished report to your landlord.
Opening your reports…
Photos stay on your phone
The report lives in this browser’s storage. Location and other EXIF data are removed from every photo on your device before it is stored. Saving to your vault is optional and encrypted.
A hash and a server receipt
Each stored photo gets a SHA-256 fingerprint. When you’re online, housr’s server signs that fingerprint with the time it saw it. Only the fingerprint is sent, never the photo.
What a receipt proves, exactly
That this exact file existed by the time housr’s server recorded its hash. It doesn’t prove when the photo was taken. The strongest evidence is still a copy your landlord received, so send one.
How to verify a housr receipt yourself
A receipt is four values: the photo’s sha256, the server_time, the key_id and an Ed25519 signature. The signature covers this exact text, with a newline between each line and none at the end:
housr-receipt-v1 <sha256> <server_time> <key_id>
- Recompute the photo’s fingerprint from the JPEG in your report:
shasum -a 256 photo.jpg(macOS) orsha256sum photo.jpg(Linux). It must equal the receipt’ssha256. - Save the public key below as
housr-receipts.pem, and check that itskey_idmatches the receipt. - Rebuild the signed text and the signature:
printf 'housr-receipt-v1\n%s\n%s\n%s' "$SHA256" "$SERVER_TIME" "$KEY_ID" > msg.txt echo "$SIGNATURE" | base64 -d > sig.bin
- Verify with OpenSSL 3:
openssl pkeyutl -verify -pubin -inkey housr-receipts.pem -rawin -in msg.txt -sigfile sig.bin
It printsSignature Verified Successfullyfor a genuine receipt and fails if any value was changed. - Some receipts also carry an RFC 3161 timestamp token from FreeTSA, an independent timestamp authority, over the same hash. Decode
token_b64totoken.der, download FreeTSA’scacert.pemandtsa.crtfrom freetsa.org, then runopenssl ts -verify -token_in -in token.der -digest $SHA256 -CAfile cacert.pem -untrusted tsa.crt.
What this shows: housr’s server recorded that hash at that time. What it doesn’t show: when, where or by whom the photo was taken, or that the room looked that way on any other day. We don’t describe receipts as anything more than that.
housr’s receipt key
Loading the key…