Officiants
Officiants are bonded operators who advance the ticker price and run the listing ceremony. They earn 3% of the ticker price on a compliant Rite and lose their whole bond on a failed one.
The role
An Officiant does three things:
- Watches the queue and claims the Rite of the eligible Pot.
- Pays the ticker at the auction with its own HYPE and performs the ceremony from its own address.
- Gets repaid at settlement, with a fee, once every check passes.
The Officiant never holds the sponsors' HYPE. It only advances the ticker price, and the contracts decide whether it is repaid.
Bond
| Parameter | Testnet | Mainnet (planned) |
|---|---|---|
| Minimum bond | 0.1 test HYPE | Posted in $SYMB |
| Unbond cooldown | 10 minutes | To be set at mainnet |
| Rites at a time | One per Officiant, one in the whole protocol | To be set at mainnet |
bond()posts or tops up a bond with the attached value.requestUnbond()starts the cooldown. An Officiant with a pending unbond cannot claim Rites.cancelUnbond()reverses it.unbond()withdraws the whole bond after the cooldown. It is impossible while a Rite is assigned.
$SYMB is not launched. On testnet every bond is in test HYPE.
Fee
A compliant Rite pays the Officiant the ticker price it paid, read from the auction's sale record, plus 3%. The payment is pulled with claimOfficiantPayment() on the Pots contract. See Fees.
Slashing
If a Rite is not settled by its deadline (30 minutes on testnet), anyone can call fail(potId). The whole bond of the assigned Officiant is sent to the Treasury, and the Officiant's failure count increases. The ticker price it paid is not repaid.
A Rite cannot be settled when it is non-compliant, so a non-compliant Rite always ends in failure at the deadline.
Running a Rite with the console
The Officiants page has a bond and unbond panel and, for a bonded Officiant, a Rite console.
- Bond at least 0.1 test HYPE.
- When a Pot is eligible, press "Claim the Rite".
- Press each step in order: buy ticker, create wallet, genesis, link, set fee share to 0, revoke freeze, list. Each button is disabled until the previous transaction is confirmed. The console fills in the values: ticker and spec from the Pot, the predicted wallet, the supply in Core wei, the reference price.
- Press "Settle".
- Claim your payment.
Tip: the auction price keeps descending after you claim. Buying near the end of the window costs less, but you must buy before the window ends, or the next window starts at a higher price.
Running the bot
A demo Officiant bot lives in scripts/src/officiant.ts. It bonds if needed, watches eligiblePot(), claims the Rite, waits for a price near the floor, runs every step, settles, collects its payment and flushes the protocol fee to the Treasury. It logs every transaction hash with an explorer link, and it resumes a Rite that was interrupted.
| Command | Effect |
|---|---|
pnpm officiant | One pass: resume an assigned Rite, or watch up to 9 minutes for an eligible Pot and run it |
pnpm officiant --watch 20 | Same, watching up to 20 minutes |
pnpm officiant --loop | Run forever |
pnpm officiant --fail-expired | Fail any Rite past its deadline, then exit |
The bot reads OFFICIANT_PRIVATE_KEY from .env.local. A scheduled workflow that runs it every 10 minutes is included and disabled by default.