Herkos

Política de privacidad de Herkos

Última actualización: 29 de octubre de 2026. URL canónica: https://herkos.app/privacy

Herkos Mail, Herkos Calendar, Herkos Notes y Herkos Local Relay son apps libres y de código abierto para la red Nostr, publicadas por el proyecto Herkos ("nosotros"). Herkos Calendar, Herkos Notes y Herkos Local Relay todavía están en desarrollo. Este documento explica qué datos manejan las apps y nuestras webs, adónde van y quién puede verlos. Está escrito para leerse, no para pasarlo por encima: si algo te sorprende, escríbenos a privacy@herkos.email.

Versión corta

Datos que se quedan en tu dispositivo

En el navegador no existe ese almacén seguro. La clave vive en el almacenamiento local del sitio y pasa por JavaScript cada vez que se firma algo, así que una extensión con acceso a todas las páginas, un fallo de XSS o un despliegue manipulado podrían leerla; y, a diferencia de una app instalada, una web sirve código nuevo en cada visita. En la versión web, usa un firmante remoto o una identidad que puedas permitirte perder. - Tu buzón: correos descifrados, adjuntos, etiquetas, carpetas y contactos se guardan en una base de datos local para que la app funcione sin conexión. Esa base de datos no está cifrada más allá de lo que hace el sistema operativo; el bloqueo con PIN/biometría es una barrera de conveniencia, no cifrado en reposo. En Android la app queda excluida de las copias de seguridad en la nube y de las transferencias entre dispositivos. - PIN de bloqueo: se guarda como hash con sal y estirado (PBKDF2), nunca en claro. Herkos Calendar y Herkos Notes tienen cada una un PIN propio, guardado igual. - Tu calendario (Herkos Calendar): los eventos, listas, claves de vista y recordatorios que puedes leer se guardan en el dispositivo cifrados registro a registro, con una clave que está en el almacenamiento seguro del sistema. En el navegador el calendario solo está en memoria y se vuelve a pedir a los relays cada vez. Los recordatorios los hace sonar el propio dispositivo: Calendar no usa servidor push. Si eliges ocultar los títulos en los recordatorios, solo dicen «Evento» y cuándo empieza. Tu clave de Calendar se guarda aparte de las de Herkos Mail (ver «Tu cuenta», en la sección de Calendar). - Tus notas (Herkos Notes): las notas, su historial, los cuadernos y el índice de búsqueda se guardan en el dispositivo cifrados registro a registro, con una clave que está en el almacén seguro del sistema. En un navegador se guardan igual, en el almacenamiento del navegador para el sitio (IndexedDB), con la clave también en el navegador: en un ordenador que usan otros, eso protege poco. Si el navegador no guarda nada del sitio (una ventana privada, los datos del sitio bloqueados), se quedan solo en memoria y sin conexión no se puede escribir. Una nota con candado tiene su propia contraseña; sin ella nadie puede abrirla, tampoco nosotros. La copia de tus notas es un archivo que se escribe solo donde tú lo guardas, cifrado con una contraseña propia. La copia automática, que se hace cada semana salvo que la desactives, es un archivo en una carpeta del dispositivo (Herkos Notes/backups, en tus Documentos), cifrado con la clave de tu cuenta; se guardan las cinco últimas y no se envía a ningún sitio (en un navegador no hay). Las notas que otras cuentas comparten contigo esperan en «Recibidas de otros», en el dispositivo y cifradas como lo demás, hasta que las guardas o las descartas.

Puedes borrarlo todo desde Ajustes → Más → Restablecer aplicación, o quitando una cuenta.

Datos que salen de tu dispositivo, y a quién

Esta tabla es de Herkos Mail. Herkos Calendar, Herkos Notes y Herkos Local Relay tienen sus propias secciones más abajo.

