Programs

The on-chain layer is an Anchor workspace of programs, built with Anchor 0.31.1 / Solana-Agave 4.0.2 and deployed to devnet. They're exercised by a master test suite both in-process (bankrun) and live on devnet. The basis-point denominator is BPS_DENOMINATOR = 10,000.

The programs

ProgramRole
LaunchpadFactoryOrchestrates a launch: create token, wire the chosen fee module.
ModuleRegistryRegistry of the immutable fee modules (the splits).
CreatorFeeModuleThe creator-revenue fee module.
FeeRouterSplits captured fees by the hardcoded 70/15/15 (flagship flywheel).
TreasuryVaultProtocol treasury accounting.
StakingVaultStake/unstake, badge tiers, lock multipliers, weight math.
RewardDistributorMasterChef-style reward accumulator; pull-based PYUSD claims.
LiquidityModuleLocked DAMM v2 liquidity leg.
FeeSharePoolThe simplest launch type — raw fees pooled, biweekly harvest to stakers.

Deployed program IDs (devnet)

ProgramProgram IDSolscan (devnet)
LaunchpadFactory7ReSRA67nDQHWG6QwTYt7fuWiLDxkRFYhva5J6v8Rn3eview
ModuleRegistryBC6fB3tUmTnb7Z5dupwSHZQ48z3BVcsUT8b2xYokYtxqview
CreatorFeeModule5i8TqsYCf2UWe3uzBfQ5RRqqpKF5qogBWvzc13rVsNvAview
FeeRouter3WQHWhJMhw9Mc6au3Ecu8APifekbyKo83mT87Hu7FW6Bview
TreasuryVault6CxDQWrGN8J9Crj419xBekdD1RQjkpaxuchHPhJJm5UDview
StakingVaultAPJeeF4cWiQMRzvVE6Jw8ysRLtRo3etauD5kAmXjWWRsview
RewardDistributor4tN2ka4ropHr6AUzidnFU8Tejgo3VyfqByciDjxNugnWview
LiquidityModuleDMr6v6UUDV6SoWScLLVmKmhi1ohut2MrL5Z98JTRnzNxview
FeeSharePoolFZxqMX5SKpWyTGMJNy63DCqX1Rdm1RVV5kAeEomjXcX8view
mock_lst (test double)34e8PkUU5SWN1dHmLjsfHABdLho1AwattzVnsJVvMzxrview

These mirror the declare_id! values and Anchor.toml exactly. The UI reads them from protocol.ts so dashboards target the real deployed addresses. The 8 core programs + mock_lst are confirmed deployed and tested on devnet; see the full list with all links on the Links & Community page.

Key token mints & integrations

NameAddress / note
PYUSD (mainnet)2b1kV6DkPAnxd5ixfnxCpjxmKwqjjaYmCZfHsFu24GXo — a Token-2022 mint
Token-2022 programTokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb
Kamino KLendKLend2g3cP87fffoy8q1mQqGKjrxjC8boSyAYavgmjD
Meteora DBCdbcij3LWUppWqq96dh6gJWwBifmcGfLSB5D4DuSMaqN
Meteora DAMM v2cpamdpZCGKUy5JxQXB4dcpGPiikHawvSWAd6mEn1sGG
JupSOL mintjupSoLaHXQiZZTSfEWMTRRgpnyFm8f6sZdosWBjx93v

PYUSD is a Token-2022 mint and uses a different mint on devnet (CXk2AMBfi3TwaEL2468s6zP8xq9NxTXjp9gjMgzeUynM). The reserve/reward legs must use the right one for their cluster.

The skins programs

Separate from the launchpad workspace, the game's skin economy has its own Anchor workspace:

ProgramProgram IDSolscan (devnet)
ions_skins (primary shop)6MRLreR3cDH8FbZ5SxLM61pnPKedbSG8qdbXwwMD24jUview
ions_market (resale escrow)DY1nytcG2VAHj2RV5sX3etmWwZQ5m61eQMmkhx9KDCXTview
  • ions_skins mints/credits skins on the primary-shop side.
  • ions_market escrows resale USDC and is the sole fund authority. See Marketplace Architecture.

Status

Fee-split / reward / badge / lock / immutability logic is fully implemented and tested. External CPIs to Meteora DBC/DAMM v2, Jupiter, and Kamino remain TODO (no real token movement yet).