For anyone who got a recap
How a call is handled
What happens to a call Aftercall records, from the Mac that recorded it to a hash on NEAR, and what each step can and can't show.
Step by step
- The person recording tells everyoneBefore recording, the app asks them to confirm they told everyone on the call. That statement and the time they made it go into the proof, with how they told people if they said. Aftercall can't check it.On the Mac
- Recorded on the Mac as two tracksTheir microphone is one track, labelled You. The call's audio from macOS is the other, labelled Others. That's how the notes tell the two sides apart; there's no voice recognition.On the Mac
- The audio is sealed as it recordsAbout once a second the audio is encrypted with XChaCha20-Poly1305, using a key kept in the Mac's Keychain. Unencrypted audio is never written to disk.On the Mac
- The secure hardware is checked before anything is sentWith a fresh nonce for this recording, the Mac checks the NEAR AI gateway, Whisper and the summary model: Intel TDX quotes, NVIDIA GPU evidence, and the software each one runs. If the gateway or any Whisper node fails, or no summary node passes with a key to encrypt to, nothing is sent.On the Mac
- Transcribed by Whisper in an attested TEEThe audio goes in five-minute chunks to Whisper in a NEAR AI TEE, over TLS pinned to the gateway's TLS key from its attestation: the Mac checks that key is bound in the gateway's verified quote, and uploads only on a connection whose certificate carries it. It isn't end-to-end encrypted, because NEAR AI doesn't offer that for transcription. Project and payee names go with it as spelling hints.NEAR AI TEETLS, not end to end
- Summarised by a model in an attested TEEThe Mac merges both tracks into one transcript and encrypts it to a key bound in the summary model's verified quote, so the gateway passes on text it can't read. The transcript is always end-to-end encrypted, or not sent: it never goes over TLS instead. If NEAR AI no longer serves the attested model key, the Mac checks the hardware again and retries encrypted once. If NEAR AI turns down the encrypted request, processing stops and the transcript isn't sent again. The model signs the exchange.NEAR AI TEEEnd to end, or not sent
- Checked and sealed on the MacThe Mac checks the signature, drops any item whose quote isn't word for word in the transcript, and keeps a payment's amount only when the same amount is in that quote. The proof records how many items were dropped. The notes are saved sealed with the same Keychain key.On the Mac
- The audio is deletedRight after the notes are saved, the app deletes the audio and the cached transcriptions of each chunk from the Mac. If the app quits before it can, or the delete fails, it deletes them the next time it opens. If making the notes fails, the sealed audio stays so the person can try again.On the Mac
- A hash of the proof is recorded on NEARWhen the app has a NEAR account set up, a sha256 hash of the proof goes on NEAR with the meeting's ID (its start time) and the model name. Anyone with the proof link can compare the two.On NEARPublic, no content
Checked on every run
The checks in step 4 run again for every recording, against its own nonce, and the results go into the proof. From a proof link your browser re-runs the ones it can and shows the rest as the app recorded them.
What isn't proven
Every Verify page lists these under the checks.
About transcriptionTranscription runs in an attested TEE but isn't signed per response. The audio isn't end-to-end encrypted: it travels over TLS, uploaded only on a connection whose certificate key is the one bound in the gateway's attestation.
- That the transcript is accurate: Whisper can mishear names and numbers.
- That this transcription came from the attested Whisper TEE: NEAR AI signs chat responses, not transcriptions.
- That everyone on the call agreed to be recorded: Aftercall asks you to confirm it, and can't check it.
- Who said what: “You” is your microphone and the rest is the call's audio; a name on the call's side comes from your calendar or, marked “likely”, from the model reading what was said (an introduction, someone addressed by name), never from the voice, and isn't checked like quotes.
- When your notes were typed: the proof shows they haven't changed since the notes were made, not that you typed them during the call.
- What NEAR AI keeps or trains on: that is set by NEAR AI's own policy, not shown by these checks.
- That every older meeting's transcript was end-to-end encrypted: earlier versions of the app could send it over TLS when encryption wasn't available, and such a meeting's proof says so.
Known limits in NEAR AI's protocol
Open issues in the service Aftercall relies on. Aftercall's checks don't close them.
- NEAR AI's end-to-end encryption doesn't tie the reply key to the encrypted request, so someone holding a copy of that request could resend it with their own reply key and read the answer.nearai/cloud-api issue 1061, open
- An independent review of private inference services hasn't yet confirmed that NEAR AI's gateway binds each TLS request to the backend that answers it, or that hardware evidence covers every party on that path.Awesome private inference