Destinatario Qué puede ver Cuándo
Relays de Nostr (lista por defecto en Ajustes → Red y servidores, editable) Tu dirección IP, tu clave pública, los eventos que publicas (perfil, listas de relays, lista de servidores Blossom, etiquetas NIP-32, ajustes cifrados) y los "gift wraps" cifrados dirigidos a ti, con su ritmo. Los relays no pueden leer el contenido de los gift wraps. Un relay que pide autenticación NIP-42 aprende tu clave pública aunque solo estés leyendo. Siempre, mientras la app sincroniza; y en Android también con la app cerrada, cada 15 minutos aproximadamente, cuando la comprobación en segundo plano sustituye al servidor push.
Servidores Blossom (editables) Tu IP y tu clave pública, y los blobs cifrados de los correos de más de 32 KB y sus adjuntos. La clave para descifrarlos viaja solo dentro del mensaje cifrado. Al enviar o abrir un correo grande.
Bridges (uid.ovh por defecto, editable) El contenido completo de cualquier correo que envíes a, o recibas de, una dirección tradicional (Gmail, Outlook…), y el alias nombre@bridge que registras. Los bridges son operadores independientes con sus propias condiciones; Herkos no los gestiona. Cuando usas una identidad @bridge o escribes a una dirección que no es Nostr.
Servidores NIP-05 (el dominio de una dirección que escribes) Que alguien ha preguntado si nombre@dominio es un usuario de Nostr. Al añadir un destinatario usuario@dominio.
Servidor push (api.nmail.li por defecto, operado por el proyecto original Nostr Mail; se cambia en Ajustes → Notificaciones, donde también se puede quitar del todo) Tu clave pública, un token push del dispositivo (endpoint UnifiedPush), tu idioma de notificaciones y —porque vigila los relays por ti— cuándo recibes correo (no qué dice). Solo si activas las notificaciones de una cuenta. Al desactivarlas, o al cambiar de servidor, se pide al servidor anterior que borre la suscripción.
DVM programador (un servicio Nostr de un tercero, ver NostrConfig.schedulerDvm) Tu clave pública, los mensajes ya cifrados que debe publicar, sus relays de destino y la hora programada. Solo si usas "enviar más tarde".
Firmante remoto / relays NIP-46 (relay.nsec.app y alternativos) Tu clave pública y peticiones de firma cifradas. Solo si entras con un bunker o app firmante.
Servidores de imágenes (el servidor al que apunte un perfil o un correo) Tu dirección IP y el momento en que se descarga la imagen. La foto de perfil se descarga de la dirección que su dueño puso en su perfil solo si activas Cargar fotos de perfil (las de tus propias cuentas se cargan siempre); quien gestione ese servidor puede saber entonces cuándo has mirado sus mensajes o su contacto. Las imágenes dentro de los correos están bloqueadas por defecto; si las cargas (Cargar imágenes, o el ajuste Cargar siempre las imágenes), sus servidores, a menudo el del remitente, saben que has abierto el correo y cuándo. Una imagen de fondo que añades por su dirección se descarga de ese servidor. Fotos de perfil: solo si las activas (las tuyas, siempre). Imágenes de los correos: solo si las cargas.

Herkos no recibe nada de esto. No hay informes de fallos ni telemetría.

Herkos Calendar: qué ven los relays

Calendar habla con relays de Nostr: los de tu cuenta (tus listas NIP-65 y de buzón), los de Ajustes → Relays (editables) y, cuando invitas a alguien o respondes a una invitación, los relays de entrada de esa persona. Con nadie más, salvo lo que consultas tú (más abajo): tampoco con índices públicos de relays. «Tu cuenta», más abajo, explica para qué sirve cada uno. No hay servidor de Herkos, ni servidor push, ni telemetría. Todos los relays ven tu dirección IP y la hora de cada conexión.

