How to swap Chia NFT for NFT ?
The majority of Chia NFT trading on exchanges is done NFT for XCH. How does one trade NFT for NFT? How do Chia NFT swaps compare to Ethereum NFT swaps? Let’s dive in.
Update: 2022-07-16 As of Chia NFT to NFT does not work in Chia GUI or CLI v1.4. Below is an ideal example of how it should work based on information at the time.
Swapping Squiwormy NFT to Chia Ghost NFT
A while back I saw @CassFairiesClub post an image of a neat looking Chia Ghost NFT. I really liked the Chia Ghost #453 because of the blue yellow headband that reminded me of the Ukrainian flag.
We agreed to attempt our own NFT to NFT exchange. The end goal is to see the Chia Ghost show up in my own wallet here:
Cass generated the offer via CLI and sent the resulting file to me via my personal discord and posted it on Dexie.
But wait! There is an offer already out for squiwormy #0027! What happens if the squiwormy gets sold first?
Turns out, that the first Chia offer accepted and processed on the blockchain invalidates the second Chia offer. Here’s how it looks. First I wanted to purchase squiwormy #0027 so that the Squiwormy funds get donated.
I downloaded the squiwormy #0027 offer from Dexie and accepted it via my Chia wallet.
You’ll notice in Dexie updates as soon as the blockchain says the offer is in a
After the blockchain finishes the process for the purchase I also need to assign the NFT to my DID profile.
This should show the NFT in any marketplace that’s showing my DID galleries. At the time of writing this, I couldn’t get squiwormy to show up in my profile. Thus, we’ll move forward with the actual swap.
So what will happen when I download the NFT to NFT offer from Dexie?
First, I downloaded the offer and placed it into my Chia wallet:
For an unknown reason, the swap did not work. I waited 2 hours the first time, cleared transactions, and attempted a second time. That failed as well. This lead me to create a new offer using Chia CLI make_offer command
#squiwormy #0027 NFT_ID_TO_SEND="nft1hskzlv496czn8h8x237nvenfj9neyeup36m5x5v9z0y2w2zy8xnq6hw5c7" #chia ghost #435 NFT_ID_TO_REQUEST="nft1gxjslxk4k3w4fe88rps63drgg7479lmvnxpufkqzarcpjew67ldq8vpwn8" WALLET_FINGERPRINT="388938841" chia wallet make_offer -f $WALLET_FINGERPRINT --offer $NFT_ID_TO_SEND:1 --request $NFT_ID_TO_REQUEST:1 -p offer_1_squiwormy_x_1_chiaghost.offer
This is the output:
Creating Offer -------------- OFFERING: - 1 nft1hskzlv496czn8h8x237nvenfj9neyeup36m5x5v9z0y2w2zy8xnq6hw5c7 (1 mojos) REQUESTING: - 1 nft1gxjslxk4k3w4fe88rps63drgg7479lmvnxpufkqzarcpjew67ldq8vpwn8 (1 mojos) Offers for NFTs will have royalties automatically added. Are you sure you would like to continue? (y/n): y Confirm (y/n): y Created offer with ID 0aeb9fb35ac888a563e315741d0ad0f3954f3ee8eceecdace3b7fbeda93a9b0f
After attempting to
take_offer several times with various NFTs, including NFTs between my own wallets, I’ve run out of things to try.
I hope one day this tweet becomes a reality.
How to swap a Chia NFT for NFT
To swap one NFT for another, you only need to know the NFT ids and nothing else. The Chia blockchain does the rest!
At the time of writing, the NFT to NFT swap is only possible via command line (CLI) and I found an example here
chia wallet make_offer -f wallet-fingerprint -o nft1u72s8payxfxljcdupr5nfqe0rjsfzqpux8z6vafjyy3ahd3vkj4sdw00ma:1 -r nft1y7aj90hvt4ypj0279jjj2m4hxr8pjjqsrcjfrj6a670t36wq7xxsnnje9f:1 -p offerfile.offer
It appears all you are doing is swapping an NFT for 1 mojo on both sending and receiving sides. I believe that’s acting as a non-custodial escrow. This offer essentially locks up the NFTs and allows anyone in the world to do the swap.
The output is of course a simple text file that can be uploaded to Dexie.space or OfferPool:
Send this offer via QR code to a friend, text message, or smoke signals. The blockchain will validate ownership and validity.
Chia vs Ethereum NFT to NFT swap
Let’s first dive into what I learned about Ethereum NFT swaps.
Based on a reasonably trusted source one can see that Ethereum NFT swaps do exist via OpenSea, Sudoswap, NFTTrader, and others. There are gotchas to almost each swap tool.
When searching the web for OpenSea NFT to NFT swap the only result I’ve found led to the OpenSea NFT transfer page. As you can see this doesn’t trade NFTs. This simply allows two trusted parties to send NFTs to each other.
Sudoswap and NFTTrader do appear to allow people to swap NFT for NFT on or via their platforms. At the time of writing this article, both mentioned NFT swap platforms allow bulk/basket of NFT to NFT swaps.
Let’s examine both a bit more in detail.
|Blockchain||native NFT <-> NFT swap||True P2P|
Compared to Chia’s offer files that allow P2P and natively on-chain NFT to NFT swaps the swaps on the Ethereum chain are neither. I did find Ethereum NFT swaps without fees and P2P via otc.Sudoswap.xyz. However, I haven’t found a method on Ethereum that allows generating an ETH offer locally and sending it via Twitter, Discord, or QR code.
There are a few marketplaces worth comparing and discussing, however:
|marketplace||Blockchain||NFT <-> NFT swap||Fee||P2P|
Again, while the Ethereum marketplaces claim P2P swaps most imply you still send a URL that links back to the marketplace. In Chia, you can create an offer file, as you’ll see below, that can be sent to anyone who can receive a text message. This implies no marketplace can dictate any fees for your trades.