← 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
AccountDerivationWS
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)