Qué Qué pueden ver los relays que lo guardan Qué no pueden ver
Un evento privado (kind 32678) Tu clave pública, que es un evento de calendario (su kind), un identificador aleatorio, cuándo lo creaste o lo cambiaste por última vez y su tamaño aproximado. Se guarda solo en tus relays, donde lo buscan tus invitados; nunca en los suyos. Título, fecha y hora, zona horaria, repetición, lugar, descripción, invitados, recordatorios.
Tus listas de calendario (kind 32123) y ajustes de recordatorios (kind 30078, d=calendar-alarms) Tu clave pública, que existen y cuándo cambian. Qué eventos contienen, sus nombres, las claves de vista, tus recordatorios.
Una invitación (un gift wrap, kind 1059) La clave pública del invitado y una etiqueta k=1052 que dice que el sobre contiene una invitación de calendario (así encuentran las invitaciones las apps de calendario, también la de Formstr, sin abrir tu correo). Se envía solo a los relays de entrada del invitado, con una clave de un solo uso y sus propias fechas aleatorias, y las invitaciones a un mismo evento salen en orden aleatorio, cada una entre 5 y 90 segundos después de la anterior (la primera, después del propio evento). El sobre lleva además una fecha de caducidad, elegida al azar entre 60 y 90 días después de enviarlo, para que los relays puedan borrarlo: no dice nada de cuándo es el evento. Quién la envía, de qué evento es y a quién más se ha invitado.
Una respuesta privada a una invitación (un gift wrap, kind 1059, etiqueta k=1925) La clave pública de quien la recibe (el organizador, o tú en tu propia copia) y que el sobre contiene una respuesta de calendario. Va solo a los relays de entrada de quien la recibe, con una clave de un solo uso, fechas aleatorias y fecha de caducidad, como las invitaciones. Quién responde, a qué evento y qué responde.
Borrar (kind 5) Tu clave pública y el identificador de lo que borras. —

Un relay que pide autenticación NIP-42 aprende tu clave pública; Calendar solo responde a esa petición para tus propios eventos en tus propios relays, y para leer tu propio buzón de entrada. Borrar en Nostr es una petición: un relay puede quedarse con su copia, cifrada.

Lo que ningún dato de los eventos puede ocultar: todas las invitaciones salen desde tu dirección IP, y cada invitado pide el evento a tus relays desde la suya. Un relay que guarde las bandejas de varios de tus invitados puede ver que sus invitaciones salieron de la misma dirección. Solo Tor o una VPN lo ocultan.

Tu cuenta

Calendar no crea cuentas: entras con una identidad de Nostr que ya tienes, de una de estas formas.

Tus relays. Al entrar, Calendar busca tus listas (NIP-65, kind 10002, y la de buzón, kind 10050) en los relays de Ajustes → Relays, en una conexión aparte que no te identifica: si un relay pide autenticación, recibe una clave de un solo uso, no la tuya. A partir de ahí:

Los relays de tus invitados (decidido el 21-10-2026). Para invitar a alguien hay que saber dónde recibe. Calendar busca sus listas (10002 y 10050) solo en los relays de Ajustes → Relays, nunca en un índice público de un tercero (como purplepag.es): ese servicio vería desde qué dirección preguntas y por quién, es decir, a quién invitas. Cada invitado se busca por separado, en orden aleatorio, en una conexión propia con una clave de un solo uso, para que esos relays no puedan ver quién está invitado con quién. Lo que sí ven es tu dirección IP y la clave pública de cada persona que buscas. Si alguien no tiene sus listas en esos relays, la app lo marca como «sin buzón conocido» antes de enviar, y a esa persona no le llega la invitación. Para encontrarla, añade a Ajustes → Relays un relay donde publique sus listas.

Lo que se sincroniza entre tus dispositivos, siempre cifrado para ti y en tus relays de escritura: las listas de calendario (con las claves de sus eventos), los ajustes de recordatorios (d=calendar-alarms), los calendarios que sigues (d=calendar-subscriptions) y las invitaciones que ignoras o los eventos ajenos que quitas de tu calendario (kind 30078, d=calendar-declined: solo qué evento y cuándo, nunca su título). Los relays ven que existen y cuándo cambian, no qué dicen. Los recordatorios que suenan en el dispositivo son los de la cuenta con la que has entrado, nunca los de una anterior.

La copia de tus llaves. Calendar te propone guardar una copia: un archivo con tus listas de calendario y las claves de sus eventos, cifrado con una contraseña que eliges para él (el cifrado de NIP-49). Se escribe solo donde tú lo guardas; no va a ningún relay ni servidor. Su nombre lleva la fecha, nunca la cuenta. Para el aviso, el dispositivo solo recuerda dos fechas: la de la última copia y la del último «Ahora no».

Cerrar sesión te enseña antes qué se pierde y te ofrece guardar la copia. Después borra de este dispositivo tu clave (o la conexión con el bunker) y el calendario guardado. Lo publicado sigue en los relays, cifrado. El permiso que diste en tu app de firma se retira en esa app.

Público porque tú lo eliges

Están desactivados hasta que los activas, y la app te enseña qué revela cada uno antes de hacerlo:

