VitoCoin Public API
REST + Server-Sent Events API for the VitoCoin blockchain. All endpoints return JSON. No API key required for read operations.
Base URLs
Production (via Vercel proxy):
https://vitocoin.com/api/node/
https://vitocoin.com/api/node2/
https://vitocoin.com/api/node3/

Direct node access:
http://195.114.193.73:6333/ (Node 1)
http://213.139.77.18:6333/ (Node 2)
http://84.201.20.90:6333/ (Node 3)

All nodes return identical data (same chain). Use any node; they auto-fail-over in the web app.

Authentication

All read endpoints (GET) are public — no authentication required.
Write endpoints (POST /tx/send) require a signed transaction; no API key is needed.

Error Format
{"error": "not found", "code": 404}
200
OK
Success
400
Bad Request
Invalid parameters
404
Not Found
Block / TX / address not found
500
Server Error
Node internal error
Node Status
GET /status LIVE Full node state snapshot

Returns current chain height, best hash, mempool, difficulty, mining stats, and peer count.

{
  "height": 10,
  "best_hash": "00000000e060cafcd66eb2a4...",
  "difficulty": 1.0,
  "bits": "1d00ffff",
  "chain_work": "47245361163",
  "mempool_count": 0,
  "utxo_count": 12,
  "supply_vito": 550.0,
  "network": "mainnet",
  "version": "VitoCoin/2.0.0",
  "next_halving_blocks": 209990,
  "block_reward": 50.0,
  "peers": 4,
  "miner": {
    "mining": true,
    "threads": 4,
    "hashrate_hps": 389033.66,
    "hashrate_str": "389.03 KH/s",
    "blocks_found": 0,
    "wallet": "VNSvE8rHraD9qYZttEsv1Epu6fMZhKyoQ5"
  }
}
Supply
GET /supply LIVE Circulating and max supply
{
  "circulating_satoshi": 55000000000,
  "circulating_vito": 550.0,
  "max_supply_vito": 21000000,
  "current_subsidy_vito": 50.0,
  "next_halving_blocks": 209990
}
Market Data LIVE
GET /market Price, market cap, volume

Returns current price (initial fixed rate), market cap, 24h volume tracker, and circulating supply.

{
  "price_usd": 0.01,
  "price_source": "fixed_initial_rate",
  "circulating_supply": 550.0,
  "max_supply": 21000000,
  "market_cap_usd": 5.50,
  "volume_24h_usd": 0,
  "volume_note": "DEX integration pending (Phase 2)",
  "block_reward": 50.0,
  "next_halving_blocks": 209990,
  "last_block": 10,
  "network": "mainnet"
}
GET /market/price Price only (lightweight)
{"price_usd": 0.01, "symbol": "VITO", "ts": 1775727000}
Blocks
GET /blocks LIVE Paginated block list

Query parameters:

limit
integer
Max blocks to return (default 10, max 100)
offset
integer
Start from this block height offset
{
  "total": 11,
  "limit": 3,
  "offset": 0,
  "blocks": [
    {
      "hash": "00000000e060cafcd66eb2a4425a5e52...",
      "height": 10,
      "header": {
        "version": 2,
        "prev_hash": "000000003c218be4e1c22268a5ef00ec...",
        "merkle_root": "0f30bb164cbfc0db676d47cef352992a...",
        "timestamp": 1775706303,
        "bits": 486604799,
        "bits_hex": "1d00ffff",
        "nonce": 3242755474,
        "difficulty": 1.0
      },
      "tx_count": 1,
      "size": 177,
      "work": "4295032833"
    }
  ]
}
GET /block/:id Single block by height or hash
:id
string
Block height (integer) or full block hash (hex)
// GET /block/10
Transactions
GET /tx/:txid LIVE Transaction by TXID
{
  "txid": "0f30bb164cbfc0db676d47cef352992a...",
  "version": 2,
  "locktime": 0,
  "is_coinbase": true,
  "inputs": [{ "prev_txid": "0000...0000", "prev_index": 4294967295 }],
  "outputs": [{ "value": 5000000000, "value_vito": 50.0, "script_pubkey": "76a914..." }],
  "size": 97
}
GET /mempool Unconfirmed transactions
{"count": 0, "transactions": []}
POST /tx/send Broadcast signed transaction

Submit a raw signed transaction for broadcast to the network.

// Request body
{
  "raw_tx": "<hex-encoded signed transaction>"
}

// Response (success)
{"txid": "abc123...", "status": "accepted"}

// Response (failure)
{"error": "double spend detected", "code": 400}
Wallet / Balance
GET /balance/:address LIVE VITO balance for address
{
  "address": "VNSvE8rHraD9qYZttEsv1Epu6fMZhKyoQ5",
  "balance_satoshi": 42500000000,
  "balance_vito": 425.0,
  "utxo_count": 9
}
GET /address/:address Full address history + UTXOs
// Returns balance + transaction history + UTXO list
GET /utxo/:address Unspent outputs for address
{"utxos": [
  {"txid": "0f30bb...", "index": 0, "value_vito": 50.0, "height": 10, "coinbase": true}
]}
Real-Time Events (SSE) SERVER-SENT EVENTS
GET /events LIVE Live block/mempool/mining stream

Persistent HTTP stream using text/event-stream. Connect with EventSource in the browser or curl -N in terminal.

// Connect (browser)
const es = new EventSource('https://vitocoin.com/api/node/events');
es.addEventListener('block', e => {
  const data = JSON.parse(e.data);
  console.log('Height:', data.height, 'Hash:', data.best_hash);
});

// Connect (terminal)
curl -N https://vitocoin.com/api/node/events

Event Types:

block
~1s interval
Full chain state; height increment = new block mined
mempool
on change
Fires when mempool transaction count changes
ping
~1s interval
Heartbeat to keep connection alive

Payload schema:

{
  "height": 10,
  "best_hash": "00000000e060cafcd66eb2a4425a5e52...",
  "difficulty": 1.0,
  "peers": 4,
  "mempool": 0,
  "supply_vito": 550.0,
  "block_reward": 50.0,
  "next_halving": 209990,
  "miner": {
    "mining": true,
    "hashrate": "389.03 KH/s",
    "hashrate_hps": 389033.66,
    "blocks_found": 0
  },
  "ts": 1775727102
}
Mining
GET /mining/status LIVE Miner stats for this node
// Loading...
Peers
GET /peers LIVE Connected P2P peers
// Loading...