Yuga Labs—the author of the highest market cap NFT—is either racist or complicit in Kerem Atalay (one of its executives)’s indifference to racism.

Their Ethereum transactions betray them and may constitute fraud.

This racism is now set in stone. (See previous article.)

An analysis of the responses of Yuga Labs to the racism in their most popular NFT, the “Bored Ape Yacht Club”, especially as regards their smart contract’s history…

For me, it has been without a doubt for a while now that the Bored Ape Yacht Club NFT artwork is undeniably racist.

But the responses of Yuga Labs betray them, as many commentators have noted. Trying to use the ADL as a shield against claims of racism (and failing, merely smearing the ADL in the process), gaslighting, and covering up have been rampant. It’s becoming clear that this was an intentional troll, not a grift.

I will therefore not go over what others (such as @Pauly0x) have gone over in depth again, but help in a way that I particularly can: by analyzing their smart contract.

This article will first prove that, on 7th June 2022, millionaire BAYC founder Kerem Atalay (“Emperor Tomato Ketchup” — yuck) devalued apes by burning the contract which would have allowed the racism inherent in them to change: so severe and damaging was this act that he may as well have burned down the Yuga Labs headquarters. Second, it will prove that Yuga Labs had the exclusive power until the 7th of June to change the racist traits—and knew that they had this power. Third, it will prove that although Yuga and its constituent members, such as Atalay, had received some criticism from the NFT community regarding their exclusive power to change the artwork, there were several ways they could have solved it. Finally, it will speculate as to the legal consequences of this for Yuga Labs, Atalay, et al.

And as a bonus, before I sign off, I will provide a fifth proof to complement my earlier four.

This article will be somewhat technical, but I will try to explain exactly how the smart contract works assuming a non-technical audience.

I own no NFT’s, and would not accept one for free from anyone—be they Ryder Ripps or Yuga Labs.

My knowledge of Solidity comes from my long-term criticism (since 2015) of grifting in the Ethereum space. My only significant investment (>$25,000) at present is in Volkswagen AG, which has nothing to do with any of this.

Everything you need to know about blockchains to understand what happened here

This will be a bit of a simplification. Feel free to skip it if you know what blockchains and cryptocurrencies are (although read the final three points if you’ve never read a smart contract).

  • Cryptocurrencies such as Bitcoin work via ledgers, called blockchains, which can only expand and never contract. Once something is recorded in the ledger for mere hours, it is set in stone.
I, too, seem only able to expand and not contract — perhaps one cannot know too much about blockchains without taking on their properties. (Art by @PocketFurry)
  • Ethereum, also a cryptocurrency, allows for you to include a whole computer program as part of your transaction in the ledger. This is called “minting” in NFT parlance; it is called “contract creation” by the standard (and I).
  • After you create an Ethereum contract (which the BAYC NFT is), you can later make new additions to the ledger which call functions in that contract, adding the results of the calculation to the ledger, as well as the arguments you provided to the function.
  • Ethereum contracts have no secrets: everything must be public, you cannot hide what you’re doing on the Ethereum blockchain, unlike, say, Monero’s. This is quite inconvenient for grifters like Yuga Labs and Atalay, but very convenient for us.
  • You can however protect some parts (functions) of the contract, by making it so that only a certain address holder can call it. So, you can have a part of the contract which holds an Ethereum address, and then elsewhere in the contract, you can have functions which will fail if this address is not in use. This is called onlyOwner.
  • Normally, if you protect functions with a mechanism such as onlyOwner, you will also have a function to change the owner’s address. This will not invalidate the previous calls done by the contract owner, it will only prevent future calls. This is called “burning” a contract, and is typically done by setting the owner’s address to the valid Ethereum address 0x0000000000000000000000000000000000000000, also known as the null address. Because no one owns this address, and no one can send a transaction from it, all of the onlyOwner functions become unusable for eternity.

    (A helpful analogy may be to think of it as having a complex machine made by a super advanced alien civilization. If one of its parts is destroyed by human greed, its technology is so far beyond your capabilities that the whole machine becomes unusable.)

Breaking down the BAYC contract

If you have any misconceptions about NFT’s, please discard them, as they are unhelpful and probably lies sold to you by grifters. For example, an NFT is not necessarily:

  • made of immutable metadata;
  • consisting of an unchangeable set of functions (some contracts allow for new functions to be added by the contract owner);
  • of a numerically limited set; nor
  • non-transferable away from a buyer at any time the contract owner sees fit.

All of these things must be enforced by the individual NFT contract. Every time an NFT is minted, what actually happens is that an Ethereum smart contract is created. If you can’t read Solidity code, you are truly playing with fire when purchasing an NFT.

The earlier the enforcement of the above guarantees most NFT buyers are told by profiteers to expect, (and are often — falsely — told are inherent utility provided by NFT’s,) the better as to establishing the intent of the issuer.

The BAYC contract had the following functions accessible (as well as many others I don’t need to detail as they don’t matter to my point and this article is long enough, see EIP-721 and the contract source code for more information), until the event that forms the crux of this article, which I humorously term the Burning of the Affestag:

Functions callable by anyone who held enough Ethereum

  • mintApe — while there were <10,000 apes, and the sale was active, anyone could “mint” an ape by sending 0.08 ETH to the contract (cf. line 1915); actually, up to 20 apes could be minted in one transaction, so long as the total asked for would not cause more than 10,000 apes to exist.
  • safeTransferFrom — allows an ape holder to give their ape to someone else.
  • Various read-only functions to query state, such as the number of apes in existence (totalSupply), the owner of a given ape (tokenOfOwnerByIndex), et cetera.

Functions callable only by Yuga Labs before the Burning of the Affestag (7th June 2022)

  • reserveApes — Reserve 30 apes by setting their owner to the contract’s owner.
  • safeTransferFrom — Yes, they can call this too, but with a twist! Their version is OP, it allowed them to reassign (read: steal) anyone’s ape. (cf. _isApprovedOrOwner function)
  • setBaseURI — The BAYC contract is inferior to the CryptoKitties contract in many ways, but one major way is this: the ape artwork was not fairly generated — it was known in advance what number would equal what ape with what traits. But beyond even this, this function allowed the contract owner to change one of— or all — of the ape artwork, at any time.
  • setOwnership — Change the owner of the BAYC contract.
  • renounceOwnership — Burn the BAYC contract, making all of these functions unusable, for all time. This is what caused the Burning of the Affestag.

A comedy of errors—or, how Yuga Labs used its powers prior to the contract burn

The contract’s first weeks are truly a comedy of errors. At first, the reveal time is meant to be Wed Apr 21 11:00:39 PM EDT 2021; it is then set to Fri Apr 30 06:00:00 PM EDT 2021. At first, they start the sale, then panic and unstart it, then start it again. They reserve some apes, they get up to a bunch of monkey business as it were. None of which is relevant to what I’m trying to prove (though it is interesting that they bungle things so much in the beginning; if I were prone to conspiratorial thinking, as some are, I’d suggest that they wanted to mint on Hitler’s birthday but missed the opportunity so settled for his death day. But I’m not prone to such!).

For more on the comedy of errors, I recommend this excellent article by Nazar Ilamanov.

Yuga Labs was clearly aware of the powers it had.

It called setBaseURI twice in the contract’s history:

Source: Nazar Ilamanov

The first time, it points to a centralized service, which would’ve given them the ability to silently change the artwork. They seemed to have wanted this, but likely backlash from the community led them to acquiesce and change it to an IPFS hash.

Simply put…they knew they had the power to change the artwork. They used it twice, at least. (It’s unknowable how many times they could have silently changed it when it was hosted via Google CloudFunctions.)

Indeed, Yuga Labs has even used similar functions to remove racism from its NFT’s!

Stone Hole Jackson became Stone Holes in the Yuga Labs NFT called Otherside. (And this isn’t even my Proof №5!)

Atalay’s Fraud of the 7th of June 2022

Remember, remember,
The Fifth of November,
Gunpowder treason and plot!
For I see no reason,
Why Gunpowder Treason,
Should ever be forgot!

Now Fred, you might think, you surely won’t compare Atalay’s actions to the Plot of 1605, will you? I don’t pretend that this is anywhere near as important, but the internet has a long history of misusing the history of the Gunpowder Plot, so I wanted to try my hand at it.

Atalay’s fraud is nowhere near as consequential for world history, but I argue, it should be top of mind for both the BAYC bagholder and the RR/BAYC holder. Because, it was done knowingly, when other options existed, when those other options were certainly known to Yuga Labs, if not Atalay himself, when BAYC had already been being researched for its racist elements for over eight months.

By burning the contract on the 7th of June, after many, many people were talking about the fact that they could simply set the owner of the contract to a multisignature agreement, Atalay robbed Yuga Labs — and the BAYC holders — their right to change the artwork.

Indeed, I argue, the holders had every reasonable expectation that Yuga Labs could change the artwork, as they had seem them do it before.

Atalay seems to make this decision completely unilaterally — wasn’t this Yacht Club supposed to give some benefit to its members? (Ha! Don’t make me laugh.)

Legal consequences

My argument is simple if you’ve gotten this far:

  • On 7th June 2022, Kerem Atalay (@TomatoBAYC) willingly decreased the value of apes without any oversight, blaming an article in Blockworks.
  • This was fraud. The BAYC holders bought mutable artwork.
  • By making the artwork immutable, the BAYC holders were factually, irrevocably damaged. Yuga Labs’ assets were devalued an immeasurable amount that day.
  • BAYC holders should consider suing Atalay personally, and Yuga Labs collectively, for this fraud.

Bonus: Proof №5

There is a Bored Ape with a trait called “Multicolor Grin”. For example:

BAYC #646 (via OpenSea)

There is a rapper named Lil Yachty. He bought these nice grills in 2017 for $35,000:

Source: XXLMag

“Grin Multicolor” is a rare trait, occurring in 1% of Bored Apes.

One could argue that it’s supposed to be a reference to Tekashi 6ix9ine (Daniel Hernandez). But Mr. Hernandez is not white, he’s Latino. And I really don’t think it is. Lil Yachty sold his grills while the BAYC artwork was in development.

I forget who first showed me this. If it was you, feel free to tell me and I’ll credit you.

BAYC is racist, and is now almost certainly intended to be a trolling campaign. Atalay’s actions betray him, and defraud investors of good faith who bought this racist twiddle.



Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store