Herkos Calendar lee las respuestas públicas a tus eventos públicos que escriben otras apps (RSVP, kind 31925, y bajas de invitados, kind 84); no escribe ninguna.

Lo que consultas tú

Estas conexiones solo ocurren cuando tú las pides:

Herkos Notes: qué ven los relays

Notes habla con relays de Nostr y con nadie más. No hay servidor de Herkos, ni servidor de notificaciones, ni telemetría. Cada relay ve tu dirección IP y la hora de cada conexión.

Qué relays. Si tu cuenta tiene una lista de relays privados (kind 10013, la que describe NIP-37), Notes usa los relays que hay en ella, tal cual, y no la sobrescribe nunca; la busca en los relays de sus Ajustes y en los relays donde publicas (tu lista NIP-65). Si no la tiene, usa los relays de sus Ajustes: relay.formstr.app, nos.lol y relay.primal.net de fábrica, hasta ocho, todos editables. Los Ajustes ofrecen además una lista de relays conocidos para añadirlos con un toque; no se contacta con ninguno si no lo añades. Un relay puede ser ws://, una conexión sin cifrar, solo si está en el dispositivo o en la red de casa (localhost, direcciones privadas, nombres .local): las notas siguen viajando cifradas, pero cualquiera en esa red puede ver lo que ve el relay (la tabla de abajo). Notes no publica ninguna lista de relays propia, salvo que se lo pidas (Relays → Guardar como mi lista de relays privados). Entonces publica estos relays como tu 10013, cifrada con tu clave, en los mismos relays donde busca las listas, y la mantiene al día con lo que cambies en Notes: los relays ven tu clave pública, que la lista existe y cuándo cambia, no los relays que contiene. Una lista que escribió otra app no se sobrescribe nunca: Notes la usa tal cual. Si uno de esos relays está en este dispositivo (una dirección ws://127.0.0.1 o ws://localhost, como la app Citrine), Notes le deja también una copia de tus notas, cuadernos y borrados, tal como se firmaron y todavía cifrados. Para eso no sale nada del dispositivo; Notes nunca lee de ese relay, y una nota que solo tiene él no cuenta como subida. Las otras apps del dispositivo que lean ese relay ven lo mismo que vería cualquier relay.

Qué Qué pueden ver los relays que lo guardan Qué no pueden ver
Una nota (kind 31234, NIP-37) Tu clave pública; un identificador al azar (d), hecho con un número aleatorio y nunca con el título; la etiqueta k=30023, igual en todas las notas, así que no dice nada de lo que escribes; cuándo la cambiaste por última vez, y más o menos cuánto ocupa. Título, texto, etiquetas, cuaderno, si está fijada, en favoritas o en la papelera, y cuándo la creaste.
Un punto de control (kind 1234), el historial de la nota Tu clave pública, a qué nota pertenece (su etiqueta a apunta al identificador de la nota) y cuándo se hizo. Lo que decía la nota entonces.
Tus cuadernos (kind 30078) Tu clave pública, que la lista existe y cuándo cambia. Su identificador sale de tu clave pública, así que es el mismo en todos tus dispositivos. Los nombres de tus cuadernos, cuántos hay y qué notas tiene cada uno.
Borrar (kind 5) Tu clave pública y los identificadores de lo que borras: la nota y sus puntos de control. —
Una nota que compartes (kind 1059, un envoltorio de regalo NIP-59) La clave pública de la cuenta a la que va (p); la etiqueta k=30023; una fecha puesta hasta dos días atrás al azar, y más o menos cuánto ocupa. La firma una clave hecha para ella y usada una sola vez, no la tuya. Quién la envía, cuándo, su título y su texto. Dentro, sellados (kind 13) y cifrados solo para esa cuenta, van tu clave pública y la nota: solo esa cuenta puede abrirlos, y sabe quién se la envía.

Lo que no se puede ocultar. El d y el k de una nota y la a de un punto de control tienen que poder leerse: los relays los necesitan para sustituir una nota por su versión nueva y para encontrar su historial. Así que un relay puede contar cuántas notas tienes y ver cuándo editas cada una y con qué frecuencia. Notes lo hace más grueso, no invisible: guarda como mucho un punto de control por nota en cada hora de edición, uno al cerrar una nota que ha cambiado y uno de cada lado al resolver un conflicto, nunca uno por guardado, para que tu ritmo de escritura no se publique minuto a minuto.

