The Problem: Why Can’t My Computer Just Talk to Yours?
We’ve all been there—wanting to share a big file with a friend, only to end up in the endless loop of uploading to Drive, waiting, tweaking permissions, and repeating. WeTransfer is better, but your data still passes through a third-party server.

I kept asking myself:
Why do we need centralized servers just to send something directly between two devices?
We both have internet. Shouldn’t that be enough?
That simple frustration spiraled into a weekend experiment—a decentralized, peer-to-peer (P2P) file-sharing system. The front-end? React. The trust layer? Stellar blockchain.
Why Stellar + React? A “Weird” Combo That Made Sense
I know what you’re thinking.
“Stellar? Isn’t that for payments?”
Yes—and it’s brilliant at that. But I wasn’t using Stellar for currency. I was using it for trust.
Think of Stellar as a global, cheap, programmable notary. A way to log “agreements” between strangers in a public, immutable way. And React? That was the easy part. I love it. It’s fast, modern, and made the whole thing look like a polished web app instead of a scary crypto experiment.
The Idea: How It All Works
I broke the system into three core parts:
1. The Public Introduction (a.k.a. “The Handshake”)
This is where Stellar shines. Every Stellar transaction includes a memo field—a small text box that can store public messages.
Let’s say Alice wants to send Bob a file. She creates a Stellar transaction with a memo like:
“Hey, I’m Alice. Ready to connect: [WebRTC handshake info here]”
Bob’s browser is constantly watching the Stellar ledger for new memos with that specific structure. When it sees Alice’s post, it pulls the info and prepares to establish a P2P connection.
No direct IP broadcasting. No sketchy APIs. Just a decentralized bulletin board.
2. The Agreement (Multi-Signature “Trust Lock”)
Just discovering each other isn’t secure enough. What if a malicious actor tries to hijack the process?
Enter Stellar multi-signature accounts. Think of it as a shared lockbox that both Alice and Bob must sign to open. Here’s how:
- Alice creates a temporary Stellar account.
- Both she and Bob are required to sign any transactions from it.
- Their signatures represent consent to share data.
This on-chain confirmation becomes a verifiable agreement—a trust anchor that says, “We both agreed to this connection at this time.”
3. The Direct Transfer (P2P Magic via WebRTC)
Here’s the best part: the actual file never touches the blockchain.
Once both parties have agreed via the multi-sig transaction, the React app opens a direct WebRTC data channel between Alice and Bob. No servers. No uploads.
The file is:
- Chunked
- Encrypted
- Streamed directly from Alice’s browser to Bob’s
React handles the UI — a clean progress bar, success/failure indicators — all while hiding the glorious complexity underneath.
Challenges, Surprises, and Little Bits of Magic
This wasn’t plug-and-play. Here’s what tripped me up (and taught me something):
- Thinking beyond payments: Stellar isn’t just for money. Seeing it as a programmable ledger opened creative doors.
- P2P networking quirks: NAT traversal, firewalls, STUN/TURN servers — all necessary for WebRTC to work reliably.
- UI that feels normal: The real win was making a decentralized app feel just as intuitive as Dropbox.
The first time I saw a file move directly from one browser to another—no central server in sight—it felt like magic.
The Bigger Picture: More Than File Sharing
This was just a proof-of-concept. A weekend side project. But it gave me a glimpse of something bigger:
- A web where users own interactions
- A system that doesn’t default to central authority
- A future where trust is programmable and cheap
Stellar and React together helped me decentralize more than just money.
They helped me rethink how we connect.
Read more about tech blogs . To know more about and to work with industry experts visit internboot.com .
Final Thoughts
This wasn’t just about building a geeky crypto app. It was about asking:
What happens when trust is built-in, and middlemen aren’t required?
That’s what I was chasing when I started building a “secret handshake” app with Stellar, React, and P2P.
It’s not perfect. It’s not production-ready. But it worked. And more importantly—it proved what’s possible when we step outside the server-client mindset and explore the edges of the web.