MODERN YAMN GUIDE / SOURCE REVIEWED

Install and use Mixfit.

A complete guide derived from the Go implementation, not only the project README. Mixfit is a separate graphical client for the current YAMN network.

FYNE GUIGO 1.25YAMN V2SOCKS5AEC / ESUB

01 / IDENTITY

Mixfit is a YAMN client.

Mixfit is a desktop application by Ch1ffr3punk. It composes email or Usenet messages, builds layered YAMN packets, and submits the armored packet to the first YAMN Entry through an SMTP relay.

Mixfit is not the crooks/yamn command-line program, Yamnweb or Nym Network. Its Go module depends on github.com/crooks/yamn v0.2.6 for the cryptographic random helper while its own mix.go implements packet assembly and YAMN armor.

Mixfit desktop interface showing message fields, explicit chain field, and AEC, Send, Esub, Fetch and View buttons
Upstream Mixfit interface screenshot, reproduced from the MIT-licensed source repository.

03 / REQUIREMENTS

Go, CGO and desktop libraries.

The module declares Go 1.25.0. Fyne and go-sqlite3 require a working C compiler and CGO for a native desktop build. On Debian or Ubuntu, begin with:

sudo apt update
sudo apt install git gcc libgl1-mesa-dev xorg-dev
go version
go env CGO_ENABLED

Package names vary by distribution. Follow the official Fyne platform prerequisites when the OpenGL, X11, Wayland or compiler packages differ. Install Go from go.dev if your distribution does not provide Go 1.25 or newer.

Windows and macOS builds also require the platform toolchain expected by Fyne and a C compiler for SQLite. Build natively on the target system unless you have a reviewed Fyne cross-compilation workflow.

04 / BUILD

Clone, verify and compile.

git clone https://github.com/Ch1ffr3punk/Mixfit.git
cd Mixfit
git rev-parse HEAD
go mod download
go mod verify
go test ./...
go build -trimpath -o mixfit .

Review the commit and dependency changes before rebuilding. For a local installation with private runtime state:

install -d -m 700 "$HOME/Mixfit"
install -m 700 mixfit "$HOME/Mixfit/Mixfit"
cd "$HOME/Mixfit"
./Mixfit

Mixfit uses its current working directory as the data directory on desktop systems. Always launch it with $HOME/Mixfit as the working directory. Moving only the executable into a general PATH directory would scatter Mixfit.json, the database and fetched articles wherever it is launched.

05 / FIRST RUN

Know what is written to disk.

On first launch, Mixfit creates these items in its working directory:

PathPurpose
Mixfit.jsonPinger, proxy, SMTP, NNTP and article-directory settings.
esub_rc.dbSQLite replay cache containing Esub tokens, timestamps, article IDs and newsgroups.
articles/Full fetched NNTP articles matching the supplied Esub password.
cd "$HOME/Mixfit"
chmod 700 . articles
chmod 600 Mixfit.json esub_rc.db

The code creates the JSON file with mode 0644 and the article directory with mode 0755. Saving settings can restore the JSON mode to 0644. A mode-0700 parent directory is therefore the important privacy boundary.

06 / SETTINGS

Configure transport before composing.

Open the gear icon. Enter each value exactly as shown. The fields accept plain text, so the following values are formatted for direct copy and paste:

  • Local Article Dir: directory where matching Usenet articles are stored, for example /home/you/Mixfit/articles.
  • NNTP Server: use news.tcpreset.net as the recommended source.
    NNTP Server: news.tcpreset.net
    NNTP Port: 119
    Newsgroup: alt.anonymous.messages

    Mixfit’s NNTP client retrieves over plaintext NNTP on port 119.

  • SMTP Server and Port: choose a relay from the YAMN SMTP relay list, then copy its hostname and port into Mixfit. These are transport settings for the first YAMN Entry, not the final recipient.
    SMTP Server: fleegle.mixmin.net
    SMTP Port: 587
  • Proxy: optional SOCKS5 endpoint used for pinger downloads, SMTP and NNTP. Copy the complete endpoint as host:port, for example 127.0.0.1:1080.
    Proxy: 127.0.0.1:1080
  • Use TLS: enables implicit TLS on port 465; on other SMTP ports Mixfit negotiates STARTTLS when the relay advertises it.
  • Skip TLS Verify: leave unchecked. Enabling it disables certificate verification.

Recommended starting configuration: use news.tcpreset.net, port 119, group alt.anonymous.messages, an SMTP relay and port listed in mail-relays.html, and a local SOCKS5 proxy only when you have intentionally configured one.

The SMTP implementation has no username/password authentication. Select a relay that explicitly permits the intended YAMN traffic and do not enter credentials that Mixfit cannot use.

The Virebent Nym Entry at nym-gateway.virebent.art is not an open SOCKS proxy and must not be entered in the Proxy field.

07 / STATS AND KEYS

Load the current network view.

Press the list icon in the top bar. Mixfit tries configured pingers until it obtains pubring.mix and, independently, mlist2.txt. The defaults include Victor, Frell and Mixmin.

The pinger list is stored in Mixfit.json but is not exposed in the settings dialog. Close Mixfit before editing it manually, preserve valid JSON and use trusted current URLs. Prefer HTTPS. The default Frell source is plain HTTP.

The code accepts the first public keyring and first statistics file that download successfully, which may come from different pingers. Inspect the displayed names, roles, latency and uptime before choosing a chain. Downloaded files are read fully into memory and are not signature-verified by Mixfit.

08 / EMAIL

Compose an explicit route.

  1. Enter one valid email address in To. Multiple recipients are rejected.
  2. Enter a non-empty subject and message body.
  3. Leave Newsgroups empty for ordinary email.
  4. Enter a comma-separated chain in Entry-to-Exit order, for example entryname,middlename,exitname.
  5. Press Send.

Every remailer name must exist in the loaded public keyring. Mixfit rejects empty hops, more than 10 hops and the wildcard *. It does not automatically enforce that the selected first, middle and final names have the intended network roles, so use current pinger data.

The final plaintext plus MIME headers must fit the YAMN body limit of 17,920 bytes. Confirmation means the armored packet was accepted by the configured SMTP relay, not that the final recipient received it.

09 / USENET

Route through Mail-to-News.

The code always requires To to contain a syntactically valid email address. For Usenet, enter a working Mail-to-News gateway in To, the target group in Newsgroups, and an explicit YAMN chain ending at an Exit capable of the SMTP delivery.

References and Followup-To are copied into the encrypted message as entered. Use a valid angle-bracketed Message-ID for References and a valid group name for Followup-To. Mixfit does not validate either field.

Consult the current Mail-to-News guide before submission. Gateway-specific encryption workflows may not be compatible with direct composition in Mixfit.

10 / AEC AND ESUB

Attach, discover and view.

AEC

The AEC button attaches one PNG or JPEG between 768 and 2,700 bytes. This is intended for a compact AEC QR image produced on another device. The built-in View path extracts PNG parts only, so use PNG when you expect Mixfit to display the attachment later.

Esub

The Esub button derives a local key from a password and creates a 48-character hexadecimal token, then copies it to the clipboard. Use that value as the subject or X-Esub marker for alt.anonymous.messages. The password is not sent by the Fetch function.

Fetch

Fetch connects to the configured NNTP server, scans new articles sequentially, derives the expected Esub token from the supplied password, saves matching full articles and advances last_article. The SQLite cache prevents the same Esub from being processed twice.

View

View opens a saved article, locates its MIME boundary, extracts the first PNG attachment and displays it. Treat every retrieved article and image as untrusted data even when its Esub matches.

11 / PRIVACY AND LIMITS

What the source actually protects.

  • Message content is assembled locally and placed inside a layered YAMN packet before SMTP submission.
  • The configured SMTP relay sees the connection and the first YAMN remailer address, but should not see the final message plaintext.
  • A configured SOCKS5 proxy carries pinger, SMTP and NNTP connections. Its privacy properties come from the proxy implementation, not from Mixfit itself.
  • Default NNTP retrieval uses plaintext port 119. The source has no NNTP TLS implementation.
  • Fetched matching articles, Esub metadata and configuration persist locally until removed.
  • The Clear button empties form fields and the clipboard, but does not erase the database, saved articles or filesystem history.

Mixfit is privacy tooling, not a complete anonymity environment. Endpoint compromise, message wording, timing, an unsafe SOCKS proxy, disabled TLS verification, stale keys and local desktop traces remain separate risks.

12 / UPDATE AND RECOVERY

Preserve state, rebuild separately.

Before updating, close Mixfit and back up Mixfit.json, esub_rc.db and any articles you intentionally retain. Review upstream changes, rebuild in the source checkout, then replace only the executable in $HOME/Mixfit.

cd path/to/Mixfit-source
git fetch --all --prune
git log --oneline --decorate -n 10
git pull --ff-only
go mod verify
go test ./...
go build -trimpath -o mixfit .
install -m 700 mixfit "$HOME/Mixfit/Mixfit"

Do not delete the working directory during an update. To uninstall, first decide whether the Esub database and fetched articles must be securely retained or removed, then delete only the explicit Mixfit installation and source directories.

Modern guide index

PAGE SHA-256 (CANONICAL) 22700ef66c39d8a3705cdbf7bed98991738899fe7b207a697aa227c22c08468d Merkle proof