Cointime

Download App
iOS & Android

BasePaint

“This is the most fun I had onchain in a long time”— creators and users of BasePaint.

Let me tell you a story about building BasePaint, a collaborative pixel art project that is unlike what you typically see in the crypto space.

I’ve been writing this post for the last 100 days and did my best to make sure it’s not too boring. Buckle up and consider minting!

BasePaint

Inspired by /r/Place & The Million Dollar Homepage

I remember the first time I saw the source code for an NFT smart contract. My mind was absolutely blown away. I felt like a teenager again, discovering my first computer in the 90s. And while everyone during the 2021 NFT summer was obsessed with floor prices, I just couldn’t get over how awesome and fundamentally different Ethereum was.

I needed to build something for it. A crypto-native project that would exercise all the awesome capabilities this system provided.

The idea of an app similar to Reddit’s The Place or The Million Dollar Homepage was just out there. Crypto was the perfect vehicle for it.

Around November 2021 I registered 1mpx.xyz domain for it. I spent several months building it out. Sleepless nights writing Solidity code that would render a BMP onchain.

Early Figma prototypes for BasePaint's great-grandfather

But despite technical advancements, I still had no answer to the two most important questions: “Why would someone participate in this?” and “How to make the canvas look nice?”. You see, most /r/Place and TMDH clones end up looking like this or this — random incoherent squiggles on the surface and ponzies under the hood to drive adoption.

Onchain Summer Call

One day scrolling Farcaster feed I stumbled upon Base and their call for Onchain Summer. Coinbase is making its own L2 (based on the OP stack) and it needs apps.

I assumed tens of thousands of Coinbase users would come to web3 looking for things to do onchain. I wanted there to be an app that is not about trading coins or minting commemorative NFTs. Something actually fun to do onchain.

I also knew that if we had a fun project, Coinbase, and their partners would help us promote it. I’m very familiar with the pain of crypto-marketing. Base’s promise of support made me pull the trigger on starting this project.

This was the perfect opportunity to revive the 1MPX idea. However, I knew I wouldn’t be able to pull this off by myself.

Meet Zach

I really love building in the open. Tweeting about my projects has been a huge source of energy and inspiration for me. But the most powerful thing about building in the open is that it allows me to meet like-minded people.

I met Zach about a year ago — he found one of my project ideas kind of interesting and volunteered to help out with the designs. I really loved jamming on it with Zach in Figma. That feeling when two brains multiply each other.

This time, I was also super lucky because Zach was kind of in a similar mind-space thinking about /r/Place and the fun application of crypto. Together, we shaped and refined the ideas into a fun and engaging product.

From idea to production in less than 2 weeks

When we started, the Base launch was about 2 weeks away.

We took the 1mpx idea as the starting point. Inspiration also came from old Gameboy consoles, Teenage Engineering, Mario, Final Fantasy, DuoLinguo, Nouns, and many other products.

We quickly abandoned the idea of “tile ownership” — it motivates the behavior of hoarding tiles without making nice art. The VRGDA auctions were also axed to make the product more appealing to web3-noobs. We also skipped DAOs and treasuries, it was much simpler to directly distribute the profits to the artists.

BasePaint's idea board

Then we narrowed down the wide space of ideas to core mechanics. We wanted people to come to the project to make art, ideally every day. We also wanted to give people a way to make money from the art they make. Pixel art was the easiest — most people are already familiar with it, it provides a nice set of constraints but can also look very nice.

But we also knew that you can’t just open up the canvas to everyone, otherwise, you’ll end up with a terrible mess. So we came up with the idea of brushes — people will need a brush to participate. We’d control the flow of brushes to make sure it’s divided by regular folks and artists.

Base launch was looming and we didn’t have much time. We had to trim down the scope. E.g. one of the core ideas was a “continuous canvas”, every day it would grow in one direction and make it all feel like a single piece of artwork.

