DocumentationPricing & allocation

Pricing & allocation

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

An acquisition costs roughly the average value of the position you might receive, plus a small acquisition surcharge (currently 2.5%). That surcharge is dynamically divided between depositor fee income and an FWA allowance for the successful purchaser; the protocol's own cut is configured separately. Because the lightly-backed positions are the ones you almost always receive, the price tracks them, while the rare highest-backed positions barely move it1.

  • Pools of cheap positions stay cheap to acquire from, even with a few richly-backed positions in them, since those are selected so rarely they barely move the price. You get frequent, low-cost acquisitions and a high-backed position to chase at once.
  • The price is honest. You pay about what an acquisition is worth, plus the set surcharge, with no hidden markup.

You're quoted the pool acquisition fee plus a VRF service fee. The separate FWAVRFService uses that service fee to keep FWA's dedicated Chainlink subscription covered; it never draws from listing backing or depositor earnings. Any transaction overpayment returns immediately, and request-time limits2make the purchase revert if the pool moves beyond the purchaser's bounds before it is mined.

Randomness comes from Chainlink VRF3. Your acquisition fee stays escrowed until the request resolves. Requests settle in the order they were created. New deposits made while requests are open wait in a first-in-first-out staging line, so later deposits and callback timing cannot alter an existing draw. If a request cannot finish inside its callback, an automated processor normally advances the next ready or expired request; anyone can call the same onchain processor.

When an acquisition can't settle cleanly:

  • Empty pool. If every position left before your request reaches the head, the escrowed pool fee becomes a pull-based refund credit.
  • Price drift. If another acquisition shifted the price beyond your snapshotted bounds, the escrowed pool fee becomes a pull-based refund credit instead of settling at a stale price.
  • Late or missing word. The deadline is inclusive: a word at the deadline is valid. Strictly afterward, anyone can expire the next unresolved request and release later ready requests. The escrowed pool fee becomes a pull credit; the VRF service fee is nonrefundable because it paid for callback coverage.

Technical breakdown

  1. 1.
    Expected value is weightedBackingTotal / totalWeight, which, because weights are inverse to backing, equals the harmonic mean of all backings (dominated by the cheapest positions). The fee is acquisitionFee = EV · (BPS + surchargeBps) / BPS with surchargeBps = 250 (2.5%), exposed by the acquisitionFee() view.
  2. 2.
    A request accepts optional maxAcquisitionFee and minWeightedValue bounds (0 disables each), plus purchaser-selected maxNegativeSlippageBps. Positive fee drift is capped by the protocol's snapshotted selectionSlippageBps (10% by default); negative tolerance may be chosen from 0% through 100%.
  3. 3.
    Chainlink VRF 2.5 runs in subscription native-payment mode on a dedicated subscription. FWAVRFService ensures protected callback coverage before a request is issued. An approved operator may use a capped sponsored processing route when safe service surplus is available, while direct processing remains public and unpaid. Neither route provides randomness, chooses a result, or skips an earlier request.