Tanglestash
Decentralized file storage on IOTA's distributed ledger with an Electron GUI.
What is it?
Tanglestash is a proof-of-concept I built in 2018 for storing and retrieving files on IOTA’s distributed ledger (the “tangle”). It combines blockchain-inspired data persistence with a BitTorrent-style transaction chaining approach, enabling decentralized file storage without traditional servers.
The project has two parts: a Node.js module for programmatic access and an Electron desktop application (GUI) for user-friendly interaction.
- Core module: https://github.com/loehnertz/Tanglestash
- Desktop GUI: https://github.com/loehnertz/tanglesta.sh
Why I built it
Back in 2017-2018, I was really into the IOTA project and the idea of distributed ledgers beyond just cryptocurrency. I wanted to explore whether you could actually use a tangle (IOTA’s DAG-based alternative to blockchain) for practical file storage, not just transactions.
The challenge was figuring out how to chain transactions together in a way that made retrieval possible without centralized indexing. I ended up with a BitTorrent-inspired approach where each transaction references other data-holding transactions while linking to its predecessor.
How it works
Tanglestash stores data by creating chains of IOTA transactions. Each transaction holds part of your file and references other transactions, forming a retrieval chain. You only need an “entry hash” (the first transaction’s hash) to recover your stored files – everything else can be traced from there.
Key capabilities:
- Store files of any type directly on the tangle
- Retrieve previously stored data using transaction hashes
- Optional AES encryption for data protection
- Automatic Base64 encoding/decoding for file handling
The desktop app
The Electron GUI provides three main interfaces:
Persisting Screen – Upload files to the tangle with optional encryption
Retrieving Screen – Download previously stored files using their entry hash
Settings Screen – Configure IOTA node provider connections
Tech stack
Core Module:
- Node.js (version 8 specifically – didn’t work with version 9+)
- JavaScript with IOTA integration via
ccurl - AES encryption for optional data protection
Desktop GUI:
- Electron for cross-platform desktop apps (Windows, macOS, Linux)
- Vue.js for reactive UI components
- Vuex for state management
Reality check
I’ll be honest: Tanglestash was an experiment, not a production-ready solution. Data persistence was painfully slow compared to traditional HTTP uploads due to proof-of-work requirements on the IOTA network at the time.
It demonstrates what’s possible with distributed ledger technology for file storage, but it isn’t optimized for real-world use. I released it under the MIT license in 2018 as an early exploration of combining distributed ledger concepts with practical file storage use cases.
Still, it was a fun project and taught me a lot about working with distributed systems and the trade-offs between decentralisation and performance.