FlowM (OP)
Newbie
Offline
Activity: 7
Merit: 0
|
 |
December 27, 2025, 02:14:47 AM |
|
I’m pleased to share BitStory, a new on-chain messaging protocol built directly on Bitcoin. BitStory is a self-contained protocol that defines how to publish, authenticate and organize human messages on the Bitcoin blockchain. Messages use three primitives only: PO (post), PF (profile), PG (page). Together they cover short texts, identity metadata, and long-form documents. Every message is fully on-chain and signed with a recoverable secp256k1 signature, so anyone can verify the content and recover the author’s public key without any central identity registry. The key point is that BitStory is an open protocol, not a single app: any BitStory-compatible client can read and write the same messages, and the full history can be rebuilt from the chain alone. Profiles and pages are versioned on-chain: one active profile per key, and pages keyed by (pubkey, title), with a full version history that remains recoverable forever. The protocol is intentionally small, but robust: no sidechains, no UTXO bloat (data lives in OP_RETURN), and messages pay standard Bitcoin fees. There is already a working implementation (indexer + API), plus reference clients in Python and JavaScript to build, you can sign and verify BitStory messages todayIf you want to display BitStory messages in your own project, the public API makes it easy to fetch messages by txid, author, tag, or parent and render them however you like. Live implementation / explorer / API: http://www.BitStory.orgGitHub (spec, whitepaper, clients, examples): https://github.com/mflowrs/BitStoryWhitepaper : https://github.com/mflowrs/BitStory/blob/master/whitepaper/BitStory_Whitepaper_V1.0.pdfI’d appreciate feedback, does this design make sense to you, and what would you improve or challenge?
|
|
|
|
|
ABCbits
Legendary
Offline
Activity: 3472
Merit: 9554
|
 |
December 27, 2025, 10:11:01 AM |
|
FWIW, https://memo.cash/ already exist. While it's created for BCH network, it should work on BTC without major change since it rely a lot on OP_RETURN. Every BitStory message is a compact JSON object with at least: --snip--
1. What is goal of including ECDSA signature? Isn't fact someone create a transaction is enough? 2. Why JSON over format that may have smaller size (such as MessagePack)?
|
|
|
|
FlowM (OP)
Newbie
Offline
Activity: 7
Merit: 0
|
 |
December 27, 2025, 10:56:41 AM |
|
FWIW, https://memo.cash/ already exist. While it's created for BCH network, it should work on BTC without major change since it rely a lot on OP_RETURN. Every BitStory message is a compact JSON object with at least: --snip--
1. What is goal of including ECDSA signature? Isn't fact someone create a transaction is enough? 2. Why JSON over format that may have smaller size (such as MessagePack)? Memo.cash is an interesting reference, but it encodes application-specific social actions directly on-chain rather than defining a generic, application-agnostic message layer. Memo defines a fixed set of operations (post, like, follow, etc.) and implicitly ties authorship to the address that funds the transaction. This is a valid design choice, but it couples identity, payment, and application semantics. BitStory takes a different approach. It defines a generic, signed messaging protocol with an explicit cryptographic identity layer. Messages are signed independently using recoverable secp256k1 signatures, and the author’s public key is recovered from the message itself. This separation is intentional: paying for a transaction does not necessarily mean authoring its content. BitStory allows messages to be funded by any address, while identity remains stable and verifiable across reposts, mirrors, and independent indexers. JSON is used deliberately, not for efficiency but for durability: it is human-readable, deterministic once canonicalized, easy to debug, and trivial to implement consistently across languages. For a protocol meant to be recovered decades later, readability and interoperability matter more than saving a few bytes. BitStory targets Bitcoin mainnet. Publishing on the BTC main chain maximizes long-term durability, archival guarantees, and independent recoverability compared to application ecosystems built on smaller or more mutable chains. The core difference lies in encoding application behavior versus defining a shared, signed, and durable messaging protocol.
|
|
|
|
|
|
|
ABCbits
Legendary
Offline
Activity: 3472
Merit: 9554
|
 |
December 30, 2025, 09:04:01 AM |
|
This separation is intentional: paying for a transaction does not necessarily mean authoring its content. BitStory allows messages to be funded by any address, while identity remains stable and verifiable across reposts, mirrors, and independent indexers.
I see, i didn't consider about message (that supposed from same people) can be shared from different address. Although it's also another source of high TX size. JSON is used deliberately, not for efficiency but for durability: it is human-readable, deterministic once canonicalized, easy to debug, and trivial to implement consistently across languages. For a protocol meant to be recovered decades later, readability and interoperability matter more than saving a few bytes.
Fair point, although AFAIK both MessagePack specification and implementation are open source.
|
|
|
|
FlowM (OP)
Newbie
Offline
Activity: 7
Merit: 0
|
 |
