pumperp

Fee routing

Fixed 5% PUM tithe plus DIEM, perp-agent, and creator allocation.

Every enrolled token has a TokenRewardSplit — basis points that must sum to 10 000 (100%).

Split table

LegDefaultConfig keyDestination
PUM5%PUM_REWARD_BPS (fixed)PUM buyback & burn
DIEM28.5%diemBps / diemPctDIEM endowment (Venice intelligence token)
Perp agent57%perpBps / perpPctPer-token Avantis desk collateral
Creator9.5%creatorBps / creatorPctCreator wallet (claim on Clanker)

Creators configure the last three at launch; they must sum to 95%. PUM is always 5%.

// config.ts — default user-configurable split
DEFAULT_REWARD_SPLIT: {
  pumBps: 500,
  diemBps: 2850,
  perpBps: 5700,
  creatorBps: 950,
}

Claim cycle

The fee claimer (claimPooledFeesCycle):

  1. Round-robin batch of enrolled tokens (CLAIM_BATCH_SIZE, default 25)
  2. collectRewards + claim USDC from Clanker FeeLocker
  3. Attribute USDC per token
  4. splitProtocolUsdc on the protocol share (PUM + DIEM + perp):
pumUsdc  = usdc × (pumBps / (pumBps + diemBps + perpBps))
diemUsdc = usdc × (diemBps / …)
perpUsdc = usdc × (perpBps / …)
  1. Accrue to in-memory accumulators (addTokenRewardAllocation)

Creator USDC never passes through the engine — it sits in FeeLocker for the creator to claim via Clanker.

Where each leg goes

flowchart TB
  Fees["USDC fees claimed"]
  Fees --> Proto["Protocol share\n(PUM + DIEM + perp)"]
  Fees --> Creator["Creator share\n(direct claim)"]
  Proto --> PUM["buyback-engine\n→ swap USDC → PUM → burn"]
  Proto --> DIEM["diem-engine\n→ DIEM buy/stake"]
  Proto --> Desk["desk-manager\n→ Avantis USDC collateral"]
  Desk --> Profit["Desk profit"]
  Profit --> CB["creator-buyback\n→ swap → creator token → burn"]

Fission 70/30 vs pumperp

Historical Fission docs describe a simple 70% perps / 30% protocol token burn.

pumperp generalizes this:

  • PUM tithe (5%) ≈ network tax on every launch (was 30% in Fission, but only of protocol flow)
  • Perp slice ≈ Fission's 70% desk leg (now per-token, agent-managed)
  • DIEM + creator ≈ new legs for intelligence endowment and optional creator cash

config.FEE_SPLIT (positionFund: 0.7, buyback: 0.3) is deprecated — the live path is TokenRewardSplit per token.

Validation

buildRewardSplit rejects negative bps and enforces:

diemBps + perpBps + creatorBps === 10000 - PUM_REWARD_BPS  // 9500

API accepts either raw bps in rewardSplit or whole-percent shortcuts (diemPct, perpPct, creatorPct).

On this page