Small, experimental NFT project visualizing the social aspects of public blockchain and more
Table of Contents
- Summary / tl;dr
- Effects of the Panopticon
- For Owners: Welcome to “The Mesh”
4.4 DAO Mechanics
4.6 Guide to Contract Interaction
4.7 Terms and Conditions ✳️
Main landing site for The Mesh: https://the-mesh.eth.limo
1. Summary / tl;dr
The Mesh is a small, experimental NFT project that visualizes the social aspects of public blockchain. Everyone sees everyone¹, and we provably share ownership on tokens and other projects. Because of all this, we find ourselves in something like “social networks” that might live long into the future. Public blockchain and its data reveal our economic behavior, our ownership trends, and the NFT communities to which we belonged. The Mesh is inspired by visualizations of co-ownership that show how blockchain spontaneously generates whole new social communities—especially in the NFT space:
The Mesh is assembled using information from the wallets of owners and the state of its contract. Each visualization is called a “node,” and displays some properties of its owner, such as how many NFTs its owner has (background size and color variety), and when that owner has similar NFTs to other owners on The Mesh (shown with connections across tokens).
But The Mesh is more than just this. Inspired by recent interactive projects (like ChainFaces Arena), it’s a fusion of a social network, a DAO and NFT to create a kind of integrated on-chain experience, inspired by some:
- NFTs are vibrant small-scale social networks constructed 100% on-chain using on-chain data.
- Owners can post “messages,” simple communication signals, on their pieces, and the NFT shows who has shared the same message.
- NFTs display ownership balance and variety of some historical NFT projects.
- When messages are posted, they cause everyone’s NFTs to update, altering color distribution and arrangement.
- Posting a message requires a small donation to charity, determined by a DAO-like voting mechanism.
So each token of The Mesh is like a miniature “panopticon,” as I describe below. They are assembled from simple grids, but mixed with elements of varying sizes and colors according to on-chain characteristics. They are stark, simple visualizations, partly because they are completely on chain and assembled by contract—and they are dynamic, changing according to their owner’s wallet. Here are some examples:
You could describe The Mesh as a kind of on-chain social network. Owners of The Mesh can “signal” on the chain, like a very simple “tweet” or “post.” And when they signal, when they “post” to their NFT, this post cascades across the entire mesh of NFTs, altering them. We cannot escape our inevitable interconnectedness, etched permanently on the ledger.
Charitable goals. To “post” on The Mesh, a small charitable donation is needed (summarized in sections below). So when owners post a signal on chain, they give a bit back as determined by the community (the charity vote), and playfully alter everyone’s NFTs in the process. Importantly, regarding distribution: I have decided to share the majority (>80%) of initial sales of this project to charitable projects, including a portion to UkraineDAO².
Why make this project charitable? Events of the past week make an answer to this question obvious, but it was my original goal to make this project charitable in nature. The ultimate symbol of connectedness and collectivity is a group of people fusing their energy and resources to effect change in the world. Each post on The Mesh does a bit of this. I’ve also been fascinated by crypto giving, which I’ve documented before:
Further details about The Mesh are below, including terms and conditions. My wont is to summarize projects in some detail. I do so here, and hope you’ll forgive the vain profusion of text. Before getting into these details of distribution, contract features, etc., I share some background and motivation for this project.
I’m mesmerized by the network structure implied by public blockchain. In my early 2021 project Ethstory, I often used network visualizations to depict the history of Ethereum. These visualizations suggest something intriguing behind them, “human intentions before knowing their future course.” In the example below, I use a network structure to illustrate deposits into the Eth2 contract, which rapidly gobbled up a measurable percentage of all existing ether.
But these public data say even more, especially recently. In the NFT mania of 2021, there was an almost palpable amplification of certain meanings of on-chain ownership.
For example, the growing market of NFTs increased the social status of digital assets. Wallets are often followed using tools like Etherscan and Nansen. Some wallets now have something like “audiences.” These audiences are intrigued at the enormous scale of ownership by those who, as it is sometimes said, “flex.”
But the chain also reveals rich social interconnectedness among those transacting on chain. When two wallets own on the same NFT project they are, in a profound way, interlocked by chain history. And while they co-own on that project, it may provoke community events and interactions in the real world. The chain reveals, reflects and resonates with real social life, becoming further wound up into it. Specialized terms have been imported or introduced for this social concept. “Fam” is sometimes used to summon the attention of those who are involved or interested in a given NFT project. “Hey fam!”
The panopticon. There is a related concept entailed by all this. It is the idea that public blockchain is a kind of panopticon—an edifice, digital in this case, in which all the activities of its denizens can be closely monitored without their knowledge, and without anything they can do about it¹.
Most famously proposed in late 18th century England, a “panopticon” is generally defined as a building that permits a central point to observe anyone inside that building. Such an idea might work for hospital monitoring, security, and prisons. Originally it was designed physically, with a center point in the building crafted with blinders so that this central point could observe anyone at anytime — and those observed would not be aware of it. The observed individuals would know, though, that they could be under watch at any moment.
Modern technology has made the functional characteristics of the panopticon an everyday experience. We may forget that we’re in a panopticon for extended periods of time. Security devices and webcams and so on pervade common modern contexts — and so you could be watched at anytime.
Public blockchain can have this property. Even if your wallet address is not doxxed, someone could be tracking it, studying your behaviors—and you would not know it. But crypto is doubly panoptic: The individuals in this panopticon can watch each other without knowing it. We are all under potential mutual observation, all the time.
3. Effects of the Panopticon
Knowing we could be watched might have effects on us. We may behave differently. Some famous reflections of the panopticon concept argue that it could have a kind of “normalizing” force. We behave in the panopticon so as not to shake the boat, to abide and conform, lest we be caught deviating from these norms.
The doubly panoptic quality of crypto has further implications. Because we can watch each other, we can infer social systems that are latent in the blockchain. You own an NFT, I own an NFT on the same project. We are in this meshwork, in an all-seeing system that immediately reveals that you and I are connected by co-ownership. I’ve visualized this in various ways, often sharing these on Twitter or through NFT projects, such as this one from Indivisuals:
This could have normalizing implications too. Indeed, in NFT projects, the price floor is sometimes monitored by extreme speculators. Those who depart from the floor, who “dump” or do not support the project in their decisions, can be seen. In some cases, the normalizing force of the panopticon is all too obvious. “Community” members may be tempted to rail against some who depart from supporting a project. They are watching. “Come on, fam.”
To the extent that your blockchain behavior characterizes you, the crypto panopticon is revealing. It is a “financial fingerprint” that can be assessed with immediacy, tracking your history and monitoring your future. We see our NFT tastes, transaction times of day, tendencies to sell low and to buy high, proclivity for obscure ERC-20 coins, impetuous mints and involuntary airdrops, our preferred exchanges, engagement with particular dApps, our friends and friends friends and so on—so much data it would seem we can read minds.
The panopticon concept seems grim and eerie, but it offers a critical reminder. The past month has reminded us of the importance of self-custody, of resistance to censorship, of minimizing friction to peer-to-peer interactions among those who wish to freely associate. The panopticon metaphor encourages measures to protect these associations, such as multi-sig vaults and other resources. The beauty of social connectedness and awareness travels in tandem with these important reminders.
4. For Owners: Welcome to “The Mesh”
The Mesh is a small-scale NFT project. It was first designed with this traditional panopticon concept in mind—the NFT project is a sort of “multi-chamber” building in which we all reside. It is encoded entirely on chain with richness in data that permit us to see and study each other in a bit of detail, to engage and influence each other by interacting with the chain.
Each NFT in The Mesh is called a “node.” Owners are nodes on this network of ownership connectivity. The node’s visualization reveals both the node owner, but also the other members of The Mesh community—how they are connected to a token’s owner. Nodes are visualizations of raw ownership data directly from the chain. The visualization encapsulates ideas discussed above, the flex, the fam, the panopticon. Here are some examples:
There will only be 72 nodes on The Mesh³. Based on an ownership snapshot on February 27th (noon NYC time), 64 tokens will be reserved for owners of prior projects in the following way:
- All owners on Indivisuals can secure one node on The Mesh (one per unique owner, not one per token).
- Owners of Gaussian Timepieces, the_coin, Ethstory will be selected so that about half of owners on these projects will get one (partly randomly, but I may use offer amount to help decide, see next paragraph).
Prior owners are welcome to make an offer on some tokens. The reserve price is 0.1 ETH. Because the project is charitable, you are welcome to offer more than this. Because of this charitable goal, I may use amount in part to determine which are accepted. Please ensure the contract address you see matches the link below. Offers will be considered from Feb. 27th to Mar. 5th, 2022. On Mar. 5th, general listings on OpenSea will be made for anyone.
Most proceeds (>80%) of this sale will go to UkraineDAO and other charities².
The Mesh contract is an ERC-721 on Ethereum mainnet. The contract generates the visualizations directly on chain, without any external dependencies. The output is an SVG image, included in the
tokenURI() function that contains all metadata on the chain. The contract also includes a
reveal() function that displays the raw SVG file (making The Mesh “summonable”). These are illustrated below, along with several other interactive features. Interaction with the contract is done entirely through Etherscan (etherscan.io). I do not create separate websites for contract interactions⁴. Owners can also try MyCrypto (mycrypto.com), which offers a contract interaction tool. Contract code is now verified on Etherscan, and please attend to the contract’s address here for security reasons:
✅ Contract address:
Grid and connections. Each node is a grid, filled with points that represent all the nodes on The Mesh. Because the grid contains each node, the relevant one for a given token is highlighted in the grid—this is the owner’s NFT projected into the social network of all the owners. The linkages across nodes reflect when wallets owning tokens hold some historic projects. I’ve chosen a limited set of projects to inspect in wallets. When owners mutually own on any one of these historic projects, The Mesh nodes show lines between their corresponding tokens. It reveals that interconnectedness described above.
Here are the projects⁵. I choose these because I like them, and regard them as historically significant (disclosure: I own a few of them). This is my opinion and not an official endorsement or inducement. Importantly: An owner’s node will be determined by the ownership on these 5 historical projects. You must own at least 1 of these projects to have links with other tokens.
Why so few projects? Computation is limited even in view calls, for one. With each
reveal() call, the contract is completely reconstructing an owner’s connectedness to all other 71 tokens. I also decided this was preferable for a conceptual reason. The panopticon, as noted above, is argued to have a kind of normalizing effect. Having a handful of projects determine linkages creates this kind of subtle and simulated social coercion: “…if you want to connect, you must do such and such…” These projects reflect some of the major NFT categories since the codification of ERC-721. (Note again this is not an endorsement, but just a creative decision of the project.)
Size and color. The size of the background elements on a node corresponds to how many tokens the owner has of these historic projects. The variety of colors is determined by how many of the 5 they own. The more of these projects the wallet owns, the more colorful the pieces, the gaudier and more obvious their presence on chain (“the flex”). The focal node is given a bit of a translucent highlight that is bigger the more tokens are owned.
Messages, “posts.” The focal node corresponding to the piece has a roman numeral inside it. This is the “post” or the “tweet.” It’s kept deliberately simple in The Mesh. Owners can “signal” numbers from 0 (“n”) to 9 (“ix”). Linkages across nodes (the lines) are brighter when tokens have shared the same post content—if an owner posts 1 (“i”) and another token posts 1 (“i”) and they are connected by shared NFTs, then the line is brightened, revealing an increased connection between the two.
These numbers can mean anything, it is up to owners on The Mesh. The simplicity is meant to symbolize a kind of conceptual alignment that happens in the space all the time, a proclamation of particular sentiments meant to energize or commiserate and so on. To some, it is a concern; to others, it is culture. The following is an example:
0 – 5: gm, gn, wagmi, probably nothing, lfg, hey fam
6 – 9: ngmi, rekt, hodl, not great
These are shared tongue-in-cheek. But it reflects a kind of partial privacy that can be achieved—owners on The Mesh may come up with their own scheme. Viewers of the nodes would not know the meaning of the messages. They might only know when communication has taken place, and by how many in similar ways.
Effect of posts on The Mesh. Finally, when a post is shared—when an owner interacts with the contract and shares one of these messages—it causes the entire collection of NFTs to change. Colors will alter somewhat, arrangements may change. A final genuflection to the connectedness of these systems. The last token responsible for the recent change is shown with a white outline. When you see your token change, you know immediately who caused the alteration (“the panopticon”).
4.4 DAO Mechanics
Post messages. There are two main features of this “DAO.” An owner can update their node’s “message,” visualized on the piece as a Roman numeral inside the focal node (see examples above). But for each such update, an owner must send a small donation (between 0.001 and 0.05 ETH) to the current majority-vote charity on the “DAO.” In the contract details below I summarize how to use the
makePost() function on the contract.
Vote on charity. The Mesh will always send the donation to the same charity that is currently the majority vote. Owners of a node commit their node’s vote to a charity by using the
voteCharity() function (summarized below). But this does not automatically update the majority charity. Anyone can run the
updateCharity() function to have the contract assess the current distribution of votes, and determine the simple majority winner. This is done to save gas, and summarized further below.
Though most of the initial sales will go to UkraineDAO, I chose further charities for the DAO itself. These cover issues of environment, humanitarian aid and freedom and are major 501(c)3 charities recognized in the US. Below is the index of the charity, and the charity name, with a link to Etherscan.
Below I illustrate how to use Etherscan to send a “post” onto your node NFT. When doing so, the current charity selected by The Mesh community will receive a value that you specify (the contract asks for a value within 0.001 to 0.05 ETH).
(Note: I setup the initial charity list to be EOA addresses, and used Solidity code for automated
payable().transfer() internal transactions for EOAs. I discovered after deployment that GiveDirectly (4) and UkraineDAO (7) are contracts rather than EOAs, and the
makePost() function will fail if The Mesh tries to send to these contracts. So I only list those charities with EOAs above.)
4.6 Guide to Contract Interaction
The contract’s read functions including several functions you can use to peruse its data.
tokenURI() shows all the metadata and the piece itself. (The piece can be summoned raw from the
reveal() function too.)
To view a charity by index and see its current vote count, use
Visiting Etherscan’s listing of read functions for The Mesh contract will show these and other functions.
In order to make a post, owners can visit Etherscan’s list of write functions and find
makePost(). This requires three inputs. The first is the donation size in ETH, which has to be higher than 0.001 but smaller than 0.05 ETH⁶. It requires your node number (
tokenId), and the message you wish to post to The Mesh (0 – 9). This will also carry out an internal transaction sending the donation amount to the current majority charity on the overall contract.
To vote on a charity, use
voteCharity() and specify the node you wish to vote with. You must own this node, and the
charityId must be an index between 0 and 7. This does not require a donation, and it alters the vote count on a given charity.
At anytime, if owners on the “DAO” feel that it’s time to update the target charity, they have to run a separate function. If a charity has now become a new majority through the voting mechanism, it can be “committed” on the contract by clicking
updateCharity(). Note that any connected wallet can run this function, regardless of their ownership.
Why not update in real time when votes happen? I wanted to encourage voting (a common problem on DAOs) and then let owners on The Mesh update the current winning charity when they want (instead of checking it for each and every vote, costing much more in gas fees).
4.7 Terms and Conditions
The Mesh is an experimental project, use at your own risk. Each token is provided as-is and as-available without any and all warranty. By using the contract you accept sole responsibility for any and all transactions involving The Mesh. Like any project of this nature, there may be unforeseen errors or issues that are discovered during the course of deployment and use. These are important caveats, but I hope you like it.
Additional gm community-related terms of service: The Mesh owners can join the gm.xyz group takensxyz, a community for this project and others by Takens Theorem. There is an exclusive-access section of this new social platform, and The Mesh owners can request a layer_two token from Takens for access (see here for details). (Note: This used to be hosted on Snapshot.)
Welcome to crypto. For beginners, some important notes. First and foremost, security and self-custody: Never share your pass phrase; not your keys, not your coin. Second, and often under-appreciated: You are being watched (at least, at any moment, you could be). Welcome to The Mesh.
- I’m obviously abstracting over privacy coins, like Zcash and Monero, as the all-seeing quality of these chains is greatly diminished. This may be true of mixers and others anonymizing mechanisms too (though this is constantly under discussion). However in the most common, public blockchain scenario, this visibility quality holds, even for wallets that have unknown identities—you can still track and study them.
- As I describe in distribution notes, I will donate most proceeds to charity, but will reserve a small amount to recover gas expenses and a small reserve buffer in case future gas expense is required.
- The token supply is low for some basic reasons. One is that each node fully reconstructs interconnected across all tokens. Computation required thus limits the size of the collection. Another reason is that I like to create smaller-scale projects and focus on sharing these experiences with prior supporters (and reserve some for new supporters).
- I am often asked about Discord and other web tools. I really appreciate this and it’s very kind to imagine growing community. One reason I don’t grow much in these directions is because it expands the attack surface over which my efforts and projects can be exploited by others. Because I never create “mint sites” and other tools, prior owners can know that if I ever direct them to such a thing, it is not me. Moreover, forcing myself to use Etherscan (for example) gives my projects improved permanence. Although Etherscan is a centralized site, its lifespan is more assured than any centralized site I would setup.
- This project is inspired by many others, especially on-chain NFTs and the projects described in my prior blog posts here. Avastars, for example, is an epic on-chain creation and one of my favorites.
- I limit the contribution size to protect owners, lest a mistype occur or something. My initial inclination was to cap it at 0.01 ETH, but I figured some owners might like to donate more for the cost of gas.