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
DocumentationV1 contracts & testnet

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

V1 contracts & testnet

The documented V1 mainnet contracts, collection reference, and Sepolia test deployment.

These are the documented V1 Ethereum mainnet contracts and shared FWA token infrastructure. Contract addresses are linked to Etherscan. V2 reuses the FWA token and its official Uniswap v4 hook. Pool-bound contracts have separate V2 and custom-pool deployments.

ContractRoleAddress
FWAV1 main pool: accounting, positions, selection, and settlement0xB276F62DB0ce8CA2Ca5bc522695bE604521eAc1c
FWARewardsV1 FWA emissions, purchaser epochs, reward buys, and routing0x6a1a1C0CfB3D3C538e13D36d608a5bcaa992fc78
FWAVRFServiceDedicated subscription coverage, request fees, and sponsored processing0xa084c33Fb7a467307452898b8D58165ebd2E5D9f
FWAToken$FWA incentive token (ERC-20)0xa0Df17B5aC76ABaBA36E1450E2cbCd18A620C845
FWATokenTransferPermit2 escrow rail for next-block wallet-to-wallet $FWA claims0xcE6d5B618e034f87C7a8B6dCa65FB8669b8c301B
FWAERC20WrapperOwner-curated ERC-20 denominations wrapped into FWA-compatible ERC-721 packs0x727C739F07A89f11E883FE0F34937c55e4c3d74A
FWAERC20PackRendererOnchain metadata and SVG renderer for ERC-20 pack NFTs0x69Cc9c633867eEE71b17142BBBc2c6aaf14c61a4
FWATokenWrapperBlock-locked $FWA bearer packs represented as ERC-721 NFTs0x470879Abd61FdCA91436fE27ed87dB2c8650f3e7
FWATokenHookUniswap v4 hook for the $FWA liquidity pool0x2C67ebA8A50AF0dB5Fba55F725247a75CbDA6444
OwnerSplitterDocumented recipient of the shared hook's FWA trading fees; verify the hook's current fee destination0x7400824eec17F86Cc74385862810710F9c46Ec04
FWAClaimMerkle-gated v1 snapshot distribution0xd4085d38855F17EdF0B1CCBFad7B3846fb305655
FWAWhitelistAuthorityDelegated collection curation, durable blocks, and reservation-scoped FWAIR activation0x54B641aC97A9e9375665934b8e7a7D0b2C0E898B
FWAIRLaunchManagerV1 launch deployment, campaign approvals, collection reservations, and activation0x900252d9A8F9AcC3DD1014C594c91fC33e5A6AAf

FWAIR deployments

The documented V1 FWAIRLaunchManager is the canonical registry and deployer for its campaigns. Every collection campaign gets its own byte-for-byte verified FWAIRLaunch child and single-use VRF consumer, so child addresses are not hardcoded in the singleton table above. Discover launches through that manager's launches(id) or launchForCollection(collection) reads, or through the live drops catalogue.

The documented manager was deployed at Ethereum block 25877942. The deployment manifest records source revision 49837e82685cd9022529da83cf723606b597f4c6 alongside the exact creation, runtime, and artifact hashes. Its immutable whitelist authority is the FWAWhitelistAuthority shown in the table.

Numeric launch IDs are manager-scoped; links, caches, and integrations should use the launch contract address instead. Existing campaigns continue through their original manager and pool contracts.

For mechanics, fees, and the published configuration, read the V1 guide and settings. The guides in the Main pool category describe V2; these V1 addresses and collection entries do not establish V2 eligibility or wiring.

V1 collection reference

These 62 collections are the published V1 documentation reference. This is not a live whitelist snapshot. Check the pool's current admission rules before depositing.

