Skip to content
cccskills
FreePublished on GitHub

pump-solana-architecture

Design and derive Program Derived Addresses (PDAs) and account layouts across the Pump ecosystem's four Solana programs — global singletons, per-token accounts, per-user accumulators, and cross-program coordination patterns.

The English summary is being prepared. Showing the original description.

See how to install

Files included (1)

  • SKILL.md4.0 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Solana Program Architecture — PDAs, Accounts & Multi-Program Coordination

Design, derive, and manage Program Derived Addresses (PDAs) and account layouts across the Pump ecosystem's four Solana programs with cross-program invocation patterns.

On-Chain Programs

ProgramIDPurpose
Pump6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6PBonding curve operations
PumpAMMpAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEAGraduated AMM pools
PumpFeespfeeUxB6jkeY1Hxd7CsFCAjcbHA9rWtchMGdZ6VojVZFee sharing
MayhemMAyhSmzXzV1pTf7LsNkrNwkWKTo4ougAJ1PPg47MD4eMayhem-mode tokens

PDA Categories

Global Singletons

  • GLOBAL_PDA — ["global"] on Pump — protocol-wide config
  • FEE_CONFIG_PDA — ["fee-config"] on Pump — tiered fee settings
  • GLOBAL_VOLUME_ACCUMULATOR_PDA — ["global_volume_accumulator"] — protocol-wide volume

Per-Token PDAs

  • bondingCurvePda(mint) — ["bonding-curve", mint] — token bonding curve state
  • bondingCurveTokenAccountPda(mint) — ["bonding-curve-token-account", mint]
  • feeSharingConfigPda(mint) — ["sharing-config", mint] on PumpFees
  • canonicalPumpPoolPda(mint) — AMM pool for graduated token

Per-User PDAs

  • creatorVaultPda(creator) — ["creator-vault", creator] on Pump
  • ammCreatorVaultPda(creator) — ["creator_vault", creator] on PumpAMM
  • userVolumeAccumulatorPda(user) — ["user_volume_accumulator", user]

Mayhem PDAs

  • mayhemMetadataPda(mint) — ["mayhem_metadata", mint] on Mayhem
  • mayhemWsolPda() — ["mayhem_wsol"] on Mayhem

BothPrograms Pattern

Many operations span both Pump and PumpAMM — the SDK provides aggregation:

MethodDescription
getCreatorVaultBalanceBothProgramsSum balance from both vaults
collectCoinCreatorFeeInstructionsCollect from both programs
fetchUserVolumeAccumulatorTotalStatsAggregate volume across programs
claimTokenIncentivesBothProgramsClaim rewards from both

Token Lifecycle Cross-Program Flow

Pump Program                    PumpAMM Program
┌─────────────┐                 ┌──────────────────┐
│ create      │                 │                  │
│ buy / sell  │ ── migrate ──►  │ AMM trading      │
│ graduate    │                 │ fee collection   │
└─────────────┘                 └──────────────────┘
       │                                │
       └──── PumpFees Program ──────────┘
             (fee sharing)

Account Extension

Bonding curve accounts may need extension to BONDING_CURVE_NEW_SIZE (151 bytes) before certain operations:

const extendIx = await PUMP_SDK.extendAccountInstruction({
    bondingCurvePda: bondingCurvePda(mint),
    bondingCurveAccountInfo
});

Patterns to Follow

  • Use findProgramAddressSync for all PDA derivation — never manually compute bump seeds
  • Group related account fetches into a single getMultipleAccountsInfo call
  • Always check account existence before decoding — use nullable decoders
  • Extend accounts before migration or setCreator operations

Common Pitfalls

  • Creator vault PDA seeds differ: "creator-vault" (Pump, hyphen) vs "creator_vault" (AMM, underscore)
  • canonicalPumpPoolPda uses the external pump-swap-sdk, not the Pump program
  • Mayhem PDAs are on a separate program (MAyhSm...)
  • PDA derivation failures indicate an invalid bump — the address is off the Ed25519 curve

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Set up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app integration, signing in (single or multi-account), or reading/injecting/running secrets via op.

The English summary is being prepared. Showing the original description.

x402agent/SolanaOS9Updated Jul 23, 2026

Manage Apple Notes via the `memo` CLI on macOS (create, view, edit, delete, search, move, and export notes). Use when a user asks SolanaOS to add a note, list notes, search notes, or manage note folders.

The English summary is being prepared. Showing the original description.

x402agent/SolanaOS9Updated Jul 23, 2026

Manage Apple Reminders via remindctl CLI (list, add, edit, complete, delete). Supports lists, date filters, and JSON/plain output.

The English summary is being prepared. Showing the original description.

x402agent/SolanaOS9Updated Jul 23, 2026

Create, search, and manage Bear notes via grizzly CLI.

The English summary is being prepared. Showing the original description.

x402agent/SolanaOS9Updated Jul 23, 2026

Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.

The English summary is being prepared. Showing the original description.

x402agent/SolanaOS9Updated Jul 23, 2026

blucli

Free

BluOS CLI (blu) for discovery, playback, grouping, and volume.

The English summary is being prepared. Showing the original description.

x402agent/SolanaOS9Updated Jul 23, 2026

See all skills by x402agent

Report a problem with this skill