It all started when I was trying to swap
something on Uniswap. I chose the CoinGecko list and it showed that I had 1600 airdrop tokens.
Well, that’s weird. Why do I have these tokens? It looks like everyone got them. Even if you
created a new MetaMask alt, you would still get them. 1600 Airdrop tokens are worth dust on
Uniswap, and if you wanted to swap it for ETH, you would have to pay a few
dollars in gas… so it’s not worth.
But I was confused why I even had
these tokens in the first place, so I searched up the contract address
on youtube and was surprised to find out that there were more tokens just like
Airdrop that every ETH address holds.
So I added them all to an alt MetaMask for fun. I then wanted to see if any of these [tokens] actually had any value, so I went to
Uniswap to try to swap them. They either had a tiny amount of liquidity or no liquidity
at all. So these [tokens] were also worth dust. And then I tried one token called Gift. As
usual, it looked like it was dust again. But Uniswap said there was a
better price on Uniswap v1. And there was a better price: of four thousand
Ethereum, or over 3 million dollars at this time. I couldn’t believe it. I was in
shock. I thought that I made it.
Someone made a treasure hunt to this Gift
token, and I found it. I was rich. To swap it, I first had to turn on expert
mode, which would let me swap with a price impact over 10%. I then approved the spend of
Gift and swapped. But I got an error. I kept trying again, but nothing would work.
And it’s not just Gift. I realized so many other free airdrop [tokens] have this same glitch of
exactly 4194.18 ETH and a 49.78% price impact. So anyway, what are airdrop tokens? First,
let’s define what tokens are. While coins, such as Bitcoin and Ethereum have their
own blockchain and unique software, tokens run on top of other networks. Most tokens are Ethereum-based, but there are
some that run on networks like EOS and Tron.
Let’s only focus on ETH tokens. Ethereum’s
tokens don’t really work the way it seems, and are actually built off of smart contracts
that dictate how much each person owns. So when you send a token, you are just updating
a contract. Airdrop tokens utilize this by coding in a starting amount for every ETH address. So
every address will get these tokens for free. However, It’s important to note that these
tokens will not show up in Etherscan. This is because these airdrop tokens
are not broadcasted through the network. If you actually wanted to send the tokens across
the ETH network to everyone, that would cost a lot of money in gas. For this very reason, everyone
owns airdrop tokens, but they are only viewable in MetaMask when the contract address is added.
So I could theoretically make a Jun token and give one token to everyone
to advertise my youtube channel, but it would be pretty useless, as I would have
to advertise the token address first before people even see the token, which kinda defeats the
purpose of using a token to advertise something.
Well, there was actually this time where
someone found an Etherscan glitch and broadcasted a spam advertisement token to
everyone, but I’m getting ahead of myself. It looks like airdrop tokens are just
random tokens made by people for fun. So while I may not have become a millionaire,
I still wanted to solve this mystery. The first clue came when I was
analyzing the transaction in Etherscan. I wasted a dollar to authorize the spend of
my Gift token on this contract made up of 0s. Let’s just call it 0x0 for short.
If you look at 0x0, you will see that it has a lot of money. It’s an address
commonly used as a token burner address, where people can send it ETH or other
tokens and be sure that it is lost forever.
You can think of this like burning
money or destroying some Pokémon cards. This is commonly done with tokens. For
example, a new project might ICO a token and promise to burn the rest of them, which then
raises the price for the rest of the tokens. So 0x0 isn’t really rich. It’s just coins
that nobody will ever have access to again. This is because Ethereum addresses are
generated with a random private key pair. There are some vanity generators that bash
random private keys until you get a cool address, but it gets exponentially harder
the more characters you want. Therefore 0x0 is a special address in
the fact that its pattern is so unique. The odds of generating a private key for 0x0 are
The same goes with 0x1 repeating and any other address with distinct patterns.
They can also be used for token burns. But after my initial clue of 0x0, I didn't
really have an answer to other questions, like why exactly did so many airdrop tokens
show 4194.18 ETH and 49.78% price impact when the max value was inputted? And why did
Uniswap even choose 0x0 as the contract? So I posted it on the Uniswap Reddit, but it got
removed. At this point, I really didn’t know the answer to this, and I was ready to post
this video admitting I didn't know the answer. Maybe someone would know.
But as I was reviewing my video footage, I realized the amount of ETH had gone up
from 4194.18 to 4199.64.
Then it hit me. Uniswap is a decentralized automated market
maker that allows users to swap one token for another instantly. It does this through liquidity
pools. In U ni v1, a liquidity pool consists of two currencies, a token and ETH. If you have some
tokens and want ETH, you add some tokens to the pool and take out some ETH and vice versa.
Uniswap uses a formula of x * y = k. Where x is the amount of token, y is the amount of ETH, and
k is a constant depending on the pool size. Let’s take a look at the Gift/ETH pool. As we
add more and more Gift, you can see that the subsequent amount of ETH keeps decreasing. This is
a principle of Uniswap based on the formula xy=k. As x increases, the slope of
y decreases to a limit of 0. The more Gift you sell, you will get less and
less ETH per additional Gift until it reaches near zero.
This is called the price impact. So if
we put a ridiculous amount of Gift into the pool, we will drain the pool of nearly all its ETH.
Wait, this number looks a bit familiar. As it turns out, it is the exact amount of ETH in
0x0. And if we do the same thing by spamming ETH, we see that the amount of Gift we get approaches
1000, which also happens to be the amount of Gift 0x0 owns. Remember the Gift contract dictates that
every ETH address starts out with 1000 Gift. So this is the reasoning for the price glitch.
Uniswap is treating 0x0 as a liquidity pool. When we trade 1000 Gift to ETH, we are increasing
x by a factor of 2, so y should decrease by a factor of 2. Therefore, we receive half
of the ETH in the 0x0 burner address, which is a lot of money. It actually
turns out to be a bit under 50% because Uniswap takes a 0.3% fee and gives it to the
people who actually supply the liquidity. Also, I could mess with this pool by
sending 0x0 some of my Gift tokens, but gas isn’t looking too good and I
don't wanna waste more money on this.
Finally, why are some airdrop tokens being routed through 0x0?
In Uni v1, you would usually see the transaction approve the spend of your token on
some contract that contains the token and ETH. However, these coins route it through 0x0.
This is because the [token] just doesn’t have an exchange on Uniswap, so it will default to
0x0. A lot of tokens do not have an exchange, because starting one requires deploying a
smart contract, which costs a lot of money. It looks like Uniswap is smart enough to
prevent users from swapping ERC-20s over 0x0 and it just shows that there is no liquidity.
However, these glitched airdrop tokens do something to get around it. They all seem
to have some weird code on Etherscan.
This is why not every airdrop
token produces this glitch. Free airdrop tokens have no purpose. They're really just fun random tokens you can
add to any wallet if you want, although they will spam your token list. And don’t be fooled,
as they are valueless. In my investigation I found some videos promoting these airdrops potentially
being worth thousands of dollars or something, but again, it’s just a Uniswap glitch and
these tokens will never be worth anything. Uniswap version 2 fixes this glitch. There
is no longer one contract per currency, and everything is routed through one
singular contract. It’s pretty cool. However, even with this, Uniswap falsely
shows there is a better price on Uniswap v1, which can trick people into trying to
swap it there and waste a bit of gas.
So it's January 15th, and it looks like
Uniswap patched the glitch. It no longer says there's a better price
on Uniswap v1. However, you can still see the glitch
if you manually go over to Uniswap v1. Also, they added another confirmation for
when you try to swap a custom token so you don't get scammed or something. I guess it's good but then my video is
also outdated now so I don't know.