Jakob Löhnertz

Senior Software Engineer & Leader

Screenshot of Tanglestash GUI showing the file persisting interface.

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.

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

Tanglestash persisting interface

Retrieving Screen – Download previously stored files using their entry hash

Tanglestash retrieving interface

Settings Screen – Configure IOTA node provider connections

Tanglestash settings interface

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.

CA