<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: zecnero</title>
    <description>The latest articles on DEV Community by zecnero (@zecnero).</description>
    <link>https://dev.to/zecnero</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4143500%2Fc7ec4719-1b57-4a5b-aa30-9b195748019c.png</url>
      <title>DEV Community: zecnero</title>
      <link>https://dev.to/zecnero</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/zecnero"/>
    <language>en</language>
    <item>
      <title>Forking Zebra: turning Zcash into a CPU-mined chain as a solo dev</title>
      <dc:creator>zecnero</dc:creator>
      <pubDate>Sat, 26 Sep 2026 19:07:17 +0000</pubDate>
      <link>https://dev.to/zecnero/forking-zebra-turning-zcash-into-a-cpu-mined-chain-as-a-solo-dev-4bkl</link>
      <guid>https://dev.to/zecnero/forking-zebra-turning-zcash-into-a-cpu-mined-chain-as-a-solo-dev-4bkl</guid>
      <description>&lt;p&gt;Zcash is one of the few chains with real shielded transactions. Mining it at home stopped making sense years ago. Equihash ASICs took over, and a regular PC earns nothing.&lt;/p&gt;

&lt;p&gt;I wanted a version where my own desktop could still find blocks. So I forked Zebra, the Rust Zcash node, and called it Zecnero.&lt;/p&gt;

&lt;h2&gt;
  
  
  What changed
&lt;/h2&gt;

&lt;p&gt;The biggest change is proof of work. Equihash is gone. Zecnero uses a RandomX variant, the same family Monero uses, which runs best on general-purpose CPUs. I maintain a Rust binding for it and a fork of XMRig to mine it, with the dev donation set to zero.&lt;/p&gt;

&lt;p&gt;Orchard stays. Shielded transactions work from block 1, and I pulled in the NU6.2 Orchard fixes at height 1 so the chain starts with the fixed circuit instead of adding it later.&lt;/p&gt;

&lt;p&gt;Supply caps around 21 million with Bitcoin-style halvings. No tail emission. No premine and no sale. There is a founder share, it's written into the spec, and it pays to a multisig that stays separate from my own mining wallet.&lt;/p&gt;

&lt;h2&gt;
  
  
  Things that went wrong
&lt;/h2&gt;

&lt;p&gt;My first build machine was WSL2 on Windows. Zebra's target directory grew to 94 GB during a build and filled the virtual disk, and WSL crashed. Now every repo has a hard rule to run cargo clean after each milestone, and I check free space before any build.&lt;/p&gt;

&lt;p&gt;The project's GitHub org got flagged for abuse after my CI runner hit GitHub with over a hundred requests in a burst. The repos went invisible to logged-out visitors. I moved everything to GitLab.&lt;/p&gt;

&lt;p&gt;Seed nodes are two KVM boxes, one in Toronto and one in the UK. They don't mine, ever. That's a rule I keep so the seeds stay boring and reliable.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where it is now
&lt;/h2&gt;

&lt;p&gt;The public testnet went live on September 24. There's an explorer, downloadable binaries and a small Discord of people mining it on whatever CPUs they have.&lt;/p&gt;

&lt;p&gt;If you want to poke at a Zebra fork, or you just want to see what your CPU does on a RandomX variant, everything is here:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Source: &lt;a href="https://gitlab.com/zecnero" rel="noopener noreferrer"&gt;https://gitlab.com/zecnero&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Explorer: &lt;a href="https://explorer.zecnero.org" rel="noopener noreferrer"&gt;https://explorer.zecnero.org&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Downloads: &lt;a href="https://downloads.zecnero.org" rel="noopener noreferrer"&gt;https://downloads.zecnero.org&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Site: &lt;a href="https://zecnero.org" rel="noopener noreferrer"&gt;https://zecnero.org&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Questions about the fork itself are welcome in the comments.&lt;/p&gt;

</description>
      <category>rust</category>
      <category>cryptocurrency</category>
      <category>blockchain</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Mine the testnet with one command</title>
      <dc:creator>zecnero</dc:creator>
      <pubDate>Sat, 26 Sep 2026 00:00:00 +0000</pubDate>
      <link>https://dev.to/zecnero/mine-the-testnet-with-one-command-g75</link>
      <guid>https://dev.to/zecnero/mine-the-testnet-with-one-command-g75</guid>
      <description>&lt;p&gt;Setting up the first release by hand meant three programs and their settings, pasted in the right order. A tester’s report showed where that went wrong: the node had no flag to pick the testnet, a settings section added a second time broke the node’s configuration, nothing showed what the bridge’s configuration should hold, and the miner needed two extra libraries. Release zecnero-testnet-v0.1.1 fixes each of those, and adds an installer that does the whole setup.&lt;/p&gt;

&lt;h2&gt;
  
  
  The command
&lt;/h2&gt;

&lt;p&gt;On Linux, or in Ubuntu under WSL on Windows:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://downloads.zecnero.org/install-miner.sh | bash
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In Windows PowerShell, opened as a normal user:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;irm&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;https://downloads.zecnero.org/install.ps1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;iex&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It asks you to save your mining key, then starts mining.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the installer does
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Checks the computer: a 64-bit Intel or AMD processor, glibc 2.34 or later (Ubuntu 22.04 or Debian 12 and newer), about 1 GB of free disk, and the memory for RandomX’s fast mode, about 2.5 GB. With less memory it still mines, in the slower light mode.&lt;/li&gt;
&lt;li&gt;Downloads the newest release, the one named in &lt;code&gt;https://downloads.zecnero.org/LATEST&lt;/code&gt;. It checks the signature on the release’s &lt;code&gt;SHA256SUMS&lt;/code&gt; against the Zecnero release key carried inside the installer, then checks every file against that list. If anything does not match, it installs nothing.&lt;/li&gt;
&lt;li&gt;Installs everything into &lt;code&gt;~/zecnero&lt;/code&gt; and adds the &lt;code&gt;zecnero-miner&lt;/code&gt; command.&lt;/li&gt;
&lt;li&gt;Makes your mining key, shows it once, and waits until you type &lt;code&gt;SAVED&lt;/code&gt;. A copy stays in &lt;code&gt;~/zecnero/MINING-KEY.txt&lt;/code&gt;, readable only by you.&lt;/li&gt;
&lt;li&gt;Writes the settings for the node, the bridge and the miner, starts the node, and starts the bridge and the miner once the node has caught up with the testnet. Mining runs in the background.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;On native Linux it also offers huge pages, which make RandomX faster, and on computers with systemd it offers to start mining whenever the computer starts. Both are optional and off unless you say yes.&lt;/p&gt;

&lt;p&gt;On Windows, the PowerShell command checks Windows, and if WSL or Ubuntu is missing it asks before installing them; Windows then asks for administrator permission, and the computer restarts. After the restart Ubuntu asks for a new username and password, and the setup opens again by itself and runs the Linux installer inside Ubuntu. The &lt;a href="https://zecnero.org/mine#windows" rel="noopener noreferrer"&gt;mining guide&lt;/a&gt; walks through each screen.&lt;/p&gt;

&lt;h2&gt;
  
  
  After the install
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;zecnero-miner status
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That shows your mining address and whether the node, the bridge and the miner are running, with the node’s height and the hashrate. The other commands are &lt;code&gt;zecnero-miner start&lt;/code&gt;, &lt;code&gt;stop&lt;/code&gt;, &lt;code&gt;logs&lt;/code&gt;, &lt;code&gt;address&lt;/code&gt;, &lt;code&gt;update&lt;/code&gt; and &lt;code&gt;help&lt;/code&gt;. Closing the terminal does not stop mining; &lt;code&gt;zecnero-miner stop&lt;/code&gt; does, and so does shutting the computer down. &lt;code&gt;zecnero-miner update&lt;/code&gt; installs a newer release the same checked way and keeps your key and settings.&lt;/p&gt;

&lt;h2&gt;
  
  
  What changed in the programs
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;zecnerod --network testnet&lt;/code&gt; starts a testnet node. &lt;code&gt;zecnerod generate --network testnet&lt;/code&gt; writes a testnet configuration with RPC on &lt;code&gt;127.0.0.1:18732&lt;/code&gt;, and &lt;code&gt;zecnerod check-config&lt;/code&gt; checks a configuration without starting the node.&lt;/li&gt;
&lt;li&gt;Started without a network, the node says in one line that Mainnet has not launched and how to join the testnet. Other startup problems, such as a broken configuration, a port in use or a folder it cannot write to, are also one line that says what to fix.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;zecnero-bridge generate&lt;/code&gt; writes a configuration with every setting explained. The bridge learns the network from the node, and while the node syncs it waits and shows the progress instead of stopping.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;zecnero-keygen --json&lt;/code&gt; prints a new key as JSON, for scripts.&lt;/li&gt;
&lt;li&gt;The miner is built with its libraries inside, so there is nothing extra to install.&lt;/li&gt;
&lt;li&gt;The node’s default testnet peers list the two seed nodes by IP address as well as by name.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;None of these changes touch the consensus rules.&lt;/p&gt;

&lt;h2&gt;
  
  
  Check it yourself
&lt;/h2&gt;

&lt;p&gt;Piping a script into a shell runs it without showing it to you. To read the installer first and check that it is the one we signed, download it with its signed checksum list:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-fsSLO&lt;/span&gt; https://downloads.zecnero.org/install-miner.sh
curl &lt;span class="nt"&gt;-fsSLO&lt;/span&gt; https://downloads.zecnero.org/INSTALLERS.SHA256SUMS
curl &lt;span class="nt"&gt;-fsSLO&lt;/span&gt; https://downloads.zecnero.org/INSTALLERS.SHA256SUMS.asc
curl &lt;span class="nt"&gt;-fsSLO&lt;/span&gt; https://zecnero.org/zecnero.asc
gpg &lt;span class="nt"&gt;--import&lt;/span&gt; zecnero.asc
gpg &lt;span class="nt"&gt;--verify&lt;/span&gt; INSTALLERS.SHA256SUMS.asc INSTALLERS.SHA256SUMS
&lt;span class="nb"&gt;sha256sum&lt;/span&gt; &lt;span class="nt"&gt;-c&lt;/span&gt; &lt;span class="nt"&gt;--ignore-missing&lt;/span&gt; INSTALLERS.SHA256SUMS
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You need &lt;strong&gt;Good signature&lt;/strong&gt; from the key with fingerprint &lt;code&gt;FFFC 8AC0 2BF7 B4B4 50B4 3B1F 6532 09A3 44E7 5767&lt;/code&gt;, and &lt;strong&gt;OK&lt;/strong&gt; for &lt;code&gt;install-miner.sh&lt;/code&gt;. Then read it, and run it with &lt;code&gt;bash install-miner.sh&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;The release itself is in the &lt;code&gt;testnet-v0.1.1&lt;/code&gt; folder of the file host, with its own signed &lt;code&gt;SHA256SUMS&lt;/code&gt; and a &lt;code&gt;BUILD-INFO.txt&lt;/code&gt; that lists the commit each program was built from. The &lt;a href="https://zecnero.org/mine#downloads" rel="noopener noreferrer"&gt;downloads&lt;/a&gt; and a manual setup, one program at a time, are in the &lt;a href="https://zecnero.org/mine" rel="noopener noreferrer"&gt;mining guide&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>cryptocurrency</category>
      <category>blockchain</category>
      <category>rust</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Forking Zebra: replacing Equihash with RandomX in a Zcash node</title>
      <dc:creator>zecnero</dc:creator>
      <pubDate>Fri, 25 Sep 2026 20:06:41 +0000</pubDate>
      <link>https://dev.to/zecnero/forking-zebra-replacing-equihash-with-randomx-in-a-zcash-node-328e</link>
      <guid>https://dev.to/zecnero/forking-zebra-replacing-equihash-with-randomx-in-a-zcash-node-328e</guid>
      <description>&lt;p&gt;Zecnero is a fork of Zebra, the Zcash Foundation's Rust node, with the proof of work swapped from Equihash to RandomX. The public testnet went live on September 24, 2026. This post covers the parts of the fork that turned out to be interesting, plus two problems that only showed up late.&lt;/p&gt;

&lt;p&gt;Source for everything below: &lt;a href="https://gitlab.com/zecnero" rel="noopener noreferrer"&gt;https://gitlab.com/zecnero&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The proof of work
&lt;/h2&gt;

&lt;p&gt;RandomX makes every hash execute a randomly generated program in a virtual machine. The hardware that runs arbitrary programs fastest is a general-purpose CPU, which is the point.&lt;/p&gt;

&lt;p&gt;Zecnero keeps the reference RandomX v1 configuration and changes only the Argon2 salt. That was the least invasive way to get a distinct algorithm: every other parameter keeps its audited default, and existing Monero hardware can't mine it without a miner change.&lt;/p&gt;

&lt;p&gt;The node verifies RandomX through a forked Rust binding (randomx-rs-zecnero). The RandomX key, the "seed hash", rotates every 2048 blocks, the same scheme Monero uses. Before anything else was built, the hash was checked for agreement across four implementations: the reference C++, the Rust binding, XMRig on Linux and XMRig on Windows. All four agree on 17 published test vectors. That test set lives in its own repo so anyone building a miner can check against it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Difficulty: ASERT
&lt;/h2&gt;

&lt;p&gt;Zcash adjusts difficulty with an averaging window. Zecnero uses ASERT (aserti3-2d), the algorithm Bitcoin Cash adopted in 2020. It's anchored at genesis, and each block's target depends only on how far the chain is ahead of or behind the ideal schedule:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;next_target = anchor_target * 2^((time_delta - spacing * height_delta) / half_life)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;The exponent is computed in fixed point with a 2^16 radix, so every node gets bit-identical results. The half-life constant lives in zebra-chain/src/work/asert.rs and is currently 7,200 seconds.&lt;/p&gt;

&lt;p&gt;Testnet stress-tested it on day one. A miner with about 70% of the network hashrate joined and then left, and blocks ran several minutes apart while ASERT caught up. The chain recovered on its own. The half-life for mainnet is now being tuned against simulated 3x and 8x hashrate swings.&lt;/p&gt;

&lt;h2&gt;
  
  
  Genesis had to be compiled in
&lt;/h2&gt;

&lt;p&gt;This one only showed up in a launch rehearsal.&lt;/p&gt;

&lt;p&gt;Zebra had only the Regtest genesis block compiled in. On other networks, the syncer downloaded block 0 from a peer. For Zcash that's fine, because peers have existed since 2016. For a brand new network nobody has block 0, so the first node could never start, and neither could the second.&lt;/p&gt;

&lt;p&gt;The fix was to compile every network's genesis block into the node and commit it to an empty state at startup, the way zcashd does. Networks that haven't been mined yet ship an empty genesis file, and a startup gate refuses to run them.&lt;/p&gt;

&lt;p&gt;The genesis block also commits to a recent Bitcoin block hash, and its timestamp is the public release time. Blocks mined before release would stand out against the difficulty schedule.&lt;/p&gt;

&lt;h2&gt;
  
  
  A founder stream in consensus
&lt;/h2&gt;

&lt;p&gt;Zecnero has no premine. It does have one allocation: 3% of each block subsidy goes to a fixed P2SH multisig until the first halving. The rule is floor(subsidy × 3 / 100) from height 1 through 1,679,999, and it's enforced in consensus like Zcash's funding streams. Every block has to pay it regardless of who mined it, and it ends permanently at the first halving.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Orchard proving key
&lt;/h2&gt;

&lt;p&gt;Zecnero applies the Orchard soundness fix from Zcash NU6.2 at block 1, along with the canonical proof size rule. The node verifies Orchard proofs against the fixed circuit.&lt;/p&gt;

&lt;p&gt;Reviewing the wallet plan turned up a trap. Zecnero transactions carry the NU6 branch ID. In the vendored zcash_protocol crate, the function that maps a branch ID to an Orchard protocol revision maps NU6 to the pre-fix revision. The node never calls that function, so it had no effect there. But a wallet using that crate to build transactions would prove every Orchard spend under the one circuit Zecnero nodes reject.&lt;/p&gt;

&lt;p&gt;The fix is a one-line mapping change, and it's a hard gate before Orchard wallet support and before mainnet. Until then the testnet wallet supports transparent and Sapling only.&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting work to miners
&lt;/h2&gt;

&lt;p&gt;XMRig speaks Stratum. Zebra speaks getblocktemplate and submitblock. zecnero-bridge sits between them: it pulls templates from the node, hands out jobs with the right RandomX seed, and submits solved blocks. The miner itself is a fork of XMRig with an rx/zecnero algorithm and the dev donation set to zero.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's next
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;A decision on RandomX v2, which Monero plans to adopt at its next hard fork&lt;/li&gt;
&lt;li&gt;The ASERT half-life study&lt;/li&gt;
&lt;li&gt;The Orchard proving-key fix&lt;/li&gt;
&lt;li&gt;Several weeks of public testnet before a mainnet date&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you work on Zebra or librustzcash, review of the consensus changes is the most useful thing anyone could offer right now. The discussion thread is on BitcoinTalk: &lt;a href="https://bitcointalk.org/index.php?topic=5594747.0" rel="noopener noreferrer"&gt;https://bitcointalk.org/index.php?topic=5594747.0&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Testnet mining guide: &lt;a href="https://zecnero.org/mine" rel="noopener noreferrer"&gt;https://zecnero.org/mine&lt;/a&gt;&lt;/p&gt;

</description>
      <category>rust</category>
      <category>blockchain</category>
      <category>cryptocurrency</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Zecnero wallet 0.2: transparent and Sapling</title>
      <dc:creator>zecnero</dc:creator>
      <pubDate>Fri, 25 Sep 2026 02:23:08 +0000</pubDate>
      <link>https://dev.to/zecnero/zecnero-wallet-02-transparent-and-sapling-4gkd</link>
      <guid>https://dev.to/zecnero/zecnero-wallet-02-transparent-and-sapling-4gkd</guid>
      <description>&lt;p&gt;&lt;strong&gt;Update, September 26, 2026:&lt;/strong&gt; wallet 0.2.1 works without a node of your own. New wallets use the public node at &lt;code&gt;node.zecnero.org&lt;/code&gt;, and your own node or a custom node URL are options. It also syncs faster and fixes a frozen window in the desktop wallet. The &lt;a href="https://zecnero.org/wallets" rel="noopener noreferrer"&gt;wallets page&lt;/a&gt; has 0.2.1 and what the public node can and cannot see. This post describes 0.2.0.&lt;/p&gt;

&lt;p&gt;Wallet 0.2.0 is a testnet beta, in three downloads: a command-line wallet for Linux, the same for Windows, and a desktop wallet for Windows. It holds transparent and Sapling shielded coins, and it runs on the testnet only.&lt;/p&gt;

&lt;h2&gt;
  
  
  Your node, your keys
&lt;/h2&gt;

&lt;p&gt;The wallet has no light server. It connects to your own &lt;code&gt;zecnerod&lt;/code&gt; over loopback, at &lt;code&gt;http://127.0.0.1:18732&lt;/code&gt;, and signs in with the node’s cookie file. It refuses any node address that is not loopback.&lt;/p&gt;

&lt;p&gt;A new wallet shows a 24-word seed once and keeps its keys in a file encrypted with your passphrase. You can restore from the seed with a birthday height, and import a key printed by &lt;code&gt;zecnero-keygen&lt;/code&gt;, so coins you have already mined come with you.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it does
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Transparent and Sapling addresses from one seed, balances and history.&lt;/li&gt;
&lt;li&gt;Shielding mined coins. The wallet applies the Mainnet rule on the testnet too: mined coins are moved to your Sapling address before they can be spent. The command-line wallet has &lt;code&gt;--testnet-allow-unshielded-coinbase&lt;/code&gt; to spend them directly on the testnet, one command at a time.&lt;/li&gt;
&lt;li&gt;Sends to transparent and Sapling addresses, with a memo of up to 512 bytes to a Sapling address.&lt;/li&gt;
&lt;li&gt;Rescans, and restore from the seed.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;On the live testnet, mined coins were shielded, sent between wallets with transparent and Sapling addresses, sent with a memo, and restored from a seed, with every balance exact.&lt;/p&gt;

&lt;p&gt;Shielding and shielded sends need the Sapling parameters, about 51 MB. The desktop zip ships them beside the program. The command-line wallet downloads them the first time and checks each file against its pinned BLAKE2b-512 hash before using it.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it does not do yet
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Orchard and unified addresses. The node verifies Orchard proofs only under the corrected circuit from Zcash NU6.2, and the library wallets use would still prove Orchard spends under the older one, so the wallet refuses them with a clear error until that is fixed.&lt;/li&gt;
&lt;li&gt;Mainnet, which has not launched.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Download and check
&lt;/h2&gt;

&lt;p&gt;The files are in the &lt;code&gt;wallet-v0.2.0&lt;/code&gt; folder of the file host, with a signed checksum list:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://downloads.zecnero.org/wallet-v0.2.0/zecnero-wallet-linux-x86_64" rel="noopener noreferrer"&gt;zecnero-wallet-linux-x86_64&lt;/a&gt;, the command-line wallet for Linux&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://downloads.zecnero.org/wallet-v0.2.0/zecnero-wallet.exe" rel="noopener noreferrer"&gt;zecnero-wallet.exe&lt;/a&gt;, the command-line wallet for Windows&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://downloads.zecnero.org/wallet-v0.2.0/zecnero-wallet-gui-0.2.0-win64.zip" rel="noopener noreferrer"&gt;zecnero-wallet-gui-0.2.0-win64.zip&lt;/a&gt;, the desktop wallet for Windows&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://downloads.zecnero.org/wallet-v0.2.0/SHA256SUMS" rel="noopener noreferrer"&gt;SHA256SUMS&lt;/a&gt; and &lt;a href="https://downloads.zecnero.org/wallet-v0.2.0/SHA256SUMS.asc" rel="noopener noreferrer"&gt;SHA256SUMS.asc&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Check the signature first, then the files, in the folder you downloaded them to:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-O&lt;/span&gt; https://zecnero.org/zecnero.asc
gpg &lt;span class="nt"&gt;--import&lt;/span&gt; zecnero.asc
gpg &lt;span class="nt"&gt;--fingerprint&lt;/span&gt; 653209A344E75767
gpg &lt;span class="nt"&gt;--verify&lt;/span&gt; SHA256SUMS.asc SHA256SUMS
&lt;span class="nb"&gt;sha256sum&lt;/span&gt; &lt;span class="nt"&gt;-c&lt;/span&gt; &lt;span class="nt"&gt;--ignore-missing&lt;/span&gt; SHA256SUMS
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The fingerprint must read &lt;code&gt;FFFC 8AC0 2BF7 B4B4 50B4 3B1F 6532 09A3 44E7 5767&lt;/code&gt;, the same release key as the node. The &lt;a href="https://zecnero.org/wallets" rel="noopener noreferrer"&gt;wallets page&lt;/a&gt; has the full instructions, including the check on Windows.&lt;/p&gt;

</description>
      <category>cryptocurrency</category>
      <category>blockchain</category>
      <category>rust</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Zecnero testnet is live</title>
      <dc:creator>zecnero</dc:creator>
      <pubDate>Thu, 24 Sep 2026 21:11:00 +0000</pubDate>
      <link>https://dev.to/zecnero/zecnero-testnet-is-live-1n3j</link>
      <guid>https://dev.to/zecnero/zecnero-testnet-is-live-1n3j</guid>
      <description>&lt;p&gt;The public testnet of Zecnero started at 21:11 UTC on September 24, 2026. It runs the consensus rules of the &lt;a href="https://zecnero.org/whitepaper" rel="noopener noreferrer"&gt;specification&lt;/a&gt;, and anyone can join it: run the node, mine with an ordinary desktop processor, and send transactions with the testnet wallet.&lt;/p&gt;

&lt;h2&gt;
  
  
  The genesis block
&lt;/h2&gt;

&lt;p&gt;The first block of the testnet has this hash:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;004aa9ae10c69d42dfba2ecd1485aab0881109c73d49796336a5c976461df0a8
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It commits to Bitcoin block 968,452, &lt;code&gt;000000000000000000021409abc8597e7035fdff6408e836a5fc1c0b885038e7&lt;/code&gt;, which shows it was not made before that Bitcoin block was mined. Ask your own node for block 0 and it returns the same hash.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the testnet runs
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;RandomX proof of work with the Zecnero salt, algorithm &lt;code&gt;rx/zecnero&lt;/code&gt;, so an ordinary desktop CPU is competitive hardware.&lt;/li&gt;
&lt;li&gt;A block every 75 seconds on average, with aserti3-2d difficulty anchored at genesis.&lt;/li&gt;
&lt;li&gt;6.25 ZMR per block, halving every 1,680,000 blocks.&lt;/li&gt;
&lt;li&gt;The founder stream: 3% of each block’s subsidy, 0.1875 ZMR, paid by every block and enforced by every node. There is no premine and no dev fund.&lt;/li&gt;
&lt;li&gt;No reorganisation deeper than 20 blocks.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Testnet coins have no value. The testnet is there to prove that the consensus rules and the network hold up. Mainnet has not launched and has no date.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to join
&lt;/h2&gt;

&lt;p&gt;Two seed nodes, &lt;code&gt;seed1.zecnero.org&lt;/code&gt; and &lt;code&gt;seed2.zecnero.org&lt;/code&gt;, answer on the testnet port 18733. They are compiled into the node as its default testnet peers.&lt;/p&gt;

&lt;p&gt;The first release, zecnero-testnet-v0.1.0, has the node (&lt;code&gt;zecnerod&lt;/code&gt;), the bridge (&lt;code&gt;zecnero-bridge&lt;/code&gt;), the miner (&lt;code&gt;xmrig-zecnero&lt;/code&gt;) and the key tool (&lt;code&gt;zecnero-keygen&lt;/code&gt;) for Linux x86-64, with a &lt;code&gt;SHA256SUMS&lt;/code&gt; file signed by the Zecnero release key. On Windows they run inside WSL. The &lt;a href="https://zecnero.org/mine" rel="noopener noreferrer"&gt;mining guide&lt;/a&gt; always has the current release and how to install it.&lt;/p&gt;

&lt;p&gt;Blocks and transactions are on the explorer at &lt;a href="https://explorer.zecnero.org/" rel="noopener noreferrer"&gt;explorer.zecnero.org&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What comes next
&lt;/h2&gt;

&lt;p&gt;The &lt;a href="https://zecnero.org/roadmap" rel="noopener noreferrer"&gt;roadmap&lt;/a&gt; lists the work that comes next on the testnet and what has to be finished before a Mainnet genesis block is made. Questions and bug reports are welcome on &lt;a href="https://discord.gg/jphuzAXgd8" rel="noopener noreferrer"&gt;Discord&lt;/a&gt; and &lt;a href="https://gitlab.com/zecnero" rel="noopener noreferrer"&gt;GitLab&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>cryptocurrency</category>
      <category>blockchain</category>
      <category>rust</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
