Introducing Popswap, a Decentralised NFT Trading Protocol

Jay Welsh
2 min readMar 26, 2021
Popswap Protocol

Lately, I have noticed that people have frequently been trading NFTs with one another in a manner where each person trusts the other to fulfil their side of the deal. I was shocked to find that this is the case since it is relatively trivial to use a smart contract to facilitate the trading of two NFTs between their respective owners.

This is where Popswap comes in. Popswap is a simple smart contract that enables NFT owners to trade their NFTs with one another via an Ethereum smart contract. Popswap supports ERC721 & ERC1155 tokens.

This is a simple diagram of how the trading process works:

Popswap trades are comprised of two parties, the first party is responsible for “opening” a trade, this essentially entails defining the “opening token” (what they have) and the “closing token” (what they want). Once a trade has been opened, the “trade opener” will be presented with a link that they can share with their trading partner (the “trade closer”). The trading partner will then be able to “close” the trade, which will exchange each token between the respective parties.

The Popswap frontend uses a modified version of Uniswap’s interface in order to try and make the experience feel more intuitive.

Popswap does not have a token, the trade costs are limited to the gas prices associated with the trades. This project is not monetised and has been built for free. Please keep that in mind if you run into any frontend bugs.

As things stand, once a trade is opened, it will expire after 24 hours if it has not been executed by the “trade closer”. The smart contract allows for this time to expiry to be configurable by the trade opener, it also allows for the trade opener to cancel the trade before it is executed or before it is expired. This functionality will be added to the frontend in future upgrades.

A video demonstration of trading NFTs via Popswap can be found here:

Popswap NFT Trade Demonstration

Gas estimates based on mainnet transactions: ~ 0.03 ETH for the party opening the trade & ~ 0.022 ETH for the party closing the trade (at 125 gwei).

The Popswap interface can be accessed via




Thanks a lot.