Zach really wanted BasePaint to have live cursors and a chat on the side (kind of like Twitch). But he also knew that these features tend to be complicated and marked them on a wishlist. I took it as a challenge and squeezed chat and live cursors into the earliest version of the product.

I’m so glad we launched with both chat and live cursors on day 1. These features really make BasePaint feel like a “place”, somewhere you can go to and feel it’s alive, with people working on art and talking at the same time. Discord wouldn’t have been the same.

We also iterated on tokenomics. The goal was to make minting and painting very accessible, while also retaining some degree of scarcity and future value. The brush costs only 0.0026 ETH (~$5), a flat price without curves or other complexities. Every day, the created canvas goes on sale for 0.0026 ETH (~$5) as an Open Edition. This means anyone can mint the artwork they like, but once the day is over, the supply of that piece is limited forever.

By the end of 2 weeks, we had something like this:

BasePaint v0.1

Solving the Cold Start Problem

BasePaint is kind of a two-sided marketplace — you have artists who create the artwork and the collectors who pay for it. Typically, it’s very hard to bootstrap, especially in crypto, without using wild speculation incentives.

The good news was that Base promised to give us the initial boost of awareness and legitimacy. We knew this would drive the demand side of minting for at least a day or two.

Now we needed to find artists. Our testnet launch 2 days prior confirmed our fear — when left unchecked, people will simply resort to drawing their names and dick pictures.

Zach and I reached out to our friends and friends-of-friends. We also prowled dozens of Discord servers of pixel-art-related communities, DM’ed a bunch of pixel artists we loved on Twitter. Most of our calls remained unanswered, but fortunately for us, we found a group of people who really loved the project idea and gave us a shot.

A few days after launch, it was clear that our engine was working. Early artists were earning thousands of dollars, and we had a steady stream of minters.

But most important of all — the artwork looked stunning. Really, really, really beautiful.

Getting addicted to BasePaint

For the last 100+ days, the first thing I check on my phone is not Twitter, Farcaster, or Hacker News. It’s BasePaint. And it’s not a coincidence, we designed it this way.

BasePaint has this nice core loop where you paint on day 1, return to mint the final canvas on day 2, and then come back again on day 3 to claim your earnings.

We designed BasePaint to have many addictive loops. Another one is for new users. Anyone can come in and paint anything without even connecting a wallet. To save, they just need to wait a little bit until the next brush mint. As they are waiting, they also see other people’s cursors come to the canvas, click around, and a few minutes later a new piece of art appears. They also see the live chat they can participate in. BasePaint feels like a lively place where they can just hang out during the day.

Themes was not part of the original idea of BasePaint. We just noticed that it’s very hard for artists to draw something on a blank canvas without any prompt. So ad-hoc on the launch day we’ve added support for a custom little title that appears on top of the canvas — it really helped rally everyone’s contributions into a cohesive picture. On Day 2 we realized that reusing the same palette would make everything look too similar, so I hacked together a way to change the palette each day.

Growth, partnerships, and bots

Unsurprisingly, the number of mints after day 1 dropped significantly.

Surprisingly, after dropping it started rising again.

The thing that helped us most with the growth was partnerships. Coinbase introduced us to the folks behind Pixelmon Kevin and they promised to promote our tweets if we had a “Pixelmon Kevin” day. The artwork turned out to be really cool, and through this partnership, we also managed to get BasePaint in front of new people.

Since then, we’ve partnered with Lens, PartyDAO, @songadayman, Blitkin, and Nouns! We’ve also had “permissionless” themes for Jack Butcher, XCOPY, Pepe, and many others, which brought even more people to BasePaint.

We are also experimenting with a referral program, courtesy of ChainVine. Anyone can sign up to become BasePaint’s ambassador by filling out a form and they can earn up to 100% of BasePaint’s protocol fee.

With the growth and success came the bots. They found a way to snipe brushes as these were minted, and automated spam the canvas with random pixels. We’ve built moderation tools to help fight that, but it’s a constant arms race.