Por qué tus notas no caducan nunca. Los borradores de NIP-37 pueden llevar una etiqueta expiration (en su ejemplo, 90 días), y un relay que la respeta borra el evento en esa fecha. En una libreta eso sería perder notas que nadie ha pedido borrar, así que Notes no la escribe nunca. La otra cara: tus notas siguen en los relays, cifradas, hasta que las borras, y en Nostr borrar es una petición: un relay puede quedarse con su copia.

Compartir una nota. Notes envía la copia a los relays donde la otra cuenta dice que lee (sus relays NIP-17, kind 10050, o si no, los relays de lectura de su lista NIP-65), que busca en tus relays, y a tus propios relays, ocho como mucho. Viaja lo que dice la nota (título, texto y etiquetas), no tu cuaderno, tus marcas ni la papelera; lo que cambies después no se envía. La otra cuenta se queda con su copia: Notes no puede recuperarla, y borrar tu nota no la borra. Para recibir, Notes pide a tus relays los envoltorios dirigidos a tu clave con k=30023 y los abre en el dispositivo. Descartar uno lo quita solo del dispositivo: lo firma una clave que nadie guarda, así que ninguno de los dos puede pedir a los relays que lo borren, y se queda ahí, sin que nadie más que tú pueda leerlo.

La búsqueda es local. Todo va cifrado, así que ningún relay puede buscar por ti. Notes descarga y descifra tus notas y hace el índice en el dispositivo; las palabras que buscas no se envían a ningún sitio.

Un relay que pide autenticación NIP-42 conoce tu clave pública; Notes le responde con tu cuenta. Notes también pide a tus relays los borradores que otras apps escribieron con tu clave (kinds 31234 y el antiguo 30024), para enseñarlos solo para leer, y no publica nada al hacerlo. Si entras con un firmante remoto (un bunker o Nostr Connect), sus relays llevan tus peticiones de firma cifradas, y Notes solo le pide que firme los kinds de arriba (incluido el sello de una nota compartida, kind 13; su envoltorio se firma en el dispositivo, con la clave de un solo uso). Con una app de firma en tu móvil Android (NIP-55, como Amber), Notes le habla directamente en el móvil, sin ningún relay en medio, le pide lo mismo y comprueba cada evento firmado que vuelve antes de usarlo.

Herkos Local Relay: qué guarda y con quién habla

Herkos Local Relay es un relay de Nostr que funciona en tu propio dispositivo, para las apps de Herkos y cualquier otro cliente de Nostr. No hay ningún servidor nuestro detrás, y no nos envía nada.

Qué guarda, en el dispositivo. Los eventos que tus apps le escriben y los que trae de tus relays, en una base de datos cifrada con una clave que está en el almacén seguro del sistema. A su lado: las apps que emparejaste y lo que puede hacer cada una; sus ajustes (settings.json: el puerto, la cuota, la poda, si el registro de la sesión está encendido); y los de las copias (backups.json: cada cuánto, la carpeta, la clave pública para la que se cifran las copias y su sal, cuándo se hizo la última). Nada de eso es secreto, y la contraseña de las copias no se guarda nunca. En Windows y Linux, mientras funciona, relay.json en la carpeta de la app dice en qué puerto escucha, para que las apps de Herkos lo encuentren. Desinstalar la app borra la base de datos, y su clave deja de servir.

Quién puede conectarse. Solo escucha en 127.0.0.1 (el puerto 4873 si no lo cambias): nada de fuera del dispositivo puede llegar a él. Cualquier app del dispositivo puede llegar a esa dirección, así que una app o una página web tiene que emparejarse, con tu aprobación en pantalla, antes de poder escribir, y una página web sin emparejar se rechaza. Revocar una app la desconecta en el acto. Los eventos privados (borradores, listas privadas, recordatorios, los sobres sellados que recibes) solo se entregan a quien demuestra con NIP-42 que tiene la clave a la que pertenecen. La red local y Tor todavía no están disponibles; cuando lleguen, estarán apagadas hasta que las enciendas, y necesitarán TLS o un servicio onion, autenticación y una lista de claves permitidas.

