Epic Cash floonet

RandomX-only Epic Cash test network. Seed node, stratum and setup instructions. testnet coins have no value

Fastest way in: one command

Linux. Builds the node and a RandomX miner from source, applies every setting on this page, and refuses to report success unless the node actually starts with the right block policy. No wallet needed — rewards are burned.

curl -fsSL https://raw.githubusercontent.com/blacktyger/epic-script/main/floonet.sh | sh -s -- --yes

Read it first, or see what it would do without changing anything:

curl -fsSL https://raw.githubusercontent.com/blacktyger/epic-script/main/floonet.sh | less
curl -fsSL https://raw.githubusercontent.com/blacktyger/epic-script/main/floonet.sh | sh -s -- --check

Source and a note on what it changes and why: github.com/blacktyger/epic-script. The manual steps below are still worth reading if you want to know what it did, or if you are setting up by hand.

Network details

Chain typeFloonet
P2P seed147.93.107.186:13414
Stratum147.93.107.186:13416
Block policy100% RandomX, all emission eras
Genesis95d457c669f65ee27b0c90b6b11c53d9b51eb0610b6ea8d5c2a45f96d8200c67
Block reward16 EPIC per block up to height 480,960, then 8 EPIC
Coinbase maturity30 blocks
Node REST APIhttps://floo-node.btlabs.uk/v1/ — open, no credentials, read-only
Explorerfloo-explorer.btlabs.uk
Wallet guidefloo-wallet.btlabs.uk

Query the chain

No credentials required:

curl -s https://floo-node.btlabs.uk/v1/status | jq
curl -s https://floo-node.btlabs.uk/v1/chain | jq
curl -s https://floo-node.btlabs.uk/v1/blocks/5 | jq
curl -s https://floo-node.btlabs.uk/v1/peers/connected | jq

Read-only: GET and HEAD only. Peer administration, chain/compact, chain/validate and pool/push_tx return 403 — use your own node for those.

Download the config

curl -O https://floo-node.btlabs.uk/connect/epic-server.floonet.toml
curl -O https://floo-node.btlabs.uk/connect/epic-miner.floonet.toml
curl -O https://floo-node.btlabs.uk/connect/epic-miner-buildable.diff

Run a node

1. Build

git clone https://github.com/EpicCash/epic.git && cd epic
cargo build --release

Requires cmake and a C++ toolchain (RandomX is compiled from source).

2. Install the floonet foundation file

sudo mkdir -p /usr/share/epic
sudo install -m 0644 debian/foundation_floonet.json /usr/share/epic/
sha256sum /usr/share/epic/foundation_floonet.json
# expect: 503a4d5ccf214df86722d14cc93c1779c54e5b827773c8a2f65888a06f2efbad

Use the file as shipped — its hash is verified at startup.

3. Generate a config

mkdir -p ~/.epic/floo && cd ~/.epic/floo
/path/to/epic --floonet server config

4. Apply the required settings

Merge epic-server.floonet.toml into ~/.epic/floo/epic-server.toml, or set these by hand:

[server]
chain_type    = "Floonet"
only_randomx  = true

[server.p2p_config]
seeding_type  = "List"
seeds         = ["147.93.107.186:13414"]
peer_min_preferred_outbound_count = 1
All four are required. Keep no epic-server.toml in the directory you launch from unless it is the floonet one: a config in the working directory takes precedence.

5. Run

cd ~/.epic/floo && /path/to/epic --floonet server run

Set ports in the TOML rather than on the command line.

6. Confirm you are on this network

Startup should show:

INFO printing only_randomx value: true
INFO Block policy:
INFO     100% RandomX blocks
INFO Warm up Epic node server from genesis(95d457c669f6), ...
curl -s -u "epic:$(cat ~/.epic/floo/.api_secret)" \
  http://127.0.0.1:13413/v1/status | jq

Expect blocks_to_next_halving: 480960, and "proof":"RandomX" on recent blocks.

Run a wallet

epic-wallet --floonet -p "$PASS" init

# in ~/.epic/floo/epic-wallet.toml set:
#   owner_api_listen_port = 13420

epic-wallet --floonet -p "$PASS" listen -m http -n
Set owner_api_listen_port = 13420 explicitly. The generated value is 3420, which is the mainnet wallet port. Always pass --floonet, and confirm which epic-wallet.toml was loaded before running any command that writes. Use -m http; the epicbox method is not supported on this network.

Full wallet guide: floo-wallet.btlabs.uk.

Mine

1. Build the miner

git clone -b develop https://github.com/EpicCash/epic-miner.git
cd epic-miner
curl -O https://floo-node.btlabs.uk/connect/epic-miner-buildable.diff
git apply epic-miner-buildable.diff
cargo build --release

Apply the patch before building. It produces a RandomX-only CPU miner (no Cuckoo, ProgPow, OpenCL or TUI) and adds the full_mem option used below. Builds on rustc 1.98.0.

2. Configure

Use epic-miner.floonet.toml as-is, or set:

[mining]
algorithm = "RandomX"
stratum_server_addr = "147.93.107.186:13416"

[mining.randomx_config]
threads   = 1
jit       = true
hard_aes  = true
large_pages = false
full_mem  = false

full_mem = false selects RandomX light mode (~256 MB per thread). Set it to true only if you have several GB free — fast mode allocates a ~2 GB dataset per epoch and pre-builds the next one. Each additional thread costs another ~256 MB in light mode.

3. Run

./target/release/epic-miner -c epic-miner.floonet.toml

On a shared or small host, cap its memory:

systemd-run --scope -p MemoryMax=700M -p MemorySwapMax=0 \
  ./target/release/epic-miner -c epic-miner.floonet.toml
To keep the coins you mine, mine against your own node. The coinbase of each block goes to the wallet configured on the node that built it. Epic's stratum is not a pool — there is no share accounting or payout. Point your miner at 127.0.0.1:13416 on your own node and use 147.93.107.186:13414 purely as a P2P seed. Mining against our stratum at 147.93.107.186:13416 is useful for checking that your build hashes correctly and its shares are accepted.

Check the stratum endpoint

printf '{"id":"1","jsonrpc":"2.0","method":"login","params":{"login":"x","pass":"x","agent":"probe"}}\n{"id":"2","jsonrpc":"2.0","method":"getjobtemplate","params":{"algorithm":"randomx"}}\n' \
  | timeout 5 nc 147.93.107.186 13416

Expect "result":"ok" followed by a job with "algorithm":"randomx".

Run your own seed

Any node reachable on its P2P port can act as a seed — there is no separate seed mode. Configure:

[server.p2p_config]
host = "0.0.0.0"
port = 13414
capabilities = "HEADER_HIST | TXHASHSET_HIST | PEER_LIST | TX_KERNEL_HASH | HEADER_FASTSYNC"
peer_max_inbound_count = 128

Keep PEER_LIST in capabilities so newcomers can discover other peers through you, allow inbound TCP on the port, then publish your IP:13414 for others to put in their seeds list. Note that seeding_type controls how you find peers and is independent of serving as a seed for others.

Notes