December 30, 2025, 12:12:24 PM |
|
Thanks for the feedback, much appreciated. Regarding transaction size: that’s a deliberate trade-off. The messages are naturally constrained by fees, which acts as an economic filter. The goal is not high-volume chatter, but messages that are “worth publishing” and paying for on Bitcoin’s base layer. This is also why BitStory defines a specific PAGE message type. Pages are meant for higher-value, long-form content that can evolve over time via on-chain versioning, while preserving full history. A PAGE can be updated by publishing a new version, without erasing the old one.
Pages are also directly tippable in Bitcoin, making them suitable for documents, essays, or resources that readers may want to support financially, without intermediaries. I think the protocol is optimized for meaningful, durable content.
Feel free to try the live implementation and publish a test message. I’d be glad if you gave it a try, as experiencing the full sign -> publish -> recover flow really helps make the design tangible.
|
|
|
|
|
joniboini
Legendary
Offline
Activity: 2786
Merit: 1870
|
 |
January 02, 2026, 04:13:03 PM |
|
Just checked your website and I saw some messages there. Interestingly, one of them is asking for a tip, and some people tipped them. Looking at the names, I suppose it's a test done by your team? Otherwise, I see no reason why someone would tip some strangers just because they use your platform to publish that message.
I also feel like the font is too small for me. It'd be great if we could enlarge it instead of relying on the browser zoom function to read properly.
|
|
|
|
|
|
| . betpanda.io | │ |
ANONYMOUS & INSTANT .......ONLINE CASINO....... | │ | ▄███████████████████████▄ █████████████████████████ █████████████████████████ ████████▀▀▀▀▀▀███████████ ████▀▀▀█░▀▀░░░░░░▄███████ ████░▄▄█▄▄▀█▄░░░█▄░▄█████ ████▀██▀░▄█▀░░░█▀░░██████ ██████░░▄▀░░░░▐░░░▐█▄████ ██████▄▄█░▀▀░░░█▄▄▄██████ █████████████████████████ █████████████████████████ █████████████████████████ ▀███████████████████████▀ | ▄███████████████████████▄ █████████████████████████ ██████████▀░░░▀██████████ █████████░░░░░░░█████████ ████████░░░░░░░░░████████ ████████░░░░░░░░░████████ █████████▄░░░░░▄█████████ ███████▀▀▀█▄▄▄█▀▀▀███████ ██████░░░░▄░▄░▄░░░░██████ ██████░░░░█▀█▀█░░░░██████ ██████░░░░░░░░░░░░░██████ █████████████████████████ ▀███████████████████████▀ | ▄███████████████████████▄ █████████████████████████ ██████████▀▀▀▀▀▀█████████ ███████▀▀░░░░░░░░░███████ ██████▀░░░░░░░░░░░░▀█████ ██████░░░░░░░░░░░░░░▀████ ██████▄░░░░░░▄▄░░░░░░████ ████▀▀▀▀▀░░░█░░█░░░░░████ ████░▀░▀░░░░░▀▀░░░░░█████ ████░▀░▀▄░░░░░░▄▄▄▄██████ █████░▀░█████████████████ █████████████████████████ ▀███████████████████████▀ | .
SLOT GAMES ....SPORTS.... LIVE CASINO | │ | ▄░░▄█▄░░▄ ▀█▀░▄▀▄░▀█▀ ▄▄▄▄▄▄▄▄▄▄▄ █████████████ █░░░░░░░░░░░█ █████████████ ▄▀▄██▀▄▄▄▄▄███▄▀▄ ▄▀▄██▄███▄█▄██▄▀▄ ▄▀▄█▐▐▌███▐▐▌█▄▀▄ ▄▀▄██▀█████▀██▄▀▄ ▄▀▄█████▀▄████▄▀▄ ▀▄▀▄▀█████▀▄▀▄▀ ▀▀▀▄█▀█▄▀▄▀▀ | Regional Sponsor of the Argentina National Team |
|
|
|
FlowM (OP)
Newbie
Offline
Activity: 7
Merit: 0
|
 |
January 03, 2026, 12:52:44 PM |
|
Just checked your website and I saw some messages there. Interestingly, one of them is asking for a tip, and some people tipped them. Looking at the names, I suppose it's a test done by your team? Otherwise, I see no reason why someone would tip some strangers just because they use your platform to publish that message.
I also feel like the font is too small for me. It'd be great if we could enlarge it instead of relying on the browser zoom function to read properly.
Thanks for checking it out and for the feedback. Yes, most tips you’re seeing right now are early tests from people experimenting with the protocol. The idea isn’t to tip random messages, but to enable direct support when the content itself has value: pages, documents, results, or records people actually care about. Good point on the font size, I’ll look at improving that in the UI. It’s still early, but exploring what’s “worth publishing” on Bitcoin is very much part of the experiment. Appreciate the thoughtful comments.
|
|
|
|
|
NotATether
Legendary
Offline
Activity: 2198
Merit: 9217
Trêvoid █ No KYC-AML Crypto Swaps
|
 |