Quién Qué puede ver Cuándo
Tus relays (los de tu lista NIP-65) Tu dirección IP; tu clave pública, cuando un relay pide autenticación NIP-42; los eventos públicos que publicas a través de él; y, para sincronizar, por cuáles de tus eventos pregunta. Cuando publicas, y cuando sincroniza (con negentropy, NIP-77, si el relay lo ofrece).
Los relays de entrada de a quien escribes (su lista NIP-17, kind 10050, o si no, los relays de lectura de su lista NIP-65) Tu dirección IP y el sobre sellado (NIP-59) dirigido a esa persona, enviado tras una espera al azar. Nunca se envía a tus propios relays. Cuando una app envía a través de él un mensaje o una invitación privados.

Para saber dónde recibe alguien, pregunta a tus relays. Tus eventos privados (borradores, listas privadas, recordatorios) no salen nunca del dispositivo. Nunca anuncia su propia dirección (no está en la lista NIP-65 de nadie), su documento NIP-11 no dice quién eres y no hay analítica, telemetría ni informes de fallos. En Android funciona como un servicio con una notificación y su botón Parar; se duerme tras 10 minutos sin conexiones, y una app de Herkos lo despierta en el propio dispositivo, sin servidor push.

El registro de la sesión está apagado por defecto. Si lo enciendes, se guarda solo en memoria, las 500 últimas líneas, y se borra al parar el relay: conexiones, autenticación NIP-42, eventos aceptados o rechazados y los kinds que se piden, por su kind y el principio de su identificador, nunca su contenido.

Copias. La copia cifrada de todo el almacén se escribe solo donde tú eliges: una carpeta del dispositivo o de un disco externo. Una carpeta de un cliente de nube (OneDrive, Google Drive, Dropbox, iCloud, Nextcloud, Herkos Drive…) se rechaza. Se cifra con una contraseña propia (scrypt y XChaCha20-Poly1305); las programadas, para la clave pública que da esa contraseña, así que se hacen sin ella. Se guardan las siete últimas. Sin la contraseña nadie puede abrir una copia, tampoco nosotros, y si la pierdes, la copia se pierde. La exportación en JSONL no va cifrada: lleva tus eventos privados en claro, y la app lo avisa antes de escribirla.

La poda solo borra eventos de otras personas: nunca los tuyos, los sobres para ti ni los kinds que protegen tus apps; por cuota, solo después de una copia del último día. Y como en todo Nostr, borrar es una petición: lo que ya llegó a otros relays puede quedarse allí.

Nuestras webs y Cloudflare

herkos.app (incluido herkos.app/e/), app.herkos.app (la versión web de Mail), calendar.herkos.app y notes.herkos.app (las versiones web de Calendar y de Notes, cuando se publiquen) y fdroid.herkos.app (nuestro repositorio de F-Droid) son ficheros estáticos que sirve Cloudflare (Cloudflare Pages y R2). Como cualquier alojamiento web, Cloudflare recibe tu dirección IP, el agente de usuario de tu navegador, la dirección que pides (sin lo que va después de #) y la hora, y puede guardarlos en sus registros según su propia política de privacidad.

No ponemos cookies ni tenemos analítica; las páginas y los ficheros propios de las apps web salen solo de estos dominios (después, las apps web se conectan a los relays y servidores descritos arriba), y no miramos registros por visitante. Las descargas de Releases vienen de GitHub, que ve el mismo tipo de datos según su propia política.

Público por diseño

Nostr es una red pública. Esto lo puede ver cualquiera que consulte los relays que usas, y va ligado a tu clave pública:

Tus opciones y derechos

Cambios

Cambiaremos este documento cuando cambie el comportamiento de la app, y anotaremos la fecha arriba. La fuente de verdad es PRIVACY.md en el repositorio; la página publicada es una copia.

Contacto: privacy@herkos.email · https://herkos.app

Otros idiomas

English · Español · Bahasa Indonesia · Català · Čeština · Deutsch · Français · Italiano · Magyar · Nederlands · Polski · Português (Portugal) · Português (Brasil) · Română · Slovenčina · Suomi · Svenska · Türkçe · 中文 · Ελληνικά · हिन्दी · 日本語 · 한국어 · Русский · Українська