← Todos los NIPs

NIP-03

Atestaciones OpenTimestamps para eventos

No recomendadoEventos

El kind 1040 lleva una prueba OpenTimestamps de que un evento existía antes de cierto bloque de Bitcoin. Marcado como no recomendado en el repositorio oficial: es vulnerable a un ataque concreto y está pendiente de actualización.

De un vistazo

Estado
Sigue documentado, pero el software nuevo no debería apoyarse en él.
Kinds
Tags
  • e
  • k
Último cambio
31 may 2026

No recomendado: vulnerable to one specific attack, needs update

Pruébalo

Edita el formulario o el JSON: ambos se mantienen sincronizados, la insignia indica si el resultado es válido y, al tocar cualquier campo, se explica qué hace.

Ejemplos
Válido 1 nota

Aún sin firmar · Solo claves de demo. Las claves secretas de estos personajes son públicas a propósito.

Formulario
1 ene 2025, 0:00 UTC

Contenido

Base64 de un archivo .ots completo con, idealmente, una atestación de Bitcoin y ninguna pendiente.

Tags

  1. e Obligatorio

    El evento al que se pone la marca de tiempo.

  2. k Recomendado

    Kind del evento sellado.

Añadir tag

Cómo funciona este NIP

Paso 1 de 4

No recomendado

El NIP está marcado como vulnerable a un ataque concreto y necesita una actualización. Todavía no hay un NIP que lo reemplace; trata estas pruebas como informativas.

En el curso

Ningún capítulo del curso cubre este NIP todavía. El editor de arriba es la forma más rápida de empezar.

Se basa en

Especificación

El texto de las especificaciones se cita en inglés del repositorio nostr-protocol/nips. Nuestras explicaciones y la interfaz están traducidas. Código fuente en GitHub en el commit 0046368

Leer la especificación171 palabras, citadas del repositorio en el commit 0046368.

This NIP defines an event with kind:1040 that can contain an OpenTimestamps proof for any other event:

{
  "kind": 1040
  "tags": [
    ["e", <target-event-id>, <relay-url>],
    ["k", "<target-event-kind>"]
  ],
  "content": <base64-encoded OTS file data>
}
  • The OpenTimestamps proof MUST prove the referenced e event id as its digest.
  • The content MUST be the full content of an .ots file containing at least one Bitcoin attestation. This file SHOULD contain a single Bitcoin attestation (as not more than one valid attestation is necessary and less bytes is better than more) and no reference to "pending" attestations since they are useless in this context.

Example OpenTimestamps proof verification flow

Using nak, jq and ots:

~> nak req -i e71c6ea722987debdb60f81f9ea4f604b5ac0664120dd64fb9d23abc4ec7c323 wss://nostr-pub.wellorder.net | jq -r .content | ots verify
> using an esplora server at https://blockstream.info/api
- sequence ending on block 810391 is valid
timestamp validated at block [810391]