g.mirror.xyz
Graeme
0xCC65

Blockchain development entails a unique challenge: How do you deploy immutable contracts to create a product, when you can't see that far into the future?

Operate too leanly in product and engineering, and you can find yourself in chaos. In this environment, it's better to develop with conviction and a concrete understanding of what the product does. This is how Compound and Uniswap were successful; they did roll out out multiple versions, but each was a well-considered, best-in-class product for the given market. They did not launch a "kinda working" model to riff on. Mistakes on-chain are costly and sometimes impossible to undo.

Related to this, our challenge at Mirror has been thinking through how to on-board new users, amid the fog of unexplored terrain.

Continue Reading
Graeme
0xCC65

Today we deployed a program on Ethereum that crowdfunded $10,000 for an essay in 30 minutes.

Dozens of contributors each sent small amounts into the contract as soon as it became live. In exchange, the program minted 10 $ESSAY tokens for ever 0.01 ETH contributed. 10 ETH was our limit, and so we closed funding at that point. The technical aspects all worked flawlessly, and it was a great display of collaboration from our small team. But let's talk about the meaning of this...

Because we're getting into a novel concept: platforms where creators can mint tokens.

Graeme
0xCC65

I'm busy reading a series of essays from a website called LessWrong.com, which they have collected into a book. They're all well-written blog posts, created over years by a community with strong ties and deep commitment to rationality and curiosity and a love of wisdom.

Thinking back about our ideas about crowd-funding essays, it seems quite natural that we would be able to crowdfunding a series of essays in just the same way. A community could propose creating a book together, and funding could be raised and equity distributed. What's nice about this idea, is that the community itself could get equity in the sales...

I don't know how LessWrong chose to fund their book, or where the profits went to (if there were any). But I like to think that they could have air-dropped equity tokens in the publication to all of their contributors - and not just the ones who wrote essays included in the book, but all of the writers who contributed their ideas and feedback over the years. Once airdropped, they could have raised funds for the publication from investors and others who wish to see the book published. Finally, once the book had been written, the rights could be sold, and profits distributed to all token holders.

Graeme
0xCC65

Zora is about to launch their new protocol, which aims to improve on the ERC721 token standard. One of its new features is the coupling of a market contract to an NFT. This means that every zNFT (Zora NFT) has a canonical marketplace for trading. This solves the problem of fragmented liquidity for the trading of NFTs.

By "fragmented liquidity", I'm referring to the problem where there isn't a single, logical place to go to buy an NFT (e.g. digital art), and so trading happens in a number of different storefronts. This leads to a number of inefficiencies! If everyone were just trading in the same marketplace, then you could deploy a single contract for each NFT type, and have everyone trade on very efficient layer-2s, and have it all conform to the same metadata standards.

We (the team at Mirror) proposed to Zora that we build a crowdfunding contract for NFTs, and integration with their protocol. I wrote up a prototype smart contract for this purpose, which you can view here.

Graeme
0xCC65

My head's clearly been stuck in the Publication contract for the last few days, since I've been implementing that.

There's a lot that I like about the Publication contract paradigm, but it's not derisked yet as a feature. Currently, the cost to register on Mirror with the Publication contract would be around $100 on Mainnet, which is a lot of money relative to some other options.

Graeme
0xCC65

My head's clearly been stuck in the Publication contract for the last few days, since I've been implementing that.

There's a lot that I like about the Publication contract paradigm, but it's not derisked yet as a feature. Currently, the cost to register on Mirror with the Publication contract would be around $100 on Mainnet, which is a lot of money relative to some other options.

Graeme
0xCC65

A decade before Facebook turned into a dominating global political institution and banned the President of the United States, The Social Network was filmed to depict its foundation story. Like all creation myths, it's not meant to be literal. These myths serve as dramatic representations to guide our intuitions about what an entity stands for.

This is true for national epics like The Aeneid about the founding of Rome, which provided solid ground for a nation's moral values over centuries. It is also true for this haunting film, The Social Network, which cautions us about how to approach Facebook and the culture of Silicon Valley.

I watched the movie tonight, for the first time in years, and the salient themes today, as depicted by David Fincher and Aaron Sorkin, are envy and deception.

Graeme
0xCC65

Well...almost. Today I implemented the code and wrote tests for the basic functionality that we've agreed on for the v1 of Mirror's on-chain components. Tomorrow I'll deploy that to testnet and wire up the frontend.

So you've got your Mirror Invite Token, this allows you to create a Mirror Publication, which has a Mirror ENS subdomain. The Mirror Publication allows you to have a token (it's has mint()), which is cool, because every Mirror Publication is a legit publisher this way. It can also do fun things like say "if the reader has 5 of my tokens, allow them to comment", or "only readers with at least 1 token can read this exclusive entry".

In terms of launching, today I realized that we should add commenting functionality, and allow anyone to "sign up" and get a contributor account for commenting, without needing an invite token or to deploy a publication. This would allow us to see who shows up and contributes good comments, which I think would encourage us to mint $WRITE tokens for those folks -- having shown they are interested and responsibly contributing to the community.

Graeme
0xCC65

I was away from my computer this the weekend, hiking in Berkeley (photos below). Because posting entries on Mirror require a device signature, and the private keys are on my computer browser, I was unable to post an entry. This relates to the fundament crypto UI problem:

