Origin story

Kaspa's fair launch was the path left after the other paths failed

Kaspa's launch structure wasn't chosen; it's what was left after research into faster proof-of-work ordering moved through DAGLabs, an April 2021 testnet, a hardware plan, a presale, and a DeFi pitch, each of which failed. Fair launch took the premine, pre-sale, and insider table off the starting line before mainnet existed.

See it

Kaspa's zero, plotted against three other launches

Hide the chartShow the chart

Drag the year marker to compare launch ownership over time.

Genesis allocations and later ownership evidence

Ethereum and Cardano funded a foundation; XRP had no public sale at all.

Kaspa: No genesis premine or genesis founder/company/foundation allocation is shown in rusty-kaspa's genesis.rs. Separate post-launch estimates put DAGLabs/core-developer mining around 2.5-3%; that is mining after launch, not a genesis allocation, and it does not establish later wallet ownership.

Solid: documented. Kaspa appears at genesis only; later holdings are unestablished. Dashed: modeled projection, not measured.

ChainGenesis / modeled sharePublic / openStatus at this year

What a premineCoins held before launch, before anyone else could mine or buy them. buys Founder, company, and foundation shares only; full sourcing below.

Launch history and sources

Runs entirely in your browser.

Research first

The problem came before the coin

Bitcoin at high block rates has one weak point: two honest miners solving blocks seconds apart, with the single-chain rule discarding one. Kaspa's research line starts there: a blockDAG keeps both blocks, then a rule like GHOSTDAG orders the graph into one shared history.

PaperAuthors and yearWhat it put on the record
SPECTRE Described by Zohar and Sompolinsky
Epicenter, July 2017
Dropped the blockchain data structure so blocks can be made all the time and merged afterward. Nobody races for one slot.
PHANTOM: A Scalable BlockDAG Protocol Sompolinsky and Zohar
2018
DBLP lists it as an IACR ePrint paper, on the same blockDAG research line as SPECTRE.

DAGLabs and testnet

DAGLabs came first, then the fair launch

DAGLabs, co-founded by Yonatan Sompolinsky and Guy Corem, paid for and ran part of the pre-mainnet path: a Golang build of Phantom/GHOSTDAG, then an April 2021 public testnet. No token premine, but a VC-funded backstory that shaped the hardware, mining, and fair-launch debate before mainnet existed.

Founding date dispute, testnet bundle, and the code's real origin

Sources disagree on founding: Investing.com (April 26, 2021) says 2017, $8 million from Polychain and Accomplice; HackerNoon says 2018. Yonatan's HashdagSompolinsky's research writing site. archive says the original Kaspad was built from Bitcoin's btcd client, in Golang; the unsourced "Bitcoin Core 0.19" claim doesn't hold up.

Could-have-been paths

Failed plans are part of the story

An ASICA chip built to run kHeavyHash fast; it can't be reprogrammed like a CPU or GPU.-and-presale plan, a DeFi-sequencing pitch, and a flawed gamenet came before the fair launch. None worked out.

PathWhat it was, and how it ended
ASIC and presale Hashdag's 2020 archive promised no premine and no founder rewards, then described DAGLabs as a for-profit miner tuning ASICs before launch. Yonatan later said the optical chips were never ready.
DeFi sequencing The April 2021 launch article framed Kaspa as faster ordering rails for Ethereum DeFi, and the Uphold recap agrees. Neither says Kaspa ever shipped as an Ethereum layer 2.
Gamenet Yonatan later called the gamenet attempt flawed: closer to a testnet with rewards bolted on than a real mainnet.
Venture-backed fair launch In the HackerNoon interview, Yonatan called DAGLabs a failed attempt to square venture backing with a fair launch, and agreed that both Polychain and Gadi pushed him to launch.

"Solana-like," from the same interviews, isn't a failed path: developer experience, not a claim about copying Solana's execution model.

Launch

Mainnet launched without a premine

Mainnet launched without a genesis premine; rusty-kaspa's genesis.rs, which records an empty genesis UTXOCoins spent whole and replaced by new ones. set, shows no genesis founder/company/foundation allocation. Post-launch mining, funding, and later holdings require separate evidence; Yonatan's archive calls the launch messy.

