Skip to main content

Tutorial: Operator End to End

1 minTutorials

Operator, end to end.

// empty machine to withdrawn stake · 12 steps · live CLI v2.0.0 + contracts

Every step in order, each paired with the exact command or Console action and the result you should see. CLI steps run on the machine; Console steps run at app.parallelix.io. Commands copy without the leading prompt; nodeId, stake, and rewards are your own.

Note·Before you start

  • A machine that can stay online: macOS (Apple Silicon or Intel) or Linux. Windows is supported through WSL2 only; native Windows is not.
  • A wallet holding at least 50,000 $PRLX for the stake, plus a little ETH for gas on Ethereum mainnet. Account for the 4% buy tax when acquiring $PRLX, so buy a little over the floor.
  • MetaMask in the browser you open the Console with. The node key generated by setup is separate and never the staking wallet.
  1. // 01Install the stack
    node cli

    On the machine that will run the node, run the one-line installer. On a fresh Linux GPU box it installs Node, the Ollama inference runtime, and the parallelix-node CLI. macOS works the same way; on Windows, run it inside WSL2. The installer offers to run setup immediately.

    parallelix.nodegpu-box · installer
    $curl -fsSL https://parallelix.io/install.sh | sh
    node 22.xruntime
    ollamainference runtime
    parallelix-nodev2.0.0
    next · run: parallelix-node setup
    OSLINUXRUNTIMEOLLAMACLI2.0.0// sample
    step 01
    curl -fsSL https://parallelix.io/install.sh | sh

    Node, Ollama, and parallelix-node installed and ready.

  2. // 02Run setup
    node cli

    Run parallelix-node setup. Five guided steps: [1/5] hardware detect (tier), [2/5] Ollama check (waits if starting), [3/5] model recommend and pull (largest fitting 90% of VRAM; any Ollama model works), [4/5] node key generation (separate low-value secp256k1 key, never your staking wallet), [5/5] prints a prefilled Console staking link. After you stake, setup polls the coordinator and auto-detects your nodeId, saves it to config, then offers service install. Re-running setup resumes safely.

    parallelix.nodegpu-box · setup
    $parallelix-node setup
    [1/5] hardwareRTX 4090 · 24 GB · tier 3
    [2/5] ollamarunning
    [3/5] modelqwen2.5:14b · pulled
    [4/5] node keygenerated · 0600
    [5/5] stake now app.parallelix.io/operate/stake?...
    detected nodeId 4217saved to config
    TIER3KEYSECP256K1NODE#4217// sample
    step 02
    parallelix-node setup

    Hardware, model, node key, and staking link ready. After staking, nodeId is saved automatically.

  3. // 03Connect your wallet
    console

    Open app.parallelix.io and connect the wallet holding your $PRLX with MetaMask (it forces the account picker). The Console is the on-chain half; it never touches the node key.

    // Console · DashboardOpen in console
    // operator · dashboardYour nodes
    3 active
    nodestateuptimeweight
    #4217active99.2%GPU · 2.5x
    #4218active98.0%GPU · 3.0x
    #4220active94.7%CPU · 1.0x
    #4231idle0%
    nodes online3 / 4
    avg uptime97.3%
    stake posted410k $PRLX
    accrued reward23,515 $PRLX

    Rewards accrue from the 25% Operator Rewards bucket, weighted stake x tier x uptime. Idle nodes (no compute online) earn nothing.

    The connected address shows in the Console header on Ethereum mainnet.

  4. // 04Approve and register
    console

    Open the prefilled staking link from setup (tier and nodeKeyHash are pre-filled). Choose a stake of at least 50,000 $PRLX, then approve $PRLX and sign registerNode(stakeAmount, tier, nodeKeyHash) on NodeRegistryLocker. One stake = one node = one permanent nodeId. Setup detects the nodeId automatically once the transaction confirms.

    contract call
    registerNode(stakeAmount, tier, nodeKeyHash)
    Node registration pipelineNode layer · 4 steps
    01AnnounceCLI register02Manifestsigned JSON03Registernode_id issued04First dispatchrequest arrives
    // Console · Staking · registerOpen in console
    // operator · stake & registerone stake = one node
    1. 01

      Hardware tier

      Declare CPU or GPU tier. The CLI verifies it.

    2. 02

      Stake amount

      Lock >= 50,000 $PRLX. Higher stake, higher weight.

    3. 03

      Sign registerNode

      registerNode(stake, tier, nodeKeyHash) -> nodeId

    node #4231 registered · principal returned in full on unstake (7-day cooldown, no slashing)

    The transaction confirms; setup detects the nodeId and saves it to config.

  5. // 05Start the node
    node cli

    If setup finished with the service install, the node is already running. Otherwise, start it in the foreground: the daemon heartbeats and serves dispatched inference requests through Ollama. --node-id is optional if setup saved it to config.

    parallelix.nodegpu-box · node #4217
    $parallelix-node start --gpu
    node onlinenodeId #4217
    heartbeatliveness · 10s
    request inbound · ai-inference · accepted
    serving inference · qwen2.5:14b (open-source)
    proof-of-executionsha256 commitment
    uptime 99.4%rewards streaming
    STATEACTIVEPOESHA-256REWARDSSTREAMING// sample
    step 05
    parallelix-node start --gpu
    // Console · ParalleliX AI · open-source model running
    parallelix ai // open-source model · running8 live
    requests routed to capable nodesoss-models
    node-11
    99%rtx-4090
    node-13
    91%rtx-4090
    node-15
    88%a6000
    node-04
    87%rtx-4090
    node-08
    78%a6000
    node-07
    72%a6000
    node-02
    61%rtx-4090
    node-09
    ··rtx-3090
    answers streamingcredits · metered off-chain
    1980 TFLOPS · fp168 streaming

    Each whole inference request streams on its own node across the pool. Your node serves requests it is matched to and accrues uptime while it does.

    Dashboard shows status, models, lifetime earnings, and a live request feed. The node is online and accruing.

  6. // 06Install as a service
    node cli

    To run 24/7, install the node as a systemd (Linux) or launchd (macOS) service that survives reboot and auto-restarts on failure. Setup offers this at the end; you can also run it manually. On Windows, run it inside WSL2 where the Linux path applies.

    parallelix.nodegpu-box · systemd
    $parallelix-node service --gpu
    installed + startedservice 'parallelix-node'
    logs: journalctl -u parallelix-node -f
    stop: sudo systemctl stop parallelix-node
    survives rebootrestart on failure
    MANAGERSYSTEMDBOOTENABLEDRESTARTON-FAIL// sample
    step 06
    parallelix-node service --gpu

    Installed and started as a managed background service.

  7. // 07Watch earnings stream
    console

    On the Earnings page, the claimable total ticks up per-second while the node is online. Reward weight is stake x tier; earned(nodeId) grows every second from the per-second stream.

    // Operator earnings looplive
    ParalleliX AI · inference requests
    1. 01

      Stake

      $PRLX on NodeRegistryLocker

    2. 02

      Run

      uptime heartbeats

    3. 03

      Serve

      one whole AI request

    4. 04

      Prove

      SHA-256 commitment

    5. 05

      Earn

      per-second stream

    Rewards stream from the 25% Operator Rewards bucket, unlocked linearly via Sablier (~34,200 $PRLX/day), streamed per-second to online nodes by stake x tier. No slashing: principal returns in full on unstake.

    // Console · EarningsOpen in console
    // operator · earningsaccrues every block
    claimable
    23,515.31$PRLX
    // daily share
    weight = stake x tier x uptime
    share = daily_pool x weight / Σ weight
    source: 25% Operator Rewards bucket · ~34,200 $PRLX/day via Sablier
    claim(nodeId)wallet signs · paid to owner

    A live per-second ticker showing accrued $PRLX per node.

  8. // 08Claim
    console

    Pull the accrued balance to your wallet at any time, to wei precision. claimMany batches a claim across every node with a balance. Claiming does not interrupt accrual.

    contract call
    claim(nodeId)
    // Operator rewards · release scheduleschedule
    cap 25.0M $PRLXlinear ~1.04M / movia Sablier~34,200 / day
    25M12.5M0M+00M+06M+12M+18M+24

    Streamed per-second to online nodes by stake x tier. In steady state, an 85% share of ParalleliX AI usage payments funds rewards. The live released figure is on-chain via Sablier.

    The accrued $PRLX transfers to your wallet; the ticker resets and keeps climbing.

  9. // 09Pause and resume
    console · optional

    On the Nodes page, Pause is an owner-signed force-idle: it takes a node offline without unstaking (it moves to Idle and stops accruing). Resume brings it back online.

    The node shows Paused / Idle, then Active again on resume.

  10. // 10Request unstake
    console · optional

    When you want your principal back, call requestUnstake(nodeId). The node stops earning and a 7-day cooldown begins. cancelUnstake(nodeId) aborts it and returns the node to service. The daemon self-stops cleanly when the coordinator signals in_cooldown.

    contract call
    requestUnstake(nodeId)

    The node moves to Cooling with a countdown; the daemon self-stops on the coordinator signal.

  11. // 11Wait out the cooldown
    console · optional

    The 7-day cooldown timer runs on the node card. There is no slashing: the principal is safe the whole time.

    After 7 days the node exposes Withdraw stake.

  12. // 12Withdraw
    console · optional

    Call withdrawStake(nodeId). The full principal returns to your wallet and the nodeId is permanently retired. To rejoin, register a new node.

    contract call
    withdrawStake(nodeId)

    Full stake returned; the nodeId is retired and not reusable.