CollectionContract
Ten Thousand Tokens0x26d7ad0e930b54b84c00daad077ee31ba9e2fb2e
Wrapped CryptoPunks0x000000000000003607fce1ac9e043a86675c5c2f
Miladys0x5af0d9827e0c53e4799bb226655a1de152a425a5
Bored Ape Yacht Club0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d
Azuki0xed5af388653567af2f388e6224dc7c4b3241c544
Doodles0x8a90cab2b38dba80c64b7734e58ee1db38b8992e
CrypToadz0x1cb1a5e65610aeff2551a50f76a87a7d3fb649c6
Pudgy Penguins0xbd3531da5cf5857e7cfaa92426877b022e612cf8
Meebits0x7bd29408f11d2bfc23c34f18275bbf23bb716bc7
Checks0x036721e5a769cc48b3189efbb9cce4471e8a48b1
Max Pain0xd1169e5349d1cb9941f3dcba135c8a4b9eacfdde
ICXNs / XCORE0xc04e0000726ed7c5b9f0045bc0c4806321bc6c65
CryptoDickbutts S30x42069abfe407c60cf4ae4112bedead391dba1cdb
VeeFriends0xa3aee8bce55beea1951ef834b99f3ac60d1abeeb
mfers0x79fcdef22feed20eddacbb2587640e45491b757f
DeadFellaz0x2acab3dea77832c09420663b0e1cb386031ba17b
Nouns0x9c8ff314c9bc7f6e59a9d9225fb22946427edc03
Opepen Edition0x6339e5e072086621540d0362c4e3cea0d643e114
Nakamigos0xd774557b647330c91bf44cfeab205095f7e6c367
Mutant Ape Yacht Club0x60e4d786628fea6478f785a6d7e704777c86a7c6
OCH Genesis Ring0x8e02d1e68dff0dcebf1cde4ee5f60f1d5a499b1e
PXL NET0x7a50abab1af2c15fe9780f4f045820294e1a715c
RΞMNANTS0xdfea2b364db868b1d2601d6b833d74db4de94460
REGULAR ANIMALS0x7a7b26ec72c8497fd068211979199044deeacc3b
beef brothko0xa471f4da9b79645f4f5358e102c62f59c1329aa5
SMOWL0x03b8d129a8f6dc62a797b59aa5eebb11ad63dada
Masks of Luci0x4440732b0d85e2a77dcb2caedfd940154241249a
Quirkies0xd4b7d9bb20fa20ddada9ecef8a7355ca983cccb1
Chimpers0x307af7d28afee82092aa95d35644898311ca5360
Otherdeed Expanded0x790b2cf29ed4f310bf7641f013c65d4560d28371
Koda0xe012baf811cf9c05c408e879c399960d1f305903
Beeple Everyday0xd92e44ac213b9ebda0178e1523cc0ce177b7fa96
Beeple Spring/Summer0xdd012153e008346591153fff28b0dd6724f0c256
Birds by NicedayJules0x75de5bc35248026fabcb2382cf322bc79dfd1a8c
Rektguy0xb852c6b5892256c264cc2c888ea462189154d8d7
VeeFriends Series 20x9378368ba6b85c1fba5b131b530f5f5bedf21a18
Good Vibes Club0xb8ea78fcacef50d41375e44e6814ebba36bb33c4
Quines0xab00000000002ade39f58f9d8278a31574ffbe77
Nameless Dread0xe18f2247fe4a69c0e2210331b0604f6d10fece9e
Pattern Recognition0x4c159520f1117ac58cb5efa1765469cac54dcaab
Memeland MVPs0x6efc003d3f3658383f06185503340c2cf27a57b6
Letters0x614917f589593189ac27ac8b81064cbe450c35e3
Wolf Game0xc7e67762821b2ed6c0a1f423547b2899822d8650
Wolf Game Farmers0x4024c2083f5457874ec489f7c7332680bb86c92b
Everything vs Nothing by Joe Pease0xd0090373e80236adb6c07cf21b7395938cca46b3
Broken Keys by ACK0xd90829c6c6012e4dde506bd95d7499a04b9a56de
Geometric Pepes by Batzdu0xf8cc77098adb1e8becad7aae11d667aa01db9d7c
Wrappers by Jack Butcher0xd716473c8eb83a2102def2b6390d9dfe74b2f580
Friendship Bracelets by Alexis André0x942bc2d3e7a589fe5bd4a5c6ef9727dfd82f5c8a
CryptoCitizens0xbdde08bd57e5c9fd563ee7ac61618cb2ecdc0ce0
Fwogs0x8fe1a377b83921fe1429adb1b8fbfecd45de9cd8
Pudgy Rods0x062e691c2054de82f28008a8ccc6d7a1c8ce060d
Lil Pudgys0x524cab2ec69124574082676e6f654a18df49a048
Squiggles / Day One AB0x059edd72cd353df5106d2b9cc5ab83a52287ac3a
Drip Drop by Dave Krugman0x880af717abba38f31ca21673843636a355fb45f3
Right Click Share by XCOPY0xd16809c0a7d82c9e7552a01fd608fff90efb564f
Ethos Validator0xd83b6493ecebc29a6da555935d1b8572a14fc989
0xmons0x0427743df720801825a5c82e0582b1e915e0f750
Autoglyphs0xd4e4078ca3495de5b1d4db434bebc5a986197782
Schizoposters0xbfe47d6d4090940d1c7a0066b63d23875e3e2ac5
gristle buddeez worldwide0x8365382935f0fb94b9f0b07524b535ec13d35ad7
Bold Pepes0xfdf1d7694d0ca2f16675c75645f8046dd08a19dd

