Docs
HOW SQUADS CUP REALLY WORKS
Overview
Squads Cup is an independent project. It is not affiliated with, endorsed by or operated by Pump.fun. It mirrors Pump.fun's Squads standings, deploys one Pump.fun coin for every team in the Squads competition, routes that coin's creator fees to a vault dedicated to the team, and pays the vault's balance to that team's eligible members in equal parts. The plain-language version is on How it works.
Fee routing
Pump.fun charges fees on every trade. Part of them, the creator fee, belongs to the coin's creator. Pump.fun's official fee-sharing feature (Pump Fees program) lets a creator split that fee among up to 10 shareholders. Squads Cup uses it like this:
- Transaction A:
create_v2creates the coin. The Squads Cup operator wallet is the initial creator. - Transaction B, atomic:
create_fee_sharing_configmakes the fee-sharing config PDA the coin's creator, thenupdate_fee_shares_v2sets the only shareholder to the Squad vault at 10,000 bps (100%). This call revokes the admin, so the split can never be changed again by anyone, Squads Cup included. - After transaction B, the app reads the chain back and only marks the token Deployed if the bonding-curve creator is the fee-sharing PDA, the only shareholder is the Squad vault at 100%, and the admin is revoked.
- Accrued creator fees move into the vault through Pump.fun's permissionless
distribute_creator_feesinstruction. Anyone can trigger it, and the money can only go to the vault.
Known limitation: creator fees from trades in the seconds between transactions A and B accrue to the operator wallet, not to the Squad. They are not counted as Squad fees. Because routing is locked after B, the vault of a deployed token cannot be changed. A token deployed outside this app can be linked only if its on-chain fee-sharing config already routes 100% to the Squad vault with the admin revoked.
What is not ours: Pump.fun protocol fees, PumpSwap LP fees after graduation, and trading volume. Squads Cup never receives or reports any of them as Squad revenue.
Fee accounting
Each vault is indexed from finalized on-chain transactions into an append-only ledger. A database trigger rejects edits and deletions:
- Creator fee receipt: an inflow to the vault from a Pump.fun program instruction for that Squad's mint.
- Unattributed inflow: any other incoming SOL, such as a donation. It is recorded but never distributed automatically.
- Distribution payout: a verified outflow to members. Any outflow we did not send ourselves is flagged as an incident and blocks distributions.
The distributable balance is the smaller of the ledger balance and the on-chain balance, minus the vault's rent-exempt reserve (0.00089088 SOL) and minus any amount already committed to an in-flight distribution. If the ledger and the chain disagree by even one lamport, distributions stop until an admin investigates. Fees still held by Pump.fun (accrued but not yet paid to the vault) are shown separately and never counted as received.
Distribution rules
- The competition rule is an equal split. Every eligible member of a team receives the same share of that team's distributable balance:
floor(D / N). - Eligible members come from a membership snapshot of that team, with a stated time and source. Every snapshot is reviewed and approved before use.
- Wallets are validated: invalid addresses, program addresses (off-curve) and duplicates are rejected at import.
- Allocations are computed in whole lamports and rounded down. Rounding remainders stay in the vault.
- A member whose share is below the policy's minimum payout is not paid in that round. Their share stays in the vault for the next distribution and is not re-split among other members.
- The full manifest (every wallet and amount) is frozen and checksummed before approval. Approval requires typing that checksum.
- Network fees are paid by the operator wallet. Members receive their full allocation.
- Payouts are sent in batches. Each batch is one atomic transaction and is shown as paid only after its signature is confirmed on-chain and the vault balance change matches exactly.
- A batch is never resent while a previous attempt might still land, which rules out paying anyone twice. Failed batches can be retried safely.
- Server-side spending limits cap each distribution and the total paid out per 24 hours.
Published policies
No distribution policy has been published yet. No distribution can run without one.
Data sources
Pump.fun does not publish a documented public API for Squads standings or Squad membership. Squads Cup does not scrape private endpoints. Standings come from either a manual import of the official leaderboard, with the time it was observed, or an approved data provider. Every row is labelled Live, Cached, Manually imported, Stale or Unavailable. Token market caps are computed only from on-chain bonding-curve reserves. When a value cannot be verified, it is not shown.
Verify on-chain
- On a Squad page, open the fee-sharing config on Solscan and check that its only shareholder is the Squad vault and that the admin is revoked.
- Open the vault: every inflow should come from Pump.fun programs, and every outflow should match a distribution receipt.
- On a distribution receipt, download the CSV manifest and compare each wallet's amount with the linked transaction.
