Mainnet

Docs · Reference

Program reference

Instructions, accounts, events and errors of the Holdfast program, generated from the IDL shipped in @holdfast/sdk.

Address

EduEwYBkqWCNbZ95nQVeakY8d4tGKM2qaAk7kuW76AMQ on mainnet. Anchor IDL: packages/sdk/src/idl/moshsol.json.

Instructions

InstructionArgsSignerWritable accounts
create_launchargs: CreateLaunchArgscreator, mintcreator, platform, fee_recipient, launch, mint, curve_tokens, vault_tokens
depositamount: u64, proof: Vec<[u8; 32]>ownerowner, launch, backer
cancel_launch—creatorlaunch
refund—ownerowner, launch, backer
launch—crankerlaunch, curve_tokens, vault_tokens
wind_down—crankerlaunch, curve_tokens, vault_tokens
buysol_in: u64, min_tokens_out: u64tradertrader, launch, curve_tokens, trader_tokens
selltokens_in: u64, min_sol_out: u64tradertrader, launch, curve_tokens, trader_tokens
agent_buysol_in: u64, min_tokens_out: u64agentlaunch, curve_tokens, vault_tokens
agent_selltokens_in: u64, min_sol_out: u64agentlaunch, curve_tokens, vault_tokens
claim_backer_fees—ownerowner, launch, backer
claim_creator_fees—creatorcreator, launch
sweep_platform_fees—nonelaunch, fee_recipient
admin_withdraw_vaultsol: u64, tokens: u64adminlaunch, vault_tokens, fee_recipient, recipient_tokens
initialize_platformfee_recipient: pubkey, agent_authority: pubkey, params: PlatformParamsadminadmin, platform
update_platformparams: PlatformParamsadminplatform
set_fee_recipientfee_recipient: pubkeyadminplatform
set_agent_authorityagent_authority: pubkeyadminplatform
propose_adminnew_admin: pubkeyadminplatform
accept_admin—new_adminplatform
agent_buy_pumpsol_in: u64, min_tokens_out: u64agentagent, launch, pump_authority, vault_tokens
agent_sell_pumptokens_in: u64, min_sol_out: u64agentagent, launch, pump_authority, vault_tokens
buyback_burnmax_sol: u64, min_tokens_out: u64crankercranker, launch, pump_authority, buyback_mint, burn_tokens
collect_pump_fees—crankercranker, launch, creator_vault
create_launch_pumpargs: CreateLaunchPumpArgscreator, create_keycreator, platform, fee_recipient, launch
graduate_pump—nonelaunch
launch_pump—cranker, mintcranker, launch, pump_authority, mint, bonding_curve, associated_bonding_curve, metadata, vault_tokens, fee_recipient, creator_vault, user_volume_accumulator, buyback_fee_recipient
migrate_launch—adminadmin, launch
migrate_platform—adminadmin, platform
wind_down_pump—crankercranker, launch, pump_authority, vault_tokens

Accounts

Backer

FieldType
launchpubkey
ownerpubkey
depositedu64
fees_claimedu64
bumpu8

Launch

FieldType
indexu64
creatorpubkey
mintpubkey
statusLaunchStatus
bumpu8
curve_bumpu8
vault_bumpu8
created_ati64
launched_ati64
termsLaunchTerms
raise_minu64
raise_maxu64
max_per_walletu64
raise_deadlinei64
raisedu64
refundedu64
backer_countu32
whitelist_root[u8; 32]
bundle_supply_bpsu16
reserve_bpsu16
virtual_solu64
real_solu64
token_reserveu64
vault_solu64
vault_tokensu64
bundle_solu64
bundle_tokensu64
vault_cost_solu64
acc_fee_per_shareu128
backer_fees_accruedu64
backer_fees_claimedu64
creator_fees_unclaimedu64
creator_fees_claimedu64
platform_fees_unclaimedu64
window_starti64
window_buy_capu64
window_sol_spentu64
window_sell_capu64
window_tokens_soldu64
ema_priceu128
last_trade_tsi64
agent_buysu32
agent_sellsu32
agent_sol_spentu64
agent_sol_receivedu64
agent_tokens_soldu64
buyback_solu64
volume_solu64
trade_countu64
last_public_trade_slotu64
last_agent_trade_slotu64
venueVenue
create_keypubkey
pumpPumpState
buyback_pool_solu64
creator_fees_collectedu64
burned_solu64
burned_tokensu64
last_buyback_tsi64
namestring
symbolstring
uristring

Platform