One of our moderation tools

Under the hood: Solidity, NextJS, Ponder

At first, I iterated on BasePaint without smart contracts. I knew that if we got the UX right, I’d be able to write a smart contract for it.

For the pixel editing experience, I was able to pull together scrapes from 1MPX. It has some smarts like the undo history, keyboard shortcuts, and storing in-progress painting to localStorage.

The rest of the web app is pretty conventional — I used NextJS, ConnectKit, tRPC, Prisma, Tailwind, viem and wagmi.

The core of BasePaint is 2 smart contracts written in Solidity: BasePaint (ERC1155 of artwork) and BasePaint Brush (ERC721 of brushes). My only regret here is not making the smart contract upgradeable — I wish I could add support for delegation and limit the ability for bots to sell brushes on marketplaces.

The most interesting bit is probably Brush minting, it uses EIP-712 signatures controlled from our server, so we can change the rules of who can mint brushes and when. E.g. the 1 brush per hour rule is implemented by using a timestamp-based nonce in signatures. Whoever uses it first, gets the brush for that hour, but the brush is not created if nobody mints it.

This time I used something different for backend indexing. Ponder is a great little indexing framework. It was super easy to get started: just write a function that given an event from the smart contract creates/updates entities in its database. Long term, however, it turned into a source of pain — because indexing is linear, every time I make a change now it has to re-index everything, which takes up to an hour. Good problem to have.

Building on web3

BasePaint is truly a type of product that I think wouldn’t exist without web3. I wouldn’t even consider building it on the conventional payments tech.

  1. Payments. It’s super easy to send and receive ETH via smart contracts. The core of BasePaint’s payment system is just a few lines of code.
  2. Trustless. I can’t cheat the artists out of their profit share even if I wanted to. All smart contracts are verified and open source, so anyone can take a look and make the decision to participate on their own.
  3. Permissionless and composable. Anyone can build on top of these smart contracts. E.g. BasePaint Bot is a service that allows anyone to subscribe to BasePaint artwork, and they can do it without any sort of “API" keys” or permission from us.
  4. NFTs. It's a truly unique thing that doesn’t exist on web2. Nobody in their right mind would pay $$ for a jpeg file you can simply right-click-save. But the ownership info is worth something. Most trading apps and wallets support showing your NFTs, so we didn’t have to re-invent a way to view your purchased art gallery.
  5. Accounts. We use ENS to show user accounts throughout the app (chat, voting, leaderboards, etc.), so we don’t have to re-implement user identity in any way. We use “Sign In With Ethereum” to manage user sessions and authenticate their votes.

Pragmatically, web3 is really a great tool for implementing apps like BasePaint.

Building on Base

I’m very, very deep into Ethereum. I’ve invested a lot of time in learning the tools and I feel super productive in this ecosystem. I briefly considered building the previous version of BasePaint on Solana or Tezos, but that felt like a distraction.

But Ethereum mainnet is also not a great place for an app like BasePaint. “Would you like to place these 20 silly pixels for $3.74?”

It was clear that this sort of app requires a cheap and fast L2. But which one? Before BasePaint, I spent a lot of time thinking about which Ethereum-based blockchain to go for. Anything we’d pick that’s not mainnet carries with it its own onboarding cost — we need to educate the users on how to bridge, how to pay for gas, etc. Fortunately, with Base, our launch strategy depended on Base, and the Base team made sure people had smooth onboarding to their L2.

On the development experience side, the Base team has done a great job at integrating the new L2 in all the tools you’d expect. OpenSea, Etherscan, Viem, Ethers, wagmi, and Foundry — all have first-class support for Base. These are little things and technically just a configuration of (chain ID, RPC URL), but I imagine it must have been a lot of work making this experience seamless and partnerships sorted out.

Of course, none of this would have been possible without the OP stack. We are standing on the shoulders of giants.

Surprises

