FOS LogoFOS Documentation
FOS Protocol

Collection & Mechanics

Cycle funding, weighted collectibles, gas-only positions, and selection lifecycle

Collection & Protocol Mechanics

Minting

Call buyAndMint(collectionType, tokenURI) on FOSNFT on Robinhood Chain. The documented type IDs are 3 (Buddy), 13 (Samurai), and 25 (Noble). A successful transaction mints a Fos Digital Collectible, registers its mint record with Processor, and sends the cycle's configured allocation-pool contribution to Processor. Only FOSNFT may register those records there. If Verify is connected and FOSNFT is approved, a separate authenticity certificate is also issued.

Throughout this reference, numbered collectibles refer to the mint records used for protocol-defined promotional distributions. Each collectible has one mint record; selection uniqueness applies to that record, while a wallet can have several recorded mints. Product wording does not change the selection mechanism or the number of allocations.

Prices and accounting

CollectionType IDNominal priceAdmin feeAdmin per paid mintPool contribution per collectibleFull 500-collectible pool
Buddy3$35%$0.15$2.85$1,425
Samurai13$133%$0.39$12.61$6,305
Noble25$252%$0.50$24.50$12,250

Dollar amounts describe the product model, not a dollar-denominated contract balance or guaranteed allocation. Payments and allocations use native ETH. Read the configured on-chain price before sending a transaction; the production USD-to-ETH conversion policy is not supplied in the contract specification.

For each paid collectible:

adminCut = price * adminBps / 10000
prizeShare = price - adminCut

The admin share remains in FOSNFT. There is no additional admin deduction from recipients' allocations. The amount sent to Processor must equal the contribution stored for that cycle.

Five gas-only positions

Positions 10, 100, 200, 300, and 400 are free in every cycle of every collection. The buyer pays network gas but sends zero purchase value. FOSNFT supplies the full pool contribution for each free collectible. Admin withdrawals must preserve the reserve for remaining free positions.

For a full cycle there are 495 paid positions and 5 funded free positions. In nominal dollars:

CollectionBuyer purchase inflowGross admin share from 495 paid positionsFree-position fundingRemaining admin amountCycle pool
Buddy$1,485$74.25$14.25$60.00$1,425
Samurai$6,435$193.05$63.05$130.00$6,305
Noble$12,375$247.50$122.50$125.00$12,250

These calculations exclude gas, oracle/bridge costs, and any other operating costs. The pool plus remaining admin amount equals the 495 buyers' total purchase payments.

Weights and uniqueness

Collectibles 1–100 have two entries each in the selection pool; 101–500 have one. Positions 10 and 100 are both free and double-weighted. The initial full-cycle selection pool contains 600 entries.

After a collectible's mint record is selected, all of its weighted entries are removed. That record cannot be selected again in the cycle. A wallet with multiple recorded mints may receive more than one allocation through distinct records. Double weight is a relative selection weight, not a guarantee of an allocation or a claim that every final inclusion probability is exactly doubled.

Green Eye and asynchronous selection

The 500th collectible closes the cycle and is known as the Green Eye.

  1. FOSNFT registers collectible 500 with Processor on Robinhood Chain. That cycle closes to further collectibles.
  2. A cycle-specific randomness request is sent through Chainlink CCIP to the Base-side integration.
  3. Chainlink VRF on Base produces verifiable randomness.
  4. CCIP returns the result to the Robinhood-side integration.
  5. Processor uses the returned randomness and collectible weights to select 17 distinct collectibles and process allocations.
  6. After the selection completes, the next cycle of that collection starts automatically.

The last mint starts this asynchronous sequence. Selection, transfers, and the next cycle do not all finish in the last buyer's transaction. Bridge contract names, callbacks, fee funding, supported CCIP lane, and deployed bridge addresses must be checked against the final implementation; this repository contains documentation, not those Solidity contracts.

Do not assume a fixed 18× gas charge or an automatic fee reimbursement. Each transaction has its own gas cost, and oracle/CCIP fees depend on the final integration.

Distribution and claims

GroupSelected collectiblesShare of poolPer-collectible share
Primary150%50% plus integer-rounding residue
Secondary630%5%
Tertiary1020%2%

Processor attempts direct payment. A rejected payment is recorded in pendingWithdrawals for a later claim() rather than described as reverting every recipient's payment.

Cycle settings

Capacity, contribution per collectible, group counts/splits, and the number of double-weighted positions are recorded at cycle start. Changes apply to subsequent cycles; an empty active cycle may be updated where the contract permits. The target capacity is 500; old 20-collectible settings were tests.

The new specification does not establish the previously described 365-day liquidatePool() mechanism. Do not rely on that recovery path unless it is confirmed in the final deployed contract.

On this page