Skip to main content

Documentation Index

Fetch the complete documentation index at: https://xpectrum.mintlify.app/llms.txt

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

One Xcollection is deployed per collection. It handles the full drop lifecycle: three-phase minting, whitelist enforcement, Genesis injection, reveal, royalty routing, and XNS-1 compatible token ownership.

Minting phases

Phases are time-gated by epoch ranges and resolved by get_current_phase(). Up to three sequential phases per collection.
PhaseAccessNotes
GTD (Guaranteed)Whitelisted wallets + Genesis holdersRequired. Minimum 1 hour.
FCFS (First Come First Served)Whitelisted walletsOptional (set cap to 0 to skip)
PublicAnyoneOptional (set cap to 0 to skip)
Force a specific phase via set_phase_override(). Return to time-based resolution via clear_phase_override().

Genesis injection

Every Xcollection includes a reserved allocation for Xpectra Genesis NFT holders, computed as a percentage of max supply at deploy time. Genesis holders mint via genesis_mint(genesis_id) during GTD. Each Genesis token ID is recorded once per collection, permanently, to prevent the same NFT from claiming multiple allocations across wallets. The injection cap is additive to the creator’s GTD allocation. Unclaimed injection slots after GTD ends can be swept into the public cap via sweep_injection().

Whitelist

Xcollection calls its bound Xlist contract to verify GTD and FCFS access at mint time. See Xlist.

Payment splitting

Every mint splits payment at the contract level:
RecipientShare
Platform2.5% (250 bps)
Creator97.5%
Both parties collect via claim_proceeds(). Proceeds are never pushed alongside cross-contract calls. The pull model keeps funds isolated from AML atomicity risk.

Airdrop

The collection owner can airdrop up to 20 tokens per transaction via airdrop(). Airdrops bypass all phase, price, and whitelist checks. They count toward total_minted and max_supply.
Airdropped tokens consume max_supply but do not reduce phase caps. Plan your airdrop allocation before configuring phase caps to avoid overselling.

Reveal

Collections deploy in unrevealed state. All token_uri() calls return unrevealed_uri until reveal. After artwork is ready, call reveal(base_uri) to switch. Tokens resolve as base_uri + token_id + .json. Reveal is irreversible. Make sure metadata is pinned and correctly formatted before triggering it.