As of today, BasePaint has distributed over 190 ETH ($389,562) to artists. In the middle of crypto winter. With zero ponzinomics. This is still crazy to me.

BasePaint ended up leading the charts of NFT projects on Base. We have been listed among the most used dApps.

BasePaint in the OpenSea top collections on Base

The quality of the artwork has been nothing short of sublime. I’m blown away every time I visit the gallery — and it only seems to be getting better.

Just a few random canvases. There are literally 100 more!

Dudly, one of the OG BasePaint artists has noticed that every day we post a timelapse of the canvas creation process. So he abused that to create an animation. Animation! Totally unexpected and delightful to discover (watch the eye from 0:08 on the video below).

This was so successful that we even experimented with having animation as the theme. It turned out quite nicely, drag the slider around here.

Speaking of fun things, sometimes we run some fun experiments to spice things up for the artists. There was a day when the palette was reduced to only 2 colors, or when only 100px brushes could paint yellow, or splitting artists into Red and Blue teams, or having a live music concert while people were painting.

Experiments

One of our canvases end up on Times Square

The community has come up with many great physical projects, e.g. you can get swag on Perk Shop, or super high-quality prints of your collected canvases on Redlion Printer.

This Dune dashboard uses onchain events from BasePaint and scatterplot to make art.

sammybauch.eth and backseats.eth made BasePaint Bot that auto-mints artwork as it comes out.

You can tell this Thanksgiving BasePaint was pretty high on my list of things to be grateful for. Honored to be part of this community 🫡

When DAO?

After launch, we got bombarded with this type of questions. But we also know that coordinating large groups of humans is a very hard problem, and it’s not the problem we need to solve just yet.

BasePaint is currently ruled by the benevolent dictatorship regime of w1nt3r and zherring. This allows us to make some unpopular decisions in the name of the greater good. We are careful to not break the delicate balance of skill and accessibility. We could probably make a ton of money selling brushes to everyone on some crazy bonding curve, but the ethos of our project is not that. BasePaint is about making great art where everyone who’s interested enough can contribute.

We are slowly giving away control though. We used to pick theme names ourselves, but then we decided to give this power to the people who hold BasePaint artworks. We started with a Prop House, then moved the voting into the BasePaint app itself (using quadratic voting).

The next theme will most likely be "Arcade"

Underpromise, overdeliver

Here’s a thing that served us really well so far — we try to never overpromise. We’ve been burned by so many crypto projects of the last several years that had these ambitious roadmaps, only to fall short and become irrelevant.

Instead, we choose to experiment and focus on things we believe in. BasePaint is an island of wholesomeness in the crypto world. We love this side of crypto — creative, fun, permissionless.

Comments

All Comments

