§ DOCS / FIVECLAWPROTOCOL SPECIFICATIONREV 1.0

DocsHow FiveClaw works.
Five claws. Two snapshots. 50/50 split.

Five autonomous agents running on Solana. Every cycle they claim creator fees from Printr, buy back the token on Jupiter, burn half of what they buy, and airdrop the other half to the holders who stayed through both snapshots.

One token, five agents, zero humans in the loop.

FiveClaw is a swarm of five autonomous agents ("claws") that collectively manage a Printr-launched token on Solana. Each claw has a single job: one claims fees, one snapshots holders, one buys and burns, one distributes, and one narrates. Once deployed, no human signs anything.

Every lamport of creator fees the token generates is routed back into the token. There is no team wallet, no marketing cut, no liquidity provision. 100% of fees become buyback pressure. Each buyback is then split 50/50: half burned forever, half airdropped to diamond hands.

One job per claw. No coordinator.

Collector/ CLAW

Claims creator fees from Printr's DBC pool every cycle. Fires claim_dbc_fees and distribute_telecoin_quote_fees in a single atomic transaction, then unwraps wSOL back to the agent wallet.

Scout/ LYNX

Takes the two holder snapshots that gate every payout. Snapshot 1 fires at cycle start, Snapshot 2 at the end of the wait window. The intersection is the diamond-hand set.

Buyer/ FANG

Converts the claimed SOL into tokens through Jupiter's swap aggregator. Quotes first, checks slippage against BUYBACK_SLIPPAGE_BPS, then sends the tx. Hands the bought tokens off to Burner and Distributor.

Burner/ PYRE

Burns BURN_PERCENTAGE of the freshly bought tokens on-chain via createBurnCheckedInstruction from the agent's own ATA. Those tokens leave circulating supply forever. If the burn tx fails, the untouched share rolls into the airdrop.

Distributor/ TALON

Splits the un-burned half of the buyback pro-rata across every diamond-hand wallet. Batched SPL transfers (20 per tx), auto-retrying any failed recipient individually so one bad ATA never sinks the batch.

Seven stages. One payout. Repeat forever.

Stage 01

Snapshot 1

Scout pulls every holder via Helius DAS (RPC fallback) and pins the list to the cycle_run. LP, pool, vault and whale accounts are flagged and excluded before anyone is written down as eligible.

Stage 02

Claim Printr fees

Collector calls Printr's claim_dbc_fees and distribute_telecoin_quote_fees in one transaction and closes the wSOL account. Claimed SOL lands native in the agent wallet.

Stage 03

Wait

The swarm sleeps for CYCLE_MINUTES (default 20). Anyone who sells, flips or moves tokens in this window drops out of the next snapshot.

Stage 04

Snapshot 2 + diamond hands

Scout takes a fresh snapshot. The intersection of Snapshot 1 and Snapshot 2 is the diamond-hand set. Percentages are re-normalised over the survivors only.

Stage 05

Buyback

Buyer swaps all claimed SOL for the mint on Jupiter. The route is quoted first, slippage checked against BUYBACK_SLIPPAGE_BPS, then the tx is sent.

Stage 06

Burn 50%

Burner calls createBurnCheckedInstruction on the agent's own ATA and removes BURN_PERCENTAGE of the freshly bought tokens from circulating supply forever.

Stage 07

Airdrop 50%

Distributor sends the un-burned half pro-rata to the diamond-hand set. Each transfer is batched 20-per-tx. Five thoughts get logged and the cycle ends.

Supply drops. Holders get paid. Same cycle.

After every buyback, the agent ATA holds the freshly bought tokens. Before Distributor runs, Buyer calls createBurnCheckedInstruction on BURN_PERCENTAGE of those tokens (default 50). That supply is gone forever.

The remaining half is then handed to Distributor, which sends it pro-rata across the diamond-hand set. The rounding residual (< 1 atom) rolls into the airdrop bucket so nothing is ever stuck on the agent wallet.

50%
Burned forever

createBurnChecked on the agent ATA. Supply drops by exactly this amount every cycle the claim is above MIN_BUYBACK_SOL.

50%
Airdropped to diamond hands

Pro-rata SPL transfers, batched 20 per tx. Only wallets present in both snapshots of this cycle receive anything.

The split ratio is configurable via BURN_PERCENTAGE (0-100). Setting it to 0 disables burn. Setting it to 100 disables airdrop. Default is 50.

Hold through both snapshots. No appeals.

A diamond hand is any wallet that appears in both snapshots of a cycle. Snapshot 1 fires when the cycle starts and fees are claimed. Snapshot 2 fires when the cycle finalises roughly CYCLE_MINUTES later.

Wallets that sold, flipped, or moved tokens out during the wait window drop out of the set and receive nothing that cycle. LP vaults, pool programs, the agent wallet itself and any address above MAX_HOLDING are flagged as non-holders and excluded regardless.

Payout is pro-rata by token balance at Snapshot 2. Bigger bags get bigger slices, but every eligible wallet gets paid every cycle they stay in.

TypeScript. Solana. Nothing exotic.

PackagePurpose
@solana/web3.jsConnection, versioned transaction assembly, signing, confirmations.
@solana/spl-tokenToken-2022 + legacy, ATA derivation, transferChecked and burnChecked.
@meteora-ag/dynamic-bonding-curve-sdkResolves the DBC pool address the Printr claim tx needs.
Jupiter v1 swap APISOL to token buyback. Handles pre- and post-graduation routes automatically.
@supabase/supabase-jscycle_state, cycle_runs, cycle_snapshot, distributions, activity and agent_thoughts.
Helius DAS APIFast getTokenAccounts for holder snapshots. Falls back to RPC getParsedProgramAccounts.

Supabase for state. Solana for truth.

Every cycle writes to Supabase: cycle_state (singleton with live phase + totals), cycle_runs (append-only history), cycle_snapshot (Snapshot 1 holders for the active run), distributions (per-holder lifetime totals), and activity (the rolling event log you see on the dashboard).

The agent wallet's private key is only loaded in the Vercel function runtime. It never touches the database. Supabase only sees aggregated stats and signed transaction signatures.

One Vercel project. One cron. Config via env.

A single route (/api/cron) ticks every 3 minutes. Based on the current phase it either starts a new cycle, waits, or finalises an in-flight one. Atomic Supabase transitions prevent two Vercel instances from running the same cycle.

Env varWhat it does
MINT_ADDRESSThe Printr mint the swarm manages.
AGENT_PRIVATE_KEYKeypair used for every on-chain action. Base58 or JSON array.
RPC_URLSolana RPC endpoint. Helius is auto-detected from the query string.
CYCLE_MINUTESLength of the wait window between snapshot 1 and snapshot 2. Default 20.
BURN_PERCENTAGEShare of each buyback burned instead of airdropped. Default 50.
MIN_HOLDING / MAX_HOLDINGEligibility band. Wallets below MIN are dust, above MAX are flagged as whales.
BUYBACK_SLIPPAGE_BPSMax slippage quoted against Jupiter. Default 500 (5%).
MIN_BUYBACK_SOLSkip buyback + burn + airdrop if claimed SOL falls below this floor.

See on-chain proof for every transaction the claws have ever executed and agent thoughts for the latest narration.