What is eCash
eCash (ECX) is a Bitcoin hard fork from Paul Sztorc and LayerTwo Labs, built to activate Drivechains (BIP300 and BIP301) on a chain of its own. It is Bitcoin Core with that change: the same SHA-256d proof of work, the same address formats, and its own difficulty retargets after a one-time reset at the fork.
At mainnet block ~973,728 (estimated around October 31, 2026) every Bitcoin address receives ECX one-for-one: hold 1 BTC at the fork, own 1 ECX after it. From then on ECX is priced by its own market. The home page shows both numbers live: the fork ratio (1:1) and the market ratio between ECX and BTC.
| Bitcoin | eCash (ECX) | |
|---|---|---|
| Proof of work | SHA-256d | SHA-256d (identical) |
| Node software | Bitcoin Core | Fork of Bitcoin Core v31.1 |
| Addresses | 1… / 3… / bc1… | Identical formats |
| Distribution | Mined since 2009 | 1:1 snapshot of every BTC balance, then mined |
| Upgrade | - | Drivechains: BIP300 escrow + BIP301 blind merged mining |
That is why this launchpad fits: every coin here is mined with the same SHA-256 work, in the same 80-byte header format, with the same retarget and median-time rules. Not to be confused with eCash XEC, an unrelated coin, or with Chaumian “ecash” (Cashu, Fedimint).
wECX on Solana
Coins here trade against wrapped ECX (wECX), an SPL token issued by ecash.com that exchanges at par (1:1) for real ECX through the ecash team's bridge: deposit ECX and receive wECX on Solana, or send wECX back and receive ECX, minus a bridge fee. wECX has 8 decimals, so one raw unit is one satoshi of ECX.
| wECX | |
|---|---|
| Mint | 6ombVv3YMs9qpx1QkycD9XW8HKSfv7vGrCFX3cxCYMVY |
| Issuer | ecash.com (mint authority 6Av9…sKT) |
| Decimals | 8 (1 unit = 1 sat) |
| Redemption | 1:1 for ECX via the ecash bridge (custodial) |
| Markets | Orca, Tessera and others, routed by Jupiter |
Know the trust model. The bridge is custodial: the ecash team holds the ECX that backs wECX. Their own bridge README notes that per-window withdrawal caps and multisig payout authority are not built yet. Until mainnet, wECX is a claim on ECX that has not forked; expect volatility around the fork.
How ePeg works
ePeg is a launchpad built on eCash's idea of money: proof of work. Every coin is a block in a small chain that follows the same SHA-256d rules as Bitcoin and ECX. Before a coin can launch, your browser has to find a nonce that makes its 80-byte block header hash below the network target. The server checks the proof and that it builds on the current tip, then builds the Meteora bonding-curve transaction that creates the coin, paired with wECX. The block hash rides along in that transaction as a memo, so the proof lives on Solana permanently.
A coin exists only after its header beats the target. No proof, no transaction.
Each block commits to the previous block's hash. The order of launches is fixed forever.
Every curve trades against wrapped ECX. Prices are in sats; graduation lands in a wECX pool.
Launch lifecycle
Eight stages from a blank form to a graduating coin. Click a stage to pause on it.
- 1InscribeName, ticker, art, first buyBrowser
- 2PinImage + metadata JSON to IPFSServer
- 3CommitMerkle root of mint, miner, inscriptionBrowser
- 4MineSHA-256d over the header in Web WorkersBrowser
- 5VerifyPoW, tip, bits, time, merkleServer
- 6SignWallet + mined mint keypairBrowser
- 7BroadcastDBC pool + first buy + memoSolana
- 8ConfirmCurve fills: 6 confirmationsSolana
The block header
Six fields, 80 bytes, identical to Bitcoin's layout. Integers are little-endian and hashes are stored byte-reversed, which is why Bitcoin hashes are displayed “backwards”.
| Bytes | Field | Here it means |
|---|---|---|
| 0–3 | version | 1 |
| 4–35 | prev block hash | Hash of the current tip. Block 0 uses 32 zero bytes. |
| 36–67 | merkle root | Commitment to the mint, the miner and the inscription. |
| 68–71 | time | Unix seconds. Must beat median-time-past; rolls forward if nonces run out. |
| 72–75 | bits | The target, compact-encoded. |
| 76–79 | nonce | What the miner grinds through: 2³² values per timestamp. |
Proof of work
A header is valid when sha256d(header), read as a little-endian 256-bit integer, is at or below the target. Hashes are uniformly random, so the only strategy is to try nonces until one lands. The miner precomputes the SHA-256 state of the first 64 header bytes (the midstate), which never change, so each attempt costs two compressions instead of three, the same trick every ASIC uses. Work is split across Web Workers, one slice of the nonce space per CPU thread.
—
Targets & bits
The target is packed into 4 bytes: one exponent byte and a 3-byte mantissa. Difficulty is how many times harder the current target is than the easiest allowed one (powLimit).
powLimit bits = 0x1e03ffff
target = 0x000003ffff000000000000000000000000000000000000000000000000000000
difficulty = powLimit / target
expected ≈ 2^256 / (target + 1) hashesDifficulty retarget
Every 21 blocks the target is recomputed from how long the last period actually took, aiming for one launch every 10 minutes at peak demand. This is Bitcoin's (and eCash's) GetNextWorkRequired, including Satoshi's off-by-one: the span covers 20 gaps but is compared against 21.
expected = 21 × 600s actual = time(h−1) − time(h−21) actual = clamp(actual, expected/4, expected×4) target' = clamp(target × actual / expected, powLimit/64, powLimit)
Drag the demand slider. Low demand sinks to the floor; a rush pushes difficulty up, at most 4× per period.
Time rules
Two of Bitcoin's timestamp rules apply: a block's time must be later than the median of the previous 11 blocks, and at most 2 hours ahead of the server clock.
Timestamps can be out of order (miners' clocks differ), so Bitcoin compares against a median rather than the last block. That stops one miner from dragging time backwards to game the retarget.
Merkle commitment
The merkle root makes a launch tamper-proof once mined. Three leaves are hashed pairwise with SHA-256d, and the odd one pairs with itself, exactly like Bitcoin's transaction tree. The mint keypair is generated in your browser and never reaches the server; it signs the launch there.
L0 = sha256d(mint pubkey) L1 = sha256d(creator pubkey) L2 = sha256d(json[name, symbol, uri, firstBuySats]) root = H( H(L0‖L1) ‖ H(L2‖L2) )
First buy & halvings
In Bitcoin and eCash the coinbase is the miner's reward. Here it's the miner's right to the first buy, inside the launch transaction, before anyone else can trade. The cap starts at 5 ECX and halves every 210 blocks. You pay in SOL; a Jupiter swap buys the exact wECX amount at launch.
| Epoch | Blocks | Cap (sats) | Cap (ECX) |
|---|---|---|---|
| 0 | 0–209 | 500,000,000 | 5 ECX |
| 1 | 210–419 | 250,000,000 | 2.5 ECX |
| 2 | 420–629 | 125,000,000 | 1.25 ECX |
| 3 | 630–839 | 62,500,000 | 0.625 ECX |
| 4 | 840–1,049 | 31,250,000 | 0.3125 ECX |
| 5 | 1,050–1,259 | 15,625,000 | 0.15625 ECX |
Confirmations
After launch, each coin trades on its own Meteora bonding curve against wECX. Progress toward the migration threshold is shown as Bitcoin confirmations: each sixth of the ECX the curve raises is one confirmation. At six the curve is complete, the block is final, and liquidity migrates to a DAMM v2 pool.
| Conf | ECX raised | Supply sold | Price vs launch | Progress |
|---|---|---|---|---|
| 1 | 16.7% | 26.3% | 1.54× | |
| 2 | 33.3% | 44.0% | 2.20× | |
| 3 | 50.0% | 56.8% | 2.97× | |
| 4 | 66.7% | 66.4% | 3.87× | |
| 5 | 83.3% | 74.0% | 4.87× | |
| 6 · final | 100.0% | 80.0% | 6.00× |
On a constant-product curve price rises faster than supply sells, so confirmations bunch up near the end: the first confirmation sells about a quarter of the curve's supply, the sixth only a few percent.
Orphans & forks
Two miners can find a block on the same tip. The database enforces a unique prev_hash, so appending is atomic: the first submit wins and the other becomes an orphan that re-mines on the new tip. If a launch fails on Solana after its block was appended, the block stays as an empty block: its proof of work was real, so history isn't rewritten.
1. Both miners fetch the template: tip is block N.
Transaction anatomy
A launch is at most two Solana transactions, signed together in one wallet approval. The swap only exists when your first buy needs wECX you don't already hold.
- 00Compute budget
- 01Wrap SOL
- 02Route SOL → wECX (ExactOut: the first-buy amount)
- 03Unwrap leftover SOL
- 00initialize_virtual_pool: creates the mint, Metaplex metadata and the curve pool from the config key
- 01swap: the creator's first buy, paid in wECX, before anyone else can trade
- 02memo: epeg:block:<height>:<hash> (the proof of work, on Solana forever)
Trust model
What enforces each rule, and how you can check it.
| Rule | Enforced by | How to verify |
|---|---|---|
| Hash ≤ target | Server, at prepare and submit | Recompute sha256d from the public header |
| Builds on the tip | Unique prev_hash in the database | Walk prev_hash links back to block 0 |
| Metadata can't change | Merkle root inside the header | Recompute the root from the coin's data |
| Proof is permanent | Memo in the Solana launch tx | Read the memo on Solscan |
| Curve, fees, graduation | Meteora DBC program on-chain | Read the config and pool accounts |
| Fixed supply | DBC mints the full supply at creation | Check the mint account |
| First-buy cap | Server, from block height | Compare buy size to the halving schedule |
| wECX ↔ ECX at par | ecash.com's custodial bridge | Their published bridge code and reserves |
Parameters
| Parameter | This chain | Bitcoin / ECX |
|---|---|---|
| Hash function | SHA-256d | SHA-256d |
| Target spacing | 600s | 600s |
| Retarget interval | 21 blocks | 2016 blocks |
| Retarget clamp | 4× per period | 4× per period |
| powLimit bits | 0x1e03ffff | 0x1d00ffff |
| Expected work at difficulty 1 | 4.2M hashes | ~4.3B hashes |
| Maximum difficulty | 64 | none |
| Halving interval | 210 blocks | 210,000 blocks |
| Initial subsidy | 5 ECX (first-buy cap) | 50 BTC / ECX block reward |
| Median-time-past window | 11 blocks | 11 blocks |
| Max future drift | 2h | 2h |
| Confirmations to final | 6 (curve complete) | 6 (convention) |
Verify it yourself
Every coin page has a “Verify in browser” button that recomputes the hash and merkle root from the stored fields. The same check in a few lines:
import { checkProofOfWork, merkleRoot } from "@/lib/chain";
const header = { version, prevHash, merkleRoot: root, time, bits, nonce };
checkProofOfWork(header).valid; // hash ≤ target
merkleRoot({ mint, creator, name, symbol, uri, firstBuySats }) === root;
// and the Solana launch tx carries the memo: epeg:block:<height>:<hash>FAQ
No. Difficulty is capped at 64, about 268M hashes, so even at peak a laptop finds a block in under a minute. At the floor it takes a second or two. Your browser uses every CPU thread you allow.
It is one, by design: each launch costs real computation, and the retarget makes it cost more when everyone launches at once. It also gives every coin a verifiable hash, a place in an ordered chain, and a timestamp nobody can backdate.
Only one block can extend each tip. The first valid submission wins; the other miner's browser re-mines the same coin on the new tip automatically. Nothing is lost except a few seconds of hashing.
It would be caught. Every block's header is public, the hash is written into the Solana launch transaction as a memo, and anyone can recompute SHA-256d and the merkle root from the coin's data. The 'Verify in browser' button on every coin page does exactly that.
Convenience. You type SOL; at launch a Jupiter swap buys exactly the wECX your first buy needs, and your wallet signs the swap and the launch in one approval. If you already hold enough wECX, no swap happens.
When the curve's wECX reserve reaches the config's migration threshold, trading on the curve stops and Meteora migrates the liquidity into a DAMM v2 pool, still paired with wECX. The coin page then links out to trade it there.
Not without breaking its block. The metadata URI is one of the merkle leaves, so the proof of work commits to it. A different URI means a different root, a different header, and an invalid hash.
Addresses
| Address | |
|---|---|
| DBC config | 46HPQEnTX35is3hHTpaperc3hcGHGFSfWn3FjF1fUQmJ |
| wECX mint | 6ombVv3YMs9qpx1QkycD9XW8HKSfv7vGrCFX3cxCYMVY |
| eCash | ecash.com |
| Meteora DBC program | dbcij3LWUppWqq96dh6gJWwBifmcGfLSB5D4DuSMaqN |
| Memo program | MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr |