Skip to content

dctrpr/buy-button-treasury

Repository files navigation

🟩 The Buy Button Treasury — open source

$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.


What it actually does

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.


Verify it against the chain

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

The files

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.

Run it yourself

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       # execute

To run it on autopilot every few hours, see schedule.md.


Security

  • Secrets never live in this repo. They load only from ~/.config/buybutton/treasury.env. The .gitignore blocks 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.

Why

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.

About

The Buy Button treasury bot — turns $BUY fees into a permanent 1x HOOD long that never sells. Don't trust, verify.

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages