Developers & node operators

Everything you need to run a full node, build Vivuscoin Core from source and talk to the chain over RPC: the repository, the chain parameters, the seed nodes and the one flag you need while the chain is paused.

Run a full node

A node needs nothing special: the chain is 24,092 mostly empty blocks, and the seed nodes themselves are 1 GB virtual machines. Put this in vivuscoin.conf in the data directory before the first start.

vivuscoin.conf
# Peers: the two seed nodes (port 8168 is the default)
addnode=seed1.vivuscoin.com
addnode=seed2.vivuscoin.com
listen=1

# Required while the chain is paused. The last block is from 2021-09-22;
# without this a node treats its own tip as stale, stays in "initial block
# download" and refuses to serve blocks to anyone. Value is seconds; any
# number larger than the age of the last block works (this one is 10 years).
maxtipage=999999999

# On a public server: no wallet, RPC on localhost only
disablewallet=1
server=1
rpcbind=127.0.0.1
rpcallowip=127.0.0.1

Start vivuscoind (or the GUI) and wait for getblockchaininfo to report "blocks": 24092 with the best block hash from the table below. A wallet that shows 24,092 is fully synced; there is no later block to wait for.

ItemValue
Data directoryLinux ~/.vivuscoin/ · macOS ~/Library/Application Support/Vivuscoin/ · Windows %APPDATA%\Vivuscoin\ (Bitcoin Core convention with the coin name; check debug.log for the path your build uses)
P2P port8168 TCP. Open it inbound if you want to serve other nodes; outbound is enough to sync.
RPC port8332 TCP, local only. Never expose it; there is no authentication beyond the password in vivuscoin.conf.
Disk and memorySmall. The whole chain to 24,092 fits comfortably beside the default 450 MB database cache; the seed nodes run on 1 GB instances.
Wallet on serversKeep it disabled (disablewallet=1). Mine to an address whose keys live elsewhere; the stratum endpoint pays any address you give it.
After the v1.1 releaseUpgrade before the activation height stated in the release notes; an old node stops following the chain at that height.

Chain parameters

From src/chainparams.cpp, src/consensus/consensus.h, src/amount.h and src/validation.cpp on the release branch. The v1.1 rows apply from the activation height only.

ParameterValue
Genesis hash000000009ba1cc4ecf00c8d24b704f3e88f8c03a70fba8f3e6c350007b5a2cd5
Tip hash (height 24,092)000000000040a3597214ba978bdf6e853eb9d84c8abe39bcd90d57bc8c3a01fb
Network magicf0 b0 b0 d0
Default P2P port8168 (testnet 18168)
Default RPC port8332 (testnet 18332)
Protocol version70015; node user agent /Parvus:1.0.0.11/ on the seed nodes today
Proof of workSHA-256d
Block target240 s (nPowTargetSpacing = 4 * 60)
Difficulty rule (2021)Retarget every 5,040 blocks, clamped to ×4
Difficulty rule (v1.1)LWMA-1, N = 60, T = 240 s, per block; emergency easing after a gap ≥ 6T, max 24 steps
Future-time limit (v1.1)720 s; peer time adjustment capped at 360 s (was 7,200 s)
Reorg limit (v1.1)Reorganisations deeper than about 10 blocks refused; checkpoints kept
Block subsidy50 VVC, halving every 210,000 blocks (nSubsidyHalvingInterval)
Premine rulenHeight < 128 && nHeight % 8 == 0 pays 223 = 8,388,608 VVC: heights 8 to 120, 15 blocks. See Supply & transparency.
Coinbase maturity100 blocks (COINBASE_MATURITY)
Address, P2PKH (legacy)version byte 17 → 7… or 8…
Address, P2SH (wallet default, p2sh-segwit)version byte 23 → A…
Address, bech32HRP vvcvvc1…
Private key (WIF) version byte132
MAX_MONEY21,000,000 VVC. This is the largest amount a single transaction may carry, not the supply cap; moving more than 21 million VVC takes more than one transaction.
Supply at the tip127,032,970 VVC; the premine is 125,829,120 of it

Build from source

The tree builds like Bitcoin Core 0.17: autotools, with the depends system supplying Boost, libevent, BerkeleyDB 4.8 and Qt so the result does not depend on whatever your distribution ships. The repository’s doc/build-unix.md, doc/build-osx.md and doc/build-windows.md are the authoritative instructions; the outline below is the Linux path.

Linux, depends build
git clone https://github.com/vivuscoin/vivuscoin.git
cd vivuscoin
make -C depends -j"$(nproc)"                 # builds the libraries once; slow the first time
./autogen.sh
CONFIG_SITE="$PWD/depends/x86_64-pc-linux-gnu/share/config.site" ./configure
make -j"$(nproc)"
sha256sum src/vivuscoind src/vivuscoin-cli src/qt/vivuscoin-qt
  • Windows is cross-compiled from Linux: make -C depends HOST=x86_64-w64-mingw32, then configure with that host’s config.site. The installer is produced by make deploy.
  • macOS builds natively with the Homebrew packages listed in doc/build-osx.md. The 2021 image is unsigned and so will be the v1.1 image unless a signing identity is obtained; Gatekeeper is bypassed by right-clicking the app and choosing Open.
  • Reproducibility. Release builds are made as reproducible as practical from one tagged commit, and the SHA-256 of every artifact is published with the release. If you build the same tag and get a different hash, say so on GitHub.
  • Which branch. Build master to run what the network runs today. The v1.1 branch is under validation; do not run it on mainnet until it is released, and never against a data directory you care about without a backup.

