# StonkBroker Hook (Hookr RulesLaunch preset)

The official StonkBrokers launch preset on Hookr's owned root. Not a custom hook address. It is a saved RulesLaunch configuration plus a launch script that pins royalty to the StonkBrokers treasury.

Status: SCRIPT LIVE against Robinhood Chain reads. Mainnet launches stay HARD HOLD until explicit go. Dry run preflight and plan pass against chain 4663.

Source: `hooks/hookr/stonkbroker-hook.mjs` and `hooks/hookr/README.md`. Hookr SDK package `hookr-sdk` 1.0.0 (release `hookr-1`).

Contact: simple@clutch.market, Telegram simplefarmer69. Royalty claim wallet: `0xb668382cF44038a3E8140E789060F6A809787CDa`.

## 1. What this is

Hookr's RulesLaunch path creates a token + v4 pool on an owned Hookr root with on chain rules (royalty, LP cut, burn, launch guards). StonkBrokers pins:

| Field | Value |
| --- | --- |
| royaltyTo | 0xb668382cF44038a3E8140E789060F6A809787CDa |
| royaltyBps | 1000 (10%) |
| lpBps | 300 |
| burnBps | 50 |
| pot fields | 0 |
| seed | about 95% of supply (5% hold cap) |
| ticks | full range +/-887220, spacing 60 |
| currency0 | ETH |

Claim royalties through Hookr's claim path to that treasury EOA. No custom Solidity deploy is required for this preset.

## 2. Why this CAN be an owned root surface

Unlike Battle / Strategy / Fractional / Smart LP custom hooks, this preset uses Hookr's unmodified owned root. HookrRouter, HookrQuoter, and the Hookr SDK work end to end. This is the default StonkBrokers listing shape for Hookr's UX.

## 3. Hookr contracts (release hookr-1 on 4663)

| Item | Address |
| --- | --- |
| Root | 0x89c9FB50d1f03192230FFB1c279BB6E7d3Fe6aCc |
| Rules | 0x4a71c270b1520F94064268102AebD744b0DE7942 |
| Launcher | 0x1cf2748A6670572425eAbf9Ab9e5BC4eb2eB8Ef4 |
| Registry | 0x463c82beA1a52F4Cc05ca0741a24F0AD24bA4602 |
| Treasury | 0x2242F7FC75606500503075f29ea8cDA684EfB4a9 |
| Recapture | 0xF83569E564d70daebc35950f66a73f2e2B915583 |
| FeeAdvisory | 0x3B6b3f00684987B831fcF9EB5f0d5B806afF7306 |
| Router | 0xC2Bc9a3fe6c4Ce8C2F7EB4655b0869b01D8c93C9 |
| Quoter | 0x445D7891381Aa7F91F5048EdBC6a611ccBDe7865 |
| PoolManager | 0x8366a39CC670B4001A1121B8F6A443A643e40951 |

Addresses above are the `hookr-sdk` 1.0.0 `HOOKR_1.contracts` set for chain 4663 (release startBlock 82536327); the script reads them from the SDK at runtime so a future Hookr release is picked up automatically. PoolManager is not on that object and is hardcoded in the script.

## 4. CLI

```bash
cd hooks/hookr
# RPC: keyed Alchemy preferred (public RPC Cloudflare challenges Node)
export RPC_URL=$(cat /tmp/hookr_rpc_url)   # or set from apps/web/.env.local
node stonkbroker-hook.mjs preflight
node stonkbroker-hook.mjs plan --name "Demo" --symbol DEMO --seedEth 0.05
# launch / claim stay HARD HOLD until go
```

Plans write under `hooks/hookr/runs/plan-*.json` (bigint safe JSON).

SDK notes that bit during build:

- `checkRulesConfig` needs `liquidityOwner` (HookrLauncher) and `blockNumber` when `guardEndBlock !== 0`.
- `rulesPoolTerms` needs full registry admission fields.
- `bindMinFeePips("new", ...)` may return 0 when `earnsHookr` is true (accepted).

## 5. Hooklist / directory framing

Frame this as a **saved RulesLaunch preset**, not a custom hook address:

```json
{
  "name": "StonkBroker Hook",
  "author": "StonkBrokers",
  "kind": "rulesLaunchPreset",
  "chainId": 4663,
  "royaltyTo": "0xb668382cF44038a3E8140E789060F6A809787CDa",
  "royaltyBps": 1000,
  "lpBps": 300,
  "burnBps": 50,
  "docs": "StonkBrokers-StonkBroker-Hook-Hookr-Integration.pdf",
  "script": "hooks/hookr/stonkbroker-hook.mjs"
}
```

## 6. Five official StonkBrokers hooks on Hookr

1. StonkBroker Hook / this RulesLaunch preset
2. Smart LP Hook / custom (see SmartLpHook-Hookr-Integration.md)
3. Strategy Token Hook / custom
4. Battle Token Hook / custom (priority product)
5. Fractional 404 Hook / custom

Custom hooks use Universal Router + V4 Quoter. The preset uses Hookr native rails. Each custom guide has a Contract functions section that lists every public entrypoint.

## 7. Script commands and Hookr surfaces

There is no custom Solidity deploy for this preset. Ops and integrators use `hooks/hookr/stonkbroker-hook.mjs` against live Hookr contracts from `hookr-sdk` `HOOKR_1.contracts`.

### 7.1 CLI commands

| Command | Who | What it does |
| --- | --- | --- |
| `preflight` | anyone (read only) | Reads root open gate, admission, min protocol share, launch fee, validates the pinned royalty / lp / burn preset against live floors. No key required. |
| `plan [--name] [--symbol] [--eth]` | anyone (read only) | Builds a bigint safe plan JSON under `hooks/hookr/runs/plan-*.json`: predicted token, seed amounts, rules config, deadline, hold cap, min fee pips. Dry by default. |
| `launch` | deployer key | Broadcasts `HookrLauncher` launch with the pinned RulesLaunch terms and ETH seed. Requires `DEPLOYER_KEY` or `PRIVATE_KEY`. HARD HOLD until explicit go. Writes `runs/launch-<hash>.json`. |
| `claim [--currency] [--to]` | claimer key | Reads `claimable(currency, account)` on HookrRules / treasury path and calls `claimTo` so royalty lands on `0xb668...7CDa` (or `--to`). Also prints `claimAsClaims` calldata for ERC-6909 redeemers. HARD HOLD until explicit go. |

### 7.2 Hookr contracts the preset touches

| Surface | Role |
| --- | --- |
| `HookrRoot` | Gate: `rootOpenFor` / admission before launch. |
| `HookrLauncher` | `launch` entrypoint; seed ETH + rules member. |
| `HookrRules` | On chain royalty / LP / burn terms; claim paths. |
| `HookrRegistry` | Pool admission fields for `rulesPoolTerms`. |
| `HookrTreasury` / `HookrRecapture` | Fee sinks (recapture off in this preset). |
| Uniswap v4 `PoolManager` | Pool lifecycle; hardcoded `0x8366...0951` on 4663. |

SDK helpers used by the script (not StonkBrokers contracts): `buildLaunch`, `buildPredictToken`, `checkRulesConfig`, `rulesPoolTerms`, `bindMinFeePips`, `buildRulesClaimAsClaims`, `defaultRulesLaunch`.

### 7.3 Preset pins (immutable in the script)

| Field | Value |
| --- | --- |
| `royaltyTo` | `0xb668382cF44038a3E8140E789060F6A809787CDa` |
| `royaltyBps` | 1000 |
| `lpBps` | 300 |
| `burnBps` | 50 |
| pot fields | 0 |
| seed | at least 95% of supply (5% hold cap) |
| ticks | full range +/-887220, spacing 60 |
| currency0 | ETH |

## 8. Go live checklist

1. Keep HARD HOLD: no `launch` / `claim` from ops keys until explicit go.
2. Confirm treasury `0xb668...7CDa` can claim Hookr royalties on a dry fork if needed.
3. Publish the preset card in Hookr's directory with the royalty pin visible.
4. Regenerate this PDF if any HOOKR_1 address or bps pin changes.
