Skip to content

Run a Morphit node

Operate your own instance. Earn a share of listing fees. Help make Morphit uncensorable.

Claim your operator tag

Operator registration is permissionless. Broadcast a one-time op to claim a tag on-chain — first-come-first-served. This tag appears in orders placed through your instance and in the /operators directory. Your posting key signs the op, so only you control your tag.

Sign in with your Morphit account to register as an operator.

Sign in

Why run a node?

  • Morphit where it matters

    Every additional node makes the network harder to censor. If your country blocks morphit.io, your instance stays reachable. You serve users who'd otherwise have no way to trade.

  • Serve your community

    Brand the interface for your region, your language, your local payment methods. Users trust frontends that speak their language and feel familiar — yours will.

  • Minimize metadata leakage

    Users trading through your instance share metadata with you and only you. No other operator, not even Agorise, sees their activity patterns.

  • Paid automatically by Smart Contract

    Every BLURT-paid listing fee your instance attracts pays you 90% — only 10% goes to the Morphit treasury to fund welcome bonuses, loyalty delegations, and account-creation costs. BTC- and XMR-paid fees flow 100% to the treasury for the same project obligations (the on-chain split mechanism only works for BLURT, but we made the BLURT split aggressively generous to compensate — 90/10 in your favor instead of the 50/50 we considered originally). A Smart Contract running on the Blurt chain enforces the split — not a person, not a company, not anyone who can change their mind. 100% automated. No invoices, no payouts, no trust assumptions. You provably assist, you provably get paid. Guaranteed in code. Payouts are denominated in BLURT, so if BLURT appreciates, so do your earnings — without any additional work on your part. Fully open source under AGPL-3.0; if you can read the indexer source, you can audit the payout logic.

How to get started

  1. 1

    Provision a VPS

    Linux (Debian 12, Ubuntu 22.04+, Arch, NixOS — we test on Debian). 2 CPU cores at 1 GHz+, 2 GB RAM minimum (4 GB comfortable), 20 GB SSD. A Raspberry Pi 4, an old laptop, or a $5/month VPS all work. No static IP needed — DDNS works fine. See the FAQ entry on minimum hardware requirements for the full breakdown across hobbyist, serious, and spare-laptop tiers.

  2. 2

    Clone the repo and configure

    Fork or clone git.agorise.net/agorise/morphit. Copy env examples from ops/env/, set your domain, set the indexer's RPC endpoints (Blurt public nodes work out of the box).

  3. 3

    Install services

    systemd units for the indexer and relay are in ops/systemd/. nginx config with TLS is in ops/nginx/. Run the migration tool once to initialize the database schema.

  4. 4

    Register your operator identity

    Run the register-operator CLI tool with your chosen tag (1-64 chars, alphanumeric + dashes/underscores/dots). Tags are first-come-first-served — once you broadcast the one-time `morphit_register_operator` op, that tag is yours. Your instance appears in /operators and begins attributing orders (and earning your 90% share of BLURT-paid listing fees) immediately. See the operator-earnings FAQ for the full economics.

First time? If you've never set up a server before, start with the friendly walkthrough at RUN-A-MORPHIT-NODE.md.

Full runbook: OPERATIONS.md.

Your instance, your asset policy

Morphit's federation lets each operator pick which tradable assets their instance accepts new orders for. New assets ship default-ON instance-wide — operators opt out per-asset via the `MORPHIT_INDEXER_DISABLED_ASSETS` environment variable. This is how a federation of instances can serve different user preferences without anyone needing to fork the code.

  • Default-on for new assets. When the project adds a new tradable asset (USDT shipped most recently), every instance accepts orders for it the moment they upgrade. No code change, no per-asset enablement step.
  • One env var to refuse. Operators who prefer their instance specializes in privacy-first or decentralization-first assets can disable any trade-only asset with `MORPHIT_INDEXER_DISABLED_ASSETS="USDT"` (or a comma-separated list for multiple). Users posting through this operator's frontend then can't pick a disabled asset.
  • Federation stays intact. Disabling an asset on your instance doesn't hide peer instances' orders from your users — chain history is shared, so the orderbook still surfaces them as read-only. The gate is only on NEW orders posted FROM your instance.

Full env-var reference and multi-asset examples in OPERATIONS.md under §Trade-only asset configuration.

Resource requirements

Hardware
2 CPU cores, 2-4 GB RAM, 20 GB SSD
Network
Home internet works fine — DDNS handles dynamic IPs, no static IP required
Your time
One hour monthly for maintenance

Ready to begin?

Clone the repo, set up your hardware (a Pi 4 or any old laptop will do), follow the runbook. Once you broadcast the operator-register op your instance is live and earning.

See the repo Browse operators