Nomadixa API Documentation

Welcome to the Nomadixa Developer API. Here you will find endpoints to interact with the blockchain, read network statistics, and connect external miners via the Node Gravity System.

Node Gravity System (Mini-Pool)

Full nodes act as mini-pools for browser and external miners. When connecting to a node's WebSocket, miners earn a proportional share of the block reward (85%), while the Node Operator earns a 15% commission + 100% of transaction fees.

WS / (Port 8546)

Connect to the WebSocket proxy to receive mining jobs and submit shares.

1. Login
// Send
{
  "type": "login",
  "userId": "anon_1234abcd",
  "siteKey": "default"
}
// Receive
{
  "type": "job",
  "data": {
    "jobId": "uuid...",
    "blob": "hex_string",
    "target": "hex_string",
    "height": 123
  }
}
2. Submit Share
// Send
{
  "type": "submit",
  "jobId": "uuid...",
  "nonce": 1234567,
  "hash": "hex_string"
}
// Receive
{
  "type": "accepted",
  "sharesInRound": 5,
  "totalShares": 150,
  "totalEarned": 1.25
}

Running a Full Node (Linux, macOS, Windows)

To maximize your earnings, participate in consensus, and act as a mini-pool, you should run your own Full Node. Nomadixa nodes are built on Node.js and can run on any platform.

CLI Starting the Node

Clone the repository and run the node orchestrator using Node.js/TypeScript:

# 1. Clone and install dependencies
git clone https://github.com/nomadixa/crypto.git
cd crypto
npm install

# 2. Start the Full Node
npx tsx packages/node/src/node.ts

By default, the node will start the P2P network on port 30303, REST API on 8545, and WS Proxy on 8546. It will also enable desktop mining automatically.

P2P Network Protocol (libp2p)

Nomadixa uses standard libp2p with Noise encryption, Yamux multiplexing, and GossipSub for message propagation. You can build custom node implementations in Rust, Go, or C++ by joining these GossipSub topics:

- "nmdx:blocks" : Broadcast and receive new solved blocks (JSON format).
- "nmdx:txs"    : Broadcast and receive new transactions to enter the mempool.

REST API Endpoints

GET /api/v1/info

Get general network and node statistics.

{
  "height": 1420,
  "difficulty": 512,
  "peers": 12,
  "hashrate": 4500
}
GET /api/v1/blocks?limit=10

Retrieve recent blocks from the blockchain.

[
  {
    "height": 1420,
    "hash": "00aa519bf...",
    "timestamp": 1724364000000,
    "reward": 50,
    "transactions": [...]
  }
]
POST /api/v1/transaction

Submit a new transaction to the mempool.

// Body
{
  "txId": "hex...",
  "ringSignature": {...},
  "recipient": "stealth_address",
  "ephemeralKey": "hex...",
  "commitment": {...},
  "fee": 0.01,
  "timestamp": 1724364000000
}