January 04, 2026, 09:22:48 AM |
|
It sounds great but it's not going to scale if you use Bitcoin. 10-minute waits for blocks is going to kill your message delivery time. There's a reason why Nostr notes are stored off-chain. You may want to consider this, if you want it to have some sort of production value as opposed to just a pet project.
|
|
|
|
|
|
| . betpanda.io | │ |
ANONYMOUS & INSTANT .......ONLINE CASINO....... | │ | ▄███████████████████████▄ █████████████████████████ █████████████████████████ ████████▀▀▀▀▀▀███████████ ████▀▀▀█░▀▀░░░░░░▄███████ ████░▄▄█▄▄▀█▄░░░█▄░▄█████ ████▀██▀░▄█▀░░░█▀░░██████ ██████░░▄▀░░░░▐░░░▐█▄████ ██████▄▄█░▀▀░░░█▄▄▄██████ █████████████████████████ █████████████████████████ █████████████████████████ ▀███████████████████████▀ | ▄███████████████████████▄ █████████████████████████ ██████████▀░░░▀██████████ █████████░░░░░░░█████████ ████████░░░░░░░░░████████ ████████░░░░░░░░░████████ █████████▄░░░░░▄█████████ ███████▀▀▀█▄▄▄█▀▀▀███████ ██████░░░░▄░▄░▄░░░░██████ ██████░░░░█▀█▀█░░░░██████ ██████░░░░░░░░░░░░░██████ █████████████████████████ ▀███████████████████████▀ | ▄███████████████████████▄ █████████████████████████ ██████████▀▀▀▀▀▀█████████ ███████▀▀░░░░░░░░░███████ ██████▀░░░░░░░░░░░░▀█████ ██████░░░░░░░░░░░░░░▀████ ██████▄░░░░░░▄▄░░░░░░████ ████▀▀▀▀▀░░░█░░█░░░░░████ ████░▀░▀░░░░░▀▀░░░░░█████ ████░▀░▀▄░░░░░░▄▄▄▄██████ █████░▀░█████████████████ █████████████████████████ ▀███████████████████████▀ | .
SLOT GAMES ....SPORTS.... LIVE CASINO | │ | ▄░░▄█▄░░▄ ▀█▀░▄▀▄░▀█▀ ▄▄▄▄▄▄▄▄▄▄▄ █████████████ █░░░░░░░░░░░█ █████████████ ▄▀▄██▀▄▄▄▄▄███▄▀▄ ▄▀▄██▄███▄█▄██▄▀▄ ▄▀▄█▐▐▌███▐▐▌█▄▀▄ ▄▀▄██▀█████▀██▄▀▄ ▄▀▄█████▀▄████▄▀▄ ▀▄▀▄▀█████▀▄▀▄▀ ▀▀▀▄█▀█▄▀▄▀▀ | Regional Sponsor of the Argentina National Team |
|
|
|
|
|
ipsbruno3
Newbie
Offline
Activity: 5
Merit: 1
|
 |
January 04, 2026, 10:51:03 AM |
|
You can display images if the link comes with data:image/xxxx;base64 Just remember to sanitize it; malicious people might try to inject XSS/Javascript. Otherwise, the site is perfect, congratulations on the work, I'll keep this hash with great care. It sounds great but it's not going to scale if you use Bitcoin. 10-minute waits for blocks is going to kill your message delivery time. There's a reason why Nostr notes are stored off-chain. You may want to consider this, if you want it to have some sort of production value as opposed to just a pet project.
The purpose is to create a permanent and unchanging message board, not a chat system per se.
|
|
|
|
|
FlowM (OP)
Newbie
Offline
Activity: 7
Merit: 0
|
 |
January 04, 2026, 02:26:42 PM |
|
Thanks for the feedback and for immortalizing your message on the blockchain! You can display images if the link comes with data:image/xxxx;base64
Just remember to sanitize it; malicious people might try to inject XSS/Javascript.
Otherwise, the site is perfect, congratulations on the work, I'll keep this hash with great care.
For security reasons (XSS prevention), we block data: URLs from rendering as images. The base64 data will display as plain text, not as an actual image. It sounds great but it's not going to scale if you use Bitcoin. 10-minute waits for blocks is going to kill your message delivery time. There's a reason why Nostr notes are stored off-chain. You may want to consider this, if you want it to have some sort of production value as opposed to just a pet project.
That’s a fair point, and BitStory is intentionally not a Twitter-on-chain. Bitcoin’s fee market acts as automatic moderation, naturally filtering spam and bots without any central control. On our live implementation : bitstory.org, messages are displayed as soon as the transaction is accepted by the network (mempool) for usability, but they are treated as pending and removed if they never confirm. When the “chained” icon appears, it means the server has detected the transaction confirmed in a Bitcoin block and indexed it as final. We deliberately trades speed for finality, long-term recoverability, and signal over noise.
|
|
|
|
|
FlowM (OP)
Newbie
Offline
Activity: 7
Merit: 0
|
 |
January 06, 2026, 11:41:55 AM |
|
You can display images if the link comes with data:image/xxxx;base64 Just remember to sanitize it; malicious people might try to inject XSS/Javascript.
Thanks again, I’ve strengthened the security to prevent malicious message delivery. If you’d like to share your posts inscribed on the blockchain: click on a post and use the “Embed” button to get the code. You’ll also find it on your profile to share your latest posts.
|
|
|
|
|
|