The program owns three accounts per coin, all program derived. Their addresses are computed from the mint and the program id and shown live below. Anyone can read them.
account
seeds
address
size
config
["config", mint]
144 bytes
vault
["vault", mint]
0 bytes of data, holds sol and owns the token account
record
["record", mint]
8 + 16 + 64 · 160 bytes
config layout
The config account is written once at initialisation and then only by claim and execute. Offsets are in bytes.
offset
size
field
type
0
8
discriminator
fixed bytes
8
32
mint
pubkey
40
32
curve
pubkey of the pump.fun or amm pool account
72
1
bump_config
u8
73
1
bump_vault
u8
74
6
padding
zero
80
16
reserve_floor_num
Q64.64, constant 3/4
96
16
impact_bound
Q64.64, constant 1/20
112
16
accepted_count
u128
128
16
rejected_count
u128
field
live value
discriminator
mint
curve
bump_config
bump_vault
reserve_floor_num
impact_bound
accepted_count
rejected_count
record layout
The record is a ring of sixty four entries. Each entry is one submission. The head index points at the next slot to be written, so the newest entry is at head minus one.
offset
size
field
0
8
discriminator
8
8
head, u64
16
8
padding
24
64 × 160
entries
offset in entry
size
field
0
32
submitter pubkey
32
8
slot, u64
40
1
outcome, 1 accepted, 0 rejected
41
7
padding
48
16
x_star, signed Q64.64 with sign in the top bit
64
16
lambda_1
80
16
lambda_2
96
16
lambda_3
112
16
r_stat
128
16
r_prim_plus_dual, the sum of r_prim and r_dual
144
16
r_slack
instructions
instruction
signer
accounts
effect
initialize
deployer
config, vault, record, mint, curve, system
Creates the three accounts, stores the constants, sets both counts to zero. Callable once.
claim
anyone
config, vault, creator fee vault, pump program
Moves accrued creator fees into the vault. Increases R.
submit
anyone
config, vault, record, curve, pump or amm program, token accounts
Verifies the certificate, executes exactly x* on residual zero, writes one entry, increments one count.
There is no withdraw, no pause, no admin, no upgrade authority after deployment. The instruction set is the whole of what the program can do.
live state
quantity
value
source
R
vault lamports
I
vault token account
s
curve account
t
curve account
k
computed
p₀
computed, 12 decimals
head
record
accepted
config
rejected
config
latest outcome
record head − 1
latest x*
record
latest λ
record
latest residual
record
invariants, checked live
invariant
check
status
reserve floor
R ≥ R_before_last_execute / 4
inventory sign
I ≥ 0
counts
accepted + rejected = entries written, capped at 64 for the visible ring