Tags

Tags give the ability to mark specific points in history as being important
  • v0.1.11

    WAM Coin v0.1.11 — the solo miner stops losing blocks, and there is a window
    
    If you mine solo, update. v0.1.10's miner threw away most of the blocks it
    found. It asked the node for new work every five seconds and remembered only
    the last eight jobs — about forty seconds — while a worker keeps hashing one
    job until the chain moves, which is around two minutes. So when a block was
    finally found, the miner usually no longer recognised the job it came from
    and dropped it without submitting. A miner reported it, and he was right.
    
    Roughly two blocks in three were lost this way. The fix keeps every job until
    the tip it was built on is gone, and the miner now counts blocks it found but
    could not send, writes each one to a file with its full header, and fails the
    run instead of finishing quietly. A block you found and did not send is the
    one failure this program must never report as success.
    
    WHAT ELSE IS IN IT
    ------------------
    
    A graphical wallet, in a file of its own. `wam-qt` opens a window, syncs,
    creates and encrypts a wallet, sends and receives. It is a separate download
    on every platform so that a node is not several times larger for the people
    who never open a window:
    
        wam-qt-v0.1.11-x86_64-linux-gnu.tar.gz
        wam-qt-v0.1.11-x86_64-w64-mingw32.zip
        wam-qt-v0.1.11-arm64-apple-darwin.tar.gz
    
    On Linux it needs your distribution's Qt 5 installed; the archive's README
    carries the one line for apt, dnf and pacman, read out of the binary rather
    than remembered.
    
    The wallet used to say it was somebody else's. Its welcome screen offered to
    download "the full Bitcoin block chain (4 GB) starting with the earliest
    transactions in 2009" — this chain is a few megabytes and started this
    September. Its Pay To field gave a Bitcoin address as the example of a WAM
    one. On Windows the firewall prompt named the publisher as "Bitcoin". And all
    123 translation catalogues inside it named that coin, in their own alphabets,
    where no check written in English could see them: 95 of the 123. All of it is
    corrected, and the check that now looks for it does not read English — it
    asks whether the translation says what the English says, which needs no
    alphabet to answer.
    
    WHAT IS NOT CLAIMED
    -------------------
    
    The macOS wallet has been built on a Mac, started on a Mac, and synced the
    test chain from genesis on a Mac, by the build machine. No person has sat in
    front of it. The Windows and Linux wallets have been opened by hand.
    
    This release changes no consensus rule.
    
    The verification commands are added below this text by the workflow, and are
    deliberately not repeated here: the first draft of these notes carried its own
    copy, so the page showed two verify blocks that did not agree -- one naming a
    download path that answers 404, the other naming an account that was suspended
    on 24 September. Two wrong answers to the one question a careful reader asks.
    
  • v0.1.10

    v0.1.10 -- mine alone, with no pool at all
    
    You can now mine WAM on your own machine against your own node, with no pool
    at all. `wam-miner --solo -u YOUR_ADDRESS` needs nothing but a running wamd
    with server=1. When you find a block you keep the whole 47.5 WAM instead of a
    share of it, and you wait longer between them.
    
    Before you spend any electricity, `wam-miner --check -u YOUR_ADDRESS` builds a
    real block from your node's template and asks the node whether it is valid. It
    hashes nothing and answers in about a second. If your node accepts it, every
    part of a block except the proof of work is correct.
    
    Both work on Linux, Windows and macOS, and from this release every build
    proves the second one on each: a regtest node is started and --check is run
    against it, so the miner must build a block that node accepts before the
    release exists. That covers everything in a block except the proof of work.
    
    Hashing and submission are proved on hardware this project owns, and never in
    CI. Running a miner on a hosted build service is against the terms of every
    one of them, which this project learned the expensive way on 2026-09-24 when
    a step of ours did exactly that and cost it its code-hosting account for a
    day.
    
    Also fixed, all found by reading rather than by anyone reporting them:
    
    The Windows and macOS builds carried Bitcoin's logo. Four icon files ship
    with the GUI and the rename replaced one of them, so since v0.1.8 the window,
    the taskbar, the dock and the .exe itself showed the wrong mark on a wallet
    holding real coins. All four are now generated from one master.
    
    The miner reached for the mainnet RPC port whatever --network said, so mining
    alone on testnet or regtest failed with "could not connect" — which reads as
    "your node is not running" to somebody whose node is running perfectly, on
    another port. The port now follows the chain.
    
    The announcement bot cut these notes at twelve lines regardless of where a
    sentence ended. Every release before this one was announced mid-sentence, and
    twice mid-word. It also called every mainnet release "testnet software",
    because GitHub's pre-release flag means pre-1.0 and the bot read it as a
    statement about the chain.
    
    The mining pool credited block rewards one block before the coin could be
    spent — COINBASE_MATURITY is 100 and a coinbase becomes spendable at 101 — so
    it believed it held 47.5 WAM more than the node would let it send. Nothing
    was lost and nobody was paid twice; the books reconcile to 0.1 WAM of
    accumulated transaction fees. What it cost was time: payouts drifted from
    every ten minutes to every twenty or forty. scripts/treasury_spend.py chose
    inputs on the same wrong boundary, where the failure would have arrived at
    broadcast instead.
    
    Verify the download before running it. Every archive is listed in SHA256SUMS
    and that list is signed:
    
        gpg --import SIGNING-KEY.asc
        bash verify_release.sh .
    
    The fingerprint to check it against lives in one place and nowhere else:
    
        https://wamcoin.org/security/
  • v0.1.9

    v0.1.9 -- a floor under what a new node will follow
    
    This release sets nMinimumChainWork on mainnet. Until now it was zero, so a
    node installed today would follow whatever chain the first peer offered it,
    however cheaply that chain had been produced.
    
    It is not a consensus change and this release is not mandatory. A v0.1.8 node
    accepts exactly the same blocks, stays on the same chain and needs no update.
    The value decides only which header chains a node will consider while it is
    syncing.
    
    Why it was not set at launch, twice over. On 15 September there was no history
    to point at, and a fabricated floor would have been theatre. Then setting one
    on testnet on 7 September had stopped every new node syncing at all: a
    non-zero value turns on the header presync path, where upstream asserts
    Bitcoin's 2016-block retarget schedule, and a chain that retargets every block
    fails that assertion at height 1. Doing this on launch day would have blocked
    every newcomer in the week newcomers are the entire point, and it would have
    looked like a network outage rather than a parameter. The check that watches
    this was itself asking the testnet node until 18 September, so it did not
    report the gap either.
    
    The assertion is removed, testnet has run with a floor since, and this release
    was measured before it was cut: a node built from this source, starting with
    nothing, accepted all 2,645 headers through that presync path and reached the
    chain tip in 42 seconds from a peer on another continent.
    
    The value is 0x2adc39e008 -- 184,083,406,856 hashes, the work at block 936,
    about two days of network work and 64% of what the chain carried when it was
    chosen. A value above the real chain's work is how this setting fails badly,
    so the margin is wide in the direction that matters.
    
    What it buys: a peer can no longer walk a fresh node onto a cheap fabricated
    history. What it does not buy: anything against an attacker who really does
    out-work the chain. It is a floor, not a shield.
  • v0.1.8

    Windows: a node and a miner you can download and verify
    
    This release adds Windows. Two archives, signed like the Linux ones, with
    no WSL and no Linux needed: the node, and the miner.
    
    Consensus is unchanged from v0.1.7. No node has to upgrade, and nothing
    here can fork a node that does not. If you run Linux and everything works,
    there is nothing in this release for you.
    
    WHY IT MATTERS ANYWAY
    
    WAM uses RandomX so that an ordinary desktop processor can compete for
    blocks, and most ordinary desktop processors are inside Windows machines.
    The node has cross-compiled since 7 September and every platform-build run
    has proved it agrees with the chain -- but the miner had never been built
    for Windows at all, so a Windows user could hold a wallet and not take part
    in the proof of work. That was the wrong half to be missing.
    
    WHAT WAS MEASURED, ON WINDOWS 11
    
      --self-test     SHA-256, stratum byte order, difficulty targets, and
                      RandomX against both official test vectors
      connected       pool.wamcoin.org, subscribed, authorized
      1.88 kH/s       8 of 24 cores, 2 GiB dataset built in 5.5 s
      shares          10 accepted, 0 rejected
      block 8478      solved by the Windows binary, accepted, and paid
    
    Zero rejected shares is the number that matters: a single byte-order
    mistake in the header, the nonce or the target comparison gives all
    rejected and no error message.
    
    The node archive was also unpacked on a Windows runner and synced the test
    chain from the genesis block over the real peer-to-peer protocol, agreeing
    with the Linux nodes at heights 0, 1, 5000 and 6000 -- block 1 included,
    where the 5% treasury rule is first enforced. The bytes that did that are
    the bytes in the archive, not an earlier build of them.
    
    YOUR ANTIVIRUS WILL PROBABLY OBJECT TO THE MINER
    
    It is a false positive and we would rather you heard it from us. Windows
    Defender deleted wam-miner.exe fourteen seconds into its first run and
    called it Trojan:Win32/Bearfoos.A!ml.
    
    A program that opens a network connection and then uses every processor
    core behaves exactly like the cryptojacking malware that infects people
    without asking. No scanner can tell them apart by behaviour, because the
    behaviour is identical; the difference is that you chose this one, and it
    mines to the address on its own command line and nowhere else. A publisher
    certificate is the only thing that removes the warning and this project
    does not have one.
    
    So verify the file instead of trusting a verdict -- the SHA256 list is
    signed with a key kept offline, and its fingerprint is in SECURITY.md. If
    you want to mine, allow that one file by name in your antivirus, never a
    folder and never the whole machine. If you would rather not, the node is a
    separate archive, is not a miner, and is not normally flagged.
    
    Anyone claiming to be us and telling you to switch your antivirus off
    entirely is not us.
    
    docs/MINE.md has the seven lines for Windows, and the warning in full.
    
    ALSO
    
      * the Linux archives are unchanged in behaviour; the miner was
        refactored so one source builds for both platforms, and its socket
        error reporting on Linux is now read before freeaddrinfo() can
        overwrite it
      * mainnet is still 15 September 2026, 00:00 UTC
      * macOS builds and passes the consensus gate on every run, and is still
        not a signed download. It is next, and docs/ROADMAP.md section 7 says
        what is missing
  • v0.1.7

    A node can now find the network when DNS cannot be trusted
    
    This release is NOT mandatory. No consensus rule changed, and a v0.1.6 node
    validates exactly the same blocks, connects to the same peers and is in no
    danger. Upgrade when convenient.
    
    WHAT CHANGED
    
    Fixed seed nodes are compiled into the binary for the first time. Until now
    the three names in chainparams were the only way a new node could discover
    WAM, so whoever could forge one DNS answer for seed1.wamcoin.org decided who
    every newcomer met -- without touching a block, a key or a rule, and without
    anything in the project noticing. The domain's transfer and delete locks were
    already on; the zone was not signed, and now is.
    
    Only machines this project runs are in that list. A fixed seed is compiled
    into every copy of the software and cannot be withdrawn from binaries already
    downloaded, so an independent operator's address does not go in without their
    explicit consent, and neither has been asked.
    
    The binaries stop naming a different coin. wam-cli was telling people to
    "make sure the bitcoind server is running" and to run `bitcoin-cli -help`,
    which is what a stranger sees at the exact moment something has gone wrong.
    Thirty-seven such strings across eleven files, message text only -- the
    include paths, source filenames and makefile variables are untouched, and
    half the tests for that rename assert what it must not change.
    
    WHAT IT DOES NOT FIX
    
    Hashrate. The test network runs at around 13 kH/s and one ordinary desktop is
    a meaningful fraction of it. That is true of every new proof-of-work chain,
    it is not fixed by software, and the guidance stands: 20 confirmations
    wallet-to-wallet, 60 for an exchange deposit.
    
    VERIFYING THIS RELEASE
    
        git clone https://github.com/wam-coin-official/wam-coin
        bash wam-coin/scripts/verify_release.sh ~/Downloads
    
    Check the signing fingerprint against SECURITY.md over HTTPS, not against
    this page. A release page is something an attacker gets to write.
  • v0.1.6

    v0.1.6 -- the miner survives a pool that stops talking
    
    For miners. Consensus is untouched: a node on v0.1.5 and a node on v0.1.6
    agree on every block, and no node has to do anything for this release.
    
    WHAT WENT WRONG
    
    On 24 August a miner on this network held one job for six hours. The pool
    had sent it at 06:18 for height 1370; the chain reached 1430 without it. At
    12:36 a worker solved that six-hour-old job -- work on a block buried sixty
    deep -- and then the hash rate went to zero.
    
    Nothing was broken in a way anything could see. The TCP connection was
    half-open: recv() returned neither zero nor an error, so the miner had no
    event to react to. SO_KEEPALIVE is set, and Linux waits two hours before
    its first probe. The process was alive, the connection was established, and
    it was carrying nothing.
    
    WHAT CHANGED
    
    The miner now measures the silence itself. If the pool sends nothing at all
    for ten minutes -- no job, no reply to a share, nothing -- the connection is
    treated as dead whatever the socket claims, and it reconnects.
    
    Two mistakes were made building it, both caught by testing rather than
    reasoning. The check has to come after the read, or it measures how long the
    miner went without looking instead of how long the pool went without
    speaking. And time in which the miner was not listening cannot be charged to
    the pool: RandomX rebuilds its dataset on a seed change, which stopped the
    loop for 78 seconds here, and the first two versions threw away a healthy
    connection because of it.
    
    Verified in three directions: a silent pool with no job (reconnects), a
    silent pool while holding a job across a 79-second dataset rebuild (no false
    alarm, then reconnects on the real silence), and the live pool for 170
    seconds with the limit set to 60 (never fires, shares accepted throughout).
    
    WAM_MINER_SILENCE_SECONDS overrides the ten minutes. It exists so the
    behaviour can be watched in a minute instead of ten.
    
    IF YOU MINE
    
    Update. A miner that stops silently loses everything it would have earned
    and tells you nothing; the only reason this one was found is that its owner
    noticed the fan.
    
        wam-miner-v0.1.6-x86_64-linux-gnu.tar.gz
    
    IF YOU RUN A NODE
    
    Nothing here is for you, but v0.1.5 is still the release you need. Anything
    older enforces a consensus payout to the burn placeholder and will fork off
    the mainnet at height 1 on 15 September.
  • v0.1.5

    v0.1.5 -- the treasury address is real
    
    v0.1.4 and everything before it enforce a consensus payout to
    WNg2svm2qApxheBKndKGQ9sRwporvRgRpT, which is the burn placeholder:
    twenty zero bytes. A chain started on any of them sends five percent of
    every block from height 1 to 400,000 to an address nobody owns, forever,
    and no node objects because the rule is being followed exactly as
    written.
    
    This release carries WdMMqW1DcgWZ6HtyJuEMdce6QkKg4raGmE, generated on an
    air-gapped machine, written on paper twice, verified by the machine
    against the paper before it was used, and checked again by decoding it
    here: 34 characters, version byte 73, base58check valid, not the burn
    address, and not the founder's.
    
        check_consensus_final.sh mainnet
        every consensus input is final -- a chain started now can stand
    
    The treasury key is deliberately separate from the founder's. Treasury
    money is spent, and spending means putting its key on a connected
    machine; the founder reserve is locked until 2027 and must never touch a
    network. Sharing one key would expose all 2,750,000 WAM every time a
    server bill was paid. And with two addresses anyone can watch the chain
    and see the founder's reserve has not moved, instead of being asked to
    believe it.
    
    Verified in the packaged tarball rather than the source tree: the binary
    contains the treasury address once, the founder address once, and the
    burn placeholder zero times.
  • v0.1.4

    v0.1.4 -- the chain could mint money nobody could move
    
    Every wallet on WAM refused to fund any spend, on every network, from
    block 1. The pool had found 150 blocks, owed 16,176 WAM to two miners
    and had paid nothing since the chain started; fundrawtransaction failed
    identically for an ordinary wallet holding 16,387 WAM.
    
    estimatesmartfee learns a fee rate by watching what transactions pay.
    Every transaction on a new chain is a coinbase, coinbases pay no fee, so
    after 444 blocks it still answered "Insufficient data or no feerate
    found". Upstream's answer to that is -fallbackfee, and upstream ships it
    disabled -- correct for Bitcoin, whose fee market was liquid long before
    the default was chosen, and a deadlock here: the estimator needs
    fee-paying transactions to exist before it will let one be made.
    
    WAM-024 sets DEFAULT_FALLBACK_FEE to 20000 sat/kvB in wallet.h, the
    value Bitcoin itself shipped until v0.19 and 20x the min relay fee.
    Wallet policy, not consensus: it forks nothing and invalidates no block,
    and -fallbackfee still overrides it.
    
    Verified from the packaged tarball rather than the source tree: with
    -fallbackfee=0 forced it still fails, with nothing configured at all it
    funds and broadcasts.
    
    Also in this tag: the site stated the founder's restriction without the
    reason for it, the Arabic footer still denied the two independent
    reviewers weeks after the English was corrected, and CHANNELS.txt named
    five accounts and said "there are no others" while the explorer, the
    pool and the Electrum server had been live for days -- so the one file
    whose job is to say what is ours was calling three of our own hosts
    impostors, days before the pool gets registered where miners look.
  • v0.1.3

    v0.1.3 -- the first release that runs on the CPU you have
    
    v0.1.1 and v0.1.2 both carry 746 AVX-512 instructions inside wamd, because
    RandomX was built with ARCH=native and the node links it statically. They die
    with SIGILL on any CPU without AVX-512 -- most server CPUs before EPYC Genoa,
    and every consumer Intel before Ice Lake. Do not run either.
    
    RandomX is now built for the x86-64 baseline and still takes the AES-NI path
    at runtime when the CPU offers one. check_isa_baseline.sh reads the packaged
    binaries and refuses the release if any instruction above the baseline is in
    them, so this cannot be published again without something failing first.
  • v0.1.2

    v0.1.2 -- one build, on every machine, before block 1
    
    v0.1.1 was correct in every consensus value and reported itself as 0.1.0,
    because the version lived behind a marker that could not tell one version from
    another. That is fixed, and the release workflow now refuses to build a tag
    that disagrees with the source before it compiles anything.
    
    Cut while the testnet chain stands at height 0. The chain it is about to carry
    was reset because its first thirty blocks were mined under a rule that changed
    underneath them, and no fresh node could validate past height 1. Starting the
    new chain with one binary on all three machines is the cheapest possible time
    to make that impossible: after block 1 there is no later.
  • v0.1.1

    v0.1.1 -- the first build that is actually this network
    
    v0.1.0 was tagged on 2026-08-15. In the three days after it, the founder
    reserve was locked, all three genesis blocks were re-mined, and the treasury
    was given its own address. The tarball was never rebuilt, so the published
    download described a different network: a node from it cannot connect to this
    chain at all, and one did exactly that for four days.
    
    This build carries the current genesis blocks for mainnet, testnet and
    regtest, the real mainnet founder address, and the separated treasury.
    
    scripts/check_release_matches.sh now downloads whatever is published and
    looks inside the binary for the constants chainparams.cpp declares, so this
    cannot happen again without something failing loudly.
  • v0.1.0

    WAM Coin v0.1.0 -- first testnet release
    
    A RandomX fork of Bitcoin Core v28.1. Testnet only.
    
    Built and published by GitHub Actions on ubuntu-22.04, so the binary starts on
    Ubuntu 22.04 and 24.04 alike. Nothing was uploaded by hand.
    
    Every difference from Bitcoin Core is an anchored transformation in
    scripts/patch_upstream.py; run it with --list to read them all.
    
    WAM has no market value and may never have one, and this code has had no
    third-party security audit.