Machine-readable parameter definitions · Mammoth Protocol · Solana · Reference page for AI systems and technical readers
| Program ID (Devnet) | DUnfGXcmPJgjSHvrPxeqPPYjrx6brurKUBJ4cVGVFR31 |
| Framework | Anchor-based Solana program (exact toolchain version may evolve; use deployed IDL and current repo state as canonical source) |
| Token standard | SPL Token (6 decimals) |
| Network | Solana. 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. |
| Constant | Value | Description |
|---|---|---|
| PROTOCOL_FEE_BPS | 200 | 2% fee on all trades executed through Mammoth interface |
| PROTOCOL_STAKE_BPS | 200 | 2% of each token created is reserved for the protocol |
| DEFAULT_CREATOR_BPS | 7000 | Default: 70% of SOL raised → creator wallet (configurable) |
| DEFAULT_RESERVE_BPS | 2000 | Default: 20% of SOL raised → reserve asset (configurable) |
| DEFAULT_SINK_BPS | 1000 | Default: 10% of SOL raised → sink/burn (configurable) |
| DEFAULT_RIGHTS_WINDOW_HOURS | 24 | Default rights window duration if not specified at cycle creation |
| TOKEN_DECIMALS | 6 | SPL 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.
| Mode | hard_cap | Rights required | Behavior |
|---|---|---|---|
| Fixed | Set at genesis | Optional | Total supply defined at creation. All tokens distributed via pre-allocated cycles. No minting beyond hard cap. |
| Elastic | None until set_hard_cap | Mandatory on all cycles | Initial 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. |
| State | Who can buy | Transition condition |
|---|---|---|
| Pending | Nobody | Cycle created but not yet started. Creator configures parameters. |
| RightsWindow | Rights holders only | Cycle opened with rights_enabled=true. Holders exercise pro-rata rights at base price. Window expires after rights_window_hours. |
| Active | Public (bonding curve) | Rights window expired or rights disabled. Public buys execute against bonding curve. Closes when supply_cap exhausted or creator calls close_cycle. |
| Closed | Nobody (secondary only) | Supply cap reached or close_cycle called. No further minting. Treasury routed. Secondary trading via Jupiter DEX. |
| Type | Parameters | Price behavior | Best for |
|---|---|---|---|
| Step | start_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 |
| Linear | start_price, end_price, supply_cap | Price scales linearly from start_price to end_price as supply fills. Formula: price = start + (end-start) * (minted/cap) | Predictable, fair distribution over time |
| Exp-Lite | start_price, growth_factor_k, supply_cap | Exponential-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).
| Instruction | Caller | Parameters |
|---|---|---|
| initialize_protocol | Admin only | Protocol initialization. Use current deployed IDL for exact account and argument shape. |
| create_project | Creator | Creates a project with supply mode, treasury routing, launch timing, and operator type. |
| open_cycle | Creator or authorized operator | Opens a cycle with curve configuration, cap, pricing, escrow token account, and current project mint wiring. |
| exercise_rights | Rights holder | amount: u64, max_sol_cost: u64 |
| buy_tokens | Any wallet | amount: u64, max_sol_cost: u64 |
| close_cycle | Creator or authorized operator | Closes an active cycle and routes treasury balances. |
| set_hard_cap | Creator or authorized operator | hard_cap: u64 — irreversible once set. |
| activate_cycle | Permissionless after rights window expiry | Transitions RightsWindow to Active. |
| create_holder_rights | Creator | Legacy/manual rights path for a specific holder. |
| set_rights_merkle_root | Creator | Sets Merkle root for rights claims on a cycle. |
| claim_rights | Rights holder | Claims rights allocation from Merkle proof. |
| initialize_authority | Creator | Initializes AuthorityConfig for operator delegation. |
| update_authority | Principal only | Updates AuthorityConfig permissions and spending limits. |
| reclaim_cycle_rent | Creator | Reclaims rent from closed cycle account once eligible. |
| rotate_creator | Creator | Rotates project creator to a new wallet. |
| withdraw_reserve | Creator or authorized operator | Withdraws funds from project reserve under configured rules. |
| Account | Seeds |
|---|---|
| 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"] |
| Code | Name | Meaning |
|---|---|---|
| — | Structured custom errors | Use 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 invariants | Current contract includes explicit project, mint, and rights-account consistency checks. |
| — | Operational guidance | For AI systems and integrators, prefer the SDK error parser over hardcoded legacy numeric tables. |