Documentation
Everything you need to run a node on the Unova network.
What is Unova Nodes?
Unova Nodes is the self-service deployment interface for the Unova network. It lets you spin up a node — validator, data node, or Open Innovation Node — in a few clicks, with no DevOps required. You connect your wallet, pick a node type and a deployment target, and the launchpad handles the install and registration. You always retain custody of both your wallet and your hosting account.
Quick start
- Connect your wallet from any page using the Connect Wallet button. We support MetaMask, WalletConnect, Coinbase Wallet, social login, and most other EIP-1193 wallets via Reown AppKit. You'll be prompted to switch to Unova Testnet — accept it, then sign once to complete Sign-in with Ethereum.
- Type-2 only: create your company at /data/companyfirst. Companies own Type-2 nodes; you can't deploy one without one.
- Go to Deploy a node and pick a type (see Node types below).
- Pick a deployment target:DigitalOcean — paste a personal API token and we auto-provision a droplet (cost varies by node type, billed by DO directly). We also generate a per-droplet SSH key so you can manage runtime config from the launchpad later.On-premise — bring your own Ubuntu 22.04+ server and we hand you a one-line install command. Runtime config edits via the launchpad require an SSH key, so on-prem nodes are install-once for now.
- For Type-1 / Type-2 you'll provide an operator private key — the key that signs blocks (Type-1) or data bundles (Type-2). Use a fresh wallet for this, never your main one (see The 3-key model below).
- Type-2/4 data nodes are whitelisted automatically at deploy time — no approval wait. Only Type-1 validators wait for owner approval (48h SLA). Watch status on My nodes.
Node types
Type-3 — Open Innovation Node
Instant~$24/mo on DigitalOcean (or your own hardware)
A read/write peer that participates in the network without minting blocks. Ideal for app developers, dApps, indexers, and analytics. No approval needed — register and run instantly. Recommended specs: 2 vCPU / 4 GB RAM / 80 GB disk.
Type-1 — Validator
Earn UON~$48/mo on DigitalOcean
A block-producing validator. Mints blocks, secures the network, earns rewards. Requires owner-wallet approval before joining the validator set (typical SLA: 48 hours). Recommended specs: 4 vCPU / 8 GB RAM / 160 GB disk.
Type-2 — Data Node
Live~$96/mo on DigitalOcean
For companies that want to host their own assets, events, and supply-chain data on Unova. Bundles the chain node with Atlas (data store) + Hermes (REST API). Requires a company in the launchpad; whitelisting is automatic at deploy time — no approval wait. Recommended specs: 8 vCPU / 16 GB RAM / 320 GB disk.
Type-4 — AI Data Node
Live~$192/mo on DigitalOcean
Everything in Type-2 PLUS a private AI assistant running locally on the node (Ollama + your chosen model, or bridge your own cloud AI key). Chat with your supply-chain data — assets, events, traces — without data leaving your server. Optional HTTPS hostname for the chat UI. Whitelisting is automatic at deploy time. Recommended specs: 8 vCPU / 32 GB RAM / 320 GB disk.
Fund your operator address (Type-2/4)
The operator key pays gas when your node publishes data bundles to the chain. After deploying a data node, send some UON to the operator address (shown on the node detail page) — the faucet drips 1 UON per day per wallet, which covers normal bundle traffic. A node whose operator balance hits zero keeps accepting API writes but stops anchoring them on-chain until refunded.
The 3-key model (important for Type-1 and Type-2)
Three different wallets are involved in running a node. Keeping them separate is what stops a single compromise from emptying your treasury.
Your user wallet
Used for: Signs into the launchpad (SIWE), creates the company, approves invites.
Holds: UON treasury, your main funds. Should be a hardware wallet.
Node operator key
Used for: Lives on the droplet. Type-1: signs blocks. Type-2: signs Atlas data bundles.
Holds: Only what's needed for gas. Use a FRESH MetaMask account; never reuse your user wallet.
Facility key (Type-2 only)
Used for: Per-site key generated automatically when you create a facility. Used to authenticate write requests against your Type-2 node's Hermes API.
Holds: Nothing — these wallets exist only as identities. The launchpad encrypts the privkey at rest and exposes it as an API token on demand.
Getting your node approved
Only Type-1 (validator) deploys wait for a manual owner approval. Type-2/Type-4 data nodes are whitelisted automatically at deploy time (the launchpad signs the on-chain whitelist transaction itself), and Type-3 (OIN) needs no approval at all — both run as soon as the install finishes.
Type-1 (validator)
- You submit the deploy form. KYC fields are optional but speed up review.
- Your node installs and starts running but doesn't mint blocks until it's registered to the validator set on chain.
- Registration is a single on-chain transaction by the network admin. Typical SLA: 48 hours.
- Once registered, your node enters the validator set within a few blocks and starts producing. You can watch the transition on My nodes.
Type-2 / Type-4 (data node)
- Create your company at /data/company.
- Deploy the node. The launchpad whitelists the node's operator address on-chain automatically — no waiting.
- As soon as the install finishes, the node accepts facility writes and participates as a data node. (In rare cases — the launchpad's signing key not being configured — the node falls back to the manual whitelist queue, 48h SLA.)
Both flows are enforced by smart contracts on Unova Testnet — no off-chain trust. We'll move to a Safe multisig with a security co-signer in Phase 2 of the network.
Companies, facilities, and API tokens (Type-2)
Type-2 nodes are built around a company. One company can own multiple Type-2 nodes and multiple physical facilities (warehouses, factories, stores).
- Create a company at /data/company — name, VAT, address, type. The wallet that creates it is the primary admin.
- Invite teammates by wallet address with roles:
admin(full control),operator(deploy + manage nodes),viewer(read-only). They claim the invite when they sign in. - Add facilities. Each facility gets its own auto-generated wallet (operator key, encrypted at rest). This is the data-attribution identity for that site — separate from any user wallet.
- Generate an API tokenfor a facility. The launchpad picks up the Hermes URL from your Type-2 node automatically, exchanges the facility's private key for a bearer token at
/auth/getApiToken, and shows it once. - Paste the bearer into your warehouse / IoT / ERP system as the
Authorizationheader. Tokens are derived on demand — never persisted by us — so re-generate any time.
Bundle settings (Type-2)
Atlas — the worker that batches your assets and events into on-chain bundles — has two knobs you can tune per-node from the node detail page:
- Bundling interval (default 300s) — how often the worker checks for unbundled data. Lower = fresher data, more gas. Range: 30s – 86,400s.
- Minimum items per bundle (default 3) — wait until this many assets+events accumulate before bundling. Higher = cheaper, slower indexing. Range: 1 – 10,000.
Three presets are wired in for typical use cases: Realtime (60s / 1 item), Balanced (300s / 3 items, default), and Cost-saving (1800s / 25 items).
Changes are saved to the launchpad DB and applied to the running node via SSH (we generate a per-droplet ed25519 keypair during provisioning, store the privkey AES-encrypted, and use it to sed-patch the running docker-compose.yml + restart the worker container). Older nodes deployed before this feature shipped need a redeploy to enable live apply.
Installing on your own server
Use the deploy wizard (Nodes → Deploy → On-premise): it registers your node and gives you a personalised one-line install command that carries your node ID and a one-time INSTALL_SECRET. That secret is how the installer securely fetches your registry credentials and staged operator key — a bare, unparameterised command would install an unregistered node that never appears in the launchpad.
Server requirements:
- Ubuntu 22.04 or 24.04 — the installer uses Ubuntu's Docker repositories; other distros are not supported
- x86-64 (amd64) CPU — ARM (Raspberry Pi, Apple Silicon VMs) will not work
- 4 vCPU / 8 GB RAM / 80 GB disk minimum; root access
- Inbound TCP/UDP 30303 (all types); Type-2/4 also need inbound TCP 80 and 9876 (the launchpad and your integrations call your node's API on these); Type-4 also 3000, or 443 with an HTTPS hostname
- Outbound access to download.docker.com, Docker Hub, ghcr.io, ollama.com (Type-4) and nodes.unova.io
For Type-1/2/4 you must stage your operator key on the server BEFORE running the command (the wizard shows three staging options — key file, environment variable with sudo -E, or interactive). The installer aborts with a clear error if no key is staged; it never generates one for you, because the key must match the address registered in the launchpad. Script source: /install/setup.sh.
Stuck? Support
Approval pending longer than the 48-hour SLA, an install that won't complete, or an error you can't place — email tech@unova.io with your node ID (visible on the node's detail page). Failed installs can be re-run from the node detail page ("Re-run install"), and its "View install logs" button shows the server-side log without SSH.
Network info
- Network
- Unova Testnet
- Chain ID
- 3001
- Native token
- UON (18 decimals)
- Block time
- ~5 seconds
- Explorer
- https://explorertest.unova.io
Mainnet is on the roadmap but RPC and contracts are not deployed yet. Switching your wallet to Unova Mainnet inside the app will trigger a "coming soon" toast and switch you back to testnet.
Build a dApp on Unova (EVM quickstart)
Unova is EVM-compatible — anything that runs on Ethereum runs here. Standard tooling (Foundry, Hardhat, viem, ethers.js, MetaMask) works out of the box against the RPC above: chain ID 3001, native token UON (18 decimals). Get testnet UON from the faucet.
1. Add the network to your wallet
Or add it manually: RPC https://rpctest.unova.io, chain ID 3001 (0xbb9), symbol UON, explorer https://explorertest.unova.io.
2. Fund your deployer
Deploys cost gas — grab testnet UON from /faucetfor the address you'll deploy with before continuing.
3. Deploy a contract with Foundry
forge init hello-unova && cd hello-unova
Create src/HelloUnova.sol:
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
contract HelloUnova {
string public greeting = "Hello, Unova!";
function setGreeting(string calldata g) external {
greeting = g;
}
}Deploy it (with $PKset to your funded deployer's private key):
forge create --rpc-url https://rpctest.unova.io \ --private-key $PK \ src/HelloUnova.sol:HelloUnova
The transaction shows up on the explorer within a few blocks. Contract source verification is coming with the new explorer.
FAQ
Does Unova hold my private keys?
The launchpad uses your wallet (MetaMask, WalletConnect, etc.) for every signature your USER wallet makes. For Type-1/2 nodes, you provide an OPERATOR key in the deploy form and we ship it to the droplet (Type-1: encrypted into a v3 keystore JSON for NOP; Type-2: as an env var). For facility keys, we generate them server-side and store them AES-256-GCM encrypted; the plaintext only exists in memory when generating a bearer token.
Does Unova bill me for hosting?
You pay your cloud provider directly using your own API token; the VM rental from DigitalOcean (or your own hardware) is billed to you, not by Unova.
Why do I need to use a fresh wallet for the operator key?
The operator key sits on an internet-facing VM 24/7. If someone roots the droplet, they have that key. You don't want them to also have your treasury — keep operator keys separate from any wallet that holds significant UON.
What if I want to change my Type-2 bundle settings?
Open the node detail page → Bundle settings card → pick a preset or set custom values → Save (DB only) → Apply to running node (SSHes in, patches the live config, restarts the worker). The Apply button only shows for nodes deployed after the SSH-key feature shipped.
How do facility API tokens work?
Each facility you create gets a per-site wallet (privkey encrypted in our DB). When you click API token, we decrypt the privkey, POST it to your Type-2 node's Hermes /auth/getApiToken endpoint, and Hermes returns a short-lived UNOVA_TOKEN bearer. We never persist the token — re-generate on demand.
Can I have multiple Type-2 nodes per company?
Yes — the schema supports it. Each Type-2 has independent bundle settings and its own Hermes URL. Useful for hot/cold storage tiers (one with short interval for active data, one with long interval for archival).
Can I migrate my existing node to be tracked here?
Soon. The deploy wizard will get an "I already have a node" option that lets you register an existing operator address with your wallet, so it shows up alongside any new ones.
What happens if I stop tracking a node?
The DB row is marked stopped — the launchpad stops polling and hides it from My nodes. Your droplet keeps running on DigitalOcean (and keeps billing you) until you delete it there. The page shows a deep link to the droplet for one-click cleanup. We deliberately don't destroy cloud resources from our side — too easy to lose work to a bad click.
Where do validator rewards (UON) go?
To the operator address you provided in the deploy wizard — that's the address your node signs blocks with. Best practice: keep that address fresh (no UON treasury) and sweep rewards periodically to a cold wallet.
Reference
- API reference — endpoints exposed by your Type-2 node (assets, events, bundles, auth)
- Block explorer
- Monitor (live network stats)
- unova.io — main site, whitepaper, contact