La pagina que te enseña como funciona Nostr. Demo e inicio rapido.

Getting started: la columna de inicio de la demo

La página es el índice de la primera columna de la demo educativa de Nostr: la que agrupa las lecciones fundamentales para empezar en el protocolo. Recorre el ciclo completo de tener una identidad y usarla con seguridad, desde la generación de claves hasta la custodia responsable del secreto.

Funcionalidades principales

  • Listado de lecciones: presenta las cinco secciones de la columna, cada una con su propia página interactiva dentro de la demo.
  • Progresión lógica: las lecciones se ordenan del concepto de identidad al riesgo de exponerla, construyendo una base antes de pasar a temas técnicos como eventos y relays.
  • Títulos descriptivos: cada entrada comunica su idea central de por sí, de modo que el índice funciona también como mapa de la columna.

Idea central

La identidad en Nostr no la otorga una plataforma, la genera uno mismo con criptografía.

Eso trae dos consecuencias: nadie puede suplantar una identidad porque cada evento está firmado, pero nadie puede recuperarla si la clave se pierde o se filtra, porque no hay servidor al que reclamar.

Las lecciones de la columna

  1. You already have an account: no existe registro. La cuenta son las claves criptográficas, que pueden existir sin pedir permiso a nadie.
  2. Your handle and your key: distingue el nombre visible, que puede cambiar, de la clave pública, que es la identidad real e inmutable.
  3. Nobody can post as you: sin la clave privada nadie puede suplantar la identidad, porque cada evento lleva una firma matemática.
  4. The box you should never fill in: nunca pegar el nsec en una página web. Una vez filtrado es irrecuperable: no hay reset ni soporte a quien acudir.
  5. An account that lasts: la cuenta perdura porque no depende de ningún servidor. Quien tenga la clave tiene la identidad, dondequiera que la use.

La columna de inicio establece el fundamento conceptual de todo lo que viene después: en Nostr la cuenta no se crea en un servicio sino que se genera localmente, la identidad real es la clave pública y no el nombre visible, y la permanencia y seguridad de la cuenta dependen por completo de la custodia de la clave privada. Las lecciones siguientes, sobre eventos y relays, se apoyan en esta base para explicar cómo circula la información una vez que existe una identidad.

  • Aqui esta el link de la fuente: https://rookery-six.vercel.app/
Nostr

La pagina que te enseña como funciona Nostr. Parte IX

Cuando un relay dice no: los rechazos especificados en NIP-01

La página es la segunda sección de la columna sobre relays en la demo educativa de Nostr. Se explica que publicar puede fallar, y que NIP-01 define con precisión cómo: el relay responde con OK falso y un mensaje que empieza con un prefijo legible por máquina. Así, un cliente puede distinguir un reintento posible de un rechazo definitivo.

Funcionalidades principales

  • Rechazos provocables: el visitante puede disparar cada tipo de rechazo a propósito, algo que ningún relay público permitiría, y observar tanto el evento como la respuesta del relay.
  • Cinco motivos de rechazo: autenticación requerida, límite de velocidad, política de contenido, límite de tamaño y prueba de trabajo exigida.
  • Restablecimiento del relay: controles para volver a aceptar todo y limpiar el estado del relay local entre experimentos.
  • Lectura del prefijo: la demo enfatiza que la parte útil de la respuesta es el prefijo inicial, que indica al cliente qué hacer a continuación.

Idea central

Cada rechazo dice por qué ocurre. Un cliente que lee el prefijo puede actuar con sensatez en lugar de mostrar una cadena de error.

El rechazo no es un fallo del sistema sino parte del diseño: relays simples con políticas claras y comunicadas de forma estandarizada.

