Nov 7, 2021

Fighting fraud

NFTs have been a controversial topic recently with problems leading to project failures and community dissatisfaction. Problems have included the overall value drop of a collection, gas wars, cherry-picks, and rug pulls. Let’s look at each of these in further detail.

Overall value drop

This is where a collection falls in value because some users own way too many tokens. This problem can be fixed by setting a limit on the number of tokens a single account can mint.

It can also mean that rarity distribution is flat because all tokens have almost the same rarity score.

This is one of the reasons we want to pre-generate assets because we want to be able to validate rarity distribution beforehand. Another reason to pre-generate is so that we can control the quality of assets, ensuring they look good and the different traits work.

Finally, we can control rarity distribution making sure there are some rare and common tokens in the generation. We try to follow the reverse exponential curve for the rarity distribution which will ensure we have a few rare items and more common items. It’s standard practice for collections.

Gas wars

Demand is too high then too many people will be trying to mint tokens at the same time. Some early supporters might have to pay too much gas for a transaction or might lose a token (miss a chance to mint because the whole quote has already been exceeded while they were waiting for a transaction to process or for a better gas price). This leads to disappointment. We don’t want that and we want to make sure our early supporters will be able to mint.

We can fix this issue by using a whitelist system. Early users submit whitelist requests. Those whose addresses are whitelisted will have a reserved number of tokens to mint plus early access to mint. Together with a wide timeframe (e.g. 48h) normal gas prices will be guaranteed.

Cherry picks

This is where some users are able to select the rarest tokens from the collection. As we are going to pre-create all the tokens beforehand we must ensure this cannot and does not happen.

A way of doing this is by shuffling the data before uploading it to any storage (IPFS + backend DB).

Here is how it works:

  • we generate all the assets and metadata
  • we shuffle them so that the order is completely unpredictable
  • we upload them to IPFS and our DB
  • uploaded data will have serial numbers (ID) we will use for token assignments
  • when a user mints a token, we assign an asset with the same running number (e.g. for a token with ID 1 we will assign an asset with ID 1 in our DB)

However, this isn’t quite fool-proof and there is still some space for project owners/founders to cheat. It is possible to manually adjust the order of data in a randomized array of assets. This means that later you can go and mint rare tokens or set giveaways addresses in the desired order that chosen addresses will get the rarest tokens (sort of sniping).

Here is how we ensure that this won’t happen:

  • there won’t be a function for owners to mint tokens beforehand. We will set aside a few tokens for ourselves through giveaways
  • the giveaway will happen only after presale mint. This will guarantee a random shift and that we won’t know the ID of the next token to mint in advance
  • we will randomize giveaway addresses right before sending a request to the contract. The admin dashboard interacts with the contract directly and no intermediate requests to the backend are sent. What you see there is what actually will be sent to the contract. The shuffle function will randomize data right before sending a request to the contract
  • we will record the whole process of sending giveaways in a single cut

Rug pull

This is where a founder withdraws all the funds after a successful launch and leaves the project without delivering anything from a roadmap or developing projects value.

A way to solve this problem is through revealing the identities of founders. If you know are able to put a real founder’s face to a real founder’s name fit makes it much harder to rug pull because you know who was responsible for the project.

Openness to the community demonstrates the seriousness of the founders’ intentions. For us, NFT is not a short-term project. It’s long-term and we are in it for the long run.


originally posted on medium.com

CV