hashtree icon
hashtree icon

hashtree

Content-addressed filesystem on Nostr. Merkle roots can be published to get mutable npub/tree/path addresses. Data is chunked, optionally encrypted by default (CHK), and works with Blossom-compatible storage and WebRTC fetches.

Cost / License

  • Free
  • Open Source (MIT)

Platforms

  • Online
  • Linux
  • Mac
  • Windows
2likes
0comments
0articles

Features

Properties

  1.  Privacy focused

Features

  1.  Decentralized
  2.  No registration required
  3.  Dark Mode
  4.  Ad-free
  5.  No Tracking
  6.  Peer-To-Peer
  7.  WebRTC

hashtree News & Activities

Highlights All activities

Recent activities

hashtree information

  • Developed by

    FI flagMarti Malmi
  • Licensing

    Open Source (MIT) and Free product.
  • Alternatives

    21 alternatives listed
  • Supported Languages

    • English

AlternativeTo Categories

File SharingSocial & Communications
hashtree was added to AlternativeTo by Darlene Sonalder on and this page was last updated .
No comments or reviews, maybe you want to be first?

What is hashtree?

Content-addressed filesystem on Nostr. Merkle roots can be published to get mutable npub/tree/path addresses. Data is chunked, optionally encrypted by default (CHK), and works with Blossom-compatible storage and WebRTC fetches.

Content-Addressed Storage

A simple merkle tree for git repos, file sharing, and anything else. Sync peer-to-peer between browsers and devices, or via servers.

Content-Addressed

Files and directories stored as merkle trees, identified by hash. Verify integrity automatically. Deduplicate across repos.

Encrypted by Default

Content Hash Key (CHK) encryption: the key is the hash of the plaintext. Same content always produces the same ciphertext, enabling deduplication even on encrypted data.

Mutable References

Use npub/path URLs as stable permalinks. The latest merkle root is published to Nostr relays, so links always resolve to the current version.

Peer-to-Peer

Share directly between browsers and devices over WebRTC. Also works with Blossom servers, HTTP, or any custom transport.

No Gatekeepers

No DNS, no SSL certificates, no accounts — just a keypair. Ideal for autonomous agents and humans alike.

Structure

ts/ - TypeScript/JavaScript SDK packages. See ts/README.md. rust/ - Rust CLI/daemon, git remote helper, and crates. See rust/README.md. apps/ - Applications (web + desktop) iris-files/ - Iris Files app (Tauri desktop + web). See apps/iris-files/README.md.

Design highlights

SHA256 hashing Deterministic MessagePack encoding for tree nodes CHK encryption by default (hash + key in CIDs) Simple storage interface: get(hash) -> bytes, put(hash, bytes) 2MB chunks optimized for Blossom uploads Nostr-published roots for mutable addresses WebRTC fetches with Blossom fallback

Installation

Quick install (macOS/Linux)

curl -fsSL https://github.com/mmalmi/hashtree/releases/latest/download/hashtree-$(uname -m | sed 's/arm64/aarch64/')-$(uname -s | tr '[:upper:]' '[:lower:]' | sed 's/darwin/apple-darwin/' | sed 's/linux/unknown-linux-musl/').tar.gz | tar -xz && cd hashtree && ./install.sh

Cargo (requires Rust)

CLI + daemon + git remote helper (default)

cargo install hashtree-cli

Minimal install without P2P/WebRTC/git-remote (smaller binary)

cargo install hashtree-cli --no-default-features

Getting started

Web app + JS SDK: follow ts/README.md CLI + daemon + git remote: follow rust/README.md

Protocol spec

docs/HTS-01.md - hashtree core protocol (draft)

License

MIT

Official Links