Las cinco formas de rechazo

  1. auth-required: el relay solo acepta eventos de miembros. Un cliente real responde con un intercambio NIP-42 demostrando que controla la clave y reintenta.
  2. rate-limited: el evento llegó demasiado rápido y no se almacenó. Un cliente bien comportado reduce la velocidad en lugar de insistir.
  3. restricted: el relay rechaza ese tipo de evento. Un relay de artículos largos podría aceptar solo el kind 30023. Es política, no protocolo.
  4. invalid: el evento no pasa las reglas del relay, como un límite de tamaño. En la demo el límite es de treinta y dos caracteres.
  5. pow: el relay exige prueba de trabajo según NIP-13: un identificador de evento que empiece por cierto número de ceros, lo que cuesta cómputo real. Es caro para un spammer y apenas perceptible para una nota.

Qué significa cada prefijo para el cliente

  • rate-limited: esperar y reintentar más tarde.
  • auth-required: autenticar y reintentar.
  • restricted: y blocked: publicar en otro lugar.

Por qué se publica en varios relays

Cualquiera de los relays puede rechazar un evento por razones no relacionadas con el evento mismo: política de contenido, límites de tamaño o requisitos de membresía. El que lo acepte es tan bueno como cualquier otro, y la redundancia garantiza que el evento circule aunque algunos relays digan que no.

La lección muestra que el rechazo en Nostr está especificado, no improvisado. Al definir prefijos de error legibles por máquina, el protocolo permite que los clientes distingan un retraso temporal de un rechazo definitivo y actúen en consecuencia. Los relays rechazan cosas de unas pocas formas concretas, y cada una de ellas dice por qué.

  • Aqui esta el link de la fuente: https://rookery-six.vercel.app/
Nostr

La pagina que te enseña como funciona Nostr. Parte VIII

Pedir cosas a un relay: suscripciones y filtros

La página es la primera sección de la columna sobre relays en la demo educativa de Nostr. Se explica cómo funciona una suscripción: una petición con nombre que devuelve la historia coincidente, marca el final de esa historia y después se convierte en un canal de eventos nuevos en vivo.

Funcionalidades principales

  • Suscripción interactiva: el visitante construye una petición REQ con filtros (kinds y limit), la envía al relay y observa el tráfico resultante.

  • Visualización del ciclo completo: muestra las tres fases de una suscripción: la historia almacenada, el mensaje EOSE y los eventos nuevos a medida que aparecen.

  • Doble filtro: permite enviar dos filtros en el mismo REQ para demostrar que funcionan como alternativas, no como condiciones acumulativas.

  • Publicación para capturar eventos: se puede publicar un evento tras suscribirse y ver cómo llega por el canal en vivo, después del EOSE.

Idea central

Dentro de un filtro, todas las condiciones deben cumplirse a la vez. Entre filtros distintos, basta con que se cumpla cualquiera.

Esta lógica es la base de todas las consultas en Nostr, y los clientes la usan para saber exactamente qué están pidiendo y qué están recibiendo.

El ciclo de una suscripción

  1. REQ: se envía la petición con un identificador elegido por el cliente y uno o más filtros.
  2. Historia: el relay envía todo lo coincidente que ya tiene almacenado.
  3. EOSE: llega el mensaje de fin de eventos guardados, que marca la frontera entre historia y actualidad.
  4. Noticias: a partir de ese momento el relay sigue enviando solo los eventos nuevos que vayan llegando.

Los clientes usan la frontera del EOSE para decidir cuándo dejar de mostrar el indicador de carga: antes de él se está recibiendo historia, después de él se está recibiendo noticias.

Estructura de la petición de la demo

json
["REQ","explore",{"kinds":[1],"limit":10}]
  • Aqui esta el link de la fuente: https://rookery-six.vercel.app/
Nostr

La pagina que te enseña como funciona Nostr. Parte VII

Etiquetas en Nostr: las etiquetas crean la estructura

La página es la tercera sección sobre eventos en la demo educativa de Nostr. Se explica que en el protocolo no existe un campo de respuesta ni una estructura de hilos. Las respuestas, menciones y temas son simplemente etiquetas que apuntan a otras cosas, y son los clientes quienes reconstruyen las conversaciones a partir de ellas.

