Cloud automation engine for Pump.fun tokens. Claim creator fees, buy back, optionally burn supply, and airdrop to eligible holders by tier rules. No CLI, no local node, no scripts to maintain.
This is the public side of Latrine Bot. The engine, the runner, and the operator panel are not in this repository - see SECURITY.md for what is and is not public.
| Folder | What | Package |
|---|---|---|
docs/ |
Public product documentation (mirrors latrinebot.com/docs) | - |
sdk/ |
TypeScript client + OpenAPI 3.1 spec | @latrinebot/sdk |
widgets/ |
Embeddable live widgets (iframe, script tag, programmatic) | @latrinebot/widgets |
calculator/ |
Standalone eligibility calculator | hosted at latrinebot.com/calculator/ |
cli/ |
Tiny CLI over the public API | @latrinebot/cli |
- Claim creator fees from your Pump.fun (or PumpSwap) token.
- Reserve enough SOL for the next airdrop, then acquire the reward with the rest: buy back your token, swap to USDC / any SPL token via Jupiter, or keep plain SOL.
- After buyback, split the pool: optionally burn a configured share (reduces supply) and airdrop the rest to eligible holders by balance share (per pool split settings).
- Wait and repeat.
Eligibility is a tiered floor that gets easier as market cap grows, plus an anti-whale cap, plus a hold-cycles anti-sybil filter. Holders always qualify on the project token; the distributed asset is configurable (project token, SOL, USDC, or any SPL mint). Details in docs/eligibility.md and docs/configuration.md.
- Dashboard: latrinebot.com/app
- 5-minute walkthrough:
docs/getting-started.md - Developer quick start (SDK, widgets, CLI):
docs/developers.md - Settings reference:
docs/configuration.md - API reference:
docs/api-reference.md
import { LatrineClient } from "@latrinebot/sdk";
const client = new LatrineClient({
metricsKey: process.env.LATRINE_METRICS_KEY,
});
const snap = await client.metrics.get("YOUR_PROJECT_ID");
console.log(snap.stats.totalClaimedSol, "SOL claimed total");Or drop a live widget on your token page:
<iframe
src="https://latrinebot.com/embed/?id=YOUR_WIDGET_UUID"
width="480" height="560"
style="border:0;background:transparent"
loading="lazy"
></iframe>Or run preflight from a CI job:
npx @latrinebot/cli preflight YOUR_PROJECT_IDThese stay private by design:
- The on-chain engine: claim, buyback, burn, snapshot, distribute, hold-history, retry / fee strategy
- The runner that signs and sends mainnet transactions
- The operator panel and its admin endpoints
- Anti-MEV / RPC strategy code
- Treasury keys and other platform-side secrets
The public surface in this repo is enough to integrate, audit the API, and understand the eligibility math. See SECURITY.md.
Pre-1.0, minor bumps (0.X) can add endpoints or settings. Breaking changes inside 0.X are listed in CHANGELOG.md under Breaking. Each npm package tracks the same service version - if you pin @latrinebot/sdk to 0.4.x you get a client that matches api.latrinebot.com at the same minor.
Issues and PRs welcome - read CONTRIBUTING.md first. Style rules live in docs/STYLE.md.
- Site: latrinebot.com
- App: latrinebot.com/app
- API health: api.latrinebot.com/api/health
- npm: @latrinebot/sdk, @latrinebot/widgets, @latrinebot/cli
- X: @Latrine_bot
- Security:
SECURITY.md- latrine@atomicmail.io - Legal:
docs/terms.md,docs/privacy.md
