Lex Skogard

Hashmark is like Instapaper, but for NFTs. It's the simplest way to view and bookmark NFTs. And all without depending on some 3rd party because everything is automatically stored on IPFS!


Hashmark is like instapaper for NFTs. It's the simplest way to inspect and bookmark NFTs. To get started, simply drag the bookmarklet to the browser bar, and then whenever you come across an NFT you’re interested in, click the bookmarklet to open in Hashmark. Then you'll land on a "Hashamarkified" page, where it displays the entirety of the NFT metadata in a table, so you can quickly inspect what this NFT is all about. This type of view is useful because most NFT marketplaces focus on buying and selling, and not much about the metadata, which is what actually matters more in some interesting NFTs. And of course if you want to save it for later, simply click the “Save” button and it will be saved. Finally, the coolest part about Hashmark is the way it actually works underneath. It stores and loads everything from IPFS so you don't need to rely on a server. All you need is a single IPFS hash. It creates a bundle of IPFS hashes and stores even that bundle as an IPFS file, and connects the final IPFS root hash with your Ethereum account by letting you sign with EIP-712 approach https://eips.ethereum.org/EIPS/eip-712 The end result is that, each user ONLY needs to keep track of just a single IPFS hash (Their bookmark bundle file hash), and from that single hash it extracts everything you need in order to keep track of all the NFTs you are interested in. This is simple because NFT metadata and asset files are already stored and pinned by NFT marketplaces and stakeholders. So all you need is to store the IPFS hash bundle file (The Hashmark fiile). Hashmark as a service automatically pins your bundle files for you for free, since it's not that expensive to store a bunch of hashes. When people think about scaling Ethereum they only think about scaling the blockchain throughput or transaction volume. But when it comes to NFT, the concept of scaling is different. It’s not just about scaling transactions, NFTs will be used offchain for real world utility, such as access tokens, forming a virtual government, voting, and pretty much everything. In this world we need a way to manage, keep track of, and utilize various NFTs offchain. Basically we need a simple but flexible NFT storage solution that work’s completely offline. And that problem is what Hashmark is trying to sovle.

Lex Skogard showcase

How it's made

1. IPFS: I went down the rabbit hole of all things IPFS. Learned MFS (Mutable File System), IPLD (Interplanetary Linked Data), and so on, and after researching all those, came to the final design where the bookmark bundle is stored as a flat file. Also Hashmark creates a new metadata format that stores metadata of metadata, basically linking contract ids and token ids with metadata. These are then used as canonical format for referencing each NFT item, and since it's already all stored on IPFS without duplication, I'm thinking of even making this canonical format available for anyone to use, so they can simply fetch these files to get a birds eye view of an NFT instead of having to fetch multiple files multiple times. 2. Torus: In addition to Metamask, I've incorporated Torus. This was my first time using Torus, but it was very seamless to integrate. I'm thinking of making Torus the default wallet so that anyone can easily save their Hashmarks without having to download the metamask extension, since Hashmark only uses the EIP712 feature to sign authentication tokens and doesn't actually make monetary transactions. This will bring down the barrier to usage.

Technologies used