Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.meteora.ag/llms.txt

Use this file to discover all available pages before exploring further.

Stake2Earn uses Anchor custom errors. Numeric codes start at 6000.
CodeEnumMessageCommon cause
6000InvalidEscrowOwnerEscrow owner is not vaultDAMM v1 lock escrow owner does not equal the Stake2Earn vault PDA.
6001InvalidTopListLengthInvalid top list lengthtop_list_length is outside the public 5 to 1000 range.
6002InvalidSecondsToFullUnlockInvalid seconds to full unlockFee drip duration is outside the public 6 hours to 31 days range.
6003MustHaveQuoteTokenOrInvalidStakeMintPool missing SOL/USDC token or invalid stake mintQuote mint is not SOL/USDC or the stake mint is a quote mint.
6004MissingDroppedStakeEscrowMissing dropped stake escrowA top-list replacement needs the dropped stake escrow account but it was not supplied.
6005InvalidStakeEscrowInvalid stake escrowA supplied stake escrow does not match the expected vault, owner, or list index.
6006FullBalanceListFullFull balance list is fullThe full balance list reached its hard limit and no valid reclaim path was supplied.
6007MintDoesNotBelongToPoolMint does not belong to the poolstake_mint or quote_mint is not one of the DAMM v1 pool mints.
6008InsufficientStakeAmountInsufficient stake amountrequest_unstake amount exceeds active stake amount.
6009CannotWithdrawUnstakeAmountUnstake amount release date not reachedwithdraw was called before unstake.release_at.
6010InvalidAdminInvalid adminAdmin instruction signer is not one of the hardcoded program admins.
6011InvalidUnstakeLockDurationInvalid unstake lock durationUnstake cooldown is outside the public 6 hours to 31 days range.
6012InvalidJoinWindowDurationInvalid join window durationCustom fee distribution start time is more than 31 days after the current timestamp.
6013InvalidCustomStartFeeDistributeTimestampInvalid custom start fee distribute timestampDefined in the error enum; use source/IDL to confirm when handling legacy flows.
6014InvalidSmallestStakeEscrowInvalid smallest stake escrowThe supplied smallest_stake_escrow does not match the expected reclaim index or vault.
6015MathOverflowMathOverflowChecked arithmetic overflow or division failure.
6016TypeCastFailedType casting failedChecked numeric conversion failed.
6017InvalidLockEscrowRelatedAccountsInvalid lock escrow related accountsDAMM v1 pool, Dynamic Vault, LP mint, LP account, or token vault accounts do not match each other.
6018OnlyConstantProductPoolOnly constant product pool is supportedinitialize_vault was called for a non-constant-product DAMM v1 pool.
6019UndeterminedErrorUndetermined errorInternal invariant failure in list synchronization.
6020MissingSmallestStakeEscrowMissing smallest stake escrowReclaiming a full-balance-list index requires the smallest tracked stake escrow account.
6021UpdatedValueIsTheSameUpdated value is the same as old valueAdmin update supplied the current value.
6022InvalidFeeCrankIxInvalid fee crank instructionupdate_seconds_to_full_unlock was not immediately preceded by claim_fee_crank for the same vault/program.

Debugging Checklist

SymptomCheck
Vault initialization failsConfirm the pool is DAMM v1 constant product, mints belong to the pool, quote mint is SOL/USDC, and the lock escrow owner is the vault PDA.
Stake or claim fails with account mismatchRe-fetch the DAMM v1 pool, Dynamic Vault accounts, LP mints, token vaults, and lock escrow before building the transaction.
Top list sync failsInclude the SDK-provided replacement stake escrows in remaining_accounts; do not omit smallest_stake_escrow when reclaiming a full-balance entry.
Withdraw failsCompare the current on-chain timestamp with unstake.release_at.
Admin drip update failsPut claim_fee_crank immediately before update_seconds_to_full_unlock in the same transaction.