Entropy v1.0.4 is a compact proof-of-work mainnet packaged as a Windows and Ubuntu desktop full node. Starting one application starts the wallet, SQLite ledger, full block and transaction validation, peer synchronization, relay server, and optional miner in the same process. It does not require a separate database server, browser tab, or background daemon.
entropy-mainnet-v1is a genesis and consensus compatibility identifier, not an audit or production-security claim. Entropy has not received an independent security or consensus audit. ENT must not be bought, sold, redeemed, or used to carry real-world value unless and until appropriate independent audits establish a suitable security basis.
The source repository is public and MIT-licensed: https://github.com/HONG-LOU/entropy.
- A Wails desktop node with send, receive, automatic minimum fees, mining, network health, history, wallet recovery, database, and pruning controls.
- A UTXO ledger in SQLite with WAL,
synchronous=FULL, indexed balances and history, persistent mempool and peers, per-block undo records, atomic reorgs, and startup integrity checks. - Header-first incremental synchronization over bounded HTTP batches, plus a
negotiated same-WebSocket reverse reconciliation path for outbound-only
nodes. The old whole-chain
/v1/stateexchange is removed. - WebSocket transaction and block broadcast for low-latency relay, with HTTP broadcast as a fallback delivery path and bounded reconnect catch-up.
- Automatic LAN discovery, remote mainnet Seed refresh, bounded public peer exchange, connection limits, persistent operator peers, and exponential retry backoff.
- Windows DPAPI-protected or Linux Secret Service-protected local wallet
profiles, with create/import/switch/guarded removal over one chain database,
24-word BIP39 recovery, and portable Argon2id/XChaCha20-Poly1305
.entwalletbackups. - Archive and pruned storage modes. Both validate incoming blocks locally; archive nodes additionally keep and serve all historical bodies.
- Built-in HTTPS bootstrap manifests with bounded validation, independent repository/CDN delivery paths, and two public archive Seeds.
- Strict network isolation: published testnet chains are never imported or
replayed by mainnet. A known recovery phrase or verified
.entwalletbackup can restore the same wallet key into a fresh mainnet ledger. - A headless CLI using the same node, consensus, wallet, ledger, and P2P code.
- An explicit archive-only
--seed-modefor Linux or Windows public relays. It creates no wallet file, uses a new ephemeral identity after each restart, and disables sending, mining, recovery, backup, and restore operations. - Windows portable/NSIS artifacts, an Ubuntu 24.04+
.deb, native headless CLIs, and an optional Windows archive-seed deployment package.
One node is enough to create a wallet, mine, send transactions to itself, and validate its local chain. Two nodes are the practical minimum for a network: they can relay a payment, synchronize blocks, and resolve a fork by cumulative work. There is no coordinator and no fixed quorum.
For a useful public network, run several independently operated nodes. At least one must be reachable from the internet so outbound-only nodes behind NAT have somewhere to connect. A node behind NAT is still a full validating and relaying node. Once it connects, the reachable peer can reconcile that node's offline transaction backlog and stronger chain through the same outbound WebSocket; the NAT node simply cannot accept unsolicited inbound connections.
Use the portable executable or installer from the current release. Do not use
the older v0.2 release assets for entropy-mainnet-v1. The portable build is
produced locally at:
D:\Entropy\build\bin\Entropy.exe
The NSIS build is the *installer*.exe artifact in the same directory. The
installer is the simplest distribution for other Windows users; the portable
EXE can be launched directly. Windows 10/11 x64 and Microsoft WebView2 Runtime
are required. The installer build downloads the WebView2 bootstrapper when
needed. Releases are currently unsigned, so Windows SmartScreen may show an
unknown-publisher warning.
On first launch the application:
- Creates a new P-256 wallet and protects it with Windows user-scope DPAPI.
- Creates and verifies the SQLite ledger.
- Listens on
0.0.0.0:47821for peers, or chooses a free port if another program already owns the default desktop port. - Announces itself on the local network.
- Synchronizes configured and discovered peers.
Mining is off by default. Opening the application always runs a validating node; mining begins only after Start mining or Mine one block.
The mainnet data directory for a clean installation is:
%LOCALAPPDATA%\Entropy\mainnet-v1
The per-user uninstaller removes the application but deliberately keeps this
directory, including the wallet and chain. Back it up before deleting it
manually. Historical %APPDATA%\Entropy and %LOCALAPPDATA%\Entropy testnet
state is never selected as mainnet state. Do not copy a testnet database or
chain file into mainnet-v1.
A new desktop ledger starts in pruned mode retaining the newest 20,000 complete block bodies. Later launches respect the storage policy persisted in that ledger. This changes storage only: the desktop still fully validates every new block and transaction and relays accepted data.
The wallet screen will ask you to record the 24-word phrase or export an
encrypted .entwallet backup. Do that before mining or receiving funds. The
chain database can be downloaded again; the wallet cannot.
The Wallet view can keep multiple local wallets. Creating or importing another
wallet preserves the current profile and activates the selected one without
duplicating or resynchronizing the chain database. A wallet cannot be switched
away from until its recovery is confirmed, and an active or unsecured wallet
cannot be removed. Entropy has no hosted wallet account or server login;
restoring a phrase or .entwallet is how the same wallet is opened on another
computer.
See Operations for multi-node examples, firewall and NAT setup, backups, migration, pruning, and troubleshooting.
Ubuntu 24.04+ amd64 users install the .deb from the current release:
sudo apt install ./entropy_1.0.4_amd64.deb
entropyThe package installs a normal desktop-menu entry plus entropy-cli. The wallet
master key is stored in the logged-in user's Secret Service keyring and the
authenticated ciphertext remains at
~/.config/Entropy/mainnet-v1/wallet.vault. A standard Ubuntu Desktop login
starts and unlocks this service. A locked, missing, or inaccessible keyring
causes startup to fail closed instead of creating a replacement wallet.
Windows DPAPI and Linux Secret Service vault files are intentionally not
portable. Move the same address between systems by restoring its 24-word
Entropy phrase or verified .entwallet backup. Consensus, addresses, balances,
mining, and peer synchronization are identical on both platforms.
A valid transfer enters the sender's local mempool immediately and is broadcast to connected peers over WebSocket. A healthy LAN peer will usually see it in well under one second, but relay is not confirmation. Consensus targets one proof-of-work block every 10 seconds:
Mempool relay usually below 1 second on a healthy LAN
1 confirmation target about 10 seconds
6 confirmations target about 1 minute
Actual time depends on miners, hash rate, peer connectivity, and forks. A 10-second network has a higher stale-block risk than Bitcoin, and six ENT confirmations do not provide Bitcoin-level economic security.
Entropy has no premine. Height zero is a fixed reward-free genesis block. Amounts use eight decimal places and integer arithmetic.
Network identity entropy-mainnet-v1
Maximum supply 2,000,000.00000000 ENT
Atomic units per ENT 100,000,000
Target block spacing 10 seconds
Reward-bearing heights 1 through 31,536,000
Target emission duration 3,650 days (about 10 years)
Heights 1..12,512,000 0.06341959 ENT
Heights 12,512,001..31,536,000 0.06341958 ENT
Later heights transaction fees only
Coinbase maturity 100 blocks, enforced from height 1
Maximum block body 1 MiB
Fork choice greatest cumulative proof of work
The one-atomic-unit reward difference distributes the integer division
remainder. The reward schedule sums to exactly 200,000,000,000,000 atomic
units at height 31,536,000. Fees move existing ENT and do not increase supply.
"Ten years" means 31,536,000 target intervals of 10 seconds, not a wall-clock guarantee. Maturity applies from the first reward block: the height-1 coinbase cannot be spent through height 100 and becomes spendable at height 101.
Build the headless executable or use go run:
go build -o .\build\bin\entropy-cli.exe .\cmd\entropy
# Archive node, automatic LAN discovery enabled
.\build\bin\entropy-cli.exe node --data .\data\node-a --listen 0.0.0.0:47821 --mine
# Second node on the same computer
.\build\bin\entropy-cli.exe node --data .\data\node-b --listen 127.0.0.1:47822 `
--peer http://127.0.0.1:47821
# Pruned node retaining the newest 20,000 complete block bodies
.\build\bin\entropy-cli.exe node --data .\data\node-c --listen 0.0.0.0:47823 `
--peer http://127.0.0.1:47821 --prune-depth 20000
# Public archive relay behind a local HTTPS/WSS reverse proxy
.\build\bin\entropy-cli.exe node --seed-mode --data .\data\seed `
--listen 127.0.0.1:47821 --prune-depth 0 --no-discovery `
--trust-loopback-proxyCLI nodes load the built-in HTTPS mainnet manifest sources by default. Repeat
--bootstrap-manifest https://.../mainnet.json to provide operator-managed
fallback sources, or use --no-bootstrap for a deliberately isolated/manual
topology. Explicit manifest URLs replace the built-in sources.
Available commands are:
node run a node; optionally mine, prune, add a peer, or disable LAN discovery
status print wallet, height, peer, and issuance status
mine-one mine exactly one block
history print wallet transaction history
wallet-backup create a password-encrypted portable backup
wallet-migrate migrate a v0.1 plaintext wallet before startup
Commands that open a data directory take its exclusive node.lock. Stop the
desktop app or running CLI node before using another command against the same
directory. Full command examples are in Operations.
- Allow inbound TCP
47821in Windows Firewall for the desktop node. - On a home router, forward external TCP
47821to the node computer's TCP47821if you want to accept internet peers. - Do not forward UDP
47822; it is local multicast discovery only. - Give peers a reachable base URL such as
http://203.0.113.20:47821. - If your ISP uses carrier-grade NAT, port forwarding will not make the node reachable. You can still connect outbound to a public node; reconnect reconciliation does not require that public node to dial your advertised listen port.
The application fetches a small versioned bootstrap manifest over HTTPS from
the public repository, with a CDN mirror as fallback. The checked-in manifest
publishes the externally verified archive seed https://template-chat.xyz, so
new internet-connected nodes can discover the network without manual peer
configuration. An empty or unreachable manifest is reported but does not
prevent local startup.
The release includes entropy-windows-seed-deploy.zip; see
Public seed deployment. The seed package runs an archive
node behind a Caddy HTTPS/WSS reverse proxy on TCP 443. Direct desktop P2P is
plain HTTP/WebSocket, has no peer authentication, and does not automatically
traverse NAT. Inbound WebSocket source addresses are not advertised as dialable
peers unless a separate outbound URL has already been verified. NAT traversal
is unnecessary for a client node to reconcile over an outbound connection, but
at least one reachable peer is still required for initial discovery and
network-wide connectivity.
Archive mode (--prune-depth 0) is the fresh CLI default and is enforced by the
public-seed package. It keeps headers, bodies, transaction data, indexes, UTXOs,
and undo records, so it can serve historical blocks and handle any reorg
available in its local history. A fresh desktop ledger instead starts at a
20,000-block prune depth; changing the setting later persists it.
Pruned mode retains every header, the current UTXO set, transaction/address indexes, mempool, and peer records, but permanently deletes old block bodies, old transaction bodies, and old undo data outside the configured horizon. It still validates new blocks and transactions. It cannot serve deleted bodies or reorganize below its prune horizon; recovery requires resynchronizing from an archive peer. Switching back to archive mode does not recreate deleted data.
For a small personal desktop node use pruned mode; for public bootstrap, historical service, debugging, and maximum reorg tolerance use archive mode.
Mainnet deliberately starts from a different genesis and isolated directory.
No v0.1 or v0.2 testnet chain, SQLite ledger, mempool, peer database, balance,
or transaction history is migrated or replayed. Keep old data backed up and
outside %LOCALAPPDATA%\Entropy\mainnet-v1.
Wallet keys are separate from chain history. Before leaving the testnet app,
record its 24-word recovery phrase or export and verify an encrypted
.entwallet backup. Start v1.0.4 to create the mainnet directory, then use the
desktop Wallet view to restore that phrase or backup. The address is recovered,
while balances and history are rebuilt only from the mainnet chain.
For a v0.1 plaintext wallet.json, use wallet-migrate against a copy of the
old data directory to create a verified .entwallet, then restore that backup
in the mainnet desktop app. A legacy wallet has no recovery phrase, so the
portable encrypted backup is essential.
Prerequisites: Go 1.26.5, Node.js 22+, and Wails v2.13.0. Windows packaging
also needs WebView2 and NSIS. Ubuntu 24.04 packaging needs libgtk-3-dev,
libwebkit2gtk-4.1-dev, and dpkg-deb. The patch-level Go pin includes
standard-library security fixes used by the public network stack.
cd D:\Entropy
go test ./...
go vet ./...
npm --prefix frontend ci
wails devCreate the portable EXE, NSIS installer, CLI, public-seed deployment ZIP, and
SHA256SUMS.txt:
.\scripts\build.ps1The build script runs Go tests and vet first. Current release artifacts are not Authenticode-signed and builds are not yet reproducible.
On Ubuntu 24.04:
./scripts/build-linux.sh 1.0.4- Architecture
- Node operations and wallet recovery
- Lightweight mainnet maturity roadmap
- Mainnet protocol
- Public seed deployment
- Roadmap
- Security policy and boundaries
- Changelog
Entropy is licensed under the MIT License.