Backbone

Pre-release · eCash betanet

Run eCash. Reach every sidechain.

Backbone is a full eCash node and desktop wallet with drivechains (BIP300/301) built into the node. Around it sits a suite of sidechain apps, from our own fast chains to drop-in clients for the sidechains already on betanet. Each one works with Backbone, or with a stock eCash node and the bip300301_enforcer.

Everything on this site runs on eCash betanet, a test network. Pre-release software, unsigned binaries: don't keep value there.

01

eCash mainchain ECX · SHA-256 proof of work

Bitcoin's history, its own coin, and sidechain slots that miners open, fund and pay out under BIP300 and BIP301.

02

Backbone backbone-app · backboned

  • Full node
  • Wallet
  • BIP300/301 in the node
  • Enforcer gRPC

Checks the drivechain rules itself, makes deposits, carries your withdrawal votes, and serves sidechains.

03

Sidechains each with its own app

Slots on eCash betanet. Flush runs on slot 99 for now.

In the apps

Real captures, on betanet or on local test chains, as each caption says.

The Backbone app on eCash betanet: balance, network, ten active sidechains and mining at a glance, beside each sidechain's merged-mining record over the last 24 blocks
Backbone Home, ten active sidechains and their merged mining. eCash betanet.
The Flush app's Swap page on eCash betanet: ECX for BROSEVELT, with the pool's curve beside it
Flush Swapping against a pool. eCash betanet, slot 99.
The Thunder app's Home on regtest: balance, network, the drivechain card with deposit and withdraw, throughput and the latest activity
Thunder Home, with deposits, withdrawals and throughput. Regtest.
The BitNames app's Get a name page on regtest: type a name, reserve it, then register it with an IPv4 record and a paymail fee
BitNames Reserve a name, then register it. Regtest.
The BitAssets app's Trade page on regtest: a swap of one test asset for another, with the pool's price, holdings, price impact and fee
BitAssets A swap on the chain's AMM. Regtest, test assets.
The zSide app's Private page on regtest: shield transparent coins into the pool, or unshield them to a new transparent address
zSide Shield and unshield. Regtest.
The Flush app's Staking page on regtest: the slot leader, stake, the fee split between validators and BMM, and coins by finality: final, BMM-confirmed, soft
Flush Staking and finality, from the FastBlocks template. Regtest, test data.

Backbone · v0.1.0-betanet · Bitcoin Core v32

A full node that speaks drivechain.

Backbone is built on Bitcoin Core v32 with eCash's rules. It checks drivechain messages in the node, the same way the bip300301_enforcer does, so there is no second process to run. backbone-app puts the node and wallet in one window; backboned and backbone-cli are there for servers and scripts.

Download Linux, Windows Source on GitHub

Unsigned pre-release. Check SHA256SUMS before running it.

Deposits into any sidechain
Paste a sidechain's deposit address (s<slot>_<address>_<check>) and Backbone checks it before anything is sent. The same call is createsidechaindeposit on the command line.
Withdrawal votes you can read
Each block votes once per slot. By default Backbone upvotes the bundle your own sidechain node vouches for. getvotepolicy and the Sidechains page show what every slot gets, and why.
Blind merged mining
Follow each sidechain's BMM record block by block, check commitments with verifybmm, and solo-mine from the app's Mine page.
The enforcer's gRPC, built in
backboned serves the enforcer's cusf.mainchain.v1 API on 127.0.0.1:50051. Sidechains written for an eCash node and the enforcer connect to it unchanged.
Pruning that keeps sidechain history
A pruned node keeps at least 10 GB of recent blocks, and answers sidechain events and BMM checks from its own index, so sidechains can still follow it.
Replay protection on by default
New transactions carry eCash's replay-protection locktime. Keys from a Bitcoin wallet are eCash keys too.
Simple or Advanced
Two views of the same wallet, a block explorer, peers, a console and a choice of themes, in a native window on Linux and Windows.
Fast start
Bitcoin Core's assumeutxo snapshots from below the fork work as they are, so a new node can start near the tip and check the history in the background.
backbone-cli, on betanet
# What each sidechain and proposal gets from your blocks, and why
backbone-cli -chain=ecashbeta getvotepolicy

# Your own call for one slot, or a new default for all of them
backbone-cli -chain=ecashbeta setwithdrawalvote 9 abstain
backbone-cli -chain=ecashbeta setdefaultwithdrawalvote handed

If you mine: when no sidechain node has spoken for a slot, the default follows the leading bundle without checking it. Run the sidechain nodes for the slots you mine, or change the default.

The sidechains

Seven chains, one way in.

Every sidechain here holds ECX that came in by a deposit on eCash, and sends it back by a withdrawal that eCash miners vote through. Each has its own app. Two families: fast chains on our own template, and drop-in clients for the LayerTwo family, written in C++ on backbone-core and consensus-compatible with the upstream clients.

With Backbonebackboned -chain=ecashbeta -grpcSidechains find it on 127.0.0.1:50051.
With an eCash nodebip300301_enforcer --network-preset=betanetPoint the sidechain's mainchain gRPC option at the enforcer.
The Flush app's Pools page on eCash betanet: the live pools of STZORC, SRSCAT, BROSEVELT and CORN against ECXeCash betanet · slot 99

Slot 99Fast chain

Flush

Tokens, assets and a DEX on a fast chain

  • Pre-release download
  • Temporary slot 99 · slot 46 later
  • Anyone can create tokens and assets: shares, points, tickets, stablecoins.
  • A DEX with pools, routes through several pools, order books, batch clearing, price feeds and oracles.
  • Dutch auctions, and launches on a bonding curve with your own supply and decimals.
  • A block every 15 seconds, from validators who stake pegged ECX, with merged-mined blocks as the fallback.
  • Opens the flush: links of flush.markets and confirms each one in its own dialog.

Slot 99 is a temporary test chain that will be dropped when Flush moves to its own slot. Don't keep value there.

The Thunder app's Home on regtest: balance, network, the drivechain card with deposit and withdraw, throughput and the latest activityRegtest

Slot 9Drop-in

Thunder

Payments at volume, on large blocks

  • Runs on betanet
  • App in testing
  • Batch pay: typed, pasted or read from a CSV file, each line checked, one confirmation for all.
  • A throughput page: transactions per block, how full each one is, fees, the mempool.

Consensus-compatible with thunder-rust 0.18.2

The BitNames app's Get a name page on regtest: type a name, reserve it, then register it with an IPv4 record and a paymail feeRegtest

Slot 2Drop-in

BitNames

Names you own like coins

  • Runs on betanet
  • App in testing
  • Reserve a name first: only a commitment goes on the chain, so nobody can take it before you register it.
  • Records (an IPv4 address and port, a paymail fee), My names, and a directory of every name.

Consensus-compatible with plain-bitnames 0.18

The BitAssets app's Trade page on regtest: a swap of one test asset for another, with the pool's price, holdings, price impact and feeRegtest · test assets

Slot 4Drop-in

BitAssets

User-created assets, pools and auctions

  • Runs on betanet
  • App in testing
  • Issue an asset: its whole supply and its control coin go to your wallet.
  • Swap, pools and liquidity on the chain's own AMM; Dutch auctions to sell, bid and collect.

Consensus-compatible with plain-bitassets 0.17

Source coming soon

The zSide app's Private page on regtest: shield transparent coins into the pool, or unshield them to a new transparent addressRegtest

Slot 98Drop-in

zSide

Private payments with Zcash's Orchard

  • Runs on betanet
  • App in testing
  • A transparent and a shielded balance side by side; shield, unshield, and send privately with a memo.
  • The Orchard cryptography is the reference orchard and halo2 crates, at the versions upstream uses.

Consensus-compatible with thunder-orchard

Source coming soon

Slot 13Drop-in

Hivemind

Prediction markets (Truthcoin)

  • Runs on betanet
  • App in development
  • Markets priced by a market maker (LMSR); create your own on a decision.
  • Votecoin holders decide the outcomes; positions pay out on them. The consensus arithmetic is upstream's own code, compiled unmodified.

Consensus-compatible with truthcoin-dc 0.20

Source coming soon

Slot 255Drop-in

Coinshift

