🔨

Nostr Event Publisher & Debugger

Create, sign, validate, and publish Nostr events for testing

🔐 Client-Side Signing ✓ Signature Validation 📋 JSON Preview

🔨 Event Builder

Create and configure your Nostr event

Your private key never leaves your browser

Text content for your note

📋 Event Preview

Review and publish your event

Unsigned Event

Create an event to see preview

Common Event Kinds

Kind 0 - Metadata

User profile information (name, about, picture)

{
  "name": "Alice",
  "about": "Nostr developer",
  "picture": "https://example.com/pic.jpg"
}

Kind 1 - Short Text Note

Standard text post, like a tweet

Hello Nostr! 👋

Kind 3 - Contact List

Following list with relay recommendations

Tags: ["p", "pubkey1"], ["p", "pubkey2"]

Kind 7 - Reaction

React to another event (like, emoji)

Content: "+" or "❤️"
Tag: ["e", "event_id"]

Developer FAQ

How do I create a valid Nostr event?

A valid event needs: kind (number), content (string), tags (array), created_at (unix timestamp), pubkey (hex), id (sha256 hash), and sig (schnorr signature).

What is event signing?

Events are signed using Schnorr signatures over secp256k1. This proves the event was created by the owner of the private key without revealing the key itself.

How is the event ID calculated?

The event ID is the SHA-256 hash of the serialized event: [0, pubkey, created_at, kind, tags, content]

What are tags used for?

Tags create references and metadata. Common tags: ["e", "event_id"] for replies, ["p", "pubkey"] for mentions, ["t", "hashtag"] for topics.

Can I test without publishing?

Yes! You can create and sign events to see the JSON structure and validate signatures without publishing to relays.

Is my private key safe?

All cryptographic operations happen in your browser. Your private key never leaves your device or gets sent to any server.