CowSwap POAP token giveaway to commemorate the launch of the latest version

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
node ./nftfomo.js
const ethers = require("ethers");const fs = require("fs").promises;const fetch = require("node-fetch");const provider = new ethers.providers.JsonRpcProvider("",);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 or alternatively directly to:

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.




CoW Protocol lets you swap assets MEV protected at the best exchange rate by leveraging its batch settlement layer built on top of AMMs and DEX Aggregators.

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

How To Block / Blacklist a Number on Honor Play 9A

How to Block Number AND SMS / Call on Honor Play 9A

How to Check if an Address is a Bot Client Threat in Go


Gain Control: Use the Ledger Nano S/X To Secure Your GSC Tokens

All you need to know about GDPR — Explained


Make Your AI projects with this, Cheapest Single Board Computer, specially designed for Machine…

NVIDIA Jetson Nano

Jswap Q2 Progress

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
CoW Protocol

CoW Protocol

CoW Protocol lets you swap assets MEV protected at the best exchange rate by leveraging its batch settlement layer built on top of AMMs and DEX Aggregators.

More from Medium

CowSwap now supports Gnosis Safe & other Smart Contract Wallets

How to determine the zkSync’s SPV design?

TiTi Stablecoin Data Weekly(week4, 2022)

ZigZag Exchange - Our vision and goals