Swaps against other chains

  • Runs on betanet
  • App in development
  • Swaps between the sidechain's coins and payments on another chain: an open swap is reserved, then claimed only once the payment has its confirmations.
  • The wallet never spends the escrow of a swap that has not expired.

Consensus-compatible with coinshift-rs 0.14

Source coming soon

Every drop-in node replays all public betanet blocks of its slot with every check, and keeps the upstream client's peer-to-peer protocol and RPC, so it runs where the original ran. None of the drop-in apps has a binary release yet.

Templates

Build your own sidechain.

Two templates to start a new sidechain from: fork one and add your features. Both work with Backbone and with an eCash node and the bip300301_enforcer. They are not sidechains running on eCash: they are the base for new ones.

A BMM sidechain app (Thunder) on regtest: its Drivechains page, a deposit from any eCash wallet or through the mainchain interfaceA BMM sidechain app (Thunder) · regtest

Template100% BMM

Sidechain template

The basic template: blind merged mined, like most sidechains

  • Every block is blind merged mined by eCash miners (BIP301).
  • Deposits from eCash and withdrawals back to it (BIP300), with nothing else in it.
  • Its own app: wallet, peg, merged mining, explorer and settings pages; a sidechain adds its own.
The FastBlocks app's Staking page on regtest: the slot leader, your stake, the fee split between validators and BMM, rewards, and coins by finalityFastBlocks app · regtest

TemplateBMM + PoS hybrid

FastBlocks

The template for fast hybrid chains, as used by Flush

  • Blocks of stake every 15 seconds, signed by validators who stake pegged ECX.
  • Anchored to eCash by blind merged mining: soft in a block of stake, BMM-confirmed once an eCash block commits to it, final three anchors later.
  • If eCash stalls, blocks of stake go on for up to 8 hours; double signing is slashed.

Coming soon

Unified wallet. One software to manage your sidechain activity.

Today each sidechain has its own app next to Backbone. The unified wallet brings them into one window: Backbone underneath, and every sidechain you turn on beside it. We are porting it to Backbone now. No date yet; it ships when it is ready.

  • One install. Turn a sidechain on and the wallet starts its node for you, and stops it when you turn it off.
  • One backup phrase. Each sidechain's wallet is derived from yours with BIP-85, so one phrase restores all of them.
  • Every balance on one home. ECX on eCash and on each sidechain, with the withdrawals still on their way back.
  • Move coins. Deposit into a sidechain and withdraw from it without leaving the window.
  • Each chain's own pages. The same pages as its app, in a sandboxed frame with only the calls that chain needs.
An illustration, not a screenshot. The design is still changing.

Get started

On betanet in four steps.

  1. Download Backbone

    Linux x86-64 or Windows 10/11, 64-bit. The binaries are not signed yet: check the checksums.

    sha256sum -c SHA256SUMS --ignore-missing

    Linux needs GTK 3 and WebKitGTK 4.1 for the app: sudo apt install libgtk-3-0 libwebkit2gtk-4.1-0 libnghttp2-14 libsqlite3-0. Windows uses the WebView2 runtime it already has.

  2. Start it on betanet

    The app asks for the network the first time: choose Betanet. Or run the node on its own, with the gRPC interface on for sidechains:

    backboned -chain=ecashbeta -grpc
  3. Add a sidechain

    Flush has a pre-release today. Download it, then start it next to Backbone:

    flush-app -chain=ecashbeta -sidechainslot=99 \
      -mainchaingrpc=127.0.0.1:50051 -addnode=nodes.blockfab.org:38995

    Thunder and BitNames build from source (Thunder, BitNames). BitAssets, zSide, Hivemind and Coinshift: source coming soon.

  4. Make a deposit

    Copy the s99_… address from Flush's Receive page, then use Backbone's deposit dialog, or:

    backbone-cli -chain=ecashbeta createsidechaindeposit 99 "s99_bflx1…" 0.1

    Try a small amount first. Withdrawals are voted through by betanet miners, so they take a while.

Betanet only, for now. eCash betanet is a test network. Backbone and the sidechains are pre-release, and their settings for eCash's main network are still provisional. Follow the chain on explorer.blockfab.org.