Testnet
Get Sepolia ETH, mint a test NFT, and connect an integration to the public test deployment.
Build on FWA
FWA is an open, composable protocol. Developers can integrate its onchain contracts into new products, games, and experiences rather than starting from scratch. Projects already building on top of FWA include Megarip by 0xripe and FWAP by 0xquit.
If you are building an FWA integration, use the public Sepolia deployment below to set up and test your contracts before requesting any required mainnet approvals.
The public test deployment runs on Ethereum Sepolia (chain ID 11155111). Connect a Sepolia wallet with enough test ETH for gas, then use the verified contracts below through your preferred Ethereum tooling or their Etherscan contract pages.
Contracts
| Contract | Role | Address |
|---|---|---|
| FWA | Core NFT pool | 0x692542379d6A3fc8115ae2C19787FD5bE21578bD |
| FWAToken | $FWA test token | 0x14ea7A2087E32610C08c5210E16aD163353F5Fe5 |
| FWATokenHook | Uniswap v4 hook for the $FWA pool | 0xf86c9c7e3B4EB188ee351EE7304001ECdc40e444 |
| FWATokenDistributorOwner | Permissionless distributor registry wrapper | 0xc0C608d15e59d8D3754D2828b8DD43a03B7026D2 |
| FWATestCollection | Permissionless test NFT collection | 0xd8B4A84299bD3509572daDDf50a59F081fe56678 |
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:
- Open FWATestCollection on Sepolia Etherscan.
- In Contract → Write Contract, connect the wallet you funded.
- Select the no-argument
mint()function and submit the transaction. - After confirmation, the contract mints the next sequential token ID to the wallet that submitted the transaction. The receipt's
Transferevent 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:
- Deploy your integration contract to Sepolia.
- Open FWATokenDistributorOwner on Sepolia Etherscan, connect a wallet, and call
setDistributor(integrationAddress)with your contract's nonzero address. - Wait for confirmation, then open FWAToken and confirm
isDistributor(integrationAddress)returnstrue.
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.
- Wait for Chainlink VRF to fulfill the acquisition. In FWA's Read Contract,
pendingAcquisitionCount()tracks requests still waiting for randomness andunsettledAcquisitionCount()tracks all acquisitions that have not finished. - If randomness has arrived but the acquisition remains unsettled, open FWA's Write Contract, connect a wallet, and call
processAcquisitions(maxCount). AmaxCountof10is a reasonable batch for normal testing. - 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.
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.
