← Registry

Cooldown

cooldown@2.1.0 · by HOOKAWAY Labs

Enforces a minimum interval between transfers per sender.

VerifiedMock program
Identity
Name
Cooldown
Program ID
CoolMDwy…sBm2Fzrw
Version
2.1.0
Source
hookaway-mock/cooldown@wkctvud
Upgrade authority
none (immutable)
Verification
source-verified
Audit status
none
CPI behaviour
none
Trust labels
  • VerifiedSource verified against the deployed program and manifest reviewed by HOOKAWAY.
Usage
Tokens using it
2
Transfers (30d, mock)
54.3K
Transaction success rate
87.4%

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 failed
  • × schema: program
{
  "$schema": "https://hookaway.dev/schema/manifest/v0.1.json",
  "manifestVersion": "0.1",
  "name": "cooldown",
  "version": "2.1.0",
  "program": "CoolMDwytxCPSGMr7jyb6aAwZhaiAi15zb43sBm2Fzrw",
  "programAuthority": null,
  "description": "Enforces a minimum interval between transfers per sender.",
  "source": {
    "repo": "https://github.com/hookaway-mock/cooldown",
    "commit": "wkctvud",
    "verifiedBuild": true
  },
  "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 (2)