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
DocumentationSepolia deployment

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

Sepolia deployment

V2 testnet contracts, fixed-price oracle usage, and NFT listing instructions on Ethereum Sepolia.

Network: Ethereum Sepolia
Chain ID: 11155111

The FWAV2 pool uses the existing FWAToken and FWATokenHook. The whitelist is disabled, and a permissionless fixed-price test oracle is enabled.

Contracts

ContractRoleAddress
FWAV2Main NFT pool0x8D62A3eb2AC9Fc0148f1A69CAC3Eb2c71623AA90
CollectionFloorOracleSepoliaFixed-price test oracle0xAD520c5fb1Ffb335d058d63d8C10DADE25105E34
FWAVRFServiceChainlink randomness service0xaD6ad686e7fe60Dc582968EEFBAA6d3972A64dbA
FWAV2RewardsToken rewards accounting and distribution0xB013ec82d838a2e0f9AAF95847ccee2c89788fb8
FWAV2BuybackETH-funded token buybacks0xafE3Ef4dB444e0bd2feC022683760317e37e2f8B
FWAPurchaseNotifierPurchase notifications0xa86bb73B421fa004739Ada7AB1C959AEB28a73A6
FWATokenExisting $FWA test token0x14ea7A2087E32610C08c5210E16aD163353F5Fe5
FWATokenHookExisting Uniswap v4 hook0xf86c9c7e3B4EB188ee351EE7304001ECdc40e444
FWATokenDistributorOwnerPermissionless distributor registry wrapper0xc0C608d15e59d8D3754D2828b8DD43a03B7026D2
FWATestCollectionPermissionless test NFT collection0xd8B4A84299bD3509572daDDf50a59F081fe56678
FWA V1Legacy NFT pool0x692542379d6A3fc8115ae2C19787FD5bE21578bD

Oracle usage

The Sepolia oracle assigns a fixed test price to each registered collection:

  • Ask: 0.05 ETH
  • Bid: 0.045 ETH

Prices apply to the entire collection, rather than individual token IDs.

Anyone can register or refresh a collection by calling:

setFloor(address collection, uint256 askPrice)

ParameterValue
collectionThe NFT collection's contract address
askPrice50000000000000000 — exactly 0.05 ETH in wei

The transaction requires Sepolia ETH for gas only. Do not send 0.05 ETH with the call: it is the price being recorded, not a payment. NFT ownership and NFT approval are not required to update the oracle.

Other price amounts are rejected. The collection address must contain deployed contract code.

Reading and refreshing prices

Call getFloor(collection) to read the ask price and its last update timestamp. An unregistered collection returns (0, 0).

Call getFloorRange(collection) to read the bid, ask, timestamp, and manual-price marker.

FWAV2 requires a quote no older than seven days when listing, relisting, or updating an NFT's backing. Anyone can refresh it by calling setFloor again with the same fixed price. The refreshed quote takes effect immediately.

The oracle continues returning its stored price after it becomes stale, so integrations must check the timestamp.

Listing NFTs

After registering or refreshing the collection:

  1. Approve the FWAV2 pool to transfer the NFT.
  2. List the NFT through FWAV2 with the required ETH backing.

With the deployed settings, backing must be at least 0.01 ETH and no more than 0.055 ETH, which is the oracle's 0.05 ETH ask plus the pool's 10% allowance.

Refreshing the oracle does not change an existing listing's backing. A stale quote does not automatically remove an existing listing.

The supplied FWATestCollection was registered during deployment. Its quote can be refreshed using the same permissionless process.

Previous
Settlement
Next
Fees & protocol revenue
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