it's on like king kong! now has batch sending of ERC721s. How does it compare to it's on like king kong!
Photo by KWON JUNHO / Unsplash yesterday announced that they had added batch sending of ERC721s to their platform ( This is great news! Sending multiple NFTs one at a time wastes a lot of gas, and increases your chances of RSI with all that clicking and pasting of addresses...

Which is why I created back on the 1st May, as the first gas efficient way to send multiple ERC721s. That's almost a month before made the same innovation.

Just gonna stand here and flex for a bit. Huuuuurgh!

(FWIW OpenSea has had batch sending for years, but it doesn't save you any gas).

Now that niftymoves has some serious competition I think it's time for a showdown!! Which protocol (niftymoves or gem.xyx) saves you more gas! Let's go back to the lab again!

Gas tests

No, not that sort of gas....

A simple head to head. Two protocols, three ERC721s, two batch transfers.

Why are you doing this in mainnet you ask? At the moment haven't published the source code for their transfer, otherwise I would ship a copy to a testnet and play there (more on what I think of not publishing contract code later). So I am left on mainnet, and yes, this is me just setting fire to money in order to prove a point.

For this test I took three ERC721s (my trusty truchet styles NFTs) and transferred them using the batch transfer on from one wallet to another. Then I used to move them back. And here are the scores:

  • Niftymoves: 180,362 gas
  • 194,576

So that's a convincing 14,214 gas advantage for No matter what the gas price, that NFT transfer cost almost 8% less on

The original and still the best.

You can see the niftymoves gold medal winning txn here:

And the very noble silver medal for gem here:

Other considerations

With this sort of service cost (gas) is key. But I think there are some other things to consider. Here are the pros and cons of the two services from my totally unbiased position as the developer of one of them:


  • Source code for the contract is verified. This is very important imo.
  • A public good protocol with no links to any organisation.
  • No owner contract functionality (other than two safety functions to retrieve assets sent to the contract in error).
  • Cool trait pickers and auto-selector for true mass moves.
  • Decent domain of .io (seriously gem, you could only spring for the $1 .xyz domain?!).
  • Cheaper


  • 100% the work of a single developer larping as a canary yellow wassie with a sticking out tongue.


  • Lots of other functionality on the site obvs, so you're already here.
  • Developed by a team larger than a single canary yellow sticky out tongue wassie.


  • No verified source atm, kinda centralised.
  • Not 100% the work of a single developer larping as a canary yellow wassie with a sticking out tongue.
  • More expensive.

FWIW I also think that neither service should exists long-term as NFTs should provide their own batching (which shaves even more gas off). I've written that for you too, check out

(And yes, I intend to rename that ERC721BatchSafeTransfer and make a new lib that doesn't use the extra gas to check ERC721Receive).