Economics
Graduation, migration and LP lock
A PrimerPad market graduates when its real quote reserve reaches the migration threshold. Liquidity moves into Meteora DAMM v2, is permanently locked, and the Primitive stays the quote.
Graduation progression
Every fork and devnet run verified the graduated DAMM v2 pool holds the base token as token A and the Primitive as token B. FORK PROOF PUBLIC DEVNET
| Proof | Token A (base) | Token B (quote) | DAMM v2 protocol fee | Fee collection |
|---|---|---|---|---|
| mainnet:morttest-usdx | J6TpirEw… | 9Gst2E7K… | 20% | quote only |
| devnet:testhouse-pprimequote | 5nQrVCVK… | HM9Qvwz9… | 20% | quote only |
| fork:ptest-syrupusdc | EVcvsDwL… | AvZZF1Ya… | 20% | quote only |
| fork:ptest-usdy | 7UF9PSmL… | A1KLoBrK… | 20% | quote only |
| fork:ptest-cptx | 5iyEc84z… | XsvoRXtZ… | 20% | quote only |
| fork:ptest-essx | DpUsJEUa… | XsZsYW1U… | 20% | quote only |
| fork:ptest-invhx | 7B8pqY6S… | XsQFmCYj… | 20% | quote only |
| fork:ptest-ieion | AUCjS25V… | wuzf2FDZ… | 20% | quote only |
| fork:ptest-tbllx | EtaBnKVx… | XsqBC5tc… | 20% | quote only |
| fork:ptest-schfx | 2TFNQyba… | XsWAnFM7… | 20% | quote only |
| fork:ptest-iemgx | CuuFfPUT… | XsFnZawJ… | 20% | quote only |
| fork:ptest-vgkx | BNSpkFyd… | XsosCAu1… | 20% | quote only |
| fork:ptest-ewqx | kinB7M9h… | Xs1neEMH… | 20% | quote only |
| fork:ptest-ewux | Hc4PdNCt… | XsbWCMXP… | 20% | quote only |
| fork:ptest-ewgx | J6DviT8M… | XsM51PKx… | 20% | quote only |
| fork:ptest-indaon | F1s7FGgb… | DBNwt3Fo… | 20% | quote only |
| fork:ptest-fxion | 3tjUboNe… | CeFbGYXD… | 20% | quote only |
| fork:ptest-ewzon | GSitiq74… | CBKcmEvV… | 20% | quote only |
| fork:ptest-ewyx | 5o4eoMr1… | XswenHXJ… | 20% | quote only |
| fork:ptest-iwmx | 7grbxJ3w… | XsbELVbL… | 20% | quote only |
| fork:ptest-vtix | 2bx4REam… | XsssYEQj… | 20% | quote only |
| fork:ptest-qqqx | 3mG21LT7… | Xs8S1uUs… | 20% | quote only |
| fork:ptest-spyx | HPpHz5g8… | XsoCS1Tf… | 20% | quote only |
| fork:credtest-hygon | 96H3DycY… | c5ug15fw… | 20% | quote only |
| fork:bondtest-tlton | 6ZCWpP1T… | KaSLSWBy… | 20% | quote only |
| fork:landtest-vnqon | 6asFnWMB… | F3dMJ9H1… | 20% | quote only |
| fork:japantest-ewjon | 7S8BbpER… | C6c7Vcxu… | 20% | quote only |
| fork:morttest-usdx | 8nfJJjWC… | 9Gst2E7K… | 20% | quote only |
| fork:testhouse-pprimequote | DUco7hx8… | 479bAVrN… | 20% | quote only |
Liquidity locking
Primer Standard v1 sets 0% claimable LP and 100% permanently locked LP, split 77% partner and 23% creator to mirror the fee ratio. Meteora requires at least 10% of migrated LP to be locked or vesting for at least a day; PrimerPad locks all of it. At migration the DBC program mints one DAMM v2 position to the config's fee claimer and one to the pool creator. SOURCE CODEmigrate_damm_v2_initialize_pool.rs
| Proof | Pool liquidity | Permanently locked | Unlocked dust | Creator share |
|---|---|---|---|---|
| mainnet:morttest-usdx | 452047581461… | 452047581461… | 1 unit | 22.99% |
| devnet:testhouse-pprimequote | 451759717551… | 451759717551… | 1 unit | 22.99% |
| fork:ptest-syrupusdc | 414740048097… | 414740048097… | 1 unit | 22.99% |
| fork:ptest-usdy | 421916152416… | 421916152416… | 1 unit | 22.99% |
| fork:ptest-cptx | 459542044317… | 459542044317… | 1 unit | 22.99% |
| fork:ptest-essx | 274860439618… | 274860439618… | 1 unit | 22.99% |
| fork:ptest-invhx | 888396344356… | 888396344356… | 1 unit | 22.99% |
| fork:ptest-ieion | 133296755568… | 133296755568… | 1 unit | 22.99% |
| fork:ptest-tbllx | 435182336098… | 435182336098… | 1 unit | 22.99% |
| fork:ptest-schfx | 498853516930… | 498853516930… | 1 unit | 22.99% |
| fork:ptest-iemgx | 496523355554… | 496523355554… | 1 unit | 22.99% |
| fork:ptest-vgkx | 489061591487… | 489061591487… | 1 unit | 22.99% |
| fork:ptest-ewqx | 704511126057… | 704511126057… | 1 unit | 22.99% |
| fork:ptest-ewux | 667990528717… | 667990528717… | 1 unit | 22.99% |
| fork:ptest-ewgx | 708210872283… | 708210872283… | 1 unit | 22.99% |
| fork:ptest-indaon | 209230261575… | 209230261575… | 1 unit | 22.99% |
| fork:ptest-fxion | 244794244227… | 244794244227… | 1 unit | 22.99% |
| fork:ptest-ewzon | 216777529583… | 216777529583… | 1 unit | 22.99% |
| fork:ptest-ewyx | 326489144124… | 326489144124… | 1 unit | 22.99% |
| fork:ptest-iwmx | 402525160624… | 402525160624… | 1 unit | 22.99% |
| fork:ptest-vtix | 233121859570… | 233121859570… | 1 unit | 22.99% |
| fork:ptest-qqqx | 163940985810… | 163940985810… | 1 unit | 22.99% |
| fork:ptest-spyx | 161751555205… | 161751555205… | 1 unit | 22.99% |
| fork:credtest-hygon | 157499775634… | 157499775634… | 1 unit | 22.99% |
| fork:bondtest-tlton | 159029367328… | 159029367328… | 1 unit | 22.99% |
| fork:landtest-vnqon | 147056712938… | 147056712938… | 1 unit | 22.99% |
| fork:japantest-ewjon | 143751151921… | 143751151921… | 1 unit | 22.99% |
| fork:morttest-usdx | 451549187073… | 451549187073… | 1 unit | 22.99% |
| fork:testhouse-pprimequote | 451759717551… | 451759717551… | 1 unit | 22.99% |
Locked does not mean fee-less
Permanent lock removes the ability to withdraw liquidity. It does not stop trading fees: both positions claimed DAMM v2 fees after post-migration trades in every run. See post-graduation fees.
Migration watcher
Migration is a permissionless instruction. Meteora operates mainnet keepers for qualifying DBC pools, but coverage depends on the quote asset and migration conditions, so PrimerPad does not rely on it for unusual financial quote assets. The PrimerPad migration watcher (primer migration-watcher) discovers every pool created on a PrimerPad config and graduates it.
- Simulation first. Every migration is simulated, and the transaction must reference the expected quote mint, config and pool before it is sent.
- Idempotent. Before any submit the watcher re-reads
isMigratedand checks whether the DAMM v2 pool already exists. If anyone else migrated first, the market simply becomes MIGRATED. - Restart-safe. A MIGRATING record stores its signature immediately; on restart the signature is resolved before anything else, so a crash cannot cause a second submission. One watcher per network (lock file).
- Live. Helius WebSocket log subscriptions on each PrimerPad config trigger an early check; polling is the backstop.
- Mainnet gated. Submission on mainnet requires
--execute-mainnetand an interactive confirmation; a configurable delay lets an external keeper act first.
PUBLIC DEVNET The watcher graduated 2 devnet markets on its own, each verified (pair and LP lock) after confirmation. Example: 5QPdn3…y4TBEm, DAMM v2 pool 37Skc8…U1Zb7s. In the live test the market went from BONDING to MIGRATED about four seconds after its curve filled, while the indexer recorded the same transitions in real time.
Not every Primitive has the same depth
A graduation moves the threshold amount of the quote asset into a locked pool. If the quote asset has little supply on Solana, a standard threshold can require more of the asset than exists. PrimerPad measures this before enabling a Primitive.
LIVE CHAIN READsupply via Helius, price via Jupiter
| Quote | Status | Standard target | Share of supply | Available on Solana | Recommended target |
|---|---|---|---|---|---|
| USDX | HEALTHY | $13,441 | 1% | $1,412,884 (1,418,243.8594 tokens) | $13,441 (1%) |
| EWJon | LIMITED | $2,403 | 172.2% | $1,396 (14.1305 tokens) | $209 (15%) |
| VNQon | UNSAFE | $2,403 | 456.1% | $527 (5.5813 tokens) | $79 (15%) |
| TLTon | HEALTHY | $6,720 | 11.3% | $59,714 (739.9796 tokens) | $6,720 (11.3%) |
| HYGon | UNSAFE | $2,403 | 12,328.3% | $19 (0.2369 tokens) | $3 (15%) |
| SPYx | HEALTHY | $13,441 | 0% | $74,305,243 (95,230.8422 tokens) | $13,441 (0%) |
| QQQx | HEALTHY | $13,441 | 0% | $63,992,291 (84,360.0426 tokens) | $13,441 (0%) |
| VTIx | HEALTHY | $13,441 | 0.1% | $18,511,651 (49,294 tokens) | $13,441 (0.1%) |
| IWMx | HEALTHY | $13,441 | 0.2% | $7,302,822 (57,977.7539 tokens) | $13,441 (0.2%) |
| EWYx | HEALTHY | $13,441 | 0.1% | $12,231,787 (63,886.9078 tokens) | $13,441 (0.1%) |
| EWZon | HEALTHY | $2,403 | 7.3% | $33,076 (761.6059 tokens) | $2,403 (7.3%) |
| FXIon | LIMITED | $2,403 | 27% | $8,897 (261.2265 tokens) | $1,335 (15%) |
| INDAon | LIMITED | $2,403 | 136.4% | $1,761 (37.7702 tokens) | $264 (15%) |
| EWGx | HEALTHY | $13,441 | 0.1% | $11,637,813 (286,010.3683 tokens) | $13,441 (0.1%) |
| EWUx | HEALTHY | $13,441 | 0.1% | $11,835,504 (258,769.1812 tokens) | $13,441 (0.1%) |
| EWQx | HEALTHY | $13,441 | 0.1% | $11,007,666 (267,704.7354 tokens) | $13,441 (0.1%) |
| VGKx | HEALTHY | $13,441 | 0.1% | $10,239,277 (120,000 tokens) | $13,441 (0.1%) |
| IEMGx | HEALTHY | $13,441 | 0.1% | $17,832,155 (215,410.9992 tokens) | $13,441 (0.1%) |
| SCHFx | HEALTHY | $13,441 | 0% | $34,034,323 (414,999.9996 tokens) | $13,441 (0%) |
| TBLLx | HEALTHY | $13,441 | 0.1% | $26,644,617 (247,249.9998 tokens) | $13,441 (0.1%) |
| IEIon | HEALTHY | $2,403 | 7.1% | $34,011 (296.1052 tokens) | $2,403 (7.1%) |
| INVHx | HEALTHY | $13,441 | 0.3% | $5,121,312 (198,052.4839 tokens) | $13,441 (0.3%) |
| ESSx | HEALTHY | $13,441 | 0.2% | $5,490,228 (20,323.4821 tokens) | $13,441 (0.2%) |
| CPTx | HEALTHY | $13,441 | 0.3% | $4,990,749 (51,641.7782 tokens) | $13,441 (0.3%) |
| USDY | HEALTHY | $13,441 | 0% | $179,389,965 (156,471,407.3581 tokens) | $13,441 (0%) |
| syrupUSDC | HEALTHY | $13,441 | 0% | $88,821,968 (74,858,196.2975 tokens) | $13,441 (0%) |
This is why a Primitive can be CERTIFIED without being LIVE. The Config Factory enforces it: UNSAFE Primitives get no production config, and LIMITED ones get a graduation profile scaled to the recommended target.
See also: Status model, Migration threshold, Failure modes