CowSwap POAP token giveaway to commemorate the launch of the latest version
CowSwap upgraded its smart contracts and launched with a tight Balancer v2 integration that enables better gas prices and UX. There is a POAP NFT giveaway for all eligible traders.
Given that on August 11th, the new smart contracts integrating with Balancer vault architecture were deployed, we wanted to make something to commemorate this big update for our users. The new upgrade required all past users to re-approve tokens for trading, so we launched a special offer valid for 48h with 80% discount on gas fees for all trades.

We wanted to make this event unique, so we thought that the best way would be for our users to be able to prove, with a POAP NFT, that you were there, that you were trading on the very first 48h of this update’s launch. For this, we established an eligible trading period that went from Wednesday, August 11th, 1:00pm CEST through to Friday, August 13th, 1:00pm CEST, meaning that every Ethereum & xDAI address who is the ‘Owner’ of a ‘Trade’ event emitted by the Settlement contract will be eligible for claiming it.
The NFTs made by CowSwap and using POAP (Proof of Attendance Protocol) represent your cryptographic participation in a critical moment of CowSwap history.
POAP NFTs for the CoWs Ecosystem
POAP is a new way of keeping a trustless cryptographic record of user experiences. Each time someone takes part in an event, they can collect a unique non-fungible token (NFT) badge representing that experience as a cryptographic record. For CowSwap, POAPs signal participation in the critical & relevant early moments of our journey. We hope to create more NFTs in the future for both signaling the participation of important events and for some new surprises!
We are excited to distribute CowSwap POAP NFTs to the community members who were part of this update’s launch. Users can claim these NFT badges if they executed a trade within Wednesday, August 11th, 1:00pm CEST through Friday, August 13th, 1:00pm CEST. In honor of transparency for our users, we have developed 4 queries — 2 queries for Ethereum and 2 queries for xDAI — where users can see how the list of eligible addresses were obtained.
On Ethereum, with this particular query**, users can check the eligible addresses, while the block numbers that correspond to the eligible time period mentioned in the announcement blog post are from block #13003469 to block #13016392.
**Note that there are 17 Ethereum mainnet addresses that are not included in the Ethereum query, but will also be eligible for a POAP. This is because they placed orders within the eligible time frame, meaning that the order was placed before Friday, August 13th, 1:00pm CEST, but due to the solvers’ logic, their order was only executed after 1:00 pm CEST.
On xDAI, with this particular script, users can check the eligible addresses, while the block numbers that correspond to the eligible time period mentioned in the announcement blog post are from block #17531883 to block #17565783.
# ensure you have NodeJS installed
node --version
# Install Ethers.js and node-fetch
npm install ethers node-fetch
# Run the script. It uses the public xDai node https://rpc.xdaichain.com/
node ./nftfomo.jsconst ethers = require("ethers");const fs = require("fs").promises;const fetch = require("node-fetch");const provider = new ethers.providers.JsonRpcProvider("https://rpc.xdaichain.com/",);const settlement = new ethers.Contract("0x9008D19f58AAbD9eD0D60971565AA8510560ab41",["event Trade(\address indexed owner,\address sellToken,\address buyToken,\uint256 sellAmount,\uint256 buyAmount,\uint256 feeAmount,\bytes orderUid\)"],provider,);const startBlock = 17531883;const endBlock = 17565783;const blockPageSize = 500;async function main() {console.log(`searching for events in range:`);console.log(` - from ${startBlock} @ ${await blockTimestamp(startBlock)}`);console.log(` - to ${endBlock} @ ${await blockTimestamp(endBlock)}`);console.log(`querying all 'Trade' events`);const traders = new Set();for (let fromBlock = startBlock; fromBlock < endBlock; fromBlock += blockPageSize) {const toBlock = Math.min(endBlock, fromBlock + blockPageSize - 1);console.log(` - querying blocks ${fromBlock}-${toBlock}`);const logs = await settlement.queryFilter(settlement.filters.Trade(),fromBlock,toBlock,);for (const log of logs) {const { owner } = log.args;traders.add(owner);}}console.log(`recording ${traders.size} traders`);const traderData = Array.from(traders).sort((a, b) => a.toLowerCase().localeCompare(b.toLowerCase())).join("\n") + "\n";await fs.writeFile("traders.txt", traderData);}async function blockTimestamp(blockNumber) {const { timestamp } = await provider.getBlock(blockNumber);return new Date(timestamp * 1000);}main().then(() => process.exit(0),(err) => {console.error(err);process.exit(1);},);
How to claim your CowSwap POAP NFT
Eligible users need to head over to https://poap.delivery/ or alternatively directly to:
- https://poap.delivery/cowswap-final-stable-launch-ethereum-celebration
- https://poap.delivery/cowswap-final-stable-launch-xdai-celebration
But, in this guide, let’s do the entire process.

Once you are on the website, you can connect your wallet or simply have your address ready to be copy/pasted. After that, you need to select the CowSwap event from the main page:

As you can see, there is one event for Ethereum traders and one event for xDAI traders. Depending on which chain you executed your trades, you will need to click on one event or the other. Once you have clicked on “Claim your POAP”, the website will redirect you to the page where you need to input your address to look up if you are eligible for the POAP.

If your address is indeed eligible for the drop (Remember to input the same address you used for trading), you will see a message that allows you to claim the POAP to that address:

After that, you will need to click on “Claim POAP token” to mint your corresponding POAP NFT.

Get your POAP now! POAP claiming will be free on xDAI and users have the option to migrate their NFTs to Ethereum Mainnet whenever they like. For those users that were part of the eligible criteria for trading on CowSwap on Ethereum Mainnet, and do not want to migrate the POAP from xDAI to Ethereum, we recommend using an address that you also hold ownership over on Ethereum.
Don’t worry, if you couldn’t make it this time, there will be more chances to earn future POAP NFTs. Stay tuned to our Twitter or Discord for the next opportunity!
Give CowSwap a try and enjoy perks like MEV protection, no gas fees paid for failed transactions, well as some other fun & entertaining surprises. Head over to CowSwap and start swapping today.
Questions? Join the CowSwap Discord Server. For updates on the development of Gnosis Protocol V2, CowSwap, and Balancer-Gnosis-Protocol, follow @MEVProtection on Twitter and make sure to check the Gnosis Protocol category in our forum.