Created by artist duo MTAA, Simple Net Art Diagram (SNAD) is a schematic illustration of two computer terminals connected by a line and a red lightning bolt labeled “The art happens here.” Through an extreme economy of form, the now-iconic image conveys complex concepts about net art: first, that it “happens,” and therefore can be thought of as an action or a performance; and second, that it is defined by in-betweenness.
Since its publication in the late 1990s, Simple Net Art Diagram has functioned as a kind of net art meme, remade by other artists to reflect differing conceptions of net art. Embracing this evolution, MTAA have released it under a Creative Commons license that permits alteration and reuse.
MTAA has deployed a smart contract to the Ethereum blockchain which embeds a base64-encoded representation of The Simple Net Art Diagram within its source code. This contract follows the ERC-721 standard.
- Mainnet: 0xfF0BE903dC1aDeD386Ea873578A1e36B112749F3
- Goerli: 0x56C7f2245F64973B980c9b4f3cBE220fd2367eb8
The artists have minted three non-fungible tokens of The Simple Net Art Diagram. These tokens are entirely on the Ethereum blockchain with no external dependencies such as IPFS or Arweave. See the contracts section of this repo for the source code.
The smart contract exposes two functions that may be used to render The Simple Net Art Diagram directly from the blockchian.
SIMPLE_NET_ART_DIAGRAM
— returns a base64-encoded data URI (the signature is0xea99b750
)tokenURI
returns base64-encoded ERC-721 compliant metadata JSON, with the data uri in theimage
field
Install
yarn add simple-net-art-diagram
Require in Node.js:
const Simple_Net_Art_Diagram = require("simple-net-art-diagram");
or, in the browser, which adds a Simple_Net_Art_Diagram
global variable.
<script src="./node_modules/simple-net-art-diagram/dist/index.js"></script>
Note: We're not providing a CDN URL for the package.
The smart contract ABI, addresses, SIMPLE_NET_ART_DIAGRAM
function signature, and the data URI are available via properties on the exported object:
Simple_Net_Art_Diagram.abi; // [{"inputs": [],"stateMutability": "nonpayable",}...etc.
Simple_Net_Art_Diagram.addresses; // { "31337": { "address": "0x5FbDB2313...etc"
Simple_Net_Art_Diagram.functionSignature; // 0xea99b750
Simple_Net_Art_Diagram.dataUri; // "data:image/gif;base64,R0lGODlh1wHuAMQAAP///...etc
addresses.json
is an object with chain IDs as keys:
{
"<chain id>": {
"address": "<contract address>",
"transactionHash": "<deploy transaction hash>"
}
}
There is also a helper function exported which helps to retrieve the data URI directly from the blockchain.
Simple_Net_Art_Diagram.fetchData(rpcEndpoint: string, chainId: string): Promise<string>
// example
(async function () {
const img = new Image();
img.src = await Simple_Net_Art_Diagram.fetchData("http://127.0.0.1:8545", "31337");
body.appendChild(img);
})();
See the examples directory for more.
To run the tests, first start a hardhat node:
yarn hardhat node
And then in another terminal run:
yarn test
This runs both the smart contract tests and the helper lib tests.
Find other formats of The Simple Net Art Diagram on IPFS