I made a new tool! Check it out!steemCreated with Sketch.

in #ethereum6 years ago (edited)

Screenshot from 2018-07-21 20-43-33.png
A couple of weeks ago, @dennishlewis approached me about coming up with a way to handle airdrops that would be both quick and efficient. The main goals here were...

  1. Ensure that airdrops completed successfully, because nothing is worse than telling thousands of people you're going to give them some free coins only to find the transactions still pending days later.
  2. Control costs, because it is EXPENSIVE to send a couple of tokens to a couple thousand people.
  3. Make the whole process simple, preferably with a visual tool that doesn't get in the way.

I took this idea and ran with it and the result is FlairDrop, which is both a tool to help people handle airdrops and also it's own crypto currency in order to limit the potential for abuse and spam.

In order to prove the concept I had to perform an airdrop of my own. Since I am working with icosuccess on their sweepstakes for SuchApp tokens I decided to use contest participants as a test bed and send them each 1 FLAIRDROP.

Here is how I did it!

First you need to go to the flairdrop website and acquire some. If your project is small you can ask for some in the replies here and I'll try to fill for you, just tell me the project you're with and how many people you plan to airdrop your tokens to. But you should consider buying some directly from the contract since that supports future development.

Step 1: Go to FlairDrop.net

step1.png
At the moment I do not have the Upload CSV feature working, let me know you want this feature by purchasing some FlairDrops

Step 2: Click the NEXT button and choose a datasource. This can literally be any ERC20 Token, it is a place to source users, example if you want to target all holders of TRON, put the TRON contract address in. AirDrop Contract is the contract you are dropping tokens from. So basically, this is "find users of datasource, give them tokens from airdrop"

step2.png

Step 3: Depending on the number of users and the age of the token it may take a few minutes to track down all users and their current holdings. Why current holdings? Because the default mode is "copy", which sends an amount equal to their current balance on the data source contract. There is a limit here I ran into while making the guide, it turns out that truly massive contracts such as EOS, break the tool. If people buy FlairDrop and request support for importing from huge contracts like EOS, I will prioritize that. We know it works with up to 4750 accounts without breaking a sweat.

step3.png

Step 4: The next step is to configure your settings, as you can see a 1:1 matching airdrop would require 26631 of the tokens being airdropped. In this case I am actually dropping FlairDrop and it accurately reflects I have none available, so I had to buy some, by sending a little money to the FlairDrop contract address. 0.0001 ETH each account you want to send to, but you can send as much of the token being airdropped as you want.

step4.png

Step 5: I didn't have enough money to send out 26,631 tokens so I decided to change the allowance information. You can see my allowance is currently 0. There is a tickbox that says "Use Imported Table Values", unchecking it will pop the image in Step 6:

step5.png

Step 6: This is where you customize how many tokens you will be giving each user. I'm handing out 1 token to every user so I just put 1 in the box and hit OK.

step6.png

Step 7: When I did this there were only 26 unique accounts participating in SPRIZE, so I only needed 26 FlairDrop. This screen is letting me know the tool is about to configure an allowance. An allowance is used to give the contract access to funds instead of performing a transfer of funds to the contract. This was a design choice because if something went wrong it would be difficult for the user to get funds back if we used transfers. That way if anything doesn't work, the user can just cancel the allowance, meaning there's no chance that funds can get lost!

step7.png

Step 8: The next screen shows MetaMask confirming the action. You can see that I'm about to spend $0.08 USD, this isn't the send yet. It is the act of provisioning an allowance for the contract to use in order handle the airdrop.

step8.png

Step 9: I like to open Etherscan and watch the transaction occur so I know when the allowance transaction has completed. It's not strictly necessary but the UI on FlairDrop doesn't have much of an indicator for progress. Again this is one of those things that if there is an interest in FlairDrop I'll upgrade the UI.

step9.png

Step 10: The button changed to say "READY!" and this is of course how you know the allowance is approved and everything is configured correctly.

step10.png

Step 11: This is just a prompt to give you one last chance to back out!

step11.png

Step 12: Payment confirmation window. You'll notice there is no money changing hands but a lot of gas.

step12.png
This looked expensive to me at first. However I wrote it to ensure there is ample gas available as you can see from the actual transaction, we didn't consume anywhere near that much and the remainder ended up returned to my wallet. Actual Tx Cost/Fee: 0.003047874 Ether ($1.40)

Step 13: Again I like to watch these things play out on Etherscan. I'm such a nerd!

step13.png

Step 14: This is what Etherscan looks like when the whole process is complete. Beautiful isn't it?

step14.png

That's pretty much it! If you search Etherscan you'll find 2 contracts labeled FlairDrop. The first one is the one I used to create this tutorial. However at the last moment before deploying that contract I decided to add a balance for a faucet of FlairDrop for users who have worthwhile projects, but maybe can't afford the half a penny per user. Unfortunately that faucet was implemented in a rush and the way I implemented it ended up breaking the contract double face palm, so I had to remove it and redeploy. I placed faucet funds on the new contract for anyone who would like to test FlairDrop themselves. However this time I didn't break anything :D

My hope is that larger projects will adopt FlairDrop for facilitating their Airdrop needs, thus reducing congestion on the Ethereum blockchain.

Honestly this product works great for it's intended purpose, it's no nonsense and simple. Yet there are several bugs in the tool / ui that I would like to fix. I just don't have time or resources to do it right now. However if I can see there is interest in improving the tools for working with FlairDrop from customers who buy the tokens, I will gladly get back to work on it.
This has been a massive time sink, and a labor of love for about 2 weeks for which I've received no compensation, but that's the nature of open source in general.

I hope you consider using FlairDrop for your next airdrop, or buying some FlairDrops to support an excellent open source project!

Sort:  

I'm one of the recipients of Flairdrop.
First, thank you for the tokens (I've received a total of 2), and for your explanation above. I was surprised when I saw them in my wallet and wondered what they were. (FYI: The process is flawless from the recipient's point of view.)
Currently, I have no need for your service, but this may change in the not-so-distant future. When I do need an air-drop service. I will certainly give Flairdrop priority. The process seems easy enough that even I could do it. I like the 'access to funds' feature, too. Keep up the good work.
Thank you, again.

Are you developer

Good idea

I am as a matter of fact. Which is one of the reasons I created flairdrop. It's just kind of painful and error prone to do airdrops without it.

Wow, I will like you to join my team at www.ethlyte.tech ...part time online...I like your innovative mind and this will help me a lot.We can connect on steemit chat and share telegram ID

Thank you but what is steemit chat?

On the right hand side of your steemit account, ie after your Pic, you will see steemit chat there...register an account and contact me via charles1

Try reache me via steemit chat ,, charles1

Ok, I will this evening after work. I promise.

Dont forget my dear, charles1 at steemit chat

One of the nice initiative that I’ve come across in recent months. Just a feedback that consumer has to spend 1 flairdrop token for every account seems more expensive. Pls think if it can be changed to flat minimum balance holding. I understand it is designed to check spams and charged based on size of airdrop. But I feel it’s expensive for general community.