QuestionThe numberWhere it comes from
Was there a premine? None. No coins existed before the first mined block. This is the claim the chart at the top of this page plots against three other launches.
What did the core developers mine? About 2.5% of total supply. Yonatan's own later estimate, for mining after launch.
What did DAGLabs and Polychain end up with? Under 3%, roughly 840 million KAS, tightening to nearer 2.5% and under 850 million. The Kaspa Wiki prehistory page. Early-miner context, which is a different question from whether there was a premine.

Early stress

Kaspa had to survive real failure

On November 23, 2021, Yonatan published "Kaspa (Black Tuesday)" after a memory-problem crash: developers rebuilt against a known-valid UTXO commitment, not a preferred rollback. That's the sourced version of the "two-week bug" story; the genesis rusty-kaspa ships is dated November 22, the day before, putting the outage at days, not weeks.

IncidentWhat happenedWhat fixed it
Black Tuesday
November 2021
A memory problem crashed the network. Developers rebuilt against a known-valid UTXO commitment rather than rolling back to a state they preferred. Kaspad's November 2021 hard-fork commit, titled "new genesis with the utxo set of the last block." Mainnet genesis carries DAA score 1,312,860 and the same commitment hash.
Dust attack
September 2023
Each attack transaction spent one coin and created 238, adding roughly 100 KB of permanent state per block, about 5 GB a day. Shai Wyborski counted 57 million attacker coins. KIPKaspa Improvement Proposal: the process that specifies, reviews, and merges a protocol change. Nothing on this site counts as shipped without a merged KIP and a release tag.-9's extended mass formula, which prices state growth into transaction mass. The attacker now pays for the state they create.

Rust, Crescendo, Toccata

Golang was not the final version

Hashdag's 2022 archive says Michael Sutton pushed for a Rust rewrite, Golang's old debt made it hard for new coders. Rusty-kaspa, a drop-in replacement, puts Crescendo at May 5, 2025, one block a second to ten at DAA score 110,165,000 (v1.0.0 notes). "Toccata" often gets pinned on that rate; they're two forks, a year apart.

ForkWhat it changedActivated at
Crescendo
May 2025
Moved mainnet from 1 block per second to 10. DAA score 110,165,000, named in the rusty-kaspa v1.0.0 release notes.
Toccata
June 2026
Base-layer code support: covenants, Silverscript, ZKZero-knowledge: a proof that a statement is true without revealing the data behind it, so a script can accept a claim about work done elsewhere without seeing that work.-facing proof checks, sequencing commitments, and native-asset groundwork. Nothing to do with block rate. DAA score 474,165,565. Rusty Kaspa v2.0.0 shipped the switch and v2.0.1 followed as the Toccata release.

Wallet, indexer, and app use are still building on Toccata: check status for where each stands.

Hide the converterShow the converter

Drag the slider to convert a DAA score to a real date.

1. Read a DAA score

A DAA score rises about one per accepted block: 1/second before Crescendo (5 May 2025), 10/second after.

Crescendo
genesistoday and beyond

Kaspa dates its own changes by this counter, never the calendar.

Anchored on genesis and Toccata's activation; dates after Toccata assume today's rate holds.

A separate demo: catch a lying block timestamp

Catch a lying timestamp

A backdated block can look slower than it is and cheapen mining by lowering difficulty, so every timestamp must land after the middle time of the block's last 11 ancestors and no more than 132 seconds ahead of the checking node's clock.

refused: too old accepted refused: too far ahead

Bitcoin checks time almost the same way

Bitcoin uses the same 11-block median floor but allows a timestamp up to 2 hours ahead; Kaspa allows only 132 seconds, since it expects a new block every tenth of a second, not every 10 minutes.

How this date conversion is anchored
TopicExplanation
DAA score is a block count, not a timerEach block adds new merge-set blocks to its parent's DAA score, in kaspanet/rusty-kaspa. A flat 10-per-second rate only held after Crescendo (table below); applied earlier it overstates elapsed time roughly tenfold, so the converter interpolates between three exact anchors: genesis, Crescendo, and Toccata, landing about 0.06% off target across the 421 days between the latter two.
Where the timestamp check's constants come from
TopicExplanation
Timestamp rules used aboveA timestamp must exceed the median of 11 sampled ancestor timestamps (KIP-0004) and land no more than 132 seconds ahead of the validating node's clock. Bitcoin uses the same median-of-11 floor, sampled rather than walked since Kaspa's DAG mines many blocks in parallel, with a future ceiling roughly 55 times looser: it expects a block every 10 minutes, not every tenth of a second.

Constants used, and where they live

ConstantValueSource
Mainnet genesisDAA score 0, timestamp 1,637,609,671,037 ms (22 November 2021, UTC)consensus/core/src/config/genesis.rs, GENESIS.timestamp
Target block time, pre-Crescendopre_crescendo_target_time_per_block = 1000 ms (1 block/second)consensus/core/src/config/params.rs, mainnet MAINNET_PARAMS
Crescendo activationDAA score 110,165,000, projected 5 May 2025, 15:00 UTCconsensus/core/src/config/params.rs, crescendo_activation; date from Kaspa's own activation announcement
Target block time, post-Crescendotarget_time_per_block = 100 ms (10 blocks/second)consensus/core/src/config/bps.rs, BlockrateParams::new::<10>() in MAINNET_PARAMS
Toccata mainnet activationDAA score 474,165,565, roughly 30 June 2026, 16:15 UTCrusty-kaspa v2.0.0 release notes; see this site's claim fact-check
Past-median-time averaging frame, KaspaAVERAGE_FRAME_SIZE = 11 timestampsconsensus/src/processes/past_median_time.rs
Timestamp deviation tolerance, KaspaTIMESTAMP_DEVIATION_TOLERANCE = 132 secondsconsensus/core/src/config/constants.rs
Median-time window, BitcoinnMedianTimeSpan = 11 blocksbitcoin/bitcoin, src/chain.h
Future-block tolerance, BitcoinMAX_FUTURE_BLOCK_TIME = 7,200 seconds (2 hours)bitcoin/bitcoin, src/chain.h

Sources

Models the rules above; does not read a live node. A real explorer or node is always the authority.

Get it right

The careful version holds up better

Six topics, the sourced phrasing and the wrong version to avoid
TopicUseAvoid
Code originOriginal Kaspad was Golang and source-backed as an adaptation of btcd.Bitcoin Core 0.19, unless a durable source is added.
DAGLabsDAGLabs paid for and ran pre-mainnet work; public sources differ on 2017 versus 2018 dating.A single exact founding date with no caveat.
PolychainPolychain belongs in the VC-funded DAGLabs backstory. Premine and pre-sale claims need their own evidence on token allocation.Ignoring Polychain context or treating it as proof of a premine.
Fair launchNo genesis premine or genesis founder/company/foundation allocation is shown in genesis.rs. Initial supply was emitted through mining, including the separate DAGLabs/core-developer post-launch estimate.Treating genesis code as proof about presales, funding, later holdings, a perfect spread of coins, or no early contributor mining.
Business failureHardware, presale, and startup paths all fell through before the plain fair launch.Bankruptcy language unless a stronger source says bankruptcy.
Black TuesdayA November 2021 crash, repaired by a hard fork whose new genesis carried the UTXO set of the last valid block.A two-week halt. The commit, the genesis timestamp, and the post itself all put the outage in days.
Sources, with what each backs
  1. Polychain Capital
  2. Investing.com April 2021 launch article
  3. Guy Corem testnet note
  4. Epicenter episode 192, July 2017
  5. Rethink Trust 2018 interview
  6. Uphold Institutional interview recap
  7. Hashdag raw archive
  8. Kaspa launch plan: responding to reality
  9. Kaspa (Black Tuesday)
  10. Hackernoon interview with Yonatan Sompolinsky
  11. Kaspa Wiki prehistory page
  12. Bitcoin Takeover S16 E41
  13. Kaspad hard-fork commit #1856
  14. rusty-kaspa genesis.rs
  15. DBLP: PHANTOM: A Scalable BlockDAG Protocol
  16. rusty-kaspa GitHub
  17. Rusty Kaspa v1.0.0 release
  18. Shai Wyborski's dust-attack post-mortem
  19. KIP-9 raw file