RPC quick reference

The RPC surface is Bitcoin Core’s of the same era. These are the calls the status page uses and the ones you are most likely to need; vivuscoin-cli help lists the rest.

CallWhat it tells you
getblockchaininfoHeight, headers, best block hash, difficulty, initialblockdownload. Synced means blocks = 24092 today.
getbestblockhash · getblockhash <height>The hash at the tip or at any height; feed it to the next call.
getblockheader <hash> · getblock <hash> 2Header fields including time and bits; verbosity 2 includes every transaction, which is how you inspect a premine coinbase.
getpeerinfo · getconnectioncountWho you are connected to and their reported height; the status page derives seed2’s height from this.
getchaintipsEvery known chain tip. More than one active tip means a competing branch.
gettxoutsetinfoThe full UTXO set summary, including total_amount: 127032970 VVC at height 24,092.
getblocktemplateA template for the next block (height 24,093 today). This is what the stratum endpoint polls.
validateaddress <addr>Checks an A…, 7…/8… or vvc1… address; the same check the airdrop form and the pool apply.
Examples
vivuscoin-cli getblockchaininfo
vivuscoin-cli getblockheader "$(vivuscoin-cli getbestblockhash)"

# raw JSON-RPC, same thing over HTTP (credentials from vivuscoin.conf)
curl -s --user rpcuser:rpcpassword --data-binary \
  '{"jsonrpc":"1.0","id":"vvc","method":"getblockchaininfo","params":[]}' \
  -H 'content-type: text/plain;' http://127.0.0.1:8332/

Status data for integrators

If you only need the headline numbers, you do not need a node. The status script on seed1 writes /status/status.json every five minutes from the RPC calls above; the live tiles on this site read it. It is served same-origin with Cache-Control: max-age=300; there is no CORS header, so fetch it server-side or proxy it.

FieldTypeSource
height, headersintegergetblockchaininfo
last_block_timeISO 8601 UTCgetblockheader(bestblockhash).time
difficultyfloatgetblockchaininfo.difficulty
best_hashhexgetbestblockhash
chain_tipsintegernumber of entries in getchaintips
peersintegergetconnectioncount
seed2_heightinteger or nullseed2’s height as seen by seed1 in getpeerinfo
versionstringgetnetworkinfo.subversion
updatedISO 8601 UTCtime the file was written; treat anything older than 15 minutes as stale
status.json (example)
{"height":24092,"headers":24092,"last_block_time":"2021-09-22T21:16:00Z","difficulty":132.64,
 "best_hash":"000000000040a3597214ba978bdf6e853eb9d84c8abe39bcd90d57bc8c3a01fb",
 "chain_tips":1,"peers":1,"seed2_height":24092,"version":"/Parvus:1.0.0.11/",
 "updated":"2026-09-23T06:17:00Z"}

Stratum endpoint

Miners and mining software connect to the solo stratum endpoint on seed1. It runs ckpool in solo mode: the coinbase of any block you find pays the address you authorise with, the pool holds nothing, and there is nothing to withdraw. Until the v1.1 restart it hands out templates for height 24,093 and the chain may not advance; details and hardware notes on the Mining page.

Solo stratum
URL:       stratum+tcp://pool.vivuscoin.com:3333
Username:  your VVC address (use an A... address; vvc1... is not yet tested)
Password:  x

Block explorer

The block explorer at vivuscoin.com/explorer/ is live and read-only: blocks, transactions, addresses, search and a rich list, which makes the premine visible; that is intended. It indexes a node of ours, so a full node of your own stays the independent source. It is the only Vivuscoin explorer; do not trust a third-party site claiming to be one.

  • /explorer/block/<hash or height>, /explorer/tx/<txid>, /explorer/address/<address>
  • /explorer/rich-list, /explorer/search?q=<height, hash, txid or address>

A JSON API sits under /explorer/api/v1/: no key, CORS open, cached for 30 seconds. The three endpoints coin directories usually ask for:

Explorer API
https://vivuscoin.com/explorer/api/v1/totalcoins      # bare number: 127032970.00000000
https://vivuscoin.com/explorer/api/v1/getblockcount   # bare number: 24092
https://vivuscoin.com/explorer/api/v1/status          # JSON: height, hash, time, difficulty, supply, premine, hashrate, synced

Further endpoints (getdifficulty, circulating, getbalance/<address>, address/<address>, block/<height>, tx/<txid>, blocks, richlist) follow the same pattern and return what the matching page shows.