Show HN: MutAnt: Decentralized public/private mutable key-value storage

github.com

1 points by champii 11 hours ago

Hey guy !

I want to show you this small tool I've been developing on top of the https://autonomi.com/ decentralized storage network It is composed of a `mutant` CLI tool that is a frontend for a rust library

It allows you to have a private decentralized key value storage as well as publicly-addressable mutable content accessible from everywhere, where you only pay to grow your storage and can mutate it -> for free forever <-

The cli looks like this

```bash

# Store a value directly

$> mutant put mykey "my value"

# Get a value and print to stdout

$> mutant get mykey

# Output: my value

# Update a value (you can use the shorter -f)

$> mutant put mykey "my new value" --force

# Remove a value

$> mutant rm mykey

```

```bash

# Store data publicly (no encryption) under a name

$> mutant put -p my_key "some public content"

# Output:

1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef

# Get your own public data by name

$> mutant get my_key

# Output: some public content

# Get public data by address

$> mutant get -p 1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef

# Output: some public content

# You can update it all the same as the private data

$> mutant put -p my_key "some updated public content" --force

```

You can also use the rust library directly

```rust use mutant_lib::{MutAnt, MutAntConfig, Error};

#[tokio::main]

async fn main() -> anyhow::Result<()> { // Replace with your actual private key (hex format, with or without 0x prefix)

    let private_key_hex = "0xYOUR_PRIVATE_KEY_HEX".to_string();

    let mut mutant = MutAnt::init(private_key_hex).await?;

    mutant.store("greeting", b"hello world").await?;

    let fetched_value = mutant.fetch("greeting").await?;

    println!("Fetched value: {}", String::from_utf8_lossy(&fetched_value));

    mutant.remove("greeting").await?;

    Ok(())
}

```

As a demo, I run a little loop to update a public value with the current time at the time of the update that you can publicly get at `9429076971abe17b485fd30dd3065d27fc36362ba164529e530722bdd693f6cb8904fc177bf657d29774eb42403ac980`

```bash

$> cargo install mutant

$> mutant get -p 9429076971abe17b485fd30dd3065d27fc36362ba164529e530722bdd693f6cb8904fc177bf657d29774eb42403ac980

# outputs: Hello Autonomi ! Sat, 19 Apr 2025 16:45:30 +0000

```

You can find more information on the github

https://github.com/Champii/MutAnt

The Autonomi website

https://autonomi.com

And the Autonomi forum post for the latest updates

https://forum.autonomi.community/t/announcing-mutant-mutable...

I'm looking for feedback on this tool, if it is usefull or if it has any use for you guys.

Let me know !

Happy storing :)

champii 7 hours ago

I forgot to mention that Autonomi is a P2P decentralized storage network, this is not a blockchain. You own your data at any time and nobody can censor you.