Funcionalidades principales

  • Experimento de doble publicación: el visitante publica el mismo texto dos veces, una con etiquetas y otra sin ellas. Los dos eventos son idénticos salvo por las etiquetas, y solo uno es una respuesta.
  • Visualización de las etiquetas: muestra las etiquetas que llevará la respuesta antes de publicarla: una etiqueta e para el evento al que se responde y una etiqueta p para notificar a su autor.
  • Consulta indexada: permite pedir al relay todo lo etiquetado con la etiqueta e de ese identificador, obteniendo únicamente la respuesta, no la publicación sin etiquetas.
  • Glosario de etiquetas: presenta las etiquetas de una sola letra que aparecerán en el día a día de Nostr.

Idea central

Los relays no almacenan ninguna estructura de hilos. Las conversaciones las reconstruyen los clientes a partir de las etiquetas que apuntan a cosas.

Un evento no es una respuesta por su contenido, sino por las etiquetas que lleva. Esa diferencia es todo el sistema de hilos de Nostr.

Cómo funciona una respuesta

Una respuesta es una nota ordinaria que lleva etiquetas concretas:

  • Etiqueta e: nombra el identificador del evento al que se responde.
  • Etiqueta p: nombra a la clave pública del autor de ese evento, de modo que su cliente pueda notificarle.

Estas convenciones son acuerdos entre clientes, no reglas del protocolo. El relay simplemente almacena el evento con sus etiquetas sin interpretarlas.

Etiquetas indexadas frente a etiquetas portadas

Las etiquetas de una sola letra están indexadas por los relays: se puede pedir todo lo que lleve una etiqueta e con un identificador concreto y obtener resultados. Las etiquetas con nombres más largos viajan dentro del evento, pero no se pueden usar para filtrar en las consultas.

Las etiquetas que encontrarás

  • e: un evento. Se usa en respuestas, citas y reacciones.
  • p: una persona. Se usa en menciones y notificaciones.
  • t: un tema. Es el hashtag.
  • d: un identificador. Determina qué evento addressable es este.
  • a: un evento addressable, referenciado por kind, clave pública e identificador.

La lección demuestra que la estructura social de Nostr, hilos, menciones y temas, no vive en los servidores sino en las etiquetas de los propios eventos. Al dejar que los clientes interpreten esas referencias y que los relays solo las indexen, el protocolo mantiene su simplicidad radical: las conversaciones son un conjunto de notas independientes que apuntan unas a otras.

  • Aqui esta el link de la fuente: https://rookery-six.vercel.app/
Nostr

La pagina que te enseña como funciona Nostr. Parte VI

Tipos de eventos en Nostr: el número decide las reglas

La página es la segunda sección sobre eventos en la demo educativa de Nostr. Se explica que un relay no entiende el significado humano de los eventos: no sabe qué es un perfil o una nota. Ese significado es convención entre clientes. Lo que el relay sí conoce es la regla de almacenamiento, que depende exclusivamente del rango numérico del campo kind.

Funcionalidades principales

  • Demostración interactiva: el visitante publica eventos de distintos tipos dos veces seguidas y observa el contador del relay, comprobando en la práctica cómo se comporta cada rango.
  • Cuatro comportamientos visibles: notas regulares que se acumulan, perfiles que se sobrescriben, artículos que conviven por etiqueta y eventos efímeros que nunca se guardan.
  • Panel de rangos: muestra la tabla completa de rangos numéricos y la regla de almacenamiento asociada a cada uno.
  • Verificación en vivo: un monitor permite ver llegar los eventos efímeros en tiempo real, aunque el relay no los retenga.

Idea central

El significado de un evento es convención. La regla de almacenamiento es protocolo.

Un relay puede ser simple e intercambiable porque no necesita saber qué es un perfil: solo necesita saber que el kind 0 es reemplazable y conservar el más reciente por autor.

Los cuatro comportamientos del relay

  1. Regular (por ejemplo, kind 1, la nota): el relay guarda todas las copias. Publicar dos notas deja dos eventos almacenados.

  2. Reemplazable (kinds 0 y 3, y el rango 10000 a 19999): el relay conserva solo el más reciente de cada autor. Tu perfil es un único evento que se sobrescribe al editarlo, no un historial. Lo mismo ocurre con tu lista de seguidos.

  3. Addressable (rango 30000 a 39999, artículos largos): funcionan como reemplazables, pero por etiqueta d. El mismo identificador sobrescribe el artículo; un identificador distinto crea uno nuevo, de modo que un autor puede tener muchos artículos conviviendo.

  4. Ephemeral (rango 20000 a 29999): el relay los entrega a quien esté escuchando en ese momento y no guarda ninguno. Son útiles para señales en tiempo real como chat o presencia, pero imposibles de recuperar después.

La lección muestra cómo Nostr consigue relays extremadamente simples sin sacrificar riqueza de funcionalidades. Al repartir los números de tipo en rangos con reglas de almacenamiento bien definidas, el protocolo se queda con la parte mecánica, mantener una copia, solo la última o ninguna, y deja el significado de cada evento a los clientes. El rango del kind decide si el relay guarda todas las copias, una sola o ninguna.

  • Aqui esta el link de la fuente: https://rookery-six.vercel.app/
Nostr

La pagina que te enseña como funciona Nostr. Parte V

Eventos en Nostr: todo es un mismo objeto

La página es la primera sección práctica sobre la estructura de datos de Nostr. Se explica que no existen tipos de datos diferentes para posts, perfiles o mensajes.

Todo es un único objeto JSON con siete campos, y la diferencia entre una nota y un perfil radica únicamente en el valor del campo kind y en lo que se coloca en tags y content.

Funcionalidades principales

  • Estructura universal visible: muestra el objeto completo del evento con sus siete campos, permitiendo al visitante entender que posts, reacciones, listas de contactos y mensajes cifrados comparten exactamente la misma forma.
  • Campos derivados marcados: dos de los siete campos (id y sig) aparecen señalados como derivados: no se eligen, se calculan a partir de los demás.
  • Serialización del hash: expone el array exacto que se somete a SHA-256 para generar el identificador, demostrando que cualquier cambio en los campos modifica el resultado.
  • Firma y publicación interactivas: el visitante puede firmar el evento y publicarlo, observando cómo la firma aparece sobre el id calculado.
  • Verificación independiente: cualquiera puede comprobar la validez del evento sin consultar al autor ni a un servidor, porque todo lo necesario viaja dentro del propio objeto.

Idea central

Nostr tiene una sola estructura de datos. El contexto de cada evento lo da el número del campo kind, no una tabla o esquema separado.

Esta uniformidad permite que cualquier cliente o relay procese cualquier evento sin conocimientos previos: basta con leer el número de tipo y validar que el id coincida con el hash del contenido.

Los siete campos del evento

  1. Content: la parte libre. Texto plano para una nota, JSON para un perfil.
  2. Kind: un número que indica qué es el evento. Los relays tratan los rangos de números de forma distinta.
  3. Pubkey: quién lo creó. Se deriva de la clave secreta, no se elige.
  4. Created_at: cuándo afirma haberlo creado. En segundos, no milisegundos.
  5. Tags: todo lo estructurado: respuestas, menciones, temas e identificadores.
  6. Id: el hash SHA-256 de los valores anteriores en orden fijo.
  7. Sig: una firma sobre el id, hecha con la clave secreta.

Cómo se calcula el identificador

El id es el SHA-256 de exactamente este array, sin espacios y en orden fijo: el cero inicial, la clave pública, el timestamp, el kind, los tags y el content. Cualquier modificación mínima en uno de esos valores produce un identificador completamente distinto.

La lección establece la base arquitectónica de Nostr: una simplicidad radical donde todo es el mismo objeto. Al derivar el identificador y la firma directamente del contenido, el protocolo elimina la necesidad de autoridades centrales que certifiquen la autenticidad de los eventos. La verificación es matemática y está al alcance de cualquiera.

  • Aqui esta el link de la fuente: https://rookery-six.vercel.app/
Nostr