<?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: StoneVast</title>
    <description>The latest articles on DEV Community by StoneVast (@stonevast).</description>
    <link>https://dev.to/stonevast</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%2F4192415%2F7f74ae06-04b8-4d7e-9414-dd533b6a1cc8.png</url>
      <title>DEV Community: StoneVast</title>
      <link>https://dev.to/stonevast</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/stonevast"/>
    <language>en</language>
    <item>
      <title>I withdrew $0.24 of mined crypto to an exchange — and it was the hardest part of the whole project</title>
      <dc:creator>StoneVast</dc:creator>
      <pubDate>Mon, 19 Oct 2026 14:08:34 +0000</pubDate>
      <link>https://dev.to/stonevast/i-withdrew-024-of-mined-crypto-to-an-exchange-and-it-was-the-hardest-part-of-the-whole-project-11lc</link>
      <guid>https://dev.to/stonevast/i-withdrew-024-of-mined-crypto-to-an-exchange-and-it-was-the-hardest-part-of-the-whole-project-11lc</guid>
      <description>&lt;h1&gt;
  
  
  I withdrew $0.24 of mined crypto to an exchange — and it was the hardest part of the whole project
&lt;/h1&gt;

&lt;p&gt;Mining was the easy part. Moving the coins out took a 3.5-year chain sync, a privacy-coin paradox, and one memo field that almost ate my money.&lt;/p&gt;

&lt;h2&gt;
  
  
  Context
&lt;/h2&gt;

&lt;p&gt;I run a transparent mining workbench: one RTX 4070 Laptop, lolMiner, FishHash algorithm, mining IRON (Iron Fish) on HeroMiners pool. ~16 MH/s at ~49W. Daily net profit after electricity: about &lt;strong&gt;$0.075&lt;/strong&gt;. Yes, seven and a half cents.&lt;/p&gt;

&lt;p&gt;I publish every number publicly. Part 1 of this series covered the brutal economics. This post is about what happened when I tried to actually &lt;em&gt;withdraw&lt;/em&gt; — the part most mining posts conveniently skip.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: The wallet that shows 0
&lt;/h2&gt;

&lt;p&gt;My pool dashboard said it had paid me 1.8+ IRON. My Iron Fish CLI wallet said: &lt;strong&gt;balance 0&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Reason: Iron Fish is a privacy chain. Your wallet doesn't "query" your balance — it &lt;em&gt;scans&lt;/em&gt; the chain and decrypts notes belonging to your keys. My node was 3.5 years of blocks behind. No sync, no notes, no balance.&lt;/p&gt;

&lt;p&gt;Fix was boring but long: official chain snapshot + &lt;code&gt;ironfish start --wallet --workers=-1&lt;/code&gt;, then wait for the wallet scan. Final result: &lt;strong&gt;3.09185719 IRON&lt;/strong&gt; visible.&lt;/p&gt;

&lt;p&gt;Lesson: with privacy coins, "the explorer says you got paid" is not a thing. The explorer doesn't know who you are. Only your synced wallet knows.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: The memo that almost ate the deposit
&lt;/h2&gt;

&lt;p&gt;Gate.io, like most exchanges, uses &lt;strong&gt;one shared IRON deposit address for all users&lt;/strong&gt;, distinguishing accounts by a required &lt;strong&gt;memo&lt;/strong&gt; field.&lt;/p&gt;

&lt;p&gt;Iron Fish CLI transfers support memos, but the flow isn't obvious. If you send to an exchange deposit address without the memo, your coins arrive at the exchange — credited to &lt;em&gt;nobody&lt;/em&gt;. Recovery means a support ticket and prayers.&lt;/p&gt;

&lt;p&gt;I sent a 0.2 IRON test first. It confirmed on-chain (block 1846578) and showed up in the Gate app. Then I sent the remaining 3.0 IRON (block 1846594). Both arrived.&lt;/p&gt;

&lt;p&gt;Test-first is the whole trick. The test cost me nothing but a few minutes; skipping it could have cost everything.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: Verify it yourself
&lt;/h2&gt;

&lt;p&gt;Tx hashes — this is the point of the project, everything is checkable:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;9281c0be78dfdb1d0196c832e4ea74afe80544d73b076aa1ecc6298ff335fb0a
c0092ac5633747806c0e222fac770ec81088add39d34557fb0db54a5240af23c
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The privacy-coin paradox, in practice: the explorer can confirm these transactions &lt;em&gt;exist&lt;/em&gt; and their &lt;em&gt;status&lt;/em&gt;, but hides sender, receiver and amounts. So "proof" on a privacy chain is a layered thing — pool dashboard ↔ on-chain tx existence ↔ exchange credit. Three independent ledgers agreeing is the strongest verification available.&lt;/p&gt;

&lt;h2&gt;
  
  
  What $0.24 proves
&lt;/h2&gt;

&lt;p&gt;3.2 IRON ≈ $0.24. Not coffee money. But the full loop now exists and is documented:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GPU → pool → wallet (synced) → exchange (memo'd) → sellable USDT&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Every step reproducible, every number public. Dashboard, daily snapshots, withdrawal log with both tx hashes: &lt;a href="https://haolinsong32-lang.github.io/stonevast/withdrawals.html" rel="noopener noreferrer"&gt;https://haolinsong32-lang.github.io/stonevast/withdrawals.html&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Honest FAQ
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Q: Is laptop mining profitable?&lt;/strong&gt;&lt;br&gt;
A: No. $0.075/day net. My long-term hardware goal (an RTX 6000 Pro) would take ~30 years at this rate. I do it because a fully-transparent micro-rig generates &lt;em&gt;data&lt;/em&gt;, and data compounds.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: Why Iron Fish?&lt;/strong&gt;&lt;br&gt;
A: FishHash is GPU-friendly (memory-hard DAG, ~4.6GB, Blake3 core, ASIC-resistant by design), and the privacy model makes the "prove everything" constraint interesting.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: Would you recommend the Iron Fish CLI flow?&lt;/strong&gt;&lt;br&gt;
A: It works, but budget an evening for first sync + wallet scan. And write down the memo requirement &lt;em&gt;before&lt;/em&gt; your first exchange deposit, not after.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Part 1 (the economics): &lt;a href="https://dev.to/stonevast/i-mine-iron-on-a-laptop-and-built-a-base-13-cipher-an-honest-numbers-report-2hg6"&gt;I mine IRON on a laptop and built a base-13 cipher — an honest numbers report&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>crypto</category>
      <category>privacy</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>I Mine IRON on a Laptop and Built a Base-13 Cipher — An Honest Numbers Report</title>
      <dc:creator>StoneVast</dc:creator>
      <pubDate>Mon, 19 Oct 2026 01:35:02 +0000</pubDate>
      <link>https://dev.to/stonevast/i-mine-iron-on-a-laptop-and-built-a-base-13-cipher-an-honest-numbers-report-2hg6</link>
      <guid>https://dev.to/stonevast/i-mine-iron-on-a-laptop-and-built-a-base-13-cipher-an-honest-numbers-report-2hg6</guid>
      <description>&lt;h1&gt;
  
  
  I Mine IRON on a Laptop and Built a Base-13 Cipher — An Honest Numbers Report
&lt;/h1&gt;

&lt;p&gt;No hype. No "passive income" promises. Just a laptop GPU, real electricity bills, and every number verifiable on a public mining pool.&lt;/p&gt;

&lt;h2&gt;
  
  
  The honest numbers (updated daily)
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Hardware&lt;/td&gt;
&lt;td&gt;RTX 4070 Laptop (8 GB)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hashrate&lt;/td&gt;
&lt;td&gt;14.5–16.7 MH/s (FishHash)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Power draw&lt;/td&gt;
&lt;td&gt;~49 W&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Electricity cost&lt;/td&gt;
&lt;td&gt;¥0.55/kWh (~$0.076)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Daily net profit&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;~¥0.54 (~$0.075)&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Total mined so far&lt;/td&gt;
&lt;td&gt;1.8576 IRON ≈ ¥0.99&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Yes, you read that right. &lt;strong&gt;About 7 US cents per day.&lt;/strong&gt; At this rate, saving up for my dream card (an RTX 6000 Pro, ~¥70,000) would take roughly 355 years from mining alone.&lt;/p&gt;

&lt;p&gt;I publish these numbers daily on my site — not to impress you, but because &lt;em&gt;verifiable honesty&lt;/em&gt; is the entire point of the project.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why mine at all, then?
&lt;/h2&gt;

&lt;p&gt;Three reasons:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;It's a live data source.&lt;/strong&gt; Real hashrate, real payouts, real prices — a stream of ground truth I can build tools around.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It's a trust anchor.&lt;/strong&gt; Anyone can check the pool dashboard and confirm I'm not making numbers up.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It's fun.&lt;/strong&gt; And fun keeps the project alive longer than discipline does.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  The side quest: a base-13 "mother codebook" cipher
&lt;/h2&gt;

&lt;p&gt;While watching logs grow, I started wondering: could I design a tiny encoding scheme of my own? The idea:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Merge 26 letters into 13 symbols (a/b share one, c/d share one, ...)&lt;/li&gt;
&lt;li&gt;Same trick for digits (0/1, 2/3, ...) and punctuation&lt;/li&gt;
&lt;li&gt;The mapping table itself is the key — different seeds, different tables&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Here's the core of it in JavaScript:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;DEFAULT_MASTER&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;a&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;α&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;b&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;α&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;c&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;β&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;d&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;β&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;e&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;γ&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;f&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;γ&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;g&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;δ&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;h&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;δ&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;i&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;ε&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;j&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;ε&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;k&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;ζ&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;l&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;ζ&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;m&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;η&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;n&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;η&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;o&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;θ&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;p&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;θ&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;q&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;ι&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;r&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;ι&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;s&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;κ&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;t&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;κ&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;u&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;λ&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;v&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;λ&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;w&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;μ&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;μ&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;y&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;ν&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;z&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;ν&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;0&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;①&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;1&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;①&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;2&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;②&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;3&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;②&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;4&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;③&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;5&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;③&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;6&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;④&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;7&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;④&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;8&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;⑤&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;9&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;⑤&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;encode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;text&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;table&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;DEFAULT_MASTER&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;[...&lt;/span&gt;&lt;span class="nx"&gt;text&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nf"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;ch&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;table&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;ch&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;toLowerCase&lt;/span&gt;&lt;span class="p"&gt;()]&lt;/span&gt; &lt;span class="o"&gt;??&lt;/span&gt; &lt;span class="nx"&gt;ch&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;join&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;''&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="c1"&gt;// 'stonevast' → 'κκθηγλακκ'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And a seed-derived version so everyone can generate their &lt;em&gt;own&lt;/em&gt; codebook:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;deriveMaster&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;seed&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;// SHA-256(seed) drives a Fisher-Yates shuffle of the target symbols&lt;/span&gt;
  &lt;span class="c1"&gt;// Same structure, different contents — the table IS the key&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I also added an &lt;strong&gt;anti-phishing tail&lt;/strong&gt;: 4 base-13 characters appended to every ciphertext, computed as &lt;code&gt;SHA-256(cipher | masterKey) mod 28561&lt;/code&gt;. If someone tampers with a single character — or tries to forge a message without knowing the master — verification fails and the message is rejected:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;correct key  → stonevast ✓
tampered     → ⚠ anti-phishing check failed, rejected
wrong key    → ⚠ anti-phishing check failed, rejected
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Is this cryptographically serious? &lt;strong&gt;No.&lt;/strong&gt; It's a learning toy — a Caesar-cipher-grade curiosity. Real systems should use AES/ChaCha20 and established libraries. But building it taught me more about key derivation, checksums, and why real ciphers are hard, than reading three articles would have.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I'm actually building
&lt;/h2&gt;

&lt;p&gt;The mining rig is the mascot; the real product is a &lt;strong&gt;mining revenue workbench&lt;/strong&gt;: transparent dashboards, daily snapshots, risk calculators — every number checkable by anyone.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Live site: &lt;a href="https://haolinsong32-lang.github.io/stonevast/" rel="noopener noreferrer"&gt;https://haolinsong32-lang.github.io/stonevast/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Node program (free tier, genesis perks): same link&lt;/li&gt;
&lt;li&gt;Pool dashboard: search my worker &lt;code&gt;sg4070&lt;/code&gt; on HeroMiners&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you're into honest data, tiny ciphers, or laptop mining experiments — say hi in the comments. Tell me what you'd verify first.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;All figures from public pool APIs and exchange tickers. Mining has electricity-cost risk; do your own math. This is a data journal, not investment advice.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>web3</category>
      <category>cryptography</category>
      <category>javascript</category>
      <category>beginners</category>
    </item>
    <item>
      <title>I mined crypto for 40+ hours and made less than a dollar. I'm publishing every number anyway.</title>
      <dc:creator>StoneVast</dc:creator>
      <pubDate>Sun, 18 Oct 2026 16:56:48 +0000</pubDate>
      <link>https://dev.to/stonevast/i-mined-crypto-for-40-hours-and-made-less-than-a-dollar-im-publishing-every-number-anyway-2ei5</link>
      <guid>https://dev.to/stonevast/i-mined-crypto-for-40-hours-and-made-less-than-a-dollar-im-publishing-every-number-anyway-2ei5</guid>
      <description>&lt;p&gt;&lt;strong&gt;Subtitle: No lambo. No "passive income" pitch. Just a laptop GPU, a power meter, and three independent sources you can check yourself.&lt;/strong&gt;&lt;/p&gt;




&lt;p&gt;Most crypto mining content falls into two buckets: screenshots of impossible profits, or vague "it's not worth it anymore" takes. Both are useless if you actually want to decide whether to plug in your own GPU.&lt;/p&gt;

&lt;p&gt;So I'm running a different kind of experiment: one RTX 4070 laptop, one Iron Fish miner, and a public dashboard where every number — down to the last $0.01 — is cross-verified against sources you can open in your own browser.&lt;/p&gt;

&lt;p&gt;Here's everything I've learned, with receipts.&lt;/p&gt;

&lt;h2&gt;
  
  
  The honest numbers
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Hardware:&lt;/strong&gt; RTX 4070 Laptop (8GB), nothing fancy&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Coin:&lt;/strong&gt; Iron Fish (IRON), via the FishHash algorithm&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Miner:&lt;/strong&gt; lolMiner 1.98a on Windows&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pool:&lt;/strong&gt; HeroMiners&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Time mining so far:&lt;/strong&gt; ~40+ hours (with interruptions I'll explain below)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Total paid out:&lt;/strong&gt; ~2.5 IRON ≈ &lt;strong&gt;$0.19 at current prices&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Net after electricity:&lt;/strong&gt; roughly ¥0.5–0.8/day (~$0.07–0.11)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Yes. Less than a dollar. That's the real number, and it's the whole point: &lt;strong&gt;small is fine, as long as it's true and verifiable.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Every figure above can be checked against three independent mirrors:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;The pool's own dashboard&lt;/strong&gt; — HeroMiners shows my hashrate, shares (2,189 accepted, 0 rejected), and every payout to my address.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The Iron Fish block explorer&lt;/strong&gt; — my address &lt;code&gt;b88f8b...df80&lt;/code&gt; is on-chain. The payments are real transactions anyone can look up.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The exchange price feed&lt;/strong&gt; — IRON/USDT on Gate.io, the same live price my dashboard uses.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Pool ledger ↔ on-chain ledger ↔ exchange price. If any one of them disagrees, you'll see it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The one tweak that gained me 25%: clock locking
&lt;/h2&gt;

&lt;p&gt;Gaming laptops are terrible miners out of the box — not because of the GPU, but because of thermals. Boost clocks spike, the fans scream, the chassis heats up, and then everything throttles.&lt;/p&gt;

&lt;p&gt;The fix was counterintuitive: &lt;strong&gt;lock the core clock lower.&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Core clock&lt;/th&gt;
&lt;th&gt;Hashrate&lt;/th&gt;
&lt;th&gt;Power&lt;/th&gt;
&lt;th&gt;Temp&lt;/th&gt;
&lt;th&gt;Net/day&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Unlocked (boosting)&lt;/td&gt;
&lt;td&gt;~20 MH/s peak, unstable&lt;/td&gt;
&lt;td&gt;50–60W&lt;/td&gt;
&lt;td&gt;60–68°C&lt;/td&gt;
&lt;td&gt;+¥0.58&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Locked 1600 MHz&lt;/td&gt;
&lt;td&gt;~15–18 MH/s&lt;/td&gt;
&lt;td&gt;~46W&lt;/td&gt;
&lt;td&gt;~55°C&lt;/td&gt;
&lt;td&gt;+¥0.45&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Locked 1200 MHz&lt;/td&gt;
&lt;td&gt;~14.5 MH/s&lt;/td&gt;
&lt;td&gt;~40W&lt;/td&gt;
&lt;td&gt;~48°C&lt;/td&gt;
&lt;td&gt;+¥0.31&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;I settled on 1600 MHz. On Windows with an NVIDIA card:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;nvidia-smi &lt;span class="nt"&gt;-lgc&lt;/span&gt; 1600
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That one command took me from 13.33 → 16.67 MH/s sustained (+25%), while &lt;em&gt;dropping&lt;/em&gt; temps and fan noise. The machine now sits next to me, barely audible, mining through the night.&lt;/p&gt;

&lt;p&gt;Note: lolMiner's own &lt;code&gt;--cclk&lt;/code&gt; flag did nothing on this laptop GPU. &lt;code&gt;nvidia-smi -lgc&lt;/code&gt; (needs admin) is what actually worked.&lt;/p&gt;

&lt;h2&gt;
  
  
  The breakeven math, published openly
&lt;/h2&gt;

&lt;p&gt;Here's the part most mining content hides: the exact point where this stops making sense.&lt;/p&gt;

&lt;p&gt;At my locked setting (14.5 MH/s @ 40W, ¥0.55/kWh electricity):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Breakeven coin price:&lt;/strong&gt; IRON at $0.047 (currently ~$0.075 → 37% safety margin)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Breakeven electricity price:&lt;/strong&gt; ¥0.88/kWh (~$0.12)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If IRON drops below $0.047, my watchdog script parks the miner automatically. Mining at a loss is a choice, not an accident.&lt;/p&gt;

&lt;p&gt;If &lt;em&gt;your&lt;/em&gt; electricity costs more than ~¥1.20/kWh (~$0.17), my own site will tell you not to bother — a hard "DO NOT RUN" verdict. I'd rather lose a visitor than have someone lose money on my numbers.&lt;/p&gt;

&lt;h2&gt;
  
  
  What killed my miner for 5 hours (a cautionary tale)
&lt;/h2&gt;

&lt;p&gt;Confession: I lost 5 hours of mining because I forgot I was running a local AI image generator (ComfyUI) on the same GPU. FishHash needs ~4.6GB of VRAM for its DAG; my 8GB card had 183MB free. The miner silently failed.&lt;/p&gt;

&lt;p&gt;Lesson: on an 8GB card, local AI and mining don't coexist. Pick one, or script the switching.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I'm actually building
&lt;/h2&gt;

&lt;p&gt;The mining itself earns pocket change. The real project is the layer on top:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;A public, self-verifying dashboard&lt;/strong&gt; — hashrate, power, payouts, breakeven points, all updated daily from the pool API and exchange feeds. No login. No ads.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A free "am I profitable?" checker&lt;/strong&gt; — pick your GPU (20 presets, including AMD and datacenter cards), set your electricity price, get an honest RUN / MARGINAL / DO NOT RUN verdict in 20 seconds. It will happily tell you &lt;em&gt;not&lt;/em&gt; to mine.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A node program&lt;/strong&gt; — first 100 "genesis nodes" lock in 30% of their direct referrals' paid revenue, forever. One level only, no entry fee, no promised returns, monthly settlement ≥20 USDT paid on-chain. Genesis nodes also get a free numbered NFT (#001–#100) as an identity credential — explicitly &lt;em&gt;not&lt;/em&gt; an investment.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It's all live, in Chinese and English, here:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="http://47.236.149.136.nip.io" rel="noopener noreferrer"&gt;http://47.236.149.136.nip.io&lt;/a&gt;&lt;/strong&gt; (a proper domain is on the roadmap — funded by mining revenue, because of course it is)&lt;/p&gt;

&lt;h2&gt;
  
  
  Why publish numbers this small?
&lt;/h2&gt;

&lt;p&gt;Because the alternative is what this industry usually does: hide the losses, crop the screenshots, and sell the dream.&lt;/p&gt;

&lt;p&gt;I'd rather build the boring version — where a ¥0.83 profit is shown as ¥0.83, where the breakeven price is printed next to the current price, where the answer to "should I mine?" is sometimes a flat &lt;strong&gt;no&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;If that sounds refreshing instead of disappointing, come watch the number tick up, one satoshi-sized drip at a time. First 100 nodes get the genesis terms permanently.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Every claim in this article can be verified from the dashboard itself: pool API, block explorer, exchange feed. That's the whole idea.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>mining</category>
      <category>cryptocurrency</category>
      <category>web3</category>
      <category>blockchain</category>
    </item>
  </channel>
</rss>
