DogecoinArcade
@ Create a new account

Adding a chain: the checklist

docs/adding-a-chain.md

Jump to: 1. Read the coin's own source, at the release tag the arcade will run · 2. Write its `Params` · 3. Check its address bytes against every other chain · 4. The places that still name a chain · 5. Prove it

For whoever adds the next coin, person or agent. Most of a chain is data, its Params in arcade/config.py: the launcher flags, core: / share:, mesh Core peering, borrowing, discovery, fees, dust and the ord index all follow from them. This page lists what still needs a hand, learned from adding Bellscoin and Luckycoin (2026-10-22). Use Dogecoin (doge), Bellscoin (bel) and Luckycoin (lky) as the worked examples.

1. Read the coin's own source, at the release tag the arcade will run

From its chainparams.cpp and chainparamsbase.cpp:

Then check every value against a node of that chain:

2. Write its `Params`

Copy the nearest relative: DOGECOIN for a Dogecoin-code chain, LITECOIN for a Bitcoin-Core-based one. Set:

Add it to NETWORKS and CHAIN_NAMES. Set the floor at the tip rounded up about two days (D-004). The other arcade must take the same floor. Mainnets keep swaps, takes and the rest at None.

3. Check its address bytes against every other chain

config.unpayable_versions finds a P2SH byte that is another chain's P2PKH byte. Bellscoin's 30 is Dogecoin's "D", and txbuild reads a version byte the same on every chain. Such a chain:

The inscription guard watches a script byte only where no other chain uses it. Look for the quieter clashes too: Luckycoin's P2SH 5 is Litecoin's legacy "3".

4. The places that still name a chain

5. Prove it

← all docs