FieldType
adminpubkey
pending_adminpubkey
fee_recipientpubkey
agent_authoritypubkey
paramsPlatformParams
launch_countu64
bumpu8

Events

EventFields
BackerFeesClaimedlaunch, backer, amount, timestamp
BuybackBurnedlaunch, buyback_mint, sol, tokens, buyback_pool_sol, timestamp
CreatorFeesClaimedlaunch, creator, amount, timestamp
CreatorFeesCollectedlaunch, mint, amount, to_buyback_pool, to_vault, to_backers, timestamp
Depositedlaunch, backer, amount, total_deposited, raised, timestamp
LaunchCancelledlaunch, timestamp
LaunchCreatedlaunch, mint, creator, index, name, symbol, uri, raise_min, raise_max, raise_deadline, bundle_supply_bps, reserve_bps, whitelisted, timestamp
LaunchMigratedlaunch, mint, timestamp
Launchedlaunch, mint, raised, launch_fee, bundle_sol, bundle_tokens, vault_sol, price_q64, timestamp
PlatformFeesSweptlaunch, amount, timestamp
PumpGraduatedlaunch, mint, pool, timestamp
Refundedlaunch, backer, amount, timestamp
Tradelaunch, mint, trader, is_buy, is_agent, sol_amount, token_amount, fee, price_q64, ema_q64, real_sol, token_reserve, vault_sol, vault_tokens, timestamp
VaultProfitSharedlaunch, mint, amount, to_buyback_pool, timestamp
VaultWithdrawnlaunch, mint, sol, tokens, recipient, recipient_tokens, timestamp
WoundDownlaunch, mint, sol_to_backers, tokens_returned, timestamp

Errors

CodeNameMessage
6000UnauthorizedSigner is not authorized for this action
6001InvalidParamParameter out of allowed bounds
6002InvalidMetadataName, symbol or URI too long or empty
6003PausedPlatform is paused
6004AgentsPausedAgents are paused
6005NotRaisingLaunch is not raising
6006NotLiveLaunch is not live
6007NotRefundingLaunch is not refunding
6008RaiseClosedRaise deadline has passed
6009RaiseStillOpenRaise is still open
6010RaiseFullRaise is full
6011WalletCapReachedWallet deposit cap reached
6012MinimumNotReachedRaise minimum not reached
6013MinimumReachedRaise minimum was reached; refunds unavailable
6014NotWhitelistedWallet is not on the whitelist
6015ZeroAmountAmount must be greater than zero
6016SlippageOutput below minimum (slippage)
6017InsufficientLiquidityInsufficient curve liquidity
6018MathOverflowArithmetic overflow
6019AgentWindowLimitAgent window limit exceeded
6020AgentPriceImpactAgent trade exceeds max price impact
6021AgentBuyNotDipAgents may only buy below the EMA band
6022AgentSellNotRallyAgents may only sell above the EMA band
6023InsufficientVaultInsufficient vault balance
6024NothingToClaimNothing to claim
6025AlreadyRefundedAlready refunded
6026NoPendingAdminNo pending admin or signer mismatch
6027AgentAboveCostBasisAgents may only buy below the vault's average cost, or buy back with sell proceeds below the average sell price
6028AgentBelowCostBasisAgents may only sell above the vault's average cost plus band
6029NotUpgradeAuthorityOnly the program upgrade authority can initialize the platform
6030SameSlotTradeAn agent trade and a public trade can't share a slot; retry in the next slot
6031TermsChangedPlatform terms changed since this launch was prepared; review them and retry
6032LaunchTooYoungLaunch must be live for 3 days before it can wind down
6033RecentTradeLaunch traded in the last 24 hours; it can't wind down yet
6034OutsideHoldersTokens are held outside the curve and vault; the launch can't wind down
6035WrongVenueThis instruction is for the other venue (Holdfast curve vs pump.fun)
6036HoldfastCurveDisabledLaunches on the Holdfast curve are closed; create a pump.fun launch
6037InvalidVenueAccountA venue account is missing, has the wrong owner or the wrong layout
6038CurveCompleteThe pump.fun curve is complete; migrate it and run graduate_pump
6039NotGraduatedThe launch has not graduated to PumpSwap (or already has)
6040BuybackMintUnsetThe platform has no buyback mint yet
6041BuybackThrottledBuyback below the minimum size or too soon after the last one
6042AlreadyMigratedAccount already uses the current layout
Indexer synced· slot 452,231,423· lag 19Agent online· tick 559Mainnet
RisksTermsPrivacy© 2026 Holdfast