Become a maker
A maker quotes a Stoa pool: a bid and an ask, with sizes, refreshed every block. When a swap comes in, the router compares that quote with every other venue and fills against it when it is the best price. The pool earns the spread: it buys below the market and sells above it.
A curator owns a pool's inventory and keeps what the spread earns; a maker is the wallet that posts the quotes. Usually they are the same team. See Become a curator for the pool side.
What each network asks of a maker
| Elysium | Robinhood Chain | |
|---|---|---|
| Pools | WHYPE/USDC is live and waiting for makers (0x7800…400a); more pairs on request |
The first maker pool opens with the first maker; tell us the pair |
| Bond | 10 HYPE per pool, in the MakerRegistry | $STOA, one bond for all your pools, in the BondRegistry. Each pool sets its minimum when it is listed |
| Withdrawing a bond | 3 days | 3 days |
| A slashed bond | Goes to the treasury | Is burned |
| Gas | HYPE | ETH |
Steps
- Apply. DM @StoaDEX with the pair, your price source, the size you want to quote and your maker address.
- Pool. Quote an existing pool, or have a pool deployed for your pair with you as its owner, so the inventory and the spread are yours.
- Listing and approval. The admin Safe lists the pool, sets its minimum bond and approves your maker address through the 48-hour timelock; a new pool also goes through the router's 24-hour wait before swaps can use it. About three days in all, every step public on-chain (Admin and permissions).
- Bond. On Elysium, call
bond(pool)on the MakerRegistry and send at least 10 HYPE. On Robinhood Chain, approve $STOA and callbond(amount)on the BondRegistry, or use the bond panel on the $STOA page. - Inventory. The pool's owner sends both tokens of the pair to the pool. Only the owner can take them out (
withdraw). - Quote. Start the Maker kit with
DRY_RUN=1first, then live. Your pool shows in Pools once quotes are flowing.
You can quote only while all three hold: the pool is listed, your address is approved for it, and your bond is at least the pool's minimum.
How a quote works
// prices: quote-token raw units per 1e18 raw base units
function setQuote(uint128 bidPx, uint128 askPx, uint96 bidSize, uint96 askSize, uint8 validBlocks) external;
function cancelQuote() external;askPxmust be abovebidPx, andbidPxabove zero.validBlocksis 1 or 2 (the pool'smaxValidBlocks, 2 today): a quote expires on its own after that, about 200 to 400 ms on Elysium and 500 ms on Robinhood Chain, which counts its own 250 ms blocks. A bot that crashes stops quoting by itself.- Each fill uses up the quoted size on its side. A new
setQuotereplaces the old quote. - The maker, the pool owner or the guardian can pull the quote at any moment with
cancelQuote. - A pool can have a quote guard that rejects prices too far from an independent reference (Build a price provider), and a cap on one swap's size (500 USDC on WHYPE/USDC today).
- Swaps against the pool pay the pool's 2 bps fee to Stoa's fee contract.
Slashing and leaving
A maker that posts clearly abusive prices can be slashed: part or all of its bond, by the owner, which is the 48-hour timelock. Withdrawing a bond takes 3 days (requestUnbond, wait, then withdrawUnbonded), longer than the timelock, so a slash always lands before a maker can leave.
Risks for a maker
Quoting is not free money. The inventory can lose value when prices move, a slow or wrong price feed gets picked off, and a bad quote can cost the bond. The Maker kit stops quoting on a stale or jumping price, limits how much inventory one side can take and halts at a daily loss limit, but the risk stays with the maker.
