If you've ever used Nostr, you've probably wondered:
What is a Nostr post, really?
Unlike traditional social media, where your posts live inside a company's private database, every Nostr post is simply a signed piece of structured data called an event. Every Nostr client, whether it's BCHNostr, Damus, Amethyst, Snort, or another app, reads and writes these events using the same open protocol.
That means your favorite Nostr app isn't creating a special kind of post. It's creating a standard Nostr event that any compatible client can understand.
Let's look at a real example from BCHNostr.
The Raw Event
{ "id": "c69192e8e6e8e7653dbae2b79459d17212eb246c3f766ae1a22755dd9e2cfb98", "pubkey": "2561af6ed0f4a245645654eda8c2ca61792cae5a6620b92bd75c42fbaecce8c7", "created_at": 1782053121, "kind": 1, "tags": [ ["t", "bch"], ["t", "bitcoincash"], ["imeta", "url https://npub1y4s67mks7j3y2ezk2nk63sk2v9ujetj6vcstj27ht3p0htkvarrs5h5v4f.blossom.band/f822dd42740b5b195a896a0fe503e4b1db60c54123965cd8e4da610200409fbd.jpg"], ["client", "BCHNostr", "31990:df5bcaba9e74cc1764c9773ae160299dde5acf79416e2c96758dba225e6707cc:bchstr24-1", "wss://relay.damus.io"] ], "content": "I’ve been catching up on Baki-Dou across both Netflix and the manga, and I’m just sitting here laughing because absolutely nothing has changed.\n\nIn a world where every other series undergoes massive shifts, Baki stays completely true to its unhinged self. We’re still getting the most peak, borderline-insane martial arts logic, over-the-top character reactions, and fights that defy the laws of the universe. It’s comforting how wildly consistent it is.\n\nFor those reading or watching—how do you think the Baki-Dou arc holds up compared to the older seasons?\n\nhttps://npub1y4s67mks7j3y2ezk2nk63sk2v9ujetj6vcstj27ht3p0htkvarrs5h5v4f.blossom.band/f822dd42740b5b195a896a0fe503e4b1db60c54123965cd8e4da610200409fbd.jpg" }
At first glance, it looks like ordinary JSON. But every field has a purpose.
id
"id": "c69192e8..."
Think of this as the post's fingerprint.
The ID isn't randomly assigned by a server. It's calculated from the event itself using cryptographic hashing. If even one character changes, the ID changes completely.
This makes every event globally unique and impossible to secretly edit after publication.
pubkey
"pubkey": "2561af6e..."
This is the author's public key.
Instead of usernames owned by a company, Nostr identities are based on public key cryptography. Your private key proves ownership, while your public key lets everyone verify that the post genuinely came from you.
Most apps convert this long hexadecimal value into a friendlier npub1... address.
created_at
"created_at": 1782053121
This is a Unix timestamp.
Instead of storing dates like "July 2, 2026", Nostr stores the number of seconds since January 1, 1970 (UTC). Every client can convert this into the reader's local date and time.
Using a universal timestamp avoids confusion across different countries and time zones.
kind
"kind": 1
The kind tells clients what type of event this is.
Some common examples include:
- Kind 1: Regular text note
- Kind 0: User profile metadata
- Kind 3: Contact list
- Kind 7: Reaction (❤️, 👍, etc.)
- Kind 30023: Long-form article
By looking at this number, any Nostr client immediately knows how to display the event.
tags
"tags": [...]
Tags are extra pieces of structured information attached to an event.
In this example we have:
t
["t", "bch"]
["t", "bitcoincash"]
These are hashtags.
Instead of scanning the post text looking for hashtags, clients can search these tags directly, making discovery much faster and more reliable.
imeta
["imeta", "url https://..."]
This provides metadata about an attached image.
Rather than guessing whether a URL points to an image, clients can use this information to display previews, dimensions, or other media details.
client
["client", "BCHNostr", ...]
This records which application created the event.
It's similar to seeing "Sent from iPhone" in an email. It isn't required, but it helps developers understand which apps people are using and makes debugging easier.
content
"content": "I've been catching up on Baki-Dou..."
This is the actual text that readers see.
It can include:
- Plain text
- Links
- Line breaks
- Mentions
- Questions
- Markdown support in some clients
In this example, the author also includes an image URL at the end of the post.
What's Missing?
One important piece isn't shown here.
Every Nostr event also contains a cryptographic signature.
After the event is created, it's signed using the author's private key. Anyone can verify that signature using the public key, proving that the event is authentic and hasn't been altered.
This is one of the foundations of Nostr's trust model. You don't trust a company. You verify the cryptography.
How Does This Become a Social Network?
When you press Post, your client:
- Creates the JSON event.
- Calculates its unique ID.
- Signs it with your private key.
- Sends it to one or more relays.
- Other clients fetch it from those relays and display it to readers.
No central server owns your account or your posts.
Your identity belongs to your keys, and your content can travel between different Nostr clients.
Why This Matters
Understanding the structure of a Nostr event reveals something powerful.
What looks like a social media post is actually just open, standardized data.
Because every client speaks the same protocol:
- You can switch apps without losing your identity.
- Developers can build new clients without asking permission.
- Anyone can verify authenticity.
- Multiple relays can store the same event.
- No single company controls the protocol.
That's one of the biggest differences between Nostr and traditional social media.
Instead of a platform owning your content, you own your identity and your data.
Once you understand the structure of a Nostr event, you start to see that every post is more than just text. It's a portable, verifiable, cryptographically signed message that any compatible client can understand.
And that's what makes Nostr so fascinating.
Have you looked at a raw Nostr event before? Did anything in this breakdown surprise you? Let us know in the comments, and if you'd like to see more beginner-friendly deep dives into Nostr, BCHNostr, and the protocol behind decentralized social media, stay tuned!

