V2 is now live at fwa.funV2 is now live at fwa.funV2 is now live at fwa.funV2 is now live at fwa.funV2 is now live at fwa.funV2 is now live at fwa.funV2 is now live at fwa.funV2 is now live at fwa.funV2 is now live at fwa.funV2 is now live at fwa.funV2 is now live at fwa.funV2 is now live at fwa.fun
MigrateDrops

Start here

  • How it works
  • Deployments

Main pool

  • Main pool overview
  • Positions & weighting
  • Pricing & allocation
  • Collections
  • NFT callbacks
  • Settlement
  • Sepolia deployment

Pool fees & rewards

  • Fees & protocol revenue
  • Crown reward

FWA token

  • $FWA overview
  • Earning & claiming
  • Buybacks & fee routing

FWAIR Launches

  • FWAIR overview
  • Backing a launch
  • Where funds go
  • Claims & recovery
  • Launch settings

Custom Pools

  • Custom pools overview
  • Standard pools
  • Buyback pools
  • Create & manage a pool
  • Pool settings & fees

Controls & safety

  • Exits & recovery
  • Roles & controls
  • Settings by product

Developers

  • Testing integrations
  • Deployment & integration

V1

  • V1 guide & settings
  • V1 contracts & testnet
DocumentationPricing & allocation

Start here

  • How it works
  • Deployments

Main pool

  • Main pool overview
  • Positions & weighting
  • Pricing & allocation
  • Collections
  • NFT callbacks
  • Settlement
  • Sepolia deployment

Pool fees & rewards

  • Fees & protocol revenue
  • Crown reward

FWA token

  • $FWA overview
  • Earning & claiming
  • Buybacks & fee routing

FWAIR Launches

  • FWAIR overview
  • Backing a launch
  • Where funds go
  • Claims & recovery
  • Launch settings

Custom Pools

  • Custom pools overview
  • Standard pools
  • Buyback pools
  • Create & manage a pool
  • Pool settings & fees

Controls & safety

  • Exits & recovery
  • Roles & controls
  • Settings by product

Developers

  • Testing integrations
  • Deployment & integration

V1

  • V1 guide & settings
  • V1 contracts & testnet

Pricing & allocation

Acquisition pricing follows the cheap positions people usually receive, while Chainlink VRF and live-pool selection keep allocation fair.

The main pool (V2) prices an acquisition from the expected ETH backing of the position selected, plus the pool's configured surcharge1. Because lower-backed positions have more selection weight, they have more influence on this price. The calculation does not promise that the NFT's resale value, or the bid you can accept, will cover your acquisition cost.

The surcharge can be divided between depositor fee income and an FWA-buy allowance for a successful purchaser. That division depends on the reward module's activity settings. The protocol acquisition cut is applied separately. See Fees for the distribution and the main pool overview for its policy settings.

The full purchase quote

You pay the pool acquisition fee plus a VRF service fee. The pool has its own service and dedicated Chainlink subscription. The service fee funds callback coverage separately from listing backing and depositor earnings. Any overpayment returns immediately to the caller who funded the transaction. Request-time limits can reject a transaction if the pool moves beyond your bounds before it is mined 2.

Choose the recipient and purchase count

Every request names a purchaser. Pass your own address when buying for yourself, or another recipient when buying for someone else. That address receives allocations, FWA acquisition rewards, later refund credits, and settlement rights. Paying for a request does not give the payer those rights when a different purchaser is named.

One acquisition call handles both a single purchase and a batch from the same pool. A count of one opens one request; a larger count opens that many independent requests for the same purchaser, up to the pool's configured limit. The total payment is the count multiplied by the per-request pool and VRF fees. Each request checks price drift at its own ordered processing turn. Only the first request can benefit from time since the previous request when calculating its surcharge allowance; later requests in the same call have a zero-second gap.

Randomness and request order

Chainlink VRF supplies the random word3. The acquisition fee stays escrowed until the request resolves, and requests process in the order they were created. Deposits made while acquisitions remain unresolved join a staging queue. A later request reserves its own bounded batch of staged positions before asking for randomness; an already-issued request cannot adopt newer deposits.

A callback may process ready work directly. Otherwise, a processor advances the next ready or expired request. Anyone can call that onchain processor; it does not choose the random word or skip an earlier request.

Purchase blackout windows

The pool rejects new single and batch acquisitions from 11:45–12:00 UTC and 23:45–00:00 UTC every day. Existing requests can still receive callbacks, process, and settle. These cold windows allow the queue to drain and over-ceiling listings to be removed; they do not guarantee that the queue is already clear.

When a request becomes a refund

  • Empty pool. If earlier acquisitions exhaust the eligible active positions, the request's pool fee becomes a withdrawable refund credit.
  • Price drift. If the live acquisition fee moves beyond the request's snapshotted tolerances, its pool fee becomes a refund credit instead of allocating a position.
  • Late or missing randomness. A word received at the deadline is on time. Strictly afterward, the next unresolved request can expire, release its pool-fee credit, and let later ready requests proceed.

Refunds must be claimed by the named purchaser, even if a different caller originally paid. The VRF service fee is not included because it paid for request coverage. A refunded acquisition earns no successful acquisition FWA reward.

Technical breakdown

  1. 1.
    EV = weightedBackingTotal / totalWeight. Inverse weights make this approximately the harmonic mean of active backings, subject to integer rounding. The pool fee is EV × (10,000 + surchargeBps) / 10,000.
  2. 2.
    Requests accept maxAcquisitionFee and minWeightedValue bounds; zero disables either bound. The pool snapshots its positive selectionSlippageBps limit. Purchasers can choose maxNegativeSlippageBps from 0% through 100%.
  3. 3.
    The main pool uses Chainlink VRF v2.5 with a native-payment subscription. FWAVRFService checks protected callback coverage before issuing requests. Approved operators may use a capped sponsored processing route when service surplus permits; direct processing remains public and unpaid.
Previous
Positions & weighting
Next
Collections
ByTokenWorks™
Operated by Token Workshop, Inc.Terms of Service

Explore

  • Home
  • Activity
  • Leaderboard

Protocol

  • $FWA
  • Deposit
  • Manage
  • Migrate

Fwair

  • Drops
  • Beta

Resources

  • V2 explained
  • Documentation
  • Changelog
  • X