Session 3 of the Asentum Operator build shipped today. The app now runs a real AsentumNode as a child process — not a mock, not a remote viewer, a real validator syncing real blocks from real peers across three continents.
the onboarding flow
First launch: you see a full-screen overlay. "Welcome to Asentum Operator." Two steps before you see anything else:
Step 1: Create your wallet. Password (min 8 chars), confirm, click Create. A Dilithium3 keypair is generated, encrypted with scrypt (N=131072) + AES-GCM-256, and saved to your machine. Takes about 2 seconds for the key derivation. Your private key never exists unencrypted on disk.
Step 2: Sync the blockchain. Before you can validate, your machine needs the full chain. The app tells you upfront: ~50 MB of disk space, 2–10 minutes depending on your connection. You click "Start Syncing" and watch.
The sync screen has a circular progress bar — the same one from the staking view, but now it's showing REAL sync progress. Block 1,234 / 85,000 · ~3m 42s remaining · 250 blocks/sec. The ETA updates dynamically as the sync speed stabilizes. When it hits 100%, the button says "Enter Asentum Operator" and you're in.
You can't skip the sync. Validators need the full chain. No shortcuts, no "sync later" checkbox. If you want to validate, you wait.
what the dashboard shows now
The dashboard detects whether your wallet address is in the active validator set. Three states:
- Not staked: shows the fund → stake flow. Request test ASE from the faucet, enter your password, click "Stake 1,000 ASE & Start Validating." The app builds, signs (Dilithium3), and broadcasts the bond transaction.
- Pending: your stake just landed. "Pending — activating in a few blocks." The graceful quorum transition gives you 10 blocks (~20 seconds) before you're included in consensus.
- Active ✓: you're producing blocks. The dashboard shows your stake, bonded block, wallet balance, and a live node status panel: block height, peers, consensus quorum.
the node status panel
When you're active, the dashboard shows:
Node status [running]
Local node ● active
Block height #2,847
Block time 2.0s
Peers 4 validators
Consensus BFT · quorum 4/5
That "4/5" quorum means there are 5 validators (including you) and any 4 can produce blocks. Kill any one — even you — and the chain keeps going.
toast notifications
Staking success, faucet drips, errors — they all show up as macOS-style toast notifications in the top-right corner. Frosted glass background with backdrop-filter: blur(20px), rounded corners, a dismiss button that slides the toast out, and a "View on explorer →" link that opens the transaction on testnet.asentum.com in your browser.
The toasts persist until you dismiss them — you'll never lose a transaction hash because the UI refreshed.
the technical reality
The Operator app spawns the AsentumNode as a child process. Same binary as the VPS validators (packages/node/dist/bin/run.js), same consensus code, same BFT voting. The app configures it via environment variables: data dir in Electron's user data folder, join peer pointing at testnet.asentum.com, validator key auto-generated on first boot, peers set to all four existing VPS validators.
When you stake from the GUI, the app:
- Prompts for your password (inline field, not a system dialog)
- Decrypts your Dilithium3 private key via scrypt + AES-GCM
- Builds a
bond(pubKey, 1000 ASE)transaction targeting the staking contract - Signs it with your private key
- Broadcasts to the testnet
- Shows a persistent toast with the tx hash + explorer link
- The dashboard updates from "Not staked" → "Pending" → "Active ✓" as the chain processes your bond
Zero CLI commands. Zero config files. Zero terminal.
five validators
There are five validators on the Asentum testnet right now. Four of them run on Hetzner VPS boxes across Germany and the US, deployed via SSH and systemd. The fifth one runs on a MacBook, set up entirely through a GUI with a circular progress bar and a "Start Validating" button.
Same consensus. Same 2-second blocks. Same BFT quorum. Same Dilithium3 signatures. One of them just happens to have a nicer UI.
That's the everybody chain.
— milkie
