In this article
- A USB miner that was never going to make me rich
- The Litecoin lottery and one very warm weekend
- Winter 2018: reading Litecoin source code
- Nebucoin: one N on a coin
- My own NOMP pool — and the stubborn boundary between components
- The first block that really counted
- NEBUCOIN LAB
- Five NEBU in, 4.75 NEBU out
- Staking was a block search, not a daily interest payment
- A bank-transfer reference, written into a blockchain
- A wooden Nebu-Quarter still will not buy a pizza
- A surviving trace: my Raspberry Pi wallet tutorial
- It worked. Next project.
- Questions and answers
- Sources and historical boundaries
I built a cryptocurrency that nobody could buy a pizza with. It had a name, mining hardware, a blockchain, my own pool, a Qt wallet and even transaction messages. Its market value was effectively zero. Getting a genuinely mined block accepted by my own node was still one of the most satisfying moments of the entire experiment.
How a USB miner, Litecoin source code, and a lot of curiosity turned into a personal blockchain laboratory.
Private laboratory · 2018–2019 · no market price
Coin motif: modern reconstruction, not a surviving original.- 2018 / Moonlander, Litecoin experiments and the Antminer weekend (recalled).
- Late 2018 / Private Nebucoin project begins after November.
- Early March 2019 / The complete system works (approximately).
- July 2019 / Raspberry Pi Qt-wallet tutorial; not a Nebucoin record.
A USB miner that was never going to make me rich
My first mining device was a FutureBit Moonlander 2, a small USB ASIC for Scrypt. An ASIC is hardware built for a particular calculation rather than a general-purpose CPU. I remember seeing roughly 2–4 MH/s in my experiments: a few million hash attempts per second. That is my remembered operating range, not a verified measurement or a claim about the device's maximum rating.
At first I tried public mining services and existing pools. There was something fascinating about a little USB device doing cryptographic work and submitting results. The economics were much less fascinating. For my circumstances, its limited hash rate and electricity costs made meaningful profitability unrealistic. Eventually, watching someone else's pool statistics also became rather boring.
The interesting question moved from “What will this pay?” to “What is actually happening?” I could install mining software and wait for a payment. But I wanted to understand the complete path from a calculation in hardware to a transaction appearing in a wallet.
The Litecoin lottery and one very warm weekend
The Moonlander spent about six months trying to find a Litecoin block through solo mining. Solo mining is a lottery with a very uneven distribution of tickets: a tiny fraction of the network's hash rate gives you a tiny chance per attempt. Six months of trying does not make the next attempt overdue. I later used conventional pool mining to receive small payments rather than depend entirely on that unlikely discovery.
I also bought a cheap, older Bitmain Antminer L3. I remember around 250 MH/s, but I cannot independently verify the exact hardware revision today. I therefore call it an L3, without retrospectively turning it into an L3+. Older mining equipment had become inexpensive as commercial profitability declined; for an experiment, that made it interesting.
And then the lottery actually worked once. Around August 2018, as I remember it, the Antminer ran over an entire weekend in a mining service's SOLO mode. This was not ordinary shared-reward pool mining. The service took a small solo fee, and my miner found a Litecoin block. I received the full solo reward under that service's arrangements.
I no longer have the block hash, height, payout transaction or archived service records. That successful discovery and its approximate date are personal recollections. I will not attach a precise payment amount or retrospective profit calculation to them.
What I do remember clearly is the heat and electricity consumption. The household was less enthusiastic about the experiment than I was. I suspect the power bill may have swallowed the economic benefit, but I do not remember the relevant consumption or contemporary Litecoin price well enough to calculate it honestly.
In November 2018 I received a Ledger Nano S as a birthday present; I still own it. The mined Litecoin initially sat under the control of a software wallet. I cannot remember whether that was Litecoin-Qt or Atomic Wallet. Later I transferred it to an address managed through the Ledger. The hardware wallet held signing keys, not little Litecoin files inside the USB device.
Winter 2018: reading Litecoin source code
After November 2018, a better project started taking shape: why not build my own cryptocurrency environment? Late November and the Christmas period were good times to tinker. I spent the winter of 2018/2019 reading, modifying, compiling, researching and debugging. The complete system finally worked around early March 2019. These are remembered milestones, not dates reconstructed from a surviving release history.
I began with Litecoin's source code. English documentation, Reddit discussions, Medium articles and other open-source projects filled in gaps. I looked at Bitcoin, Dogecoin, Verge, PIVX, Emerald and others. Looking at a project did not mean copying its code: sometimes I needed an implementation, sometimes an explanation, and sometimes simply a different way of approaching a problem.
This was adapting existing open-source implementations to learn how their pieces fit together. I did not invent a new cryptographic system or write an entire currency from a blank editor. Reading other people's code was a substantial part of the work.
Nebucoin: one N on a coin
The result was Nebucoin, ticker NEBU. My branding was a simple coin with a large N. No elaborate visual identity, no marketing campaign. The name followed my old Nebu nickname; I cared far more about whether the software worked.
It was entirely private: no public launch, exchange listing, outside investors or public mining community. I was essentially operating everything myself. I remember a maximum supply of about five million NEBU, but that is an estimate from memory, not a verified chain parameter.
Nebucoin combined Scrypt Proof of Work with Proof of Stake adapted from other open-source implementations. Ordinary Litecoin is a PoW system; adding staking required changes beyond a straightforward Litecoin-based coin. I did not write the staking algorithm from scratch, and I no longer know the exact original PoS codebase.
Mining difficulty changed as well. Conceptually, a difficulty adjustment changes how demanding the block target is: a smaller permitted set of hash results makes finding a block harder. I cannot recover Nebucoin's exact adjustment formula or target interval. Supplying a modern guess would make the story look precise while making it less true.
My own NOMP pool — and the stubborn boundary between components
A coin daemon alone was not the experiment I wanted. I ran a private mining-pool website using NOMP — Node Open Mining Portal. The pool and the Nebucoin blockchain node were separate running components. My separate Qt wallet could remain switched off.
The miner talked to the pool through Stratum; the pool communicated with the daemon through RPC. NOMP handled shares and accounting. The cryptocurrency node remained responsible for validating block candidates against the chain's rules. A pool could not declare an invalid block valid by displaying a pleasing dashboard.
A share is evidence of mining work at the pool's target. Most shares do not satisfy the stricter network block target. “Accepted” in mining software therefore does not necessarily mean that a new blockchain block exists.
The NOMP-to-Nebucoin integration took particularly long. I spent a lot of time on RPC communication, transmitting work and results, and getting a genuinely mined candidate recognized by the blockchain. The original errors are gone. I remember the integration problem, not an exact missing method, stack trace or configuration typo.
The first block that really counted
Eventually, my mining hardware submitted work through my pool and the Nebucoin node accepted the resulting block. Around early March 2019, the whole path finally worked.
That was the breakthrough. Assigning test coins through an administrative command would not have demonstrated the same thing. Here the hardware, mining protocol, pool integration and block validation had actually met at the same result. The coin had no meaningful price. I was still delighted.
The lab below recreates those relationships, not my old installation. The related easyNOMP project resembles the sort of interface I remember. It is a visual reference, not proof that I used that fork. Its screenshots are not screenshots of my pool. This dashboard is an original reconstruction, with no borrowed historical screenshots.
NEBUCOIN / LOCAL LAB / MISSION 02
NEBUCOIN LAB — A 2019 Blockchain Experiment
Educational reconstruction — not the original 2019 Nebucoin software.
Six small exercises connect mining work, a node, pool accounting and a wallet. All values are fictional. No cryptocurrency, wallet connection, keys, accounts, backend or network requests.
Start with A or submit a share in C. Then mine two blocks in B.
A / Follow the mining path
Select a component. The protocol labels show which components communicate; no connection is opened.
The ASIC computes Scrypt work. Stratum connects it to the pool; RPC connects the pool to the validating node. The separate Qt wallet can synchronize later.
B / Mine a toy block
Change the difficulty, then start one bounded attempt. A valid hash begins with the chosen number of hexadecimal zeros.
- Attempts in this run
- 0
Single SHA-256 over JSON [height, previous hash, data, difficulty, nonce]. Up to 12,000 attempts per click and 12 blocks per session, with pauses. No background mining. This is NOT the original Scrypt process or a real blockchain; difficulty does not auto-adjust here. A run may finish without a valid block.
C / NOMP pool reconstruction
Try an ordinary share first: it changes only the counter. Mine two blocks in B to make the first example reward available. Then request a payout and mine a third block to include it.
- Accepted shares
- 0
- Rejected work
- 0
- Immature model reward
- 0 NEBU
- Available pool balance
- 0 NEBU
- Total pool deductions
- 0 NEBU
- Pending payout
- 0 NEBU
Historical chosen values: threshold 5 NEBU, deduction 0.25 NEBU. Simplified payout: 4.75 NEBU; no separate network fee modeled. Invented model rules: 5 NEBU reward per block, available after one later block, one pending payout at a time. A share pays nothing by itself.
D / The chain keeps going; the wallet can be offline
Each block references its predecessor. Only an included payout reaches the demo recipient’s ledger balance. Opening the wallet synchronizes its view, without moving coins into a file.
- Recipient balance in ledger
- 0 NEBU
- Wallet view
- 0 NEBU
Offline · last known balance
Hashes are SHA-256; zeroes mark the initial predecessor. Confirmations count the containing block plus its successors. Payout inclusion is simplified; signatures, peer consensus, reorganizations and real transaction fees are omitted.
E / A public payment reference
This preview is independent of the wallet and pool balances. Never enter personal information: a real on-chain message would be public. This demo sends and stores nothing.
Illustrative formula, not historical source: empty = 0; otherwise 1 + 0.25 × max(0, ceil(length / 20) − 1) NEBU. Above 80 characters is rejected. These are local input checks, not proof of network consensus enforcement.
F / Eligible is not rewarded
Start with 100 eligible coins and 10 immature coins. Advance time to mature outputs. Try separate block searches; time alone creates no reward.
- Simulated time
- 0 h
- Eligible stake
- 100 NEBU
- Immature outputs
- 10 NEBU
- Model chance per attempt
- 10.0%
- PoS blocks / rewards of 1 NEBU
- 0
Independent toy model, not the original PoS algorithm: chance = eligible / (eligible + 900 hypothetical competing units). Seeded pseudo-random draws, at most 200 attempts and 240 simulated hours. Reward: 1 NEBU, immature for 24 hours. Historical private network: essentially only me, not 900 competitors. No daily interest or guaranteed returns.
Five NEBU in, 4.75 NEBU out
I set my private pool's payout threshold to 5 NEBU and its pool deduction to 0.25 NEBU. A simple illustration is 5 − 0.25 = 4.75 NEBU. Those were my chosen values. The deduction was not the blockchain transaction fee; the exact historical processing details are no longer available.
The lab deliberately keeps those stages separate. Shares change a work counter. A valid toy block creates a pending illustrative reward of 5 NEBU. One subsequent toy block makes it available in pool accounting. That one-block maturity and the 5-NEBU block reward are lab conventions, not recovered historical parameters. A payout moves 5 NEBU out of the available pool balance, records a 0.25 deduction, and puts 4.75 into a pending transaction. Another mined block includes it.
My actual Qt wallet could be off while the node and pool continued running. Opening it again synchronized the blockchain and revealed the relevant transactions. A wallet manages keys and interprets ledger state. Transaction outputs and their spending conditions live in the ledger; the keys authorize spending. Coins are not ordinary files physically stored in the application.
I could also inspect blockchain information through terminal commands, and NOMP showed mining and block statistics. That does not mean I operated a separate full-featured block explorer.
Staking was a block search, not a daily interest payment
My wallet could stake. I remember around 100 NEBU sometimes resulting in roughly one additional NEBU when it found a PoS block. The behavior resembled a roughly fixed block reward, not automatic daily percentage interest. More eligible coins increased the chance of a discovery; a fixed reward is a smaller percentage of a larger balance.
Newly generated coins needed approximately 24 hours to mature before they could stake again. Maturity made them eligible. Finding a valid PoS block was another event. Only that discovery produced a reward. None of this meant “100 NEBU earns 1% every 24 hours.” Discoveries and rewards could vary, and I was effectively the only staking participant in my private network.
The interactive example uses a seeded probability draw and 900 hypothetical competing stake units so that you can compare 100 with 500 eligible coins. That competition did not describe my actual private network. It is not the original staking algorithm or a return forecast. Time advances only when you press the clock button, and new model rewards remain immature for 24 simulated hours.
A bank-transfer reference, written into a blockchain
One detail I particularly liked was an optional message field in my adapted Qt wallet. The inspiration was the Verwendungszweck, the payment reference in a normal bank transfer. Why should a transaction contain only an amount and a destination when it could also carry a short explanation?
The text was stored as blockchain data. It was publicly readable, not encrypted private messaging. Knowing how to inspect the chain was enough to read it. As in the Tor article's discussion of cryptocurrency, a pseudonymous address does not magically turn the surrounding data into a secret.
I remember a limit of around 80 characters, an additional fee of at least 1 NEBU when text was included, higher fees for longer messages, and validation against oversized or insufficiently paid messages. I cannot recover the exact historical fee formula.
There are several places such a rule can live. Wallet-side checks can reject an input; transaction construction determines what is encoded; a node applies its own validation rules. A rule becomes a network consensus requirement only if the relevant validating nodes enforce it as such. I cannot establish today which of my message checks were enforced at every full node.
The lab's fee is explicitly invented for illustration: no message means no extra message fee; otherwise 1 NEBU covers the first 20 characters, with 0.25 NEBU per further started group of 20, up to 80 characters. It previews a public record and never sends a transaction. This is not my original C++ code.
Would the reference remain there forever? Hash links, validation, consensus and confirmations make later alteration increasingly difficult under the relevant network assumptions. That is resistance to change, not an absolute guarantee under every condition. A private network controlled by one person also offers very different assurances from a widely maintained chain. Block timestamps are not cryptographic proof of an exact real-world time.
A wooden Nebu-Quarter still will not buy a pizza
I could carve a coin out of wood, call it a Nebu-Quarter and declare it valuable. That would not persuade someone to exchange a pizza for it. Nebucoin had the same basic limitation: software can enforce bookkeeping rules, but it cannot manufacture other people's willingness to accept the unit.
There was no market price to celebrate and no commercial ambition to disappoint. The useful output was understanding: how a pool differs from a node, why a share differs from a block, how wallet synchronization works, and how many assumptions hide behind one seemingly simple balance display.
A surviving trace: my Raspberry Pi wallet tutorial
One authentic piece of that period is still online: How to install any QT-Wallet on the Raspberry Pi / Pi3B+, published in July 2019. It uses BankSocietyCoin as its example and reflects practical work with building wallets, dependencies and historical library compatibility problems.
It does not document Nebucoin specifically. It is a contextual record of what I was doing around that time, and an old tutorial rather than a modern secure setup recommendation. Building cryptocurrency software on a Raspberry Pi involved the same kind of patience that the private coin had already demanded.
It worked. Next project.
Eventually I had answered the question I started with. I shut down the blockchain network and mining infrastructure, removed the local wallet and moved on. There is no active Nebucoin network today. I have no original wallet or pool screenshots left to display here.
I did not need to keep running a private currency indefinitely to prove that the experiment had been worthwhile. Its purpose was fulfilled. The next project was waiting, much like the next strange idea behind BoringOS.
Nebucoin never had a market price. Its value was everything I learned while building it. A working system, a genuinely accepted block, and a much better understanding of the machinery were enough.
Questions and answers
Can I buy or mine Nebucoin today?
No. The private network was shut down. This lab uses fictional data only.
Did I rewrite Litecoin from scratch?
No. I learned from Litecoin source and adapted existing open-source implementations. The exact PoS source is no longer known.
Do 100 NEBU earn 1% every day?
No. Maturity makes coins eligible to stake; a valid PoS block produces a reward. The original rules are not fully preserved.
Does the lab show my historical wallet or pool?
No. It is a modern educational reconstruction. easyNOMP is only a related visual reference.
Did my Qt wallet need to be open for mining?
No. The separate node and NOMP needed to run. The Qt wallet could synchronize later.
Sources and historical boundaries
My personal recollections are the primary source for this story. External references explain the components; they do not verify my Litecoin discovery or original Nebucoin parameters. No external images or source-code passages are reproduced.
- Litecoin: official source tree, starting point for my research
- FutureBit: Moonlander 2 manufacturer support
- NOMP: original project, Stratum, daemon and accounting documentation
- easyNOMP (GPL-2.0): related visual reference, not my pool
- Dennis Hilk, July 2019: Raspberry Pi Qt-wallet tutorial using BankSocietyCoin
The exact L3 revision, PoS codebase, supply limit, difficulty rules and message fee formula remain uncertain. Numbers are marked as recollection or model where they are used.