Run the network yourself
BitLooper has no company servers to trust. It is run by independent node operators. Anyone can run a full node and check every rule. Anyone with stake can become a validator.
Join the public testnet
Network bitlooper-testnet-2, genesis hash cd7e0af1b0ea1796524314817bf55f3d0f841d628d13b7429bdc7fbb7da7fee0, first peer node.bitlooper.org:26656. These steps work in a terminal on a Mac with Apple silicon or on a Linux x86-64 computer or server.
Download the node program and check it
# Mac (Apple silicon): F=bitlooper-node-macos-arm64 # Linux (x86-64): F=bitlooper-node-linux-x86_64 F=bitlooper-node-macos-arm64 curl -LO https://bitlooper.org/downloads/$F curl -LO https://bitlooper.org/downloads/SHA256SUMS shasum -a 256 -c SHA256SUMS --ignore-missing # must say: OK chmod +x $F && sudo mv $F /usr/local/bin/bitlooperDownload the genesis file and check it
curl -LO https://bitlooper.org/testnet/genesis.json bitlooper genesis-hash --genesis genesis.json # must print cd7e0af1b0ea1796...If the hash is different, stop: you are not on the real BitLooper testnet.
Create your node and start it
bitlooper init-node --dir ~/bitlooper-node --genesis genesis.json --peer node.bitlooper.org:26656 bitlooper run --config ~/bitlooper-node/node.jsonIt downloads and checks every block from the start. When its height matches the explorer, you hold a complete, verified copy of the chain. You don't need a key or any coins for this.
Keep it running
On a Linux server, run it as a service so it restarts by itself:
sudo tee /etc/systemd/system/bitlooper.service >/dev/null <<UNIT [Unit] Description=BitLooper node After=network-online.target [Service] User=$USER ExecStart=/usr/local/bin/bitlooper run --config $HOME/bitlooper-node/node.json Restart=always [Install] WantedBy=multi-user.target UNIT sudo systemctl enable --now bitlooperOn a Mac, keep the terminal window open, or use the desktop app, which starts its node at login.
Optional, on an always-on server: become a validator
A validator needs at least 1,000 BLPR bonded. Faucet coins are for trying the wallet, not for staking. Testnet validators receive an equal allotment from the project instead (see how genesis validators are chosen).
# 1. Set up the node with a validator key (instead of the plain init-node above) bitlooper init-node --dir ~/bitlooper-node --genesis genesis.json --peer node.bitlooper.org:26656 --validator bitlooper address --key ~/bitlooper-node/validator.key.json # send this address to the project # 2. When the allotment (1,100 BLPR) has arrived and your node has synced: bitlooper bond --key ~/bitlooper-node/validator.key.json --amount 1000You join the active set at the next epoch (every hour on this testnet). Open port 26656 in the firewall so other nodes can reach you. Back up
validator.key.jsonoffline, never run it on two machines, and protect the account withbitlooper protect(vault, cancel key and guardians; see the guides).
Three ways to take part
| Role | What it does | Needs | Earns |
|---|---|---|---|
| Full node | Downloads and checks every block against every rule. Serves wallets and explorers. Keeps 2 days of blocks plus current state. | Any modern computer, ~100 GB SSD, 8+ Mbit/s | Nothing, except not having to trust anyone |
| Validator | Votes on blocks and takes turns proposing them. Keeps 22 days of blocks and signatures as evidence. | A 24/7 server: 4 vCPU, 8-16 GB RAM, 2 TB SSD, 25 Mbit/s, bonded stake above the minimum | A share of new issuance for each block it signs, plus tips |
| Archive | Keeps the complete history for audits and new archives. | Large disks (growth depends on usage) | Funded by the foundation and services |
Storage figures are ceilings under sustained full load, from the paper's section 6. Real early usage is far lower.
Becoming a validator: the process
Run a full node and let it sync
Start from genesis, or from a trusted checkpoint you get from several independent sources.
bitlooper run --config node.jsonCreate a validator key
Use ML-DSA-65 for validators. Keep it on this one machine only.
bitlooper keygen --alg ml-dsa-65 --out validator.key.jsonBond stake
Bond at least the minimum stake from that key's account. It joins the active set at the next epoch (daily on mainnet), ranked by stake. The top 100 are active.
bitlooper bond --key validator.key.json --amount 1000Add the key to your node and restart
Set
"validator_key": "validator.key.json"innode.json. Your uptime record starts: every block you sign is counted publicly on the Explorer.Stay online and honest
An offline validator earns nothing for the blocks it misses. A validator that signs two conflicting votes loses at least 5% of its stake, and a coordinated attack by one-third or more loses 100%.
Why no single party can corrupt it
"Can't be corrupted" is only true under stated conditions. Here are the conditions, honestly.
Every rule is checked by everyone
Full nodes re-verify every signature, balance and the 100M supply cap. However many validators sign an invalid block, honest nodes reject it. Validators cannot print coins or spend yours.
No admin keys, no off switch
No person, company or foundation can freeze accounts, pause the chain or change the supply. That power does not exist in the code.
Attacks cost the attackers
Rewriting a final block needs validators with one-third of the stake to sign conflicting votes. That is provable, and it costs them their entire stake.
Changes need everyone's consent
Rule changes ship as software with at least 6 months' notice. Operators choose what to run, and anyone who disagrees keeps the old rules. There is no coin-holder vote to capture.
What you still rely on
That less than one-third of bonded stake is malicious. That NIST's post-quantum algorithms are as strong as believed. That a new node's starting checkpoint is genuine. And that the software is correct, which is what audits, a second independent client and bug bounties are for. One owner can run many validator keys, so we publish stake concentration rather than claim a number of independent operators.
Start the first validator of a new network
One command creates the keys, the genesis file and the configuration. A second starts the node.
Create the network
bitlooper init-validator --dir ~/bitlooper-node --chain-id bitlooper-testnet-2 --stake 100000This creates
validator.key.json(your ML-DSA-65 validator key: back it up and never copy it to a second running machine), a faucet key,genesis.jsonandnode.json.Start it
bitlooper run --config ~/bitlooper-node/node.jsonBlocks start within 30 seconds. Check with
bitlooper statusandbitlooper validators.Keep it running 24/7
On a Linux server use the systemd service, on a Mac the launchd agent; both restart the node automatically. They're in
deploy/.sudo systemctl enable --now bitlooper # Linux server launchctl load ~/Library/LaunchAgents/com.bitlooper.node.plist # MacLet others join
Publish
genesis.jsonand your address (<public-ip>:26656, open that port in your firewall). Others run:bitlooper init-node --genesis genesis.json --peer <your-ip>:26656 --validator bitlooper run --config bitlooper-node/node.json bitlooper bond --key bitlooper-node/validator.key.json --amount 1000 # after getting coinsVerify every coin
bitlooper auditChecks that reserve, balances, stake, locked and pending coins add up to exactly 100,000,000.
What if nobody else is using it yet?
The chain still runs, and it still pays its validators.
Blocks keep coming
With no transactions, a heartbeat block is produced every 30 seconds. New coins are issued by elapsed time (3% of the reserve per year), not by traffic, so validators earn whether or not anyone is paying.
Measured: one validator, zero users
A solo validator earned 8.52 coins in its first 90 seconds of rewards, about 8,100 coins a day (≈ 2.97 million a year) on a testnet with a 98.9M reserve. The supply audit still balanced to exactly 100,000,000.
docs/GENESIS.md in the source). On mainnet, rewards are shared by all validators in proportion to stake, so early validators earn more because fewer people share. A single-validator mainnet would be centralised and worthless to others, so the mainnet genesis tool requires at least four genesis validators.From testnet to mainnet
Publish the airdrop rules first
bitlooper airdrop-rules --out airdrop-rules.jsonMinimum signed blocks, points, the 100,000-coin cap and contributors. Publish the file and its hash before measuring starts.
Run the public testnet
At least six months. Validators build their uptime record, and developers and users build the network.
Compute the airdrop from the public record
bitlooper airdrop --rules airdrop-rules.json --operators operators.json --height <SNAPSHOT_HEIGHT> --out airdrop.jsonDeterministic: anyone with the same rules, the same approved-operators list and the testnet snapshot at that height (served by
/validators/at/HEIGHT) gets the same list. Amounts above the caps return to the reserve.Build and publish the mainnet genesis
bitlooper genesis-mainnet --airdrop airdrop.json --rules rules.json --operators operators.json --foundation <FOUNDATION_ADDR> --foundation-validator-key foundation-validator.pub.json --out genesis-mainnet.json15% airdrop, unlocking 1/12 at genesis and 1/12 per month; approved operators (one slot each, at most 50 genesis validators) stake only their unlocked twelfth. The foundation runs exactly one validator with a published key and at most 10% of the genesis stake; the rest of its 5% vests over 48 months. Everything else stays in the reserve. Publish the file and its hash before the genesis time.
Launch together
Genesis validators start their nodes with their testnet keys before the genesis time. The first block appears when more than two-thirds of the stake is online.
Your setup
Rented server: the validator
24/7 power and network, public IP, systemd service. Holds validator.key.json. About $20-40/month.
Home PC: full node
Watches and serves the chain, runs the website and API. No validator key. A GPU is not needed (no mining). A 2×RTX 3090 workstation idles at roughly 150-250 W, about $16-55/month. A 15-25 W mini-PC does the same job.