Skip to main content

DN404

DN404 contracts take all the best from ERC-721 and ERC-20 token standards. It provides a built-in mechanism for liquidity pools and allows NFTs to be natively fractionalized while preserving its uniqueness. DN404 separates ERC-721 and ERC-20 functionalities into distinct contracts. When you deploy a DN404 contract pair, both sides are deployed and permanently linked. One side is the ERC-20 token, and the other side is the ERC-721. Just imagine Sproto Gremlins and ticker $BITCOIN tied together on chain.

Things to Know about DN404

  • Good for generative and hand made collections tied with meme coins.
  • No need to provide liquidity on an NFTAMMs like NFTX and Sudo anymore.
  • Each NFT is a distinct token that only one wallet can hold.
  • Each NFT can have unique traits / unique JSON files / unique rarity values.
  • You need images / JSON file for as many NFTs as you want to mint.
  • NFTs tied directly to ERC-20 tokens on chain.
  • DN404 is a redesign of the 404 mechanism (initially pioneered by Pandora) and solves all its predecessor’s technical issues.

This contract begins at the index of 1 and not 0.

Make sure your JSON files do not have the .json file extension.

Check out our blog post explaining Divisible NFTs in greater detail.

Deploying a DN404 Collection

Deploy: https://www.scatter.art/create?contract=DN404

The flow for deploying a DN404 contract is the same as that for an ERC-721.

Setup Liquidity Pools

Self-mint an amount of supply you wish to sell on a DEX. Uniswap V3 will let you stake as many ERC-20 tokens at a specified price, then people can buy from those.

You want to stake liquidity within pools for two reasons. The first is to enable trading so that people can sell into the pool. The second is so that you can profit from pool fees. Ideally, you would put nearly 100% of mint proceeds into your collection’s liquidity pools and keep them there while only withdrawing the earned fees as your income. This is a practice groups like Remilia figured out a long time ago and have profited from well while so many others did nothing while marketplaces took away their trade royalties. Putting the maximum amount into liquidity pools requires long-term conviction in your project, which is exactly where you should be as a project creator.

UniV3 is better liquidity earnings if you are whaling liquidity while UniV2 is fairer to all providing liquidity. With UniV3 you withdraw your liquidity earnings separately.

If you mint with a contract your contract will only be transferred ERC-20s and not ERC-721s. Therefore, it can be more gas-efficient to use a contract to mint. If you want to stake a large amount of ERC-20s onto a Uniswap V3 LP to be for sale you will save a lot of gas fees using a multisig contract to mint the amount supply you desire.

Instead of trying to use a contract to mint, you can click the "Is this a gift?" checkbox and then enter the address of a contract like a Safe multisig. Then you will not spend the gas to also mint ERC-721s, you will only buy ERC-20s.

Another option is to use the batchMintTo option from the Contract Methods tab on Scatter. You can create a list with only the deployer/collection owner address and a fee of 0, then use the batchMintTo method to mint a large amount of supply to your Safe multsig. Then you can use the Uniswap app on Safe to stake the ERC-20s into a Uniswap V3 LP all without spending gas on ERC-721s.

You should take enough liquidity into an LP to avoid excessive slippage, so that price impact is not so dramatic on trades. Research how slippage works, then do some math to figure out how much you probably need. The same rules for managing a good coin apply to DN404s, study them and do it right.

You can test both Scatter’s features and Uniswap’s features on the Sepolia testnet to get familiar with it all before you do it for a real collection.