Complete reference for all 5 APIs — build dApps, wallets, dashboards, and integrations
v0.1.0 • EVM-Compatible • Proof of Stake
JSON-RPC :8545REST API :8546GraphQL :8546Oracle :8546Indexer :8546
API Architecture
NovaMoney exposes 5 APIs running on 2 ports. The JSON-RPC port is fully compatible with MetaMask, ethers.js, and all standard Ethereum tooling. The second port hosts the REST, GraphQL, Oracle, and Indexer APIs for advanced querying and integration.
5
APIs
2
Ports
22+
RPC Methods
20+
REST Endpoints
7
GraphQL Queries
NovaMoney Node
MetaMask
Wallet
ethers.js / web3.js
Libraries
Web Apps
Frontend
Mobile Apps
Backend
Smart Contracts
Oracle reads
→→→→→
Port 8545
JSON-RPC (eth_*, net_*, web3_*)
Port 8546
REST API /api/v1/...
GraphQL /graphql
Oracle /api/v1/oracle/...
Indexer /api/v1/indexer/...
1. JSON-RPC API (Port 8545)
The standard Ethereum JSON-RPC interface. Allows wallets (MetaMask) and libraries (ethers.js, web3.js) to interact with the blockchain: send transactions, read balances, deploy contracts, and query blocks.
Base URL:https://rpc.novamoney.site
Available Methods
Method
Description
Example Usage
eth_blockNumber
Latest block number
Get chain height
eth_chainId
Network ID (7575757)
MetaMask identifies the network
eth_getBalance
Account balance
Show NVM in wallet
eth_getTransactionCount
Account nonce
Sign transactions
eth_getCode
Contract bytecode
Verify if address is contract
eth_sendRawTransaction
Send signed transaction
Transfer NVM, deploy contracts
eth_call
Read-only execution
Read ERC-20 balanceOf()
eth_estimateGas
Estimate gas
Calculate fee before sending
eth_getTransactionReceipt
Transaction receipt
Verify if tx succeeded
eth_getTransactionByHash
Transaction details
Show from, to, value, gas
eth_getBlockByNumber
Block by number
Block explorer
eth_getBlockByHash
Block by hash
Lookup by hash
eth_gasPrice
Gas price (20 Gwei)
Calculate fees
eth_getLogs
Contract logs/events
dApps read Transfer, Approval events
eth_getStorageAt
Contract storage
Read state variables
eth_accounts
Node accounts (empty)
MetaMask requirement
eth_mining
Validating status (true)
Node status
eth_syncing
Sync status
Sync check
eth_maxPriorityFeePerGas
Priority fee (1 Gwei)
EIP-1559 gas estimation
eth_feeHistory
Fee history
MetaMask gas estimation
net_version
Network ID
Identification
net_listening
Accepting connections
Status
net_peerCount
Peer count
Diagnostics
web3_clientVersion
Node version
Identification
Usage Examples
bash# Get latest block number
curl -X POST https://rpc.novamoney.site \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'# Response:# {"jsonrpc":"2.0","id":1,"result":"0x1a"}# Get account balance
curl -X POST https://rpc.novamoney.site \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_getBalance","params":["0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266","latest"],"id":2}'# Response:# {"jsonrpc":"2.0","id":2,"result":"0x152d3a4abc1994100000"}
Classic HTTP API with friendly endpoints. Ideal for web backends, mobile apps, and any application that wants to read blockchain data without using JSON-RPC.
Price feed system that allows smart contracts to access external asset prices (NVM/USD, ETH/USD, BTC/USD). Authorized reporters publish prices, and anyone can query them.
Base URL:https://api.novamoney.site/api/v1/oracle/
javascript// Bot that updates prices every 60 secondsasync functionupdatePrices() {
// Get real price from external API (e.g., CoinGecko)const cgResponse = awaitfetch(
'https://api.coingecko.com/api/v3/simple/price?ids=ethereum,bitcoin&vs_currencies=usd'
);
const prices = await cgResponse.json();
// Publish to NovaMoney oracleawaitfetch('https://api.novamoney.site/api/v1/oracle/update', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
pair: 'ETH/USD',
price: prices.ethereum.usd,
reporter: 'system',
}),
});
awaitfetch('https://api.novamoney.site/api/v1/oracle/update', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
pair: 'BTC/USD',
price: prices.bitcoin.usd,
reporter: 'system',
}),
});
console.log('Prices updated:', newDate().toISOString());
}
// Run every 60 secondssetInterval(updatePrices, 60000);
updatePrices();
5. Indexer API (Port 8546)
Automatically indexes all blocks, transactions, events, and contracts from the blockchain. Allows searching for contract events, viewing ERC-20 token transfers, listing deployed contracts, and seeing token holders. The indexer runs in the background every 2 seconds, automatically indexing new blocks.
Base URL:https://api.novamoney.site/api/v1/indexer/
bash# All recent events
curl https://api.novamoney.site/api/v1/indexer/events
# Events from a specific contract
curl "https://api.novamoney.site/api/v1/indexer/events?address=0xContract..."# Events in a block range
curl "https://api.novamoney.site/api/v1/indexer/events?from_block=10&to_block=50&limit=100"# Events by signature (topic0)
curl "https://api.novamoney.site/api/v1/indexer/events?event=0xddf252ad..."
bash# All transfers
curl https://api.novamoney.site/api/v1/indexer/transfers
# Transfers of a specific token
curl "https://api.novamoney.site/api/v1/indexer/transfers?token=0xToken..."# Transfers sent from an address
curl "https://api.novamoney.site/api/v1/indexer/transfers?from=0xSender..."# Transfers received by an address
curl "https://api.novamoney.site/api/v1/indexer/transfers?to=0xReceiver..."
outputJSON-RPC server listening on 0.0.0.0:8545
REST API listening on http://0.0.0.0:8546/api/v1/
GraphQL playground at http://0.0.0.0:8546/graphql
Oracle API at http://0.0.0.0:8546/api/v1/oracle/
Indexer API at http://0.0.0.0:8546/api/v1/indexer/
MetaMask Configuration
Connect MetaMask to NovaMoney in a few simple steps: