SHOOK / OFFICIAL PROTOCOLDocumentation
MAINNET EDITIONOpen SHOOK
Economics / SHOOK

Revenue routing

Optional routes can deliver a portion of income while preserving failed deliveries in reserve accounting.

Route precedence

A configured stream route overrides its category route. If there is no configured stream route, the category route applies. If neither applies, income is retained. An explicit stream route with zero basis points overrides an inherited category route and retains new income.

routeBps ranges from 0 to 10,000. For each deposit, intended delivery is floor(amount × routeBps / 10,000). The remainder is retained. clearStreamRoute removes the override and restores category fallback.

Direct transfer or callback

A direct route sends native ETH or an ERC-20 to the chosen destination. A callback route invokes onReserveNativeRouted or approves the token receiver and invokes onReserveTokenRouted. Token callbacks must consume the exact expected amount; approval is cleared afterward.

To fund staking, use a SHOOK callback route to the active StakingVault. A direct SHOOK transfer to that address is unaccounted inventory, not supplemental reward funding. ETH callbacks to staking revert NativeAssetUnsupported.

Failed delivery

Delivery runs inside a revert-isolated self-call. If a destination fails, its amount remains pending rather than being lost or counted as successfully routed. Anyone can call retryRoute for the full pending balance. The retry uses the effective route at retry time, so an owner route change can redirect pending income.

The owner may instead retain all or part of pending funds, then withdraw them or leave them in custody. A failed destination is isolated; invalid source registration, a disabled stream, insufficient gas, or failure of the originating token transfer is a different matter and can still revert the source action.

Registered official revenue streams

Identifier preimageAssetCategory
SHOOK_FORMATION_NATIVE_FEESETHTrading
SHOOK_FORMATION_SURPLUSSHOOKProtocol; registered but official surplus goes to staking
SHOOK_LIQUIDITY_SHOOK_FEESSHOOKTrading
SHOOK_LIQUIDITY_NATIVE_FEESETHTrading
SHOOK_LIQUIDITY_PRINCIPAL_DUSTETHProtocol
SHOOK_COINFLIP_FEESSHOOKGaming
SHOOK_TURN_GAME_FEESSHOOKGaming

No default revenue promise

The initial configuration has no stream or category routes. Supplemental staking revenue therefore depends on a subsequent owner configuration and actual SHOOK receipts. Route configuration is not an ownership transfer.

Source reference

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

Imported source files 55

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

SHOOK docs Official protocol · Mainnet parameters