EtherDoge: Wow, Much Scam!

What is EtherDoge

EtherDoge is an ERC-20 token on the Ethereum blockhain. View the whitepaper (or the "wowpaper") here. It was advertised as a successor to DogeCoin, a popular "meme coin" that's largely used for tipping to give a laugh..

How was EtherDoge distributing tokens?

There are two main ways EtherDoge was distributing tokens.

Airdrop

This has been a pretty popular way for reputable tokens to be distributed lately. The tokens are just given away to people, essentially. Usually the amount is x tokens per ETH in every address on the blockchain, but EtherDoge had people register their address and picked around 8000 to send ~5-20 million tokens each. This was finished sometimes last week.

Contests

This isn't as common. The creators of the token made posts on their subreddit having people submit entries to a CSS and a Minecraft design contest to win EtherDoge.

Sounds innocent and meme-ish enough , what's wrong?

I first realized something was up when a mod posted on their subreddit saying the token would become sendable this past Monday. Curious, I combed through the token contract on Etherscan There were two signs that something was up..

unlockTimeStamp

The first thing, and probably the most obvious, was the unlockTimeStamp. Now, it's not that unusual for a token to have a "live" date when it becomes tradable, but it is unusual for the creators to not know the actual date it goes live. Here is the source for the transfer function in the timestamp:

  function transfer(address _to, uint _ value) returns (bool success) {

    if (now < unlockTimeStamp && !\_lockByPass[msg.sender]) return false;

    return super.transfer(_to, _ value);

  }

That first part of the if statement, now < unlockTimestamp that's how the contract checks if the contract should be unlocked yet, so unlockTimestamp should've been sometime on Monday, October 16th since that's when they were supposed to be tradable. However, if you check the Read Smart Contract page of the contract, which shows you variables like unlockTimestamp, you'll see that it's set to unlock at unix timestamp 1508774400. Plug this into any timestamp converter and you see it's actually Monday, October _ , _ 23rd*. Why would the developers lie about when the tokens become tradable?

setLockByPass

This is when I really started getting concerned. I'd never seen something like this used in a smart contract. I even googled it to see if it was used in any other contracts. Here's the source for setLockByPass:

  function setLockByPass(address[] addresses, bool locked) onlyOwner{

    for (uint i = 0; i < addresses.length; i++) {

       \_lockByPass[addresses[i]] = locked;

    }

  }

What does this do? Well, it takes an array of addresses and a boolean, locked. It then sets the value in the address -> boolean map _lockByPass to the value of the locked boolean. Since the default boolean in Ethereum is false, all addresses have lockByPass false by default. Now, what does _ lockByPass do? If you check the code for transfer above, you'll see the second part of the if statement references this && ! lockByPass[msg.sender] What this does is allows the addresses with _. _ lockByPass set to true to transfer EtherDoge before the unlockTimestamp is reached .

After seeing this, I immediately checked if the contract owner had ever called this, and he did. It was called twice on Monday, October 16th, the day the developers said it would be tradable, and once on Saturday, October 14th. Overall, he turned on trading for just over 100 addresses. In fact, the transaction on October 14th was to exactly 100 addresses. Every one of those 100 addresses had 500 million EtherDoge (100x as much as each as the normal 5 million airdrop) airdropped 2 days before the setLockByPass call, and then .02 ETH sent to them each 2 hours after the setLockByPass call.

To recap, that is 100 addresses that the contract owner enabled sending EtherDoge for, and then sent them all 500 million EtherDoge and .02 ETH *

Okay, so how is the developer scamming people with these tricks?

Simple. EtherDelta. It's a decentralized exchange on the Ethereum blockchain that allows you to trade ETH and ERC-20 tokens without using anything besides the blockchain. The thing is, when you send tokens to EtherDelta, they're stored in their contract. Even when you buy a token on EtherDelta, it doesn't transfer, it just changes your balance in the contract .

So now that the contract owner can send 10's of billions of EtherDoge to the EtherDelta contract, and no one else can, they can control supply to the market as much as they want. Since the moderator told everyone that the launch was on Monday, October 16th, everyone put in buy orders for EtherDoge on EtherDelta trying to get it since they didn't get in on the airdrop. The seller started selling to everyone that created high buy orders, ignoring low ones, and since EtherDelta's address had _lockByPass set to false, nobody could withdraw.

As of now, the contract owner has only sent 1.55 billion EtherDoge to EtherDelta, but he's sold most if not all of those for over 200 ETH total, or >$50,000. Once the tokens become tradable for real next Monday, the price will tank and all the people that bought from the contract owner are going to be out thousands of dollars.

I also haven't even mentioned the fact that the contract owner has never called finishMinting(), so they can still mint new tokens whenever they want. Don't buy EtherDoge.

TL;DR

FOMO is real and it can lose you money. Do your research, learn to read smart contracts, and second guess everything before you buy an unproven token.

H2
H3
H4
3 columns
2 columns
1 column
Join the conversation now