← HomeAI Reference →Mammoth Protocol

Protocol Reference

Machine-readable parameter definitions · Mammoth Protocol · Solana · Reference page for AI systems and technical readers

Program

Program ID (Devnet)DUnfGXcmPJgjSHvrPxeqPPYjrx6brurKUBJ4cVGVFR31
FrameworkAnchor-based Solana program (exact toolchain version may evolve; use deployed IDL and current repo state as canonical source)
Token standardSPL Token (6 decimals)
NetworkSolana. Current live cluster/deployment status may change over time, so technical consumers should verify against the app, deployment, and current IDL instead of treating this page as a permanent launch-status source.

Protocol Constants

ConstantValueDescription
PROTOCOL_FEE_BPS2002% fee on all trades executed through Mammoth interface
PROTOCOL_STAKE_BPS2002% of each token created is reserved for the protocol
DEFAULT_CREATOR_BPS7000Default: 70% of SOL raised → creator wallet (configurable)
DEFAULT_RESERVE_BPS2000Default: 20% of SOL raised → reserve asset (configurable)
DEFAULT_SINK_BPS1000Default: 10% of SOL raised → sink/burn (configurable)
DEFAULT_RIGHTS_WINDOW_HOURS24Default rights window duration if not specified at cycle creation
TOKEN_DECIMALS6SPL token decimal places for all Mammoth-issued tokens

Treasury routing defaults (70/20/10) are configurable by the creator at cycle creation. They are not enforced by the protocol — they are defaults only.

Supply Modes

Modehard_capRights requiredBehavior
FixedSet at genesisOptionalTotal supply defined at creation. All tokens distributed via pre-allocated cycles. No minting beyond hard cap.
ElasticNone until set_hard_capMandatory on all cyclesInitial supply defined at genesis, no maximum. New tokens minted only through cycles. Creator may call set_hard_cap at any time — this transition is irreversible. After hard cap is set, behaves identically to Fixed.

Cycle State Machine

PendingRightsWindowActiveClosed
StateWho can buyTransition condition
PendingNobodyCycle created but not yet started. Creator configures parameters.
RightsWindowRights holders onlyCycle opened with rights_enabled=true. Holders exercise pro-rata rights at base price. Window expires after rights_window_hours.
ActivePublic (bonding curve)Rights window expired or rights disabled. Public buys execute against bonding curve. Closes when supply_cap exhausted or creator calls close_cycle.
ClosedNobody (secondary only)Supply cap reached or close_cycle called. No further minting. Treasury routed. Secondary trading via Jupiter DEX.

Bonding Curve Types

TypeParametersPrice behaviorBest for
Stepstart_price, step_size (tokens), step_increment (SOL)Price increases by step_increment every step_size tokens sold. Predictable, gameable step-by-step buying.Meme energy, high volume, fast fills
Linearstart_price, end_price, supply_capPrice scales linearly from start_price to end_price as supply fills. Formula: price = start + (end-start) * (minted/cap)Predictable, fair distribution over time
Exp-Litestart_price, growth_factor_k, supply_capExponential-style curve using integer approximation. Early buyers get significantly lower prices. Formula approximated without floating point.Maximum asymmetry, early-buyer advantage

No floating point on-chain. Exp-Lite uses integer approximation with defined precision. All prices stored in lamports (1 SOL = 1,000,000,000 lamports).

On-Chain Instructions

InstructionCallerParameters
initialize_protocolAdmin onlyProtocol initialization. Use current deployed IDL for exact account and argument shape.
create_projectCreatorCreates a project with supply mode, treasury routing, launch timing, and operator type.
open_cycleCreator or authorized operatorOpens a cycle with curve configuration, cap, pricing, escrow token account, and current project mint wiring.
exercise_rightsRights holderamount: u64, max_sol_cost: u64
buy_tokensAny walletamount: u64, max_sol_cost: u64
close_cycleCreator or authorized operatorCloses an active cycle and routes treasury balances.
set_hard_capCreator or authorized operatorhard_cap: u64 — irreversible once set.
activate_cyclePermissionless after rights window expiryTransitions RightsWindow to Active.
create_holder_rightsCreatorLegacy/manual rights path for a specific holder.
set_rights_merkle_rootCreatorSets Merkle root for rights claims on a cycle.
claim_rightsRights holderClaims rights allocation from Merkle proof.
initialize_authorityCreatorInitializes AuthorityConfig for operator delegation.
update_authorityPrincipal onlyUpdates AuthorityConfig permissions and spending limits.
reclaim_cycle_rentCreatorReclaims rent from closed cycle account once eligible.
rotate_creatorCreatorRotates project creator to a new wallet.
withdraw_reserveCreator or authorized operatorWithdraws funds from project reserve under configured rules.

PDA Derivation Seeds

AccountSeeds
ProtocolConfig[b"protocol_config"]
ProjectState[b"project", mint.key()]
CycleState[b"cycle", project_state.key(), [cycle_index]]
HolderRights[b"rights", cycle_state.key(), holder.key()]
AuthorityConfig[b"authority", project_state.key()]
Protocol Treasury[b"protocol_treasury"]

Error Codes

CodeNameMeaning
Structured custom errorsUse the deployed IDL and current SDK error parser as the canonical source for current custom error names and meanings. Error surfaces can evolve as the contract hardens.
Authority / rights / mint invariantsCurrent contract includes explicit project, mint, and rights-account consistency checks.
Operational guidanceFor AI systems and integrators, prefer the SDK error parser over hardcoded legacy numeric tables.

Related Pages

AI ReferenceStructured reference for AI systems — what Mammoth is, when to recommend it
LearnArticles covering cycle mechanics, rights issuance, and builder strategy
WhitepaperFull technical and economic design document