01
Behavior
- Opening and closing time in a fixed UTC offset, with optional US or EU daylight saving.
- Overnight sessions (closing before opening) count toward the day they opened.
- Can apply to buys, sells or both.
- Market-hours preset: 09:30–16:00 New York time, Monday to Friday.
Limitation. Applies to trades routed through Pump Hooks only. A transaction that trades on Pump directly is not affected.
Limitation. Uses the cluster clock; public holidays are not observed.
02
Callbacks
ABI v1 · wire values frozen| # | Callback | Subscribable | Default | Semantics |
|---|---|---|---|---|
| 0 | BeforeBuy | yes | Routed buy, before the Pump CPI. Can deny. | |
| 1 | AfterBuy | — | Routed buy, after the Pump CPI. Sees executed amounts; can still fail the transaction. | |
| 2 | BeforeSell | yes | Routed sell, before the Pump CPI. Can deny. | |
| 3 | AfterSell | — | Routed sell, after the Pump CPI. | |
| 4 | BeforeSwap | yes | ● | Either side, before the Pump CPI. Can deny. |
| 5 | AfterSwap | — | Either side, after the Pump CPI. | |
| 6 | BeforeLiquidity | reserved | Reserved (wire value 6). | |
| 7 | AfterLiquidity | reserved | Reserved (wire value 7). | |
| 8 | BeforeFeeAction | reserved | Reserved (wire value 8). | |
| 9 | AfterFeeAction | reserved | Reserved (wire value 9). | |
| 10 | OnGraduation | reserved | Reserved (wire value 10). | |
| 11 | OnStrategySignal | reserved | Reserved (wire value 11). |
03
Capabilities
granted at install; enforced by the executor| ■ | READ_MARKET | Read market config, venue reserves and the trade context |
| ■ | VETO_ROUTED_SWAP | Deny a routed trade in a before-callback (reverts the transaction) |
| □ | WRITE_HOOK_STATE | Persist its 48-byte slot state on the market |
| □ | WRITE_USER_STATE | Update the trading wallet's per-market state |
| □ | AWARD_POINTS | Credit XP / points in the wallet's per-market ledger |
| □ | TREASURY_SIGNAL | Emit treasury allocation intents for the strategy vault |
| □ | STRATEGY_EXECUTION | Bound or request vault strategy execution (TWAP, orders) |
| □ | ORACLE_READ | Read an external oracle account (reserved; not granted in V1) |
| □ | EXTERNAL_CPI | Call an external hook program (reserved; no permissionless CPI hooks in V1) |
| □ | EMIT_SIGNAL | Emit or consume signed strategy signals |
04
Config schema
48 bytes · little-endian| Field | Type | Offset | Unit | Preset | Description |
|---|---|---|---|---|---|
| weekdays | u8 | 0 | flags | 31 | Days trading is open; none = every day (bit0 Mon … bit6 Sun) |
| dst | u8 | 1 | flags | 1 | Daylight-saving rule for the time zone (0 none, 1 US, 2 EU) |
| tzOffsetMin | i16 | 2 | minutes | -300 | Time zone: standard-time offset from UTC, in minutes |
| openMin | u16 | 4 | minutes | 570 | Opening time, local (minutes after midnight) |
| closeMin | u16 | 6 | minutes | 960 | Closing time, local; earlier than opening = overnight session |
| sides | u8 | 8 | flags | 0 | Trades the hours apply to; none = both (bit0 buys, bit1 sells) |
05
Identity
Module ID
12 (0x000c)
Version
v1
Developer
Pump Hooks
Program
91kRNewiED… (built-in)
Priority range
0–999 · default 50
Markets
bonding-curve · pumpswap
Source
crates/hook-runtime/src/modules/trading_hours.rs
Verification
source in this repository; reproducible-build verification not yet published
Audit
unaudited
06
