BlockClock

BlockClocks are on-chain SVG NFTs. The smart contract builds an SVG that displays the current time. The color and timezone can be customized by the owner.

Most marketplaces and wallets will cache the SVG, so the program is also available in javascript and pinned to IPFS to more easily display an animated version.

Who made this?

I (@sammybauch) started hacking on BlockClocks to explore onchain, stateful NFTs. My main work as the founder of 0xEssential is building developer tools for the open metaverse.

I shared the project on Twitter and got a nice response so I decided to take it more seriously. Much of my work over the last year has dealt with time - my first NFT project CryptOrchids is a collection of metaverse flower NFTs that owners must water every 7 days to keep alive. One fastidious gardener has kept their Orchid alive for 8 months!

I also contributed to JPG by helping to write v1 protocol contracts. JPG's first curated gallery Deep Time considered NFT art that engaged the concept of "an expansive sense of time that dwarfs human history, stretching far into the past and forwards to the distant future."

More recently I contributed to Every Icon, an NFT project that reimagined John F. Simon Jr.'s seminal digital artwork in the public ledger context. The work will display every permuation of an icon on a 32x32 grid, but it will take billions of years to work through all of those permutations.

Can I have it?

1024 BlockClock NFTs can ever be minted.

569 tokens are reserved as gifts to members of the 0xEssential community.

455 tokens are offered to the public via a Dutch Auction.

Unique addresses who interacted with the CryptOrchids, BlitPop or Wrasslers contracts before December 11, 2021 are eligible to mint one gift BlockClock. You can see the list of recipients here. 0xEssential reserved an additional 20 tokens for anyone we missed or to use for giveaways etc.

Roadmap? Utility?

There is no roadmap promised. I'd love to explore displaying on various form factors, like Apple Watch or wall displays, and I invite other developers to play with the project.

The utility is telling time (duh). Owners may also receive benefits related to other 0xEssential projects.

This was a fun learning project that turned into a little more, but please don't expect continued development. That said there's so much fun stuff you could do from here!

Credits & Thanks

BlockClocks wouldn't be possible without the open-source contributions of a handful of developers:

  • @BokkyPooBah wrote a Solidity Date/Time library that allows BlockClocks to highlight the components of the current time
  • divergencetech (Harri and Arran) have an Ethereum SDK that provides contracts for functionality like the Dutch Auction and efficient SVG rendering thanks to contributions from @cxkoda
  • @dhof created a font for Corruptions and deployed it in a contract as a Base64 string that made cross-browser letter-spacing feasible
  • @dievardump's signed-minting contract provides an efficient and clever approach for gifted or pre-approved transactions
  • @simonheys'sWord Clock project was inspirational and offered some prior art for the Javascript implementation