PoW UTXO Open Source REST + SSE

VitoCoin Technical Documentation

VitoCoin is a decentralized, permissionless cryptocurrency built from scratch with a Bitcoin-compatible UTXO model, SHA-256d Proof-of-Work, and 1-minute block targets. This document is the primary technical reference for exchanges, developers, and independent auditors.

SHA-256d
Algorithm
60s
Block Time
21M
Max Supply
114
Maturity Blocks
50
Block Reward
Current Height

Protocol Parameters

ParameterValueNotes
Consensus AlgorithmSHA-256d Proof-of-WorkDouble SHA-256, same as Bitcoin
Target Block Time60 secondsDifficulty retargets every 144 blocks (~2.4 hrs)
Block Size Limit4 MBSoft limit; actual blocks typically <1 MB
Coinbase Maturity114 confirmations~1.9 hours before mined coins are spendable
Initial Block Reward50 VITOHalving every 210,000 blocks (~4 years)
Maximum Supply21,000,000 VITOHard cap enforced at protocol level
Minimum Fee0.0001 VITO / txMempool rejects sub-minimum transactions
P2P Port6334 TCPCombined P2P + REST API port
Address PrefixVVanity prefix for VITO addresses
Address FormatBase58Check (P2PKH)Same encoding as Bitcoin legacy addresses
Script TypesP2PKH, P2SHPay-to-public-key-hash, pay-to-script-hash
Signature SchemeECDSA secp256k1Same curve as Bitcoin
Difficulty AdjustmentEvery 144 blocksTargets 60s average; clamped ×4/÷4 per period

Supply Schedule

VitoCoin has a hard-capped maximum supply of 21,000,000 VITO. All issuance is through CPU Proof-of-Work block rewards. No premine, no ICO, no developer allocation beyond the 6-block genesis reserve for network bootstrap.

EraBlock RangeReward / BlockTotal IssuedCumulative %
Genesis Reserve0 – 650 VITO350 VITO0.002%
Era 17 – 210,00050 VITO10,499,650 VITO50.0%
Era 2210,001 – 420,00025 VITO5,250,000 VITO75.0%
Era 3420,001 – 630,00012.5 VITO2,625,000 VITO87.5%
Era 4630,001 – 840,0006.25 VITO1,312,500 VITO93.75%
Halves every 210,000 blocks→ 100%
Terminal~6,720,000+0 VITO0 (fee-only)100%
Live circulating supply is available at /api/v1/summary — updated every 30 seconds from the chain tip.
Live Supply Distribution
Circulating
Loading live data…

Genesis Reserve

Blocks 0–6 were mined at network launch to establish the initial chain state and provide liquidity for early exchange pairs and node operators. These 350 VITO represent 0.0017% of maximum supply. All addresses are publicly verifiable on the block explorer.

Burn Address: The address VBURN000000000000000000000000000000 is the canonical VitoCoin burn address. Any VITO sent here is permanently destroyed and excluded from circulating supply in the /api/v1/summary feed. The burn balance is labeled in the Rich List and tracked transparently on-chain.

Proof-of-Work Algorithm

VitoCoin uses double SHA-256 (SHA-256d) — the same algorithm used by Bitcoin. This provides battle-tested security, broad hardware compatibility, and no dependence on ASIC-resistance assumptions that have historically proven fragile.

Hash Function

hash = SHA256( SHA256( block_header_bytes ) )

Validity Condition

# The resulting 256-bit hash interpreted as little-endian integer
# must be strictly less than the current compact target:
hash_integer < target

# Where target is derived from the 'bits' field in the block header:
target = mantissa * 256 ** (exponent - 3)

Difficulty Adjustment

Retargets every 144 blocks. The new difficulty is computed as:

actual_time   = timestamp[n] - timestamp[n-144]
expected_time = 144 * 60  # seconds

new_target = old_target * (actual_time / expected_time)
# Clamped: new_target ∈ [old_target/4, old_target*4]

Mining Protocol

External miners connect via the REST API at /mining/template and submit solved headers via /mining/submit. The node also exposes a Server-Sent Events stream for real-time NEW_BLOCK notifications.

Block Header Format

The 80-byte block header is identical in structure to Bitcoin's. All fields are little-endian.

FieldSizeEncodingDescription
Version4 bytesLE uint32Block version (currently 1)
PrevBlockHash32 bytesLE bytesSHA-256d hash of previous block header
MerkleRoot32 bytesLE bytesSHA-256d merkle root of all transactions
Timestamp4 bytesLE uint32Unix epoch seconds (±2hr tolerance)
Bits4 bytesLE uint32Compact difficulty target
Nonce4 bytesLE uint32Miner-controlled search field

Coinbase Transaction Format

# Coinbase txid (single-transaction block):
txid = sha256d( "coinbase:{height}:{miner_address}:{nonce}" )

# Merkle root for single-tx block:
merkle_root = reverse_bytes( txid )

UTXO Model

VitoCoin uses an Unspent Transaction Output (UTXO) model. Each transaction consumes previous outputs and creates new ones. The sum of inputs must equal the sum of outputs plus the transaction fee.

