Skip to main content

Serve the compute network

The on-chain rail: consumers create subscriptions on-chain, the protocol routes requests to agents, and your node earns the subscription's fee for every valid delivery. (Prerequisite: a running node.)

1. Fund delivery gas

Every delivery is a transaction your agent address signs, so it needs ETH on the target network (HPP Sepolia for testnet). The address was printed by npm run init and is shown on the dashboard's Agent Wallet card, along with its live balance.

2. Create the agent's payment wallet (one-time)

Deliveries are only accepted from agents whose payment wallet was created by the protocol's WalletFactory — without it, delivery transactions revert (InvalidWallet):

PRIVATE_KEY=0x<agent key> KEYSTORE_PASSWORD=<password> \
WALLET_FACTORY_ADDRESS=<factory for your network> \
npm run setup:wallet
✅ Agent wallet setup completed successfully!
✓ Agent EOA: 0xYourAgent…
✓ Payment Wallet (CA): 0xYourPaymentWallet…

Factory addresses per network: Registry & deployments. (Running in Docker? Copy the updated config.json over docker/config.docker.json and restart.)

3. How you earn

subscription (consumer) → request → your agent runs the container
→ delivery tx (your gas) → Billing pays feeAmount to you
  • The dashboard Events card counts it: Completed rising = earning.
  • Computing History shows each delivery's fee earned vs gas spent — profit per job.
  • One delivery per request — the first valid delivery wins, so being fast and reliable wins requests.

See it happen end to end: the first-request tutorial sends a real subscription + request to your own node on Sepolia and reads the result back on-chain.

4. Levels of participation

LevelWhat you runWhat it earns
Basic workerRegistry containers (hello-world, llm, …)Subscription fees for plain deliveries
Verified computeA container plus its proof service, configured under verifiers[]Fees from subscriptions that require proof-checked results
VRF operatorThe noosphere-vrng container + the vrf config blockFees from NoosphereVRF epochs

Serving your own container

Anything that speaks the container contract (POST /computation{ output }) can be served. Add it to containers[]; to make it requestable by other consumers, publish it to the community registry so subscriptions can reference its ID.

Troubleshooting (earning loop)

SymptomFix
No requests arrivingAgent wallet funded? Active subscriptions exist for a container you serve? Send one yourself
Requests Skipped in EventsThe request was for a container you don't serve, or another agent won it
Delivery revertsAgent wallet gas balance; container ID must match the subscription's
Fee barely covers gasComputing History shows fee vs gas per job — that subscription's feeAmount is too low to be worth serving

:::tip The other rail The same node and containers can also earn per-call over HTTP/MCP with zero funds — see Sell from an agent in the x402 docs. Both flows side by side: How it works. :::