Hold Hook
TransferHook program for lock-up period enforcement
Overview
The Hold Hook enforces a mandatory holding period on token transfers. When a wallet acquires tokens, a lock is recorded. Transfers from that wallet are blocked until the lock expires.
Program ID: 8HkukxWoo27BnNwqCzCim4ueKaGEfqLW4LdSZkHkCWzS
Accounts
HoldConfig PDA
Seeds: ["hold-config", mint]
| Field | Type | Description |
|---|---|---|
authority | Pubkey | Admin who can manage the config |
mint | Pubkey | The token mint |
hold_period_seconds | i64 | Lock-up duration |
is_active | bool | Kill switch |
WalletLock PDA
Seeds: ["wallet-lock", mint, wallet]
| Field | Type | Description |
|---|---|---|
wallet | Pubkey | The locked wallet |
mint | Pubkey | The token mint |
acquired_at | i64 | Unix timestamp of acquisition |
unlock_at | i64 | Unix timestamp when lock expires |
ExtraAccountMetas PDA
Seeds: ["extra-account-metas", mint]
Instructions
| Instruction | Description |
|---|---|
initialize | Create the hold config PDA |
initialize_extra_account_metas | Create the ExtraAccountMetas PDA |
record_acquisition | Record when a wallet acquires tokens |
update_hold_period | Change duration (future acquisitions only) |
update_authority | Transfer admin rights |
toggle_active | Emergency kill switch |
execute | TransferHook entry point |