Settlement rail · Encrypted order flow · Per-fill bps

Run the settlement rail for private order flow.
You can't front-run — that's the feature.

You don't see amounts. You don't sandwich. You don't get gated. You earn deterministic on-chain bps per fill, fund the protocol treasury at the rate governance set, and exit with your bond after the registry's cool-down.

Demo flows below use mock data. Connect a wallet on /register to bond on-chain.

Who runs a relayer?

You're a fit if any of these matches.

Validator with idle gas budget
You already pay for a 24/7 box

The settlement tx is cheap; the operating cost is the node and the gas float. Relayer fee turns that float into a recurring revenue line — not block-lottery MEV income.

OTC desk with captive flow
You route your own customers

Operating your own relayer means the bps your clients pay comes back to you, not to a third party. Your orderbook is your moat — Scatter is the on-chain settlement rail underneath it.

Regulated-jurisdiction operator
You need compliance you can show an auditor

zk-X509 IdentityGate verifies users and operators against registered CAs. Sanctions checks are on-chain. You operate a privacy network that's also defensible in front of a regulator. Specific CA integrations ship as governance approves them.

The deal: what you don't do

Scatter relayers aren't searchers. The protocol pays you bps in exchange for these constraints — and that constraint set is exactly why privacy-seeking flow trusts the rail.

No sandwich
You can't see amounts or sides

Order payloads are zk-encrypted before they reach you. The settlement contract verifies the proof — you can't reorder for MEV because you don't know what you're reordering.

No vendor lock-in
Endpoint, fee, exit are yours

Your URL and fee are your on-chain config. You change either with one tx. Exit the registry and after the exit cool-down your bond returns — no foundation handshake to leave.

No opaque take-rate
Platform fee is on-chain, capped

The protocol skims a configurable platform fee on relayer claims (capped at 50% by contract; default sub-10% via governance). You always know what you net, and the cap means it can't surprise you.

How operating works

Three steps to a live, paying relayer.

1
Register on-chain

Post a bond to the RelayerRegistry contract and publish your endpoint URL plus per-trade fee in basis points.

2
Run the node

Spin up the open-source relayer (Docker / single binary). It accepts signed orders, batches them, and submits settlement transactions.

3
Collect fees

Each settled order pays your fee directly to your operator address. Withdraw any time; exit the registry to recover your bond after the cool-down.

Why operate on Scatter

Other private trading networks gate operator slots, require proprietary hardware, or hide the take-rate. Scatter is open and contract-priced — the platform fee that funds the protocol treasury is on-chain and configurable by governance.

PropertyClosed networksGeneric MEV stackScatter
Permissionless registration
Bond-secured slashing protections
On-chain, capped platform fee (no opaque take-rate)
Open-source node binary
Per-trade fee published on-chain

Operator economics

Indicative numbers from the testnet pilot. Production parameters set by governance.

Minimum bond
0.1 ETH
Recoverable on exit
Default fee
30 bps
0.30% per settled trade
Exit cool-down
7 days
Bond locked until elapsed

Run the node

The relayer node is open-source. Single Docker image, single config file.

Quick start
docker run -d \
  --name scatter-relayer \
  -p 8080:8080 \
  -e RPC_URL=$RPC_URL \
  -e OPERATOR_KEY=$OPERATOR_KEY \
  -e REGISTRY_ADDR=$REGISTRY_ADDR \
  ghcr.io/tokamak-network/scatter-relayer:latest

Health probe: GET /api/info. Submission endpoint: POST /api/orders.

Operator guide
  • · Hardware: 2 vCPU, 4 GB RAM, 50 GB SSD
  • · Trusted RPC with archive support recommended
  • · HTTPS termination required for registration
  • · Prometheus metrics at /metrics
  • · Logs to stdout, structured JSON
Read the operator guide →

Ready to operate?

Walk through the registration flow with mock data, then connect a wallet when you're ready to bond on-chain.