# Transaction validity rule:
sum(inputs.value) = sum(outputs.value) + fee
fee >= 0.0001 VITO  # minimum relay fee

Double-Spend Protection

The node maintains a UTXO set in memory and on disk. Any attempt to reference an already-spent UTXO is rejected immediately with error double spend. The frontend wallet monitors for this rejection and broadcasts an alert to the admin command center.

Coinbase Maturity Rules

Coinbase (mined) outputs require 114 confirmations before they can be used as inputs in new transactions. This prevents miners from spending rewards from blocks that may be orphaned.

At a 60-second block time, 114 confirmations ≈ 1 hour 54 minutes. This is comparable to Bitcoin's 100-block maturity at 10-minute blocks (≈ 16.7 hours).
Output TypeSpendable AfterEnforcement
Standard Transfer (P2PKH)1 confirmationMempool + block validation
Coinbase / Mining Reward114 confirmationsProtocol-level UTXO age check
Genesis Reserve (blocks 0–6)114 confirmations from block 6Same as coinbase rule

Mempool Policy

GET /api/v1/summary

This public, unauthenticated endpoint returns the data required by CoinMarketCap, CoinGecko, and Binance for listing applications. No API key required.

GEThttps://vitocoin.com/api/v1/summaryNo auth required
Live Response
{ "loading": true }

Response Schema

FieldTypeDescription
total_supplynumberHard cap — always 21,000,000
circulating_supplynumberAll VITO issued to date (mined coins, mature only)
block_heightintegerCurrent chain tip height
last_price_usdnumberLast known USD price (exchange-provided or estimated)
price_change_24h_pctnumber24-hour price change percentage
volume_24h_usdnumber24-hour trading volume in USD
market_cap_usdnumbercirculating_supply × last_price_usd
difficultynumberCurrent mining difficulty
hashrate_hpsnumberNetwork hashrate (hashes/second)
avg_block_time_snumberAverage block time over last 100 blocks
last_block_tsISO 8601Timestamp of last confirmed block
updated_atISO 8601API response freshness timestamp

Node REST API

Every VitoCoin node exposes a REST API on port 6334. The official nodes are proxied through Vercel at vitocoin.com/api/node/*.

GET/statusNode height, peers, difficulty
GET/blocks?limit=20&offset=0Paginated block list
GET/block/{hash}Block by hash
GET/tx/{txid}Transaction detail
GET/address/{addr}Balance, UTXOs, history
GET/mempoolPending transactions
GET/supplyCirculating supply
GET/rich-list?limit=100Top 100 holders by balance
GET/mining/templateBlock template for miners
POST/mining/submitSubmit solved block
POST/tx/broadcastBroadcast signed transaction
GET/network-statsHashrate, miners, block time
GET/peersConnected peer list with versions

Server-Sent Events (SSE)

The node exposes a real-time event stream at /events. Connect with EventSource:

const sse = new EventSource('https://vitocoin.com/api/node/events');

sse.addEventListener('NEW_BLOCK', e => {
  const block = JSON.parse(e.data);
  // { height, hash, timestamp, tx_count, reward_vito }
});

sse.addEventListener('NEW_TRANSACTION', e => {
  const tx = JSON.parse(e.data);
  // { txid, fee_vito, inputs, outputs }
});

sse.addEventListener('HASHRATE_UPDATE', e => {
  const stats = JSON.parse(e.data);
  // { hashrate_hps, miners, difficulty }
});

Bootstrap Nodes

New nodes bootstrap by connecting to the following seed peers. Peer discovery is fully automatic after initial connection.

RegionCityAddressRoleStatus
🇩🇪 EUFrankfurt84.201.20.90:6334Leader (canonical height)Checking…
🇯🇵 APACTokyo151.245.104.152:6334Primary seedChecking…
🇺🇸 USNew York213.139.77.18:6334Secondary seedChecking…
🇸🇬 APACSingapore195.114.193.73:6334Secondary seedChecking…

Security

Full security audit log: vitocoin.com/security-audit · Report issues: security@vitocoin.com

CoinMarketCap Listing Data Feed

The /api/v1/summary endpoint is designed to satisfy the CMC and CoinGecko listing data requirements. It returns all mandatory fields in a single, cacheable JSON response.

# Example cURL
curl -s https://vitocoin.com/api/v1/summary | jq .

# Example Node.js
const res = await fetch('https://vitocoin.com/api/v1/summary');
const data = await res.json();
console.log(data.circulating_supply, data.last_price_usd);

Spending VITO

VITO is the native utility token of the VitoCoin network. Beyond peer-to-peer transfers and mining rewards, VITO is designed to power a growing ecosystem of real-world applications.

Current Utility
  • ⛏️
    Mining Rewards — Miners earn VITO block subsidies (currently 50 VITO/block) plus transaction fees for securing the network.
  • 💸
    Peer-to-Peer Payments — Send and receive VITO globally with sub-second confirmations and minimal fees.
  • 🔄
    Exchange & Swap — VITO is tradable on partner exchanges and via the built-in Buy VITO gateway.