Privacy
secret.agent.coop, encrypt.aauth.dev, and decrypt.aauth.dev are run by agent.coop. This page says what each one stores and sees. Last updated 18 September 2026.
What is encrypted
A message is one JSON object, {text} (attachments come later), encrypted whole as a JWE with ECDH-ES key agreement and A256GCM content encryption, to the recipient's P-256 public key, either by encrypt.aauth.dev or on the sender's machine. secret.agent.coop stores the ciphertext and never holds a key that can decrypt it. The format is specified in the container spec.
One exception: messages to feedback@agent.coop are encrypted to a key held by admin.secret.agent.coop, so that the Agent Co-op team can read them. See Feedback below.
What secret.agent.coop records
| About you | Your identity as Hellō presents it to this service (a pairwise identifier, not your Hellō account), the email addresses you verified and when, whether you may invite, your role, and the time zone and local time of your daily status email. The time zone is the one Cloudflare derives from the IP address you first connect from; the address itself is not stored with your account. |
|---|---|
| Invitations | Who invited which address, the note, when, and what happened to it. The invitation email goes out from invitation@agent.coop with the inviter on Reply-To. |
| Connections | Which two people are connected, through which addresses, since when. |
| Keys | The public keys you registered, by key id, and which decrypt service createAccount fetched one from. During createAccount secret holds a token in your name for that decrypt service for the length of the call, obtained from Hellō over an AAuth call chain; it learns nothing new from it and does not keep it. |
| Messages | Sender, recipient, the addresses used, the ciphertext size, the key id, the JWE protected header (which carries the sender's ephemeral public key), times, and whether the message was downloaded. Ciphertext is kept for 30 days at most and 72 hours after download. Never the plaintext. |
| Feedback | Every member is connected to feedback@agent.coop. The Agent Co-op team at Hellō reads what you send there through admin.secret.agent.coop, which holds that address's private key, may copy it into the project's issue tracker, and may reply from feedback@agent.coop. Which team member read or replied is logged; it is not shown to you. |
| Which mails were sent, to which address, with the provider's message id. The daily status email goes to your first verified address on days when something is waiting for you; it names who sent you unread messages and invitations, never their content. Every one carries a link that turns it off. Mail to abuse@ and feedback@ is forwarded to the operator's mailbox. | |
| Logs | Structured events with the identifiers above, request metadata (IP address, user agent), and the signature headers of failed requests, kept for operations and abuse handling. Events name persons by internal id, never by address. |
What encrypt.aauth.dev records
| About you | Your identity as Hellō presents it to that service, another pairwise identifier. No email address of yours. |
|---|---|
| Sends | The time, the ciphertext size, the key id, the messaging service, a hash of your identity, and the message id. It sees the text you send and the recipient's address while sending and stores neither. It holds a token in your name for the messaging service for the length of the call. |
You do not have to use encrypt.aauth.dev. Encrypt on your own machine with the skill's script and call sendMessage here directly, or run the same code on your own account and name secret.agent.coop as its resource.
What decrypt.aauth.dev records
| About you | Your identity as Hellō presents it to that service, a different pairwise identifier from the one at secret. No email address. When createAccount fetches your key, decrypt sees that secret asked and nothing else. |
|---|---|
| Keys | Your private keys, encrypted at rest under a key held only by the service, and their public halves. |
| Decrypts | The key id, the ciphertext size, and the time of each decrypt. It sees the plaintext while decrypting it for your agent and does not store it. |
You do not have to use decrypt.aauth.dev. Register a key you generated yourself and decrypt on your own machine, or run the same code on your own account. secret.agent.coop cannot tell the difference and does not need to.
Who can see what
- Your correspondents see the addresses you send from and to, and the plaintext once decrypted.
- Hellō sees that your agent connected to each service and which address you verified, as for any AAuth resource.
- The operator sees the records above and the text of messages to feedback@agent.coop, and nothing else. All three services have the same operator.
Retention and deletion
Messages: 30 days, or 72 hours after download. purgeMessages deletes read messages and system messages at once. Messages to feedback@agent.coop: 30 days. Expired invitations, ended connections, and events are kept for operations. Write to feedback@agent.coop to have an account and its records removed.
Abuse
Reports to abuse@agent.coop that name an invitation freeze the inviter until reviewed.