๐๏ธNFT Smart Contracts
This page is here to help you guide you if you are a smart contract developer trying to make sure that your contract will be displayed properly on objkt.com and that your royalties can be respected on our marketplace.
Smart Contract Basics
The current NFT standard for tezos is called FA2 and is specified in TZIP-12. FA2 is a flexible multi-asset standard most similar to ERC1155 on EVM based chains.
There are many implementations of this standard. To get started we recommend looking into one of the following resources:
Metadata Standard
Metadata is what brings an NFT alive. objkt.com follows the TZIP-16 & TZIP-21 metadata standard for the display of tokens and contract metadata with a small extension related to royalties.
We developed a tool to help you check your metadata: https://objkt-com.github.io/metadata-validator/
We also provide JSON Schemas to validate your metadata:
Collection Metadata
Contract-level metadata can be used to specify global properties of your collection that can be accessed across marketplaces. Hereโs an example of contract-level metadata that is supported by objkt:
Would result in the following view:
Note: the blue checkmark doesnโt appear for automatically indexed collections. It will only appear for manually verified collections.
TZIP-21 extensions and objkt particularities
We developed a tool to help you check your metadata, we highly recommend using it: https://objkt-com.github.io/metadata-validator/ and checking that your tokens display properly on ghostnet.
Royalties
Royalties and royalty-splits defined in the token-metadata with the following format will automatically be supported by objkt:
This example defines two royalty recipients with
tz1h3rQ8wBxFd8L9B3d7Jhaawu6Z568XU3xY
@ 5% andtz1eY5Aqa1kXDFoiebL28emyXFoneAoVg1zh
@ 2.5%. The"decimals"
field defines the position of the decimal point:305
with4
decimals would mean305 / 10^4 = 0.0305 = 3.05%
.
If your contract stores royalties on-chain outside of the token-metadata please get in touch with us.
Receiving royalties on a contract address
Share recipients can be either implicit addresses or contract addresses. Keep in mind that contract addresses need to have a way of dealing with FA1.2 and FA2 tokens since those tokens can be used in general to pay out royalties. Royalty payments made to a contract address without that functionality will be stuck and thus lost.
Minting Tool
Knowing how a token was minted can be extremely useful. Specifying the key mintingTool
with an address to the web UI or name+version of the desktop GUI that created this token tells others who to reach out to when the tool generates broken metadata for instance.
Token Creators
The creators array can contain the names of the creators of the assets. Make sure "creators"
also contains the Tezos address of the creators, the token will show up as having been created by these addresses on objkt.com.
Note: Token creators are not trusted by default for automatically indexed collections, since this would allow for easy impersonation of artists. Instead, they show up in the "Collaboration" tab on the user's profile, where they can "accept" being shown as creator on those tokens.
Attributes
Following the TZIP-21 standard the token metadata can contain a list of attributes:
The percentage displayed on each attribute is automatically computed by objkt.com to reflect how many editions of a token from this FA2 contract have this attribute. Therefore the 35% shown in the above example could be because
If your contract contains 500 1/1 tokens out of which 175 have the attribute โSize / Mediumโ, you would see 35%. Same if your contract contains 100 10/10 (=10 editions per token) out of which 35 tokens (therefore 350 editions) have the attribute โSize / Mediumโ.
By using attributes you will be able to benefit from our trait-offer mechanic.
Assets and thumbnails
objkt generates custom thumbnails for every token on Tezos to ensure that your tokens can be displayed quickly on collection pages and inside search.
Last updated