Skip to content
The Mog guide

Permissions

Mog’s contracts enforce every permission. No server can grant a permission or take one away.

ActionWallet (root)Session key
Place, cancel, close, top upYesYes
Name a builder on an orderYes, but not the account or any live session key of itYes, but not the account or any live session key of it
WithdrawYesNo
Grant or revoke session keysYesNo
Give up a queued claimYesNo
Mark its own unused nonces spentYesYes

A session key expires. At launch it lasts at most 7 days. A revoked key cannot be granted again.

Anyone may send these calls. Each one pays the rightful party or advances shared state. None of them pays the caller.

CallEffect
Deliver a signed instructionApplies the signer’s order, cancel, close or top-up. The signature decides; the sender does not.
DepositAdds the sender’s own USDG to an account
Collect for an accountPays that account’s settled claims into its own balance
Pay a builderPays that builder’s earnings into its own balance. Only while the venue is not paused and every market is at rest.
DistributePays the buyback and operations allocations to their payee addresses, which governance sets under the 24-hour delay. Only while the venue is not paused and every market is at rest.
Void pending ordersOn a paused or delisted market, voids pending orders and refunds their collateral and open fee to each owner
Apply pricesSettles a market up to its latest posted prices
Post pricesAccepted only with the market’s oracle signature
Record a builder balanceRecords the sender’s own MOG balance
Sweep a deposit addressMoves USDG from an account’s deposit address into that account
RoleCanCannot
Oracle signerSign the prices for its marketsSend funds, change settings
GuardianPause one market or the whole venue, and cancel a queued governance actionStop withdrawals, deposits, collections, cancels, closes or price posting
Governance, immediatelyChange a market’s risk settings: close-curve width, liquidation buffer, leverage limits, pace, side cap, and the drift and volatility charges. Change the curve exponent, the fade time and the mint fade time. Replace a market’s oracle signer. The drift and volatility charges, the side cap and the fade time apply to open positions from the next price update, so they change what open positions are paid.Change fees, payees or code
Governance, after a 24-hour delayChange fees and payees, change session-key lifetime, delist a market, upgrade the contractsAct before the delay ends
ListerList a new market. A new market opens paused.Change an existing market

A pause stops new orders, top-ups and fills on its market, or on every market for a venue-wide pause. Pending orders on a paused market can be voided by anyone, with a refund. A venue-wide pause also stops builder payments, distributions and giving up queued claims. A pause never stops a trader from cancelling, closing or withdrawing. See Risk for what these roles mean for your funds.

The public endpoints limit requests by address. Limits can change without notice while this page is in testing. A refusal returns HTTP 429 with Retry-After. See Errors.

EndpointLimit per addressNotes
Relay, POST /submit120 instructions a minuteEach instruction in a batch counts. Each signer also has its own limit of 60 instructions a minute.
Info endpoint, POST /indexer/info3,000 cost a minuteEach type costs by what it reads: one record 1, one account’s list 5, and a scan across all accounts 20. Writes such as profileSet and follow cost 20.
Stream, /indexer/ws16 open connections

An IPv6 caller counts by its /48 prefix at the relay. Callers behind one shared address, such as an office network, share its limits. One mog algo run --every 1s spends about 600 info cost a minute, so several runs fit behind one address.