SHOOK / OFFICIAL PROTOCOLDocumentation
MAINNET EDITIONOpen SHOOK
Reference / SHOOK

Errors and recovery

Common reverts and the next state or input to inspect.

Market errors

ErrorInspect
FormationNotOpenBlock timestamp versus immutable opensAt.
FormationComplete / FormationReadygraduated, currentTarget, and circulation; refresh the market route or call eligible syncFormation.
DeadlineExpiredThe transaction’s Unix-second deadline; create a fresh quote and deadline.
SlippageExceededInput/output bounds, available value, and price movement since the quote.
InsufficientInventoryRequested SHOOK output versus the current formation target.
NativeTransferFailedWhether the payer or receiver contract can accept the relevant refund or payout.

Staking errors

ErrorInspect
NotActiveWhether formation has graduated and activated staking.
InsufficientPrincipal / InsufficientSharesThe caller’s position, not just its external token balance.
SharePrecisionExceededRounding at the requested amount; simulate a different amount or complete close.
ZeroAmountZero deposit, zero withdraw, or no claimable reward.
OnlyReserveVault / IncorrectAssetSupplemental funding caller and token; do not fund through a direct transfer.

Reserve and game errors

ErrorInspect
InvalidStream / UnauthorizedSourceRegistered source, enabled state, and asset; owner changes may affect source actions.
InvalidRouteEffective destination and route basis points.
BetBelowInitialBetThe first wager from a new Coinflip wallet must match the original creator wager minimum.
SideCannotChangeThat wallet’s already registered side.
RandomnessTimeoutOpen / ResponseWindowOpenWait until the exact eligible deadline before a timeout or finalization.
RandomnessWindowClosedUse the game-specific cancellation or epoch rollover path if eligible.
NotPlayerTic-Tac-Toe start or dispute opening must come from a participant wallet.
NothingToClaim / NotWinnerClaim status, position owner, and final outcome.

Decode the real revert

Use the compiled ABI to decode custom errors, including inherited ERC-20, signature, and reentrancy errors. Similar names across contracts do not imply identical recovery rules. Simulate against the current state and verify the exact function and status before retrying.

Avoid blind retries

A failed approval or reverted state-changing call is not proof that a second call will succeed. Correct the allowance, balance, receiver, deadline, route, or lifecycle first. For a pending transaction, inspect the original hash and nonce before sending another state-changing request.

Source reference

Checked against the source shipped with this documentation. Contract calls and units are detailed in the contract reference.

Imported source files 68

Supporting contracts, interfaces, and libraries imported by the sources above, including their dependencies.

SHOOK docs Official protocol · Mainnet parameters