V1 on Sepolia

The documented public example uses the V1 test stack on Ethereum Sepolia (chain ID 11155111). Its pool-bound contracts are not V2 or custom-pool endpoints. The addresses and workflow below are preserved for that test deployment; confirm its current configuration and availability before using it.

Contracts

ContractRoleAddress
FWACore NFT pool0x692542379d6A3fc8115ae2C19787FD5bE21578bD
FWAToken$FWA test token0x14ea7A2087E32610C08c5210E16aD163353F5Fe5
FWATokenHookUniswap v4 hook for the $FWA pool0xf86c9c7e3B4EB188ee351EE7304001ECdc40e444
FWATokenDistributorOwnerPermissionless distributor registry wrapper0xc0C608d15e59d8D3754D2828b8DD43a03B7026D2
FWATestCollectionPermissionless test NFT collection0xd8B4A84299bD3509572daDDf50a59F081fe56678

1. Get Sepolia ETH

You need Sepolia ETH to pay gas and interact with the deployment. Claim some from the Gas.zip Sepolia faucet, or use any other Sepolia faucet. Send it to the wallet you will use for testing and wait for the balance to appear on Sepolia before continuing.

If you need more than a faucet provides, open a Gas.zip Sepolia refuel quote. Choose a supported L2 where you already have funds as the source, leave Sepolia selected as the destination, and choose a small dollar amount. After you review and submit the quote, you pay with real funds on the source L2 and receive Sepolia ETH in your wallet. Available source chains, rates, and fees can vary, so check the destination and final amount before confirming.

2. Mint a test NFT

The FWATestCollection contract lets anyone mint a test NFT directly to their connected wallet:

  1. Open FWATestCollection on Sepolia Etherscan.
  2. In Contract → Write Contract, connect the wallet you funded.
  3. Select the no-argument mint() function and submit the transaction.
  4. After confirmation, the contract mints the next sequential token ID to the wallet that submitted the transaction. The receipt's Transfer event contains the new token ID.

3. Register a contract that moves FWA

This step is only needed when your integration contract sends or receives $FWA. On Sepolia, registration is permissionless:

  1. Deploy your integration contract to Sepolia.
  2. Open FWATokenDistributorOwner on Sepolia Etherscan, connect a wallet, and call setDistributor(integrationAddress) with your contract's nonzero address.
  3. Wait for confirmation, then open FWAToken and confirm isDistributor(integrationAddress) returns true.

Distributor status allows the registered contract to send or receive $FWA while the token transfer lock is active. It does not bypass token balances or ERC-20 allowances, so transferFrom still requires approval.

4. Process acquisitions when needed

There is no automated keeper running for the Sepolia deployment. Chainlink VRF's callback attempts to process an acquisition as soon as randomness arrives, but that best-effort path may leave it ready and unsettled. If that happens, you must trigger processing yourself.

  1. Wait for Chainlink VRF to fulfill the acquisition. In FWA's Read Contract, pendingAcquisitionCount() tracks requests still waiting for randomness and unsettledAcquisitionCount() tracks all acquisitions that have not finished.
  2. If randomness has arrived but the acquisition remains unsettled, open FWA's Write Contract, connect a wallet, and call processAcquisitions(maxCount). A maxCount of 10 is a reasonable batch for normal testing.
  3. Wait for confirmation, then check unsettledAcquisitionCount() again. Repeat only if additional ready acquisitions remain.

Anyone can call processAcquisitions. The caller only chooses the maximum batch size; FWA determines which requests are processed and always follows the canonical queue order. Sepolia callers pay their own transaction gas and are not reimbursed.

Mainnet is different: external contracts cannot register themselves. Any external contract that needs to move $FWA must be reviewed and approved by an authorized FWA administrator before it can operate through the transfer lock.

Offchain indexing

If you want to build an offchain indexer, we use Ponder. Start with its getting-started guide; your coding agent should be able to take it from there.

Previous
V1 guide & settings
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