Fee config account layout
The on-chain record Klik reads to detect a routed token, byte by byte.
On pump.fun, a coin can carry a fee-sharing config account under the fee program (PDA ["sharing-config", mint]). Klik writes it at launch and reads it on the coin page. The layout below is the one Klik decodes.
| Off | Len | Field | Note |
|---|---|---|---|
| 0 | 8 | discriminator | Anchor account discriminator |
| 8 | 3 | version, bump, kind | Layout version, PDA bump, config kind |
| 11 | 32 | token mint | The token this config belongs to |
| 43 | 32 | admin | May edit shareholders until revoked |
| 75 | 1 | revoke flag | 1 once the admin key is burned |
| 76 | 4 | shareholder count | u32, little-endian |
| 80 | N×40 | shareholders | 32-byte address + u64 share in bps, repeated |
Reading it
Every recipient is in the shareholders array as their own wallet, next to Klik’s line and the launcher’s. The creator fee accrues in the vault ["creator-vault", config] under the pump program; the permissionless distribute_creator_fees instruction pays it out by these shares. Once admin_revoked is set, which the program does after the first update, the list is final.
config = PDA(["sharing-config", mint], pfeeUxB6…)
vault = PDA(["creator-vault", config], 6EF8rrec…)
klikShare = shareholders.find(s => s.address == KLIK_FEE_WALLET).bps
locked = admin_revoked == 1