StockadeRun an executor
Operator guide

Run a Stockade executor node

Executors are the hands of the network. The Stockade planner decides every trade and signs it; your node relays that signature on-chain and pays the gas. You never see user funds, strategies, or the AI key.

What your key can do

Exactly one thing: broadcast a job the planner already signed. The ExecutorRelay contract rejects anything without a valid planner signature, the vault enforces its own caps on top, and each job runs exactly once. A leaked executor key cannot invent a trade, redirect funds, or exceed limits.

Security model

How a trade flows through your node

1 · Planner signs

The Stockade server runs the strategy, the risk kernel, and route resolution, then signs a job with EIP-191. Deciding stays central so every plan is auditable.

2 · You poll

Your node authenticates by signing a nonce with its own key, then claims offered jobs from /api/executor/jobs. Claims are atomic, so two nodes never take the same job.

3 · You simulate

Before spending a wei of gas, your node simulates the relay call locally. If it would revert, the node reports the job failed instead of broadcasting it.

4 · You broadcast

The node calls relayExecuteSwap on ExecutorRelay with the planner signature. The relay checks you are allowlisted, the signature is fresh, the jobId is unused, and the vault's own caps still apply.

Requirements

What you need

  • Any always-on machine. A $5 VPS, a home server, or a Raspberry Pi 4. No GPU, no database, no LLM key. The node is a poller plus an occasional single transaction.
  • A dedicated hot wallet with gas. A small amount of ETH on Robinhood Chain (chain id 4663). Each relayed trade costs about a standard swap of gas. At current network activity a few dollars lasts weeks.
  • An RPC endpoint. The public Robinhood Chain RPC works fine; a private one is nicer for latency.
  • An allowlisted address. Registration is manual for now. Ask in Telegram and we setExecutor your address on the relay.
Quick start

Five steps to join the network

  1. 1

    Generate a dedicated key

    One key per node, funded with gas money only. Never reuse a wallet that holds anything else. `cast wallet new` prints an address and private key in one line.

  2. 2

    Register with the team

    Send your address (not the key) on Telegram or X. We create an Executor row and call setExecutor(yourAddress, true) on the relay. Until both happen, the API will not hand you jobs.

  3. 3

    Set the environment

    Four variables: your key, the API URL, the RPC, and the relay address. No database, no LLM key, no user data ever touches your machine.

  4. 4

    Run the node

    One command: pnpm exec tsx scripts/executor-node.ts. It authenticates, starts polling, and logs each job it relays. pm2 or systemd keeps it alive.

  5. 5

    Watch it work

    Your address shows up on the public executor list with jobs done and gas spent. Gas is tracked precisely so reimbursement can be settled.

Environment
export EXECUTOR_PRIVATE_KEY=0x...      # your dedicated key
export ROBINODE_API_URL=https://stockade.digital
export NEXT_PUBLIC_RPC_URL=https://rpc.mainnet.chain.robinhood.com
export NEXT_PUBLIC_EXECUTOR_RELAY_ADDRESS=0x592870362195F3e437fE20f31061915fdc310191

pnpm exec tsx scripts/executor-node.ts
Operating notes

Running it well

  • Keep the gas wallet topped up. A broadcast that runs out of gas reports failed and another node claims the next job.
  • Trust the simulation. The node simulates every job before broadcasting. A job that reverts in simulation never costs you gas. If you see failed reports, the planner sent a bad job, not your node.
  • Two-minute leases. A claimed job you do not finish in two minutes becomes claimable by another node. Nothing double-executes; the relay enforces one execution per jobId on-chain.
  • Your stats are public. Jobs done, jobs failed, and gas spent show on the landing page executor strip and /api/executors. Good uptime builds your track record for future rewards.
Relay contract

0x592870362195F3e437fE20f31061915fdc310191

FAQ

Operator questions

Do I need to stake STOCKADE to run a node?

Not today. The network is permissioned: the team allowlists your address on the relay contract. Stake-gated executor admission is a later upgrade and is additive, meaning current nodes keep working when it lands.

Can I get slashed?

No. There is no bonding or slashing in this version. The worst case is wasting gas on a reverting transaction, and the node simulates every job locally first, so that should not happen.

What stops a malicious planner from draining users?

Two things. Your node simulates every job before broadcasting and refuses ones that revert. And the vault contract enforces per-tx caps, daily caps, and a router whitelist on every call, signed or not. A bad planner can only move what those caps already allow.

What if my node goes offline?

Your claim lease expires after two minutes and another node picks the job up. If every node is down, the server sweeps expired jobs and executes locally, so a user's schedule never gets stuck waiting on the network.

How do I get paid?

Every job you relay records gasSpentWei against your address. Reimbursement settles off-chain at first. An on-chain rebate contract is planned as a follow-up.

How much gas does a node burn?

One relayed trade is a single contract call, roughly a standard swap. At current activity (about 20 on-chain buys a week across all users) a few dollars of ETH keeps a node running for a long time.

Independent third-party project. Not affiliated with Robinhood Markets, Inc. Educational software only.

Back to home