Recommended for you

  • BTC Surpasses $63,000

    Market data shows that BTC has surpassed $63,000, currently priced at $63,006.88, with a 24-hour decline of 1.52%. The market is highly volatile, so please ensure proper risk management.

  • Zuckerberg Directs Meta to Develop Prediction Market Application

    On June 24, The New York Times reported that Zuckerberg has instructed Meta to develop a prediction market application. The internal name for the application is 'Arena', which is similar to Polymarket or Kalshi.

  • U.S. Senate Passes Resolution Aiming to Limit Trump's War Powers Against Iran

    On June 24, the U.S. Senate passed a resolution regarding war powers related to Iran, with 50 votes in favor and 48 against, following a similar approval by the House of Representatives. This marks the first time such a resolution has been approved by both chambers of Congress. The resolution calls for the president to end military actions against Iran without a declaration of war or authorization of force from Congress. However, since this resolution is a joint resolution of Congress, it is not legally binding and does not require the president's signature, thus serving mainly a symbolic purpose.

  • AI Smart Terminals Experience Full Explosion

    On June 23, according to CCTV Finance, at the fourth Chain Expo, the original "Digital Technology Chain" was upgraded to the "Smart Technology Chain." This change in wording reflects that artificial intelligence is becoming the main character in the industrial chain. A newly established AI zone at the event gathered leading AI companies from both domestic and international markets, showcasing the entire chain from data and computing power to applications. Various AI products were on display, including AI glasses, smart cars with digital chassis, and humanoid robots that can play soccer. CCTV Finance reporters observed that the integration of artificial intelligence into the physical world is transitioning from mobile phones and computers to various new smart terminals. This year, the application of AI agents has also experienced a full explosion. Qian Kun, Senior Vice President of Qualcomm, stated that the empowerment of AI agents is leading to a significant upgrade cycle for existing terminal devices. China's industrial chain is very complete, and through continuous collaboration with Chinese partners, their products can quickly reach the market and gain global acceptance. Liu Xiangwen, Vice President of Alibaba Cloud Intelligence Group, noted that AI has evolved from mere chatting to becoming a productive force. The development of all stacks, whether GPU cloud or CPU, is progressing rapidly, and there is still greater potential ahead.

  • U.S. Stock Indices Experience Short-Term Rally

    On June 23, the Dow Jones Industrial Average rose by 0.07%; the S&P 500 index narrowed its decline to 0.77%, having previously fallen over 1.5%; the Nasdaq Composite index also reduced its drop to 1.17%, after having been down more than 2.3% at one point.

  • Vitalik: Ethereum Foundation Budget Cut by 40%, Shifting to Long-term Fund Model

    On June 23, Vitalik Buterin revealed that the Ethereum Foundation (EF) will reduce its budget by approximately 40% this year. According to its previously announced financial management plan, EF is transitioning from a model where it spends about 15% of its remaining funds annually to a model where it will spend about 5% annually after 2030, moving towards a long-term donation-oriented organization. To this end, EF will adjust its multi-client model, relying more on AI-assisted formal verification. The PSE privacy and scalability exploration team will shift from 'exploration' to a focus on building around zero-knowledge proofs. The scale and losses of Devcon events will be reduced, and large projects beyond Ethereum itself will also decrease. EF's institutional work will focus on smaller-scale, replicable CROPS-friendly deployment cases.

  • Huo Qigang: In the AI Era, Our Own Judgment is Key

    On June 23, according to CCTV Finance, Huo Qigang stated that over the past year, the topic of AI has been overwhelming, shifting from 'not using AI' to 'having to use AI,' making him acutely aware that 'not participating will lead to elimination.' As a father, Huo Qigang candidly expressed the dilemma of whether parents should 'control' or 'assist' when their children use AI. He mentioned that he has already begun to assist with AI in his work, but emphasized that using AI does not mean bypassing the thinking process; one must rely on their own experience, thought, and logical judgment, and cannot simply replicate AI outputs.

  • NVIDIA's Market Value Falls Below $500 Billion

    On June 23, NVIDIA (NVDA.O) saw its market value drop below $500 billion, with a latest decline of 2.6%.

  • U.S. Manufacturing Activity Surges Beyond Expectations, But Factory Employment Falls to Six-Year Low

    Driven by companies placing orders in advance to prevent shortages and price increases, U.S. manufacturing activity expanded again in June. However, factory employment fell to a six-year low, primarily due to rising operational costs influenced by conflicts in the Middle East. The preliminary S&P Global Manufacturing PMI for June rose to 55.7 from 55.1 in May, marking the highest level since May 2022, while economists surveyed by Reuters had previously expected the index to drop to 54.8. The increase in the manufacturing PMI, combined with a rise in the services PMI from 50.7 in May to 51.3, contributed to a composite PMI output index increase from 51.5 last month to 52.2. The rebound in the services PMI is partially attributed to the World Cup events jointly hosted by the U.S., Canada, and Mexico.

  • Web3 data and AI company Validation Cloud completes $10 million in new round of financing

     Web3 data and AI company Validation Cloud announced a $10 million financing round from True Global Ventures. The company plans to use the funds to expand its AI products and achieve seamless access to Web3 data.