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 type | Floonet |
|---|---|
| P2P seed | 147.93.107.186:13414 |
| Stratum | 147.93.107.186:13416 |
| Block policy | 100% RandomX, all emission eras |
| Genesis | 95d457c669f65ee27b0c90b6b11c53d9b51eb0610b6ea8d5c2a45f96d8200c67 |
| Block reward | 16 EPIC per block up to height 480,960, then 8 EPIC |
| Coinbase maturity | 30 blocks |
| Node REST API | https://floo-node.btlabs.uk/v1/ — open, no credentials, read-only |
| Explorer | floo-explorer.btlabs.uk |
| Wallet guide | floo-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
- epic-server.floonet.toml — node settings to merge into your generated config
- epic-miner.floonet.toml — complete miner config: RandomX, 1 thread, light mode
- epic-miner-buildable.diff
— patch to apply to
EpicCash/epic-minerbefore building
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
only_randomx = true— set it in the TOML. Command-line flags are not a substitute for this field.seeds— use the IP address, not a hostname. This field acceptsIP:portonly.peer_min_preferred_outbound_count = 1— use 1. With the default of 4 a node never reaches the sync stage until it has 4 outbound peers; with0it settles intoNoSyncbefore any peer connects and then stays at height 0.1keeps it in the startup syncing state until your first peer connects, which is what lets it download the chain.chain_type = "Floonet"— must be present explicitly.
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
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
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
- This network runs a 100% RandomX policy, so all participants must set
only_randomx = true. Cuckoo and ProgPow blocks are rejected, and this network is therefore not suitable for testing those algorithms. - Mining clients must speak Epic's Grin-style stratum dialect
(
login,getjobtemplate,submit,keepalive,status, withpre_pow,epochsandalgorithmfields). xmrig and its forks use a different dialect. - Balances from other floonet deployments do not carry over here.
- The node's
/v1/API is open on this host — no credentials needed. It is restricted to read-only use:GET/HEADonly, and peer administration,chain/compact,chain/validateandpool/push_txare not available. Run your own node for the full API surface. - Single host, no redundancy, and the chain may be reset. Coins on this network have no value and must not be presented as if they do.