← Registry
Cooldown Timer
cooldown-timer@1.0.0 · by @slowmint
Enforces a minimum interval between transfers per sender.
UnverifiedMock program
Identity
- Name
- Cooldown Timer
- Program ID
- CdTRhYZh…Q6yV96Pd
- Version
- 1.0.0
- Source
- not published
- Upgrade authority
- none (immutable)
- Verification
- self-published
- Audit status
- none
- CPI behaviour
- none
Trust labels
- UnverifiedNo verified source or manifest review. Simulation-only guarantees.
Usage
- Tokens using it
- 1
- Transfers (30d, mock)
- 14.2K
- Transaction success rate
- 91.7%
Success rate = HOOKAWAY-built transactions that confirmed ÷ submitted. Blocks by the hook's own rules are not failures.
Compatibility
- Direct transfer●
- Meridian AMM●
- Orbit CLMM●
- Relay AggregatorHook needs 4 extra accounts; Relay Aggregator forwards at most 3.×
- Basin Legacy AMMBasin Legacy AMM cannot forward transfer-hook accounts.×
- HOOKAWAY Launch Curve●
Config schema
- secondsMinimum seconds between transfersu32 = 60
Extra account schema
| Account | Derivation | W | S |
|---|---|---|---|
config Per-mint hook configuration. | pda(hook, ["config", acct[1]:mint]) | · | · |
sender-clock clock record for the source owner. | pda(hook, ["clock", acct[1]:mint, acct[3]:source owner]) | ✓ | · |
Errors & restrictions
- 6030Sender must wait {remaining}s before the next transfer.
- —One outgoing transfer per sender per cooldown window.
Manifest
cross-check passed- ✓ Schema valid (manifest v0.1)
- ✓ Program ID matches mint’s TransferHook extension
- ✓ Upgrade authority matches declared authority
- ✓ Declared accounts match on-chain ExtraAccountMetaList
- ✓ All accounts derivable without off-chain input
{
"$schema": "https://hookaway.dev/schema/manifest/v0.1.json",
"manifestVersion": "0.1",
"name": "cooldown-timer",
"version": "1.0.0",
"program": "CdTRhYZhLF7uGq9vLw7EWQZdGE5PBKYWEzuhQ6yV96Pd",
"programAuthority": null,
"description": "Enforces a minimum interval between transfers per sender.",
"source": {
"verifiedBuild": false
},
"config": {
"fields": [
{
"key": "seconds",
"type": "u32",
"description": "Minimum seconds between transfers",
"default": 60
}
]
},
"accounts": [
{
"name": "config",
"derivation": {
"kind": "pda",
"programId": "hook",
"seeds": [
{
"kind": "literal",
"value": "config"
},
{
"kind": "account",
"index": 1,
"label": "mint"
}
]
},
"writable": false,
"signer": false,
"description": "Per-mint hook configuration."
},
{
"name": "sender-clock",
"derivation": {
"kind": "pda",
"programId": "hook",
"seeds": [
{
"kind": "literal",
"value": "clock"
},
{
"kind": "account",
"index": 1,
"label": "mint"
},
{
"kind": "account",
"index": 3,
"label": "source owner"
}
]
},
"writable": true,
"signer": false,
"description": "clock record for the source owner."
}
],
"compatibility": {
"transfer": true,
"venues": "any-hook-aware",
"maxExtraAccounts": 2
},
"transaction": {
"computeUnits": 19000,
"requiresLookupTable": false,
"cpi": "none"
},
"simulation": {
"adapter": "cooldown"
},
"explain": {
"6030": "Sender must wait {remaining}s before the next transfer."
},
"restrictions": [
"One outgoing transfer per sender per cooldown window."
]
}Tokens using it (1)