The first end-to-end encrypted attendance app
Actually Here is the first end-to-end encrypted attendance app. It is free to start and takes a minute to set up. Only your teaching team can read what a class records; we cannot. Check-ins are carried over Bluetooth and validated cryptographically, which makes taking the roll a breeze in a lecture theatre or any other large group.
Built for iOS and Android, and running on device.
How it works
Anyone can create a class or join one. Your role in a class decides what the app shows you.
Two fields and a button. Your phone generates the encryption key for this class and keeps it. Students join with the class code you put on the whiteboard.
One tap, with the segment and duration already filled in from last time. Your phone starts broadcasting a fresh secret to the room over Bluetooth.
Valid check-ins land by themselves, so you can pocket the phone. Only anomalies are surfaced for you to look at, and marking someone by hand is always there.
Type your name and student number once. No account, no password, no email address. Your phone makes a signing key that never leaves it.
The button appears when your phone hears a session in the room. It will not appear anywhere else, because the secret never travels over the internet.
Nobody has to approve it. Your own attendance history stays on your phone, and you can leave a class whenever you like and take your copy with you.
End-to-end encryption
End-to-end means the data is encrypted by the device that creates it and decrypted only by the devices meant to read it. Everything in between, our server included, is carrying encrypted data.
Every other attendance product on the market stores your roll in a form its vendor can read, because their analytics depend on it. Actually Here has no such product to protect, so the encryption goes all the way down.
When you create a class, your phone generates that class's key. It is shared with your tutors and co-instructors by wrapping it to their public keys, and it goes nowhere else. Our server receives sealed lines, numbers them, and hands them back on request. It has no key, no way to obtain one, and nothing about you to attach them to.
The honest limit: as a relay we see IP addresses and timing in transit. Everything else is mathematics rather than a promise, and the Privacy Policy spells out exactly what is on disk.
| Layer | How it is implemented |
|---|---|
| Class key | An X25519 keypair generated on the owner's device when the class is created. Never uploaded, never escrowed. |
| Event sealing | Each event is sealed individually with a libsodium sealed box (X25519 + XSalsa20-Poly1305), so appends stay independent and concurrent. |
| Device identity | A P-256 keypair generated inside the Secure Enclave or Android StrongBox. The private key is not exportable by the app, by us, or by anyone holding the phone. |
| Signing | Every event is signed ECDSA P-256 over its RFC 8785 canonical form, so the whole history is independently auditable. |
| Key distribution | Promotion to tutor or instructor writes a signed event carrying the class key wrapped to that person's public key. That is the only path the key ever takes. |
| On the server | Base64 ciphertext lines and a permissions list of one-way token hashes. No names, no numbers, no accounts, no keys. |
Coming to the App Store and Google Play
Free to start, for students and instructors alike. An in-app upgrade unlocks the full app for the classes you own, and it covers your whole teaching team. Students never pay for anything.
TestFlight beta · in review