Staking & economics
You lock a stake to register, earn a charge on every request you serve, and the protocol adds a fee on top of your charge.
The stake amounts and the protocol fee are contract parameters, read live from the chain, and may change. The figures below reflect the current configuration; the contract, and what the node software reports from it, are authoritative.
The USDC stake
Registering locks a USDC stake in the protocol at two levels:
- A stake to register the operator identity itself — currently $250 USDC.
- A stake per node you bring online under that operator. The first node is covered by the operator stake; each additional node escrows $25 USDC more.
The stake is not a fee. It stays locked while your node is registered and is returned in full when you deregister in good standing. An operator found acting in bad faith can be evicted, with a portion of its stake slashed, through the protocol's moderation path — an admin action, not a permissionless sweep.
How you earn
You're paid per request, in USDC, settled on-chain (see The payment flow). For each request:
- You quote a price ceiling in the ticket.
- You charge the actual amount in the receipt, within that ceiling.
You set your charge through your advertised rates (see Serving models & pricing). Other operators serve the same models, and cheaper or faster nodes get picked more often, including by Auto mode.
The protocol fee
On top of your charge, the protocol takes a fee in basis points of the
charge (the contract's protocolFeeBps), paid to the treasury at settlement.
The payer pays the fee, not you. Your advertised rate is your charge; the node grosses up the ticket's maximum to cover the fee, and the rate shown in the app already includes it. Don't inflate your published rate to absorb it.
Where the money lands
- Your per-request charge settles to your operator's owner address — the payout address you set at registration.
- The protocol fee settles to the treasury.
- The unused escrow is refunded to the user in the same atomic settlement.
Settlement is on-chain and final, so your revenue is realized request by request as you serve.
Keep the signing account funded with ALGO
Two accounts do different jobs. The owner address (cold) receives your USDC
payouts, so the key that signs online isn't the key that accumulates revenue.
Your node's signing account (hot, key on the node) signs its half of the
escrow open() group and of the atomic settle() group for every request. The
client submits both groups, but through Algorand fee pooling your signed
transaction carries the whole group's network fees. The payer's net ALGO
cost is zero; that cost falls on you.
Budget roughly 7,000 µALGO per paid request for the signing account: about
2,000 µALGO at open (2 × minTxnFee) and about 5,000 µALGO at settle
(5 × minTxnFee, covering the group plus the contract's three disbursement
inner-transactions). The settle fee is sized to the payments that actually
happen, so a free model settles for about 2,000 µALGO and a failed
request — billed nothing and refunded in full — for about 3,000 µALGO. A
standalone watchdog settle, the fallback when the payer never acknowledges,
costs about the same as the group it replaces.
The node never refills the signing account. Fund both accounts at registration, keep a working ALGO float on the signing account, and top it up manually before it runs low. Proxies and the web client stop sending requests to a node whose signing account has less than 5 ALGO spendable (its balance minus Algorand's minimum balance), because that account pays the fees of every request the node serves. Below the floor your node gets no new requests, and so earns nothing, until you top it up. The USDC it has already earned lands at your owner address, so it can't refill the float by itself. At about 7,000 µALGO per request, 5 ALGO is only about 700 requests' worth of fees, so keep the float well above it. For how each transaction in the group is authorized, see The payment flow.
The economic loop, end to end
Lock stake
Register your operator and nodes at operator.zerosignal.ai; the transaction you sign there locks the stake. See Registering on-chain.
Advertise
Publish your models and rates. See Serving models & pricing.
Serve requests
Quote a ceiling and charge the actual amount.
Settle
Each request settles on-chain, as described in Where the money lands.
Compete on price and performance
Faster, cheaper, reliably reachable nodes win more requests.
Deregister
Wind a node down in good standing to recover your stake.