hashtree-resolver

Crates.iohashtree-resolver
lib.rshashtree-resolver
version0.2.3
created_at2025-12-17 17:24:35.274811+00
updated_at2026-01-19 13:22:01.890297+00
descriptionRoot resolver for hashtree - maps human-readable keys to merkle root hashes
homepage
repositoryhttps://files.iris.to/#/npub1xndmdgymsf4a34rzr7346vp8qcptxf75pjqweh8naa8rklgxpfqqmfjtce/hashtree
max_upload_size
id1990788
size78,586
Martti Malmi (mmalmi)

documentation

README

hashtree-resolver

Root resolver for hashtree - maps human-readable keys to merkle root hashes.

Resolves npub/path style addresses to merkle root hashes by querying Nostr relays.

Usage

use hashtree_resolver::{NostrRootResolver, NostrResolverConfig, RootResolver};

let config = NostrResolverConfig {
    relays: vec!["wss://relay.damus.io".to_string()],
    ..Default::default()
};
let resolver = NostrRootResolver::new(config).await?;

// Resolve npub/treename to hash
let entry = resolver.resolve("npub1.../myrepo").await?;
println!("Root hash: {}", entry.root_hash);

Nostr Events

Uses Nostr kind 30078 (NIP-78) events to store tree references:

  • d tag: tree name
  • l tag: hashtree label (for filtering)
  • hash tag: content hash
  • key tag: CHK decryption key (optional, public)
  • encrypted_key tag: encrypted key (optional, shared)

Part of hashtree-rs.

Commit count: 0

cargo fmt