Repository navigation
Releases
VibeChain Testnet 20574 — v0.9.1718-rc
Join the VibeChain Testnet: v0.9.1718-rc
This is the VibeChain public testnet (chain ID 20574). It is a fresh chain started from genesis on 2026-10-24, and it is running a 14-day soak of this release candidate. The fleet runs exactly these binaries.
Updated 2026-10-27: binaries rebuilt as build
0.9.1724(commit959ca1eb). Fixes a bug in0.9.1723: on a node that isn't mining, the first/api/pool/windowcall (the web UI's Mining page uses it) could freeze the node for several minutes. It now only reads the share window. If you run0.9.1723, please update. Also in this release: the explorer's charts (block times, difficulty, hashrate, request rate) show values on hover, touch or arrow keys, andGET /api/block/hash/{hash}finds old blocks too (it returned 404 for anything about 1,500 blocks deep). Earlier fixes: snapshot fast-sync no longer gets stuck a few blocks behind (Windowed reorg rejected: no usable base_state), web-UI security fixes (keep the UI on127.0.0.1),--versionprints the build, andwallet createreads its password fromVIBECHAIN_WALLET_PASSWORDor a pipe (step 5). If./vibechain-node --versionshows a build older than0.9.1724, download again and restart; your wallet and keys are kept. The consensus rules are unchanged, so older0.9.17xxnodes stay compatible with the network.Version note: we tag
0.9.xuntil mainnet is live and proven. This is a release candidate, so expect the testnet to be reset from time to time.Replaces
v0.9.1527-rc1. That release was for chain 20571, which no longer exists. Its binaries are rejected by today's network.
| Milestone | When |
|---|---|
| Genesis (PoW, ~10 s blocks) | 2026-10-24 ~14:00Z |
| PoW → PoS transition at block 26,000 (~5 s blocks, finality) | ~2026-10-27 14:00Z |
| End of the 14-day soak | ~2026-11-07 |
1. Requirements
- One of the prebuilt binaries (all CPU-only, no GPU or OpenCL needed):
- Linux x86_64: a static binary that runs on any modern distro, no glibc requirement.
- Linux ARMv7 (32-bit): for example a Raspberry Pi. It is static too.
- Windows 10/11 x86_64
- macOS: a universal binary for Apple Silicon and Intel.
- An accurate clock (NTP). This is not optional; see step 4.
- TCP port 9001 reachable from the internet if you want inbound peers and want to help the network. Outbound-only works for syncing, but you get fewer peers.
- About 2 GB of RAM and a few GB of disk.
2. Download & verify
Download the binary for your OS, plus env.testnet and SHA256SUMS.
Linux / Raspberry Pi
sha256sum -c SHA256SUMS --ignore-missing
chmod +x vibechain-node-linux-x86_64 # or vibechain-node-linux-armv7
mv vibechain-node-linux-x86_64 vibechain-nodemacOS
shasum -a 256 -c SHA256SUMS --ignore-missing
chmod +x vibechain-node-macos-universal && mv vibechain-node-macos-universal vibechain-node
xattr -d com.apple.quarantine vibechain-node # not notarized: clears the "unidentified developer" blockWindows (PowerShell). Check that the hash matches the line in SHA256SUMS. The exe isn't code-signed, so SmartScreen may warn: click More info → Run anyway.
Get-FileHash vibechain-node-windows-x86_64.exe -Algorithm SHA2563. Configure
Use the provided env.testnet exactly as it is. Every consensus parameter in it is part of the network's fingerprint. If you change one (epoch length, pool flags, genesis allocations, penalty values, and so on), live peers reject your handshake and you won't sync.
The only lines you should touch:
VIBECHAIN_NODE_NAME: cosmetic.VIBECHAIN_BOOTSTRAP_NODES: you may add peers. The defaults are the public seeds.VIBECHAIN_WEB_HOST:127.0.0.1by default. Set0.0.0.0only if you mean to expose the API.
⚠️ Do not pass--testnet. That flag selects a different built-in network (chain 20570). Always use--env-file env.testnet.
4. ⏰ Set your clock (NTP): the #1 cause of "stuck" nodes
Blocks whose timestamp is more than 15 seconds off your local time are rejected. A skewed clock therefore looks exactly like a node that won't sync.
sudo timedatectl set-ntp true && timedatectl # Linux: "System clock synchronized: yes"On macOS and Windows, make sure automatic time sync is on. VMs and cloud instances drift a lot, so turn on guest time sync there.
5. Run
Full node (syncs and serves the chain):
./vibechain-node --env-file env.testnet runA new node syncs block by block from genesis. The chain is young, so this takes minutes.
Pool miner (earns testnet VIBE during the PoW phase, until block 26,000):
./vibechain-node --env-file env.testnet wallet create --name miner # prompts for a password (min 8 chars); prints your address
VIBECHAIN_WALLET_PASSWORD='<that password>' \
./vibechain-node --env-file env.testnet run --mine --miner <YOUR_ADDRESS> --pool --mine-throttle 10For a scripted install (no terminal), give wallet create the password through the environment or a pipe instead of the prompt:
VIBECHAIN_WALLET_PASSWORD='<password>' ./vibechain-node --env-file env.testnet wallet create --name miner
# or: printf '%s\n' '<password>' | ./vibechain-node --env-file env.testnet wallet create --name miner./vibechain-node --version prints the build, for example vibechain-node 0.9.1724 (commit 959ca1eb, x86_64-unknown-linux-musl).
Mining is protocol-native. Every pool miner's shares are credited from the chain itself, with no pool operator. Credits settle about 2,000 blocks after they're earned, so expect a delay of a few hours before they show. --mine-throttle caps CPU use (1–100%).
Open the P2P port so peers can reach you. On Linux: sudo ufw allow 9001/tcp. On Windows, use .\vibechain-node-windows-x86_64.exe in place of ./vibechain-node, and allow inbound TCP 9001 in Windows Firewall. If you're behind NAT without UPnP, add --advertise-addr <your public IP>.
6. Confirm you're connected
The API listens on http://127.0.0.1:9002. The web UI is at the same address.
curl -s http://127.0.0.1:9002/api/build-info
# expect: "chain_id": 20574,
# "genesis_hash": "f2f7945740e8b7ed7ce075fc36e60a369b9738b57a4d40d284a3c5d3cd8024cc",
# "consensus_fingerprint_era": "v16", "node_version": "0.9.1724", "commit": "959ca1eb"
curl -s http://127.0.0.1:9002/api/status # chain_height climbing, peers_connected > 0
curl -s http://127.0.0.1:9002/api/readiness # database / initial_sync / sync_lag / peers / tip_ageYou're synced when chain_height matches the seeds and /ready returns 200.
7. Building on the testnet: agents, SDK & self-description
Every node describes itself, so an agent given any node URL can discover the rest:
curl -s http://127.0.0.1:9002/.well-known/vibechain.json # chain identity, seeds, API map, doc links
curl -s http://127.0.0.1:9002/llms.txt # plain-text discovery mapTwo assets get you building:
agent-guide.md: the full REST and JSON-RPC API, including every transaction type, hashing and signing.vibechain-sdk-python.tar.gz: the Python client SDK. Install it withpip install ./vibechain-sdk-python.tar.gz.
Testnet note: the SDK and guide examples default to the mainnet chain id (
20670). On this testnet, passchain_id=20574when you build transactions.
Both are client tooling only. They talk to the public API and contain no node or consensus source code.
8. Source availability
Prebuilt binaries are the supported distribution. The node and consensus source isn't public yet; it will open after mainnet has been live for a while.
9. (Optional) Become a validator
The chain switches to Proof-of-Stake at block 26,000. Validating needs at least 100 testnet VIBE of self-stake. You can mine it during the PoW phase, or ask the team for testnet VIBE. Registration is open now, before or after the transition. A registration made during PoW joins the starting validator set once it is 200 blocks (2 epochs) deep; after the switch, a new registration activates at the next epoch boundary:
TOKEN=$(curl -s http://127.0.0.1:9002/api/admin-token | python3 -c 'import sys,json;print(json.load(sys.stdin)["token"])')
curl -s -X POST http://127.0.0.1:9002/api/wallet/send \
-H "Authorization: Bearer $TOKEN" -H 'Content-Type: application/json' \
-d '{"from":"<YOUR_ADDRESS>","amount":"100","fee":"0.001",
"password":"<YOUR_WALLET_PASSWORD>","type":"validator_register",
"data":{"commission_rate":"0.05"}}'Validator-set changes take effect at the next epoch boundary (every 100 blocks). Watch /api/pos/validator/<addr> go from Pending to Active. Restart the node with --miner <YOUR_ADDRESS> and VIBECHAIN_WALLET_PASSWORD set, so it can sign blocks and votes.
Penalties on this network (same as the mainnet profile):
- Missing finality votes for 12 consecutive epochs (about 1.7 h) jails you, with a 0.1% slash and a 1-hour jail. You're restored automatically after voting for 12 consecutive epochs again.
- Double signing costs 5% and a 7-day jail.
- Bond a little above 100: a validator below the minimum stake is not auto-unjailed.
10. Troubleshooting
| Symptom | Likely cause |
|---|---|
| Height stuck at 0/1, "rejecting block" loops | Clock skew: fix NTP (step 4). |
| Handshake rejected / no peers ever | Config drift: use the shipped env.testnet unchanged, and don't pass --testnet. |
| Peers = 0 but node runs | Port 9001 not open inbound, or the seeds aren't reachable from your network. |
/api/build-info chain ≠ 20574 or genesis ≠ f2f7945… |
Wrong or edited config, or a stale data dir: wipe data-testnet/ and restart. |
| macOS "cannot be opened" | Run xattr -d com.apple.quarantine vibechain-node (step 2). |
Network: chain 20574 · genesis `f2...
VibeChain Testnet — v0.9.1527-rc1 (SUPERSEDED)
⚠️ Superseded — do not use. This release is for chain 20571, which no longer exists; its binaries are rejected by the current network. Use v0.9.1718-rc (testnet 20574) instead.
Join the VibeChain Testnet — v0.9.1527-rc1
The VibeChain public testnet (chain ID 20571). This release candidate's
node binary passed a clean soak on the live network. Follow the steps below to
run a node and sync with the network.
Version note: we tag
0.9.xuntil mainnet is live and proven. This is a
release candidate — expect the testnet to be reset from time to time.Updated in place (build
0.9.1529). This RC now ships a node that
describes itself to agents (/llms.txt,/.well-known/vibechain.json, and
doc pointers in/api/build-info— see §7), plus the Python client SDK and the
agent/API guide as downloadable assets. Thev0.9.1527-rc1tag and every
asset download link are unchanged, so earlier links still work. The node now
reportsnode_version: 0.9.1529.
1. Requirements
- Linux x86_64 (glibc ≥ 2.36 — Debian 12 "bookworm", Ubuntu 22.04+, or newer)
or Windows 10/11 x86_64 — these are the supported prebuilt binaries. Both
are CPU-only (no GPU/OpenCL dependency), so they run anywhere. - An accurate clock (NTP). This is not optional — read the warning in step 4.
- TCP port 9001 reachable from the internet if you want inbound peers and to
help the network. Outbound-only works for syncing but gives you fewer peers. - ~2 GB RAM and a few GB of disk for the testnet chain.
2. Download & verify
Download the binary for your OS — vibechain-node-linux-x86_64 or
vibechain-node-windows-x86_64.exe — plus env.testnet and SHA256SUMS.
Linux — verify and make it runnable:
sha256sum -c SHA256SUMS
chmod +x vibechain-node-linux-x86_64
mv vibechain-node-linux-x86_64 vibechain-nodeWindows (PowerShell) — verify the hash matches the line in SHA256SUMS:
Get-FileHash vibechain-node-windows-x86_64.exe -Algorithm SHA2563. Configure
Use the provided env.testnet as-is. Every consensus parameter in it is part
of the network's fingerprint — if you change one (epoch length, pool flags, genesis
allocations, …), the live peers will reject your handshake and you will not
sync. The only lines you should touch:
VIBECHAIN_SECRET_KEY— change this to your own secret (it seeds your node's
wallet; never reuse someone else's value).VIBECHAIN_NODE_NAME— cosmetic.VIBECHAIN_BOOTSTRAP_NODES— you may add peers; the defaults are the public seeds.VIBECHAIN_WEB_HOST—127.0.0.1by default; set0.0.0.0only to expose the API.
4. ⏰ Set your clock (NTP) — the #1 cause of "stuck" nodes
Blocks whose timestamp is more than 15 seconds off local time are rejected, so a
skewed clock looks exactly like a node that won't sync. Before running:
sudo timedatectl set-ntp true # then verify:
timedatectl # "System clock synchronized: yes"VMs and cloud instances drift aggressively — make sure guest time-sync is on.
5. Run
Full node (sync + serve the chain):
./vibechain-node --env-file env.testnet runMiner (earn testnet VIBE via the pool):
./vibechain-node --env-file env.testnet run --mine --miner <YOUR_ADDRESS> --poolOpen the P2P port so peers can reach you:
sudo ufw allow 9001/tcp # LinuxOn Windows, use .\vibechain-node-windows-x86_64.exe in place of
./vibechain-node, and allow inbound TCP 9001 in Windows Firewall.
6. Confirm you're connected
The API listens on http://127.0.0.1:9002.
# Are you on the right chain + build?
curl -s http://127.0.0.1:9002/api/build-info
# expect: "chain_id": 20571,
# "genesis_hash": "f2f7945740e8b7ed7ce075fc36e60a369b9738b57a4d40d284a3c5d3cd8024cc",
# "consensus_fingerprint_era": "v15", "node_version": "0.9.1529"
# Height climbing + peers > 0?
curl -s http://127.0.0.1:9002/api/status # chain_height, peers_connected
# Structured readiness (database / initial_sync / sync_lag / peers / tip_age)
curl -s http://127.0.0.1:9002/api/readinessYou're synced when chain_height matches the seeds and /ready returns 200.
A fresh node fast-syncs a snapshot first, then follows the tip.
7. Building on the testnet — agents, SDK & self-description
VibeChain is AI-native: hand an agent any node URL and it can discover
everything else — no out-of-band knowledge required. Every node describes
itself:
# Machine-readable network manifest: chain identity, seeds, api map, doc links
curl -s http://127.0.0.1:9002/.well-known/vibechain.json
# Plain-text discovery map (llmstxt.org convention) pointing at the guide + SDK
curl -s http://127.0.0.1:9002/llms.txt
# /api/build-info also carries a "docs" block with run_guide / api_guide / sdk_pythonTwo assets on this release get you building:
agent-guide.md— the full REST + JSON-RPC API and agent guide (every tx
type, hashing, signing).vibechain-sdk-python.tar.gz— the Python client SDK.
# Install the SDK
pip install ./vibechain-sdk-python.tar.gz
python -c "from vibechain import VibeChainClient; \
print(VibeChainClient('http://127.0.0.1:9002').get_manifest()['chain_id'])"Testnet note for the SDK/guide: examples default to the mainnet chain id
(20670). On this testnet, passchain_id=20571when constructing
transactions (the node's/api/build-infoand manifest report the live value).
These two assets are client tooling only — they talk to the public API and do
not include node/consensus source. Verify them:
vibechain-sdk-python.tar.gz sha256 3d10cfd63fa3fbde680a587842af401a231bf88b099ca48222695028210c376f
agent-guide.md sha256 0c686419ae4146a965e830d2c1a4fb129ed3b268234a504fa376c9ec20790896
8. Source availability
Prebuilt Linux x86_64 and Windows x86_64 binaries are the supported
distribution. The node/consensus source code is not public yet — it will be
opened later, after mainnet has been live for a while. The client SDK and API
guide above are published because they only consume the public API. If you need
another platform or arch in the meantime, reach out to the team.
9. (Optional) Become a validator
The testnet runs Proof-of-Work first and transitions to Proof-of-Stake at block
50,000 (~6 days). Validators register during the PoW phase (the registration
txs are counted on-chain), and become active at the transition. To validate you
need at least 100 testnet VIBE self-stake. Fund your address (mine, or ask in
the community), then register:
curl -s -X POST http://127.0.0.1:9002/api/wallet/send \
-H "Authorization: Bearer $(cat data-testnet/admin_token.txt)" \
-H 'Content-Type: application/json' \
-d '{"from":"<YOUR_ADDRESS>","amount":"100","fee":"0.001",
"password":"<YOUR_WALLET_PASSWORD>","type":"validator_register",
"data":{"commission_rate":"0.05"}}'Validator-set changes activate at the next epoch boundary (every 100 blocks). Query
/api/pos/validator/<addr> to watch your status go Pending → Active.
10. Troubleshooting
| Symptom | Likely cause |
|---|---|
| Height stuck at 0/1, "rejecting block" loops | Clock skew — fix NTP (step 4). |
| Handshake rejected / no peers ever | Config drift — use the shipped env.testnet unchanged. |
| Peers = 0 but node runs | Port 9001 not open inbound, or seeds unreachable from your network. |
/api/build-info genesis ≠ f2f7945… |
Wrong/edited config or stale data dir — wipe data-testnet/ and restart. |
Network: chain 20571 · genesis f2f7945740e8b7ed7ce075fc36e60a369b9738b57a4d40d284a3c5d3cd8024cc · fingerprint era v15 · node build 0.9.1529
Bootstrap seeds: 5.78.178.219:9001, 204.168.158.49:9001, 5.223.73.151:9001
v0.8.1-testnet — snapshot canonical-JSON sign/verify (HOT FIX)
🛠️ HOT FIX over v0.8.0-testnet. Drop-in upgrade — no additional wipe beyond the v0.8.0 wipe already required.
What's fixed
Snapshot signature verification was non-deterministic — pre-existing latent bug surfaced during v0.8.0 rollout when docker peers couldn't fast-sync from each other (every attempt: signature verify failed).
ChainSnapshot has HashMap fields (accounts, pool_thresholds, memory_blobs); Rust's HashMap uses a per-process random seed for iteration. Signer's bytes and verifier's bytes diverged whenever HashMap orderings happened not to align. Sometimes worked by luck; usually didn't.
Fix: snapshot signable_bytes() now uses canonical (sorted-key, compact) JSON. Both sign and verify produce identical bytes regardless of HashMap state. Bug was always there, masked by random luck on smaller chains.
This is NOT a Phase 1 / Phase 2 regression. The chain-replay subsystem fix and governance refactor are unchanged.
Upgrade procedure (drop-in from v0.8.0)
pkill -f vibechain-node
# Replace binary
./vibechain-node --env-file .env.testnet run --mine --miner <YOUR_ADDRESS>No data wipe. The v0.8.0 chain history applies cleanly.
From v0.7.x directly: do the v0.8.0 wipe procedure first, then drop in v0.8.1 binary.
Network
| Chain ID | 20571 |
| Genesis hash | 53c0307430801a1eb78bb48e8a6918639887f8a72a9b5b897b128230e75d3cf3 |
| Bootstrap seeds | 5.78.178.219:9001, 5.223.73.151:9001, 204.168.158.49:9001 |
Downloads
| Platform | Asset |
|---|---|
| Linux x86_64 (musl, fully static) | vibechain-node-v0.8.1-testnet-linux-x86_64-musl.tar.gz |
| Windows x86_64 | vibechain-node-v0.8.1-testnet-windows-x86_64.zip |
| macOS | published separately |
SHA-256
d924ae8632a60c71ce407931b0551b9f190e88c0a0ba7577c16fdfe49eef54e8 vibechain-node-v0.8.1-testnet-linux-x86_64-musl.tar.gz
fa7cdacc5aae177898bd1bf8188fedd6c9fa5cc386dc1c477e4ecfc52931cb71 vibechain-node-v0.8.1-testnet-windows-x86_64.zip
Build provenance
- Source repo: https://github.com/vibechainprotocol/vibechain-node
- Source tag:
v0.8.1-testnet(commitc0d667827137c1e4667f2488954301edd6008388) - Linux: built with
clux/muslrust:stableagainstx86_64-unknown-linux-musl(static-pie ELF) - Windows: built with MSVC 14.44 against
x86_64-pc-windows-msvc
v0.8.0-testnet — chain-replay subsystem fix + governance refactor (HARD FORK)
🛠️ HOT-FIX SUPERSEDED by v0.8.1-testnet. v0.8.0 has a snapshot signature determinism bug (HashMap iteration non-determinism) that makes peer fast-sync fail randomly. v0.8.1 is a drop-in upgrade — no additional wipe needed. All v0.8.0 operators should upgrade to v0.8.1 immediately.
🔴 HARD FORK — DATA WIPE REQUIRED. Proposal ID format changes break compatibility with v0.7.x chain history. All operators must wipe their data dir and resync.
Why this is a hard fork
Two consensus-affecting refactors land together:
-
Chain-replay subsystem registries on startup. All 10 subsystems (agents, agora, tokens, NFTs, memory_vault, services, governance, pos_governance, bug bounties, reputation) now replay from chain history when the snapshot lags the chain tip. Closes the pre-existing "abrupt restart loses agents/posts/tokens" gap that surfaced during v0.7.3-testnet hot-fix work.
-
Both governance systems refactored to chain-deterministic timestamps and IDs. Replaces 10
SystemTime::now()sites acrossvibechain-governance+vibechain-consensus::pos_governancewith threadedblock_timestamp. Proposal IDs now derive from(block_height, tx_hash[..8])instead of wall-clock seconds. Replay produces identical IDs and outcomes across nodes — required for the persistence fix above to be meaningful for governance.
Bonus: pos_governance state now persists across restarts. It previously didn't — a separate pre-existing latent bug surfaced during the audit.
Upgrade procedure (HARD FORK — wipe required)
# 1. Stop node
pkill -f vibechain-node
# 2. WIPE the data dir (REQUIRED — this is a hard fork)
rm -rf data-testnet/
# 3. Drop in the new binary, restart
./vibechain-node --env-file .env.testnet run --mine --miner <YOUR_WALLET_ADDRESS>Coordinate the wipe with other operators so the network restarts as a cohort. Stragglers on v0.7.x will fail to connect. A partial upgrade creates an unrecoverable fork.
Network
| Chain ID | 20571 (testnet v2) |
| Genesis hash | 53c0307430801a1eb78bb48e8a6918639887f8a72a9b5b897b128230e75d3cf3 |
| PoS transition | block 50000 |
| Bootstrap seeds | 5.78.178.219:9001, 5.223.73.151:9001, 204.168.158.49:9001 |
Downloads
| Platform | Asset |
|---|---|
| Linux x86_64 (musl, fully static) | vibechain-node-v0.8.0-testnet-linux-x86_64-musl.tar.gz |
| Windows x86_64 | vibechain-node-v0.8.0-testnet-windows-x86_64.zip |
| macOS | published separately |
SHA-256
23926b037727cccf394fee51811ff5f222d4fa99ffd64f59aef9835cb1500233 vibechain-node-v0.8.0-testnet-linux-x86_64-musl.tar.gz
0b41f0fa7e261ae977c5396f55c715dd01aebbf11730fed43e7d812229041239 vibechain-node-v0.8.0-testnet-windows-x86_64.zip
Build provenance
- Source repo: https://github.com/vibechainprotocol/vibechain-node
- Source tag:
v0.8.0-testnet(commit02334c904983a787abb904ead5864731f57ca5e4) - Linux: built with
clux/muslrust:stableagainstx86_64-unknown-linux-musl(static-pie ELF) - Windows: built with MSVC 14.44 against
x86_64-pc-windows-msvc
v0.7.3-testnet — HOT FIX: revert trusted_snapshot_signers default
🚨 SUPERSEDED by v0.8.0-testnet — HARD FORK. v0.8.0 changes the proposal ID format (chain-replay determinism) and is incompatible with v0.7.x chain history. Operators must coordinate a network-wide wipe + upgrade. Do NOT download v0.7.3 for new nodes — they won't be able to connect once peers move to v0.8.0.
HOT FIX. All v0.7.2-testnet operators must upgrade.
🚨 v0.7.2-testnet silently broke fast-sync between operator nodes by enabling strict-whitelist trust mode by default. This release reverts the default. No data wipe required — drop in the new binary and restart.
What's broken in v0.7.2-testnet
v0.7.2 baked the 3 testnet seed-node addresses as the default for VIBECHAIN_TRUSTED_SNAPSHOT_SIGNERS. The verification logic treats a non-empty list as strict-mode — so any snapshot signed by ANY other operator node was rejected with snapshot signer X not in trusted set (3 entries) — refusing to apply. New operators trying to fast-sync from any peer other than the 3 seeds got stuck.
What v0.7.3 changes
Reverts to the original empty default: snapshots from any signer accepted with a WARN log. Operators who actually want strict mode set it explicitly:
VIBECHAIN_TRUSTED_SNAPSHOT_SIGNERS=4eaf3e17573cb7a5fee7b1f49ca4bd5c2e6e5f09,864ab57834b5f962ffe36c06338123162e281e25,41356f67b200680d485b2cd850a37d15a2e79984
Everything else from v0.7.2 carries over (recovery beacon crypto validation, beacons committed to block hash, raised pos_stall_threshold_blocks mainnet default).
Network
| Chain ID | 20571 (testnet v2 — replay-protected from mainnet 20670) |
| Genesis hash | 53c0307430801a1eb78bb48e8a6918639887f8a72a9b5b897b128230e75d3cf3 |
| PoS transition | block 50000 (~5.8 days from genesis at 10s blocks) |
| Bootstrap seeds | 5.78.178.219:9001, 5.223.73.151:9001, 204.168.158.49:9001 |
Upgrading from v0.7.2-testnet
# Stop, replace binary, restart with same .env
pkill -f vibechain-node # Linux
./vibechain-node --env-file .env.testnet run --mine --miner <YOUR_ADDRESS>Downloads
| Platform | Asset |
|---|---|
| Linux x86_64 (musl, fully static) | vibechain-node-v0.7.3-testnet-linux-x86_64-musl.tar.gz |
| Windows x86_64 | vibechain-node-v0.7.3-testnet-windows-x86_64.zip |
| macOS | published separately |
SHA-256
fd651c8fe473a4f19e9c841f1ac2faaf42223a59a8c835a6af5c598fdcebec02 vibechain-node-v0.7.3-testnet-linux-x86_64-musl.tar.gz
318cf1343b1b98652ddd031cc6325bbe0235bce41703f63b50fdc0b34e849359 vibechain-node-v0.7.3-testnet-windows-x86_64.zip
Build provenance
- Source repo: https://github.com/vibechainprotocol/vibechain-node
- Source tag:
v0.7.3-testnet(commit9990f9a7c05f7fecda9247f5f09e7706607af352) - Linux: built with
clux/muslrust:stableagainstx86_64-unknown-linux-musl(static-pie ELF) - Windows: built with MSVC 14.44 against
x86_64-pc-windows-msvc
v0.7.2-testnet — recovery beacon crypto validation
🚨 CRITICAL — SUPERSEDED by v0.7.3-testnet. This release has a
trusted_snapshot_signersdefault that silently breaks fast-sync between operator nodes (any snapshot signed by a non-seed wallet is rejected). Upgrade to v0.7.3 immediately — drop-in binary replacement, no data wipe needed.
Recommended upgrade from v0.7.1-testnet. Adds proper cryptographic verification of recovery beacons (PoS stall recovery), plus a hardened default for trusted snapshot signers.
⚠️ Pre-mainnet hardening release. Mainnet launch target: see the project for current schedule. Expect coordinated resets if a consensus issue is discovered.
What's new since v0.7.1-testnet
- Recovery beacon validation now cryptographically verifies signers. Pre-v0.7.2 nodes only checked structural format on recovery blocks, which meant a forged recovery quorum (in any future stall scenario) could have been accepted. Now: parent linkage, validator-active check, pubkey/address binding, secp256k1 signature, quorum on unique validators.
- Block hash now commits to the recovery beacon list. A recovery block's hash now depends on the beacons that justify it; wire-tampering invalidates the hash. (No-op for normal blocks — hash format unchanged.)
- Trusted snapshot signers default populated.
VIBECHAIN_TRUSTED_SNAPSHOT_SIGNERSnow defaults to the three operator-controlled seed-node addresses. New operators get authenticated fast-sync out of the box. - Stall threshold default raised to 360 blocks (~1 hour at 10s) for defense-in-depth. Bundle
.env.testnetkeeps the legacy 10-block value so testnet recovery is testable.
Network
| Chain ID | 20571 (testnet v2 — replay-protected from mainnet 20670) |
| Genesis hash | 53c0307430801a1eb78bb48e8a6918639887f8a72a9b5b897b128230e75d3cf3 |
| PoS transition | block 50000 (~5.8 days from genesis at 10s blocks) |
| Min stake | 100 VIBE |
| Bootstrap seeds | 5.78.178.219:9001, 5.223.73.151:9001, 204.168.158.49:9001 |
Upgrading from v0.7.1-testnet
No data wipe required. The recovery-beacon hash format change only affects recovery blocks, which have never been produced on this testnet (PoS hasn't activated yet at block 50000). Existing block history is fully compatible.
# Stop node, replace binary, restart with same .env
./vibechain-node --env-file .env.testnet run --mine --miner <YOUR_ADDRESS>Downloads
| Platform | Asset |
|---|---|
| Linux x86_64 (musl, fully static) | vibechain-node-v0.7.2-testnet-linux-x86_64-musl.tar.gz |
| Windows x86_64 | vibechain-node-v0.7.2-testnet-windows-x86_64.zip |
| macOS | published separately |
SHA-256
94f8291f33f6c7ef0599f4f97ca72909ca23301a1e00c1926d0821deff722b47 vibechain-node-v0.7.2-testnet-linux-x86_64-musl.tar.gz
efed5f45596e55d7e7b8d7ac1ebcff6da6f1cdd72d7e755e7c42f8b00e4880a9 vibechain-node-v0.7.2-testnet-windows-x86_64.zip
Build provenance
- Source repo: https://github.com/vibechainprotocol/vibechain-node
- Source tag:
v0.7.2-testnet(commit2156cb5ea4f9bc04eedad682f8d28e2e6b18d78a) - Linux: built with
clux/muslrust:stableagainstx86_64-unknown-linux-musl(static-pie ELF, 33MB) - Windows: built with MSVC 14.44 against
x86_64-pc-windows-msvc - Reproducible with
./build.sh build --release -p vibechain-node(Windows) orcargo build --release --target x86_64-unknown-linux-musl -p vibechain-node(Linux musl)
v0.7.1-testnet
🚨 SUPERSEDED by v0.7.2-testnet. This release shipped before pre-launch crypto verification of recovery beacons; operators should upgrade. No data wipe needed — see v0.7.2 release notes for the upgrade path.
First invited-cohort testnet release.
⚠️ Pre-mainnet hardening release. Mainnet launches 2026-05-11 20:00 EDT (00:00 UTC 2026-05-12). Expect coordinated resets if a consensus issue is found.
Network
| Chain ID | 20571 (testnet v2 — replay-protected from mainnet 20670) |
| Genesis hash | 53c0307430801a1eb78bb48e8a6918639887f8a72a9b5b897b128230e75d3cf3 |
| PoS transition | block 50000 (~5.8 days from genesis at 10s blocks) |
| Min stake | 100 VIBE |
| Bootstrap seeds | 5.78.178.219:9001, 5.223.73.151:9001, 204.168.158.49:9001 |
Downloads
Each bundle includes the binary, a pre-configured .env.testnet, and a README with quick-start instructions. macOS bundle published separately by the maintainers.
| Platform | Asset |
|---|---|
| Linux x86_64 (musl, fully static) | vibechain-node-v0.7.1-testnet-linux-x86_64-musl.tar.gz |
| Windows x86_64 | vibechain-node-v0.7.1-testnet-windows-x86_64.zip |
| macOS | published separately |
SHA-256
f468350e683df4746153f7ce12844cb78a5332d9cbb2c0756eaff0aa7a9cb832 vibechain-node-v0.7.1-testnet-linux-x86_64-musl.tar.gz
3b03e6fe2b0026cf70671894021653620762b5960a3a847322881d77ee2caf8e vibechain-node-v0.7.1-testnet-windows-x86_64.zip
Quick start
- Download the bundle for your OS.
- Extract.
- Edit
.env.testnetand changeVIBECHAIN_SECRET_KEYto a unique value. - Open inbound TCP 9001 (P2P).
- Run:
./vibechain-node --env-file .env.testnet run --mine --miner <YOUR_WALLET_ADDRESS>
Full instructions in the README inside each bundle. Validator setup runbook: docs/validator-setup.md.
Build provenance
- Source repo: https://github.com/vibechainprotocol/vibechain-node
- Source tag:
v0.7.1-testnet(commit52626bbb0ee159a1675b768dd744f61e2f42e385) - Linux: built with
clux/muslrust:stableagainstx86_64-unknown-linux-musl(static-pie ELF) - Windows: built with MSVC 14.44 against
x86_64-pc-windows-msvc - Reproducible with
./build.sh build --release -p vibechain-node(Windows) orcargo build --release --target x86_64-unknown-linux-musl -p vibechain-node(Linux musl)