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)
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...