The browser is a sandboxed OS; every flavor of app/game/UI will be efficiently and safely executable within this container, but we don't store private keys in-browser, and users don't all carry private keys all the time. Metamask is a bridge between the browser and your keys, but it's not safe; we call it a kind of "hot-wallet" since it's always connected to the internet, and therefore at higher risk of being hacked. Read more on this tweet thread

Figuring out this interaction will be a breakthrough, and I can see it as something that Apple might be able to do -- through a secure enclave for your private keys built into your phone. It would be typical for Apple to wait until the crypto space is mature, and then create a beautiful solution to the biggest design problem, working from first principles -- not as a browser extension (Metamask), app (Dharma, Argent) or hardware wallet (Ledger), but as something that's a core part of your phone's hardware.

Graeme
0xCC65

There isn't much prior art on blogging products for Ethereum. Most Ethereum products are narrowly financial; DAOs, for example, have been typically intended to be venture funds, or funding campaigns — not publishing entities.

When I consider what a publication might look like in the world of Ethereum, I imagine a deployed contract such as MirrorPublication that holds state such as contributors and admins. But this costs a lot of gas and would make onboarding Mirror expensive. What should onboarding cost? Well, it depends on the publication...

If the publication is for a single contributor — like a personal blog — then maybe it doesn't need a publication contract. The writer could lose out on a some other interesting features that also come with a publication contract, but it should be okay for a lightweight hobby account.

Graeme
0xCC65

Today the priorities were to publish our first dev blog post (The MVP before Christmas), and then to plan our next sprint.

I'm very happy with the way that the blog post turned out. I wrote most of it near midnight the night before, and then our team came together and helped to polish it in the morning. While reviewing the entry, we also took the opportunity to make many design improvements to the Mirror reading experience, which shows the value of using our own product to raise the quality for everybody. This is typically called "dogfooding" your product -- "eating your own dogfood". I once worked with a Spanish-speaking engineer from Chile who was very confused by this expression, and asked another engineer, in Spanish, why everyone was talking about "eating the dog's food"!

Meetings, again, were more meandering today than they ought to have been. I think think we could do better by structuring our internal meeting times more--having really clear outcomes for our meetings, time-boxing them, and knowing when we've "won" the meeting.

Graeme
0xCC65

When more important ideas are written and captured on permanent-storage blockchains or "crypto networks", timestamped and digitally signed (which Mirror is attempting to make easy and mainstream), then AI algorithms should be able to automatically cite and credit the originators of ideas.

For example, if a researcher is writing a paper (hopefully on a client backed by Mirror), the software will be able to scan all articles that have ever been posted before, and automatically find the appropriate reference for a given idea, if a reference exists. This will improve the writing experience for the researcher, and will also prevent the appropriation of ideas.

For example, African-American activist Tarana Burke started the grassroots Me Too movement in 2006, to help sexual assault victims after being assaulted herself. Later, white actor Alyssa Milano popularized "me too" with a viral tweet urging harassed and assaulted woman to tag “#metoo” in social media posts.

Graeme
0xCC65

My goals today were to:

  • Set up a dev blog, which we will use to further our efforts to work "in public"
  • Write the first blog post for the dev blog, detailing our first month and the launch of our MVP
  • RFC a new way to store Entries in our API backend (which solved a few of the outstanding issues from the MVP launch)
  • Kick off the technical introduction with Zora about future integrations

I also had in mind the goal to be more communicative with the team about when I'm online and available for discussions (given that we're all remote, Slack is basically the only forum at which to reach me). I implemented a small change in Slack to make this more formal, creating a whereabouts channel that I can use to be more explicit about when I'm away or particularly focused and not available for discussion.

Graeme
0xCC65

There's a fabulous essay called Naming the Nameless by @s_r_constantin that describes the tension between creators and tastemakers. Creators originate ideas and styles, and tastemakers expand the market and popularize them. In our current form of capitalism, expanders get a greater share of the economic value produced by this relationship, through scale and distribution - by commoditizing the invention. Here's a quote from the essay that frames and explains the problem:

...we don't really have good tools for fairly compensating people for intellectual originality. Intellectual property law is a kludge, with a lot of problems. Creators don't really know how to extract "fair market value" for ideas, possibly because they're intrinsically motivated to create them and the kind of "payment" they want is more like appreciation or kindred-spirit-ness than money. Standard startup ideology says that ideas are of low value: "If you go to VC firms with a brilliant idea that you'll tell them about if they sign a nondisclosure agreement, most will tell you to get lost. That shows how much a mere idea is worth. The market price is less than the inconvenience of signing an NDA." That may be true, but you could also interpret it as markets not knowing how to price ideas, in the same way that markets can't price natural resources until you figure out a way to define property rights over them.

So, whenever you encounter a piece of media -- words or images or music or anything representational -- no matter how many levels of imitation or expansion it's been through, you're still hearing some distant signal from its originator. And its originator probably feels ripped off and undervalued. When you go looking for good art, you're looking for art that's closer to its creative source, and that means you'll hear in it the voice of the frustrated creator.

Graeme
0xCC65

This is a test

Graeme
0xCC65

As I look to the future, I also root myself the ancient past by introducing this publication with quote, chosen at random, from Virgil's Aeneid. My interpretation will yield an unbidden gift from this quote, which I will choose to carry with me for the life of the publication:

"In victory Hercules
Bent for this lintel, and these royal rooms
Were grand enough for him. Friend, have the courage
To care little for wealth, and shape yourself,
You too, to merit godhead. Do not come
Disdainfully into our needy home."

Virgil., & Fitzgerald, R. (1983). The Aeneid. New York: Random House. Book VIII, line 480.