Skip to content

Repository files navigation

dig-app

The DIG user app — the user's interaction with the DIG Network, and the identity.

A branded, per-user application that runs in the interactive user's session and owns everything identity-specific: key management, DID/profiles (multi-profile, via dig-identity), the wallet, per-user data (in the user's AppData, encrypted at rest to the user's key), and the CLI/RPC gateway (dign + RPC clients route through the user app, which authenticates via the held identity key and proxies to the engine).

It fronts the dig-node — the identity-agnostic background engine (P2P, content serve, chain watch; holds only a machine/transport peer_id, no user identity/keys/data). The user app supplies the user identity per-operation over local native IPC (Windows named pipe / macOS·Linux Unix domain socket / the node's identity-authenticated control channel); the user key never enters the engine.

Surfaces per OS: Windows system-tray · macOS menu-bar (LSUIElement launchd LaunchAgent) · Linux AppIndicator tray (or systemd user service). Degrades headless — on a GUI-less host it's a per-user identity agent + the dign CLI, no tray.

Your DIG Account, from the tray

On a fresh install there is no account yet, and DIG does not create one behind your back — creating an account means showing you a recovery phrase, and that should happen when you are ready for it. Open the DIG menu from your system tray or menu bar and choose Set up my DIG Account. You are shown 24 words, once, and asked to confirm you have written them down before the account is created.

Those 24 words ARE your account. The account itself is sealed to this machine (its unlock password lives in your OS credential store), so the words are the only thing that can bring it back on a different computer. Nobody, including DIG, can recover an account without them.

Everything about your account is in the tray menu — there is nothing you need a terminal for. The menu holds actions only; how DIG is doing is shown by the tray ICON, by its tooltip, and by Status and details…, which opens a window with the whole picture (including the node's full diagnosis when something is wrong).

From the menu you can:

  • show your recovery phrase again, behind your Windows Hello / Touch ID / system authentication
  • copy your DIG ID, and lock the session
  • Restore from a recovery phrase — DIG asks for your 24 words in a real window, hidden as you type with a Show the words while I type box when you want to check them
  • under Manage my DIG Account: replace this account with a new one, replace it with an account from a recovery phrase, or remove it from this computer

Replacing or removing an account destroys the key it is sealed to, so DIG asks you to authenticate first — and offers to show you the current account's 24 words before anything is lost. Those verbs are always available: an account you cannot change is a trap, not a safeguard.

Opening a DIG link — press Alt+Space anywhere

Reading DIG content needs no account, so it should cost one keystroke. Press Alt+Space from any application and a bar floats up in the middle of your screen: paste a chia:// or urn:dig:chia: link, press Enter, and it opens in your browser served by your own DIG node. Escape closes it, and so does clicking somewhere else. The same thing is in the tray menu as Open URL…, which shows the shortcut beside it.

On Windows, Alt+Space normally opens the current window's Move / Size / Close menu, and while DIG is running it opens the DIG bar instead. If you would rather keep the window menu, set your own chord in agent.json beside DIG's other settings:

{ "open_bar_shortcut": "Ctrl+Shift+Space" }

Any combination of Ctrl, Alt, Shift and Win plus a letter, a digit, Space or F1F24 works; at least one modifier is required. If another application already owns your chord, DIG says so in Status and details… and the tray's Open URL… goes on working.

An on-chain did:chia: DID is optional and costs XCH; DIG never mints one without you asking, and your account, phrase and address all work fully without it.

If the tray icon never appears, DIG is probably running but unable to draw it — on Linux that is almost always a missing libayatana-appindicator3-1. DIG logs that and prints the cause; install the library and start DIG again.

Architecture + design: DIG-Network/dig_ecosystem#908 (epic). Boundary invariant: the node is the identity-agnostic engine; dig-app is the identity + user interaction.

Workspace layout

  • crates/dig-app-core — the headless per-user identity-agent library (identity/keys/profiles/ wallet/storage/IPC/gateway). All logic + test coverage lives here.
  • crates/dig-app — the thin binaries: dig-app (the branded tray/menu-bar agent shell) and dign (the DIG user CLI).

Build & test

cargo build --workspace
cargo test --workspace
cargo llvm-cov nextest --workspace --fail-under-lines 80   # the CI coverage gate

Linux: which binary to run

The tray shell is drawn with GTK 3 / AppIndicator, so the default dig-app build links the GTK 3 runtime — eight shared libraries a desktop session already has and a server or cloud image does not. A missing library is fatal in the dynamic linker, before main, so the shell's own headless degradation cannot rescue it: the process just exits 127. Two Linux assets therefore ship per release:

Asset Links Run it when
dig-app-<ver>-linux-x64 GTK 3 runtime a desktop session is present (gives you the tray)
dig-app-<ver>-linux-x64-headless libc only no desktop — server, container, cloud image

ldd ./dig-app-<ver>-linux-x64 | grep 'not found' names anything the tray build is missing; on Debian/Ubuntu libgtk-3-0t64 supplies it. The tray build does not depend on libxdo (dig_ecosystem#1753) — nothing in the menu uses X11 keystroke synthesis.

Under Wayland the tray works through the GTK Wayland backend; only the unused libxdo capability was X11-specific.

Spec & status

SPEC.md is the normative contract (the identity split, the IPC contract, NC-2/NC-3, release engineering). U1 (this work) ships the spec + the gated scaffold + the apps-repo release pipeline (nightlies + manual stable, uniform with dig-node); the identity/keys/profiles/session subsystems are implemented by later work units (see the SPEC appendix). Architecture + DAG: DIG-Network/dig_ecosystem#908.

About

DIG user app — the branded per-user identity hub (key management, DID/profiles, wallet, CLI/RPC gateway) that fronts the identity-agnostic dig-node engine. Tray/menu-bar on desktop; a headless per-user identity agent on servers.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages