$BUY takes its trading fees and buys $HOOD — the stock of the company that removed the buy button — as a permanent 1× long that never sells.
This repo is that bot. The whole thing. Every line that turns a creator fee into another share-equivalent of Robinhood is right here.
Most projects hide their treasury behind a multisig and a promise. Ours is a public repo with a cron job. Don't trust — verify.
Every cycle, four steps, fully automated:
1. CLAIM creator fees on Noxa → WETH lands in the treasury (Robinhood Chain)
2. BRIDGE WETH (Robinhood Chain) → USDC (Arbitrum) [via Relay]
3. DEPOSIT USDC (Arbitrum) → Lighter perp account [intent address]
4. PRESS extend the 1× HOOD long → buys more HOOD, isolated, ~1× [never liquidatable]
There is no sell function anywhere in this code. The button presses. It does not press back.
The HOOD long is held at ~1× isolated margin, which puts the liquidation price near zero — so it can't be wiped out on a drawdown. It just accumulates, forever, funded by the meme it's named after.
Don't take the README's word for it — every address is public. Go look:
| Thing | Address / ID |
|---|---|
| Treasury wallet | 0xCC37061a1e5B15485B425aeeb7A2bb36F93DA77e |
| $BUY token (Robinhood Chain) | 0x0e8720B8cD84F95b4b6696adbFA8063c4B8B94F2 |
| Noxa fee collector | 0x9efdc1a8e6e94f16a228e44f3025e1f346ee0417 |
| WETH (fee token, Robinhood Chain) | 0x0bd7d308f8e1639fab988df18a8011f41eacad73 |
| Lighter account · market | account 733049 · market 108 (HOOD) |
Trace the treasury wallet on robinhoodchain.blockscout.com and you'll see the exact claim → bridge sequence this code produces. The HOOD long is readable from Lighter's public API — no login, no keys:
python3 lighter_press.py --status # read-only: shows the live HOOD position
python3 bot.py --status --address 0x… # read-only: Hyperliquid relic position| File | What it is |
|---|---|
noxa_claim.py |
Claims $BUY creator fees from Noxa without the website — one on-chain call. --send to execute, dry-run by default, prints the exact claimable amount. |
lighter_pipeline.py |
The full loop: bridge → deposit → press. --dry-run / --run. Each step is a no-op if there's nothing to do, so it's safe on a schedule. |
pipeline.py |
Bridge (Relay) + the older Hyperliquid deposit path; lighter_pipeline.py reuses its bridge step. |
lighter_press.py |
Opens/extends the 1× HOOD long on Lighter (market 108). Never sells. |
bot.py |
Hyperliquid status + press for the original (now relic) HL position. |
fund_and_press.py |
Manual one-shot press helper. |
simulate_buy_cycle.py |
Read-only $BUY buy/sell quote simulator — no signing, no keys, never touches the env. |
schedule.md |
How to run the loop on a launchd cron every few hours. |
pip3 install -r requirements.txt
# put your keys OUTSIDE the repo (see .env.example for the format):
mkdir -p ~/.config/buybutton
cp .env.example ~/.config/buybutton/treasury.env
chmod 600 ~/.config/buybutton/treasury.env
$EDITOR ~/.config/buybutton/treasury.env # fill in your own values
# check what's claimable (read-only, no key needed):
python3 noxa_claim.py
# claim the fees:
python3 noxa_claim.py --send
# bridge + deposit + extend the long:
python3 lighter_pipeline.py --dry-run # plan only
python3 lighter_pipeline.py --run # executeTo run it on autopilot every few hours, see schedule.md.
- Secrets never live in this repo. They load only from
~/.config/buybutton/treasury.env. The.gitignoreblocks every*.env. There is not a single private key in this codebase — go grep for one. - The Lighter API key and Hyperliquid agent key can trade but cannot withdraw — the worst case if one leaks is a bad trade, not a drained treasury.
- The bot has no sell / no withdraw code paths. By construction, all it can do is claim, bridge, deposit, and buy more HOOD.
- Rotate any key that has ever touched a chat window or a screenshot before it holds real size.
On January 28, 2021, in the middle of the GameStop squeeze, Robinhood removed the buy button. Retail could sell but not buy.
$BUY is the buy button, rebuilt as a meme — and its treasury does the only fitting thing with its earnings: it buys the stock of the company that took the button away, and it never lets go. A permanent, on-chain, unliquidatable long, accumulating forever, with every receipt public.
This is the buy button they can't disable.
Built and run by @dctrpr.
Not financial advice. $BUY is a memecoin. The treasury is a public bit with receipts — no promised returns, no buybacks, no yield, no redemption rights. It just… keeps buying HOOD. You can watch it happen.