KnownOrigin NFTs (tokens)

Details on how we create tokens

Updated over a week ago

What is the difference between an Edition and a Token?

An edition represents a limited set of tokens which all share the same attributes, but each token is unique through its token IDs. For example, if I create an edition of 25, each token issued from this edition will share all the same attributes (apart from their token ID) apart from programmable tokens as defined when the edition was originally minted. Tokens will be sequentially assigned a unique token ID based on the order they are issued.

KnownOrigin enforces the number of tokens which can be issued from an edition on-chain and can be verified.

What defines an edition

An edition is made up of two sets of data, consisting of data stored on IPFS

which is then referenced on chain, plus some additional on-chain attributes which enforce things like creator and edition size amongst other things.

In general, these two pieces of data define the blueprint for what an edition is and what it's associated metadata is.

What data is stored on-chain?

When a V3 edition is minted, the following items are defined and recorded on-chain:

Below is what is stored on a V2 edition, notice it is much longer, this is because we are able to extrapolate all the necessary data from the information above. We did this to make performing actions with the tokens much more gas efficient and consequently cheaper!

Some of these properties can change such as totalSupply being incremented by one each time a token has been issued. Along with the priceInWei which can be modified by the artistAccount associated to it.

There are also some other properties which are stored on-chain when an edition is being created, such as any collaborators details which are then used to split any fees accordingly.

KnownOrigin ($KODA) tokens are fully ERC721 compliant.

Why did we create Editions like this?

Our first iteration of KnownOrigin created all the tokens upfront, after doing this for a few months we realised it was prohibitively expensive to do so (for us and for creators), we also originally had ideas that editions could be in the hundreds or even thousands of tokens, like traditional print media.

So, we move to minting on demand letting the artists create a blueprint, significantly reducing GAS costs. It also enables some other advantages beyond just GAS costs savings, since an edition is a single entity, you can easily control aspects such as price in a single, cost-effective transaction, as well as easily burning unsold tokens without burning all tokens individually.

It's not all roses though, this comes with some trade-offs - primarily being that all the tokens don't appear immediately in a creator's wallet or account. If needed, as a creator you can however gift tokens to yourself which then causes them to appear on sites such as OpenSea and CryptoVoxels.

With the latest version of KnownOrigin (V3) we have managed to resolve this issue whilst maintaining gas efficiency.

What data do we store on IPFS?

IPFS stands for InterPlanetary File System, although not a great name in our opinion. The InterPlanetary File System is a protocol and peer-to-peer network for storing and sharing data in a distributed file system.

The IPFS network enabled files to be uploaded and stored by a network of willing participants, in a network of peer-to-peer nodes. It also has other additional, important, features such as content addressable data, also known as IPFS hashes or CIDs (Content Identifiers). This means that the data uploaded produces a unique fingerprint based on the data itself, enabling you to prove the data stored on IPFS marries up to the reference kept on-chain, along with ensuring it cannot be changed for something else as the hash would also change.

A sample JSON blob we store on IPFS can be seen below:

Note: - not all tokens have the same metadata, as the project has evolved some attributes have been dropped and some have been added.

IPFS, although used widely due to some of the properties mentioned above, it also has some downsides. The main problem is how it relies on trusted or incentivised parties, such as KnownOrigin, to always maintain a copy of that data. However, the good thing is anyone can also maintain this same data and anyone can participate in its upkeep by simply deciding to also store the files.

We have been looking at alternatives such as Arweave and FileCoin, along with others. In the future we may consider leveraging additional storage options if required to do so.

How to download or view IPFS token data

KnownOrigin stores data on multiple IPFS provides but all IPFS gateways should be able to retrieve token metadata and images using KnownOrigin IPFS hashes.

Via a creation event and using Etherscan

Navigate to a KnownOrigin artwork and find the first Creation event in the history. Clicking on the view tx link opens etherscan

Navigate to the Events tab of the Logs and find the event called EditionMintedAndListed or EditionCreated

Find the editionId for the artwork minted.

Navigate to the contract:

  • KODA V2 0xfbeef911dc5821886e1dda71586d90ed28174b7d link

  • KODA V30xABB3738f04Dc2Ec20f4AE4462c3d069d02AE045Blink

Click Contract (all KnownOrigin contracts are verified on etherscan) -> Read Contract -> find the tokenUri() OR editionUri() methods -> paste the TokenId or EditionID to find the full token IPFS data e.g.

Once you have the IPFS hash you can then use most if not all gateways to retrieve them.

  • Infura public gateway https://ipfs.infura.io/ipfs/${REPLACE-WITH-IPFS-HASH}

  • Pinata public gateway https://gateway.pinata.cloud/ipfs/${REPLACE-WITH-IPFS-HASH}

From the KnownOrigin interface

Navigate to a piece of art, click Info, you will see two link to View Metadata or View Media on IPFS

This will open a new tab directly to the tokens IPFS data.

We have been looking at alternatives such as Arweave and FileCoin, along with others. In the future may consider leveraging additional storage options if required to do so.

Did this answer your question?