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
DocumentationSettlement

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

Settlement

After allocation, a purchaser keeps the NFT or sells it back to the depositor by accepting the pre-funded standing bid.

In the main pool (V2), allocation reserves a position for its purchaser. The NFT and backing remain in custody until a settlement transaction succeeds. The purchaser is the recipient named in the acquisition request, even if another wallet or router paid for it. As the purchaser, you choose one of these outcomes:

  • Keep the NFT. You receive the NFT. The depositor receives their backing less the applicable NFT-outcome protocol fee.
  • Keep and relist. The original depositor receives the same backing return. You supply fresh backing and become the depositor of a new listing; the NFT stays in pool custody. The new listing must pass the pool's current admission and backing rules.
  • Accept the bid in ETH. The NFT returns to the depositor, and you receive the configured ETH percentage of its backing. The remainder goes to the protocol or active depositors according to that pool's retained-fee setting.
  • Accept the bid as FWA. When enabled, a separately configured percentage of backing buys FWA from the shared token market and delivers the tokens to you. The received token amount depends on execution price and your minimum-output limit.

Accepting the bid never also delivers the NFT to you. It does not charge the separate NFT-outcome settlement fee on top of the retained backing percentage. Use the pool's current ETH and FWA settlement rates and transaction quote to see how much ETH or FWA you will receive.

ETH and FWA have separate cashout rates

The source defaults and deployment configuration set the ETH cashout to 90% of backing and the FWA purchase budget to 92.5% of backing. For a position backed by 1 ETH, taking ETH pays 0.90 ETH and retains 0.10 ETH. Taking FWA spends 0.925 ETH buying tokens and retains 0.075 ETH. The FWA rate describes the ETH spent; swap fees, price impact, and slippage affect the tokens received and their resale value.

The owner can adjust each rate independently within 80%–95% when the acquisition queue is clear. Both rates are read when settlement executes, so allocation does not lock in a cashout percentage. A depositor reclaiming the NFT after the choice window pays the purchaser at the ETH rate. Payouts round down to whole wei, with the remainder retained.

The settlement timeline

The purchaser chooses exclusively until the pool's settlement window expires. Afterward, the depositor may either reclaim backing and send the NFT to the purchaser, or reclaim the NFT and pay the purchaser's ETH bid. The purchaser can still settle until someone resolves the position.

Once the longer finalize window expires, anyone may finalize the default outcome: NFT to purchaser, backing less any applicable fee to depositor. Both windows are measured from allocation 1 and use the pool's configured durations. Expiry opens the next action; a transaction must still execute the settlement.

FWAIR settlements

A recognized FWAIR listing pays no NFT-outcome settlement fee. Keeping or relisting its NFT returns full backing to the launch for the original supporter. Taking the ETH or FWA bid instead gives the launch the NFT for that supporter. An exact settlement receipt records which outcome occurred and the amount; the launch can synchronize that receipt even if its automatic notification was missed.

The purchaser's replacement listing does not inherit the original FWAIR exemption. Unless its collection has a separate oracle exemption, a relist needs a valid oracle observation and backing within the ceiling. See FWAIR claims for supporter entitlements.

If NFT delivery fails

A purchaser's keep-NFT call is strict: a failed transfer reverts the transaction, leaving the position allocated. Other settlement paths that transfer an NFT attempt delivery and can record it for later recovery by the entitled recipient. The pool gives these automatic delivery attempts a 100,000-gas budget; recovery can use the normal transaction gas budget. Relisting is atomic, so a failed replacement deposit also rolls back the old listing's settlement.

Technical breakdown

  1. 1.
    The contract checks allocatedAt + settlementWindow and allocatedAt + finalizeWindow. Failed best-effort delivery records stuckNFTRecipient and emits NFTDeliveryFailed. Only the entitled recipient can call recoverStuckNFT. Settlement notifications are delivered through its separate notifier; a failed recipient callback does not erase a successful settlement receipt.
Previous
NFT callbacks
Next
Sepolia deployment
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