How Can We Help?

< Back
You are here:
Print

On this page you will find howto build your own personal NFT store or even a multi vendor WordPress WooCommerce NFT Marketplace.

Ethereum, Binance Smart Chain (BSC), Polygon (MATIC) and any other EVM compatible blockchain with etherscan-like API is supported.

Personal NFT Store

In this NFT WordPress WooCommerce guide you’ll learn howto build your personal NFT store.

Personal NFT store is an eCommerce store where only you as a site author/owner can create and sell NFT tokens. Other people will not be able to create new NFT tokens or resell purchased NFT tokens on your site.

To build a personal NFT store these plugins are required:

And this one is an optional, but highly recommended:

There is a NFT WordPress Plugin Kit that contains all these three plugins mentioned above with a discount.

This one can be used to accept Ether and/or some ERC20 token like DAI or USDT:

The Configure WordPress Plugins Service can be used to let us configure plugins for you.

Multi Vendor Marketplace – NFT Marketplace Howto

In this NFT WooCommerce WordPress Guide you’ll learn howto build your NFT marketplace with multi vendor support.

The multi-vendor marketplace option let other people to create new NFT tokens on your store, and resell purchased NFT tokens on your site.

To build a multi-vendor NFT marketplace with a WC Vendors Marketplace plugin, these plugins are needed:

Alternatively, The WCFM Marketplace plugin can be used:

The Configure WordPress Plugins Service can be used to let us configure plugins for you.

NFT Tokens Minting

An ERC721 smart contract needs to be deployed in a blockchain to mint your tokens with these plugins.

Method with this signature needs to be added to your smart contract:

function mint(address to, uint256 tokenId, string memory token_IPFS_URI)

We have a Smart Contract Development Service you can order to let us develop and deploy a contract for you.

These options are required for NFT project:

  • Basic NFT Token
  • Metadata
  • White List/KYC
  • Ownable
  • Contract Deployment

Look for these options under the NFT Token Options section

You need to choose a blockchain to use for your tokens. Ethereum is very expensive on deployment, minting or sending tx gas fees. Polygon (MATIC) and Binance Smart Chain (BSC) are also supported. The Polygon (MATIC) blockchain is recommended for negligible tx gas fees.

Tokens on the Polygon (MATIC) chain can be bridged to the Ethereum later if needed.

Lazy Minting – NFT Marketplace Howto

Mint on publish and Mint on sale modes can be configured for any token product. The Mint on sale is a so-called Lazy minting technique, which allows the holder to postpone the token minting tx fee payment until the token selling time when the buyer has already paid for the token, effectively compensating the minting tx fee paid by the seller.

Royalty

The royalty recipient and fraction parameters can be specified if the NFT smart contract supports it:

NFT minting - NFT WordPress Plugin for WooCommerce
The Minting with Royalty parameters specified

Typical minting function signature in this use case:

function mint(address to, uint256 tokenId, string memory tokenURI, address royaltyRecipient, uint256 royaltyFraction)

Auction

Auction features can be added with any WooCommerce Auction plugin, but if multi vendor is needed, then you need to use:

The Configure WordPress Plugins Service can be used to let us configure plugins for you.

Video NFTs

The Product Video for WooCommerce plugin is supported for video NFTs creation.

NFT Series

To sell an NFT series, the Advanced Custom Fields plugin needs to be used. Create two custom fields with this plugin, as shown on these images:

Advanced Custom Fields - NFT Marketplace Howto
Advanced Custom Fields - NFT Marketplace Howto

The result on the NFT product creation page will be like this:

NFT ACF Product Create - NFT Marketplace Howto

When such a product will be sold, a new product with the same image and the Edition value of 2 will be created automatically. The Edition and Editions fields will be added to the metadata JSON file of the token minted also.

Note that any names for these fields can be used, not only Editions/Edition as in this example.

NFT parameters metadata

Each NFT token has a JSON metadata file associated and stored on the IPFS typically. But howto add custom metadata to your WooCommerce WordPress NFT product?

There are two techniques supported to add your custom metadata to the metadata JSON file – the Advanced Custom Fields plugin and the standard WooCommerce Variable Product functionality.

In the Advanced Custom Fields plugin case you can create NFT products with predefined custom metadata fields.

With the WooCommerce Variable Product functionality you can define a single WooCommerce product with an automatically generated user interface your buyers will be able to use to choose the combination of metadata for the NFT token they want to buy.

White List/KYC – NFT Marketplace Howto

After your contract is deployed, the final step is to allow the admin address to mint tokens. This address is generated or configured on a page like: https://example.com/wp-admin/options-general.php?page=cryptocurrency-product-for-woocommerce&tab=default See the Ethereum wallet address setting documentation.

You need to call the grantRole method for the admin address to give it the MINTER role: 0x9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6

  • First argument: 0x9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6
  • Second argument: Your admin address here. See above.

And you need to do it from your NFT token contract owner address. Check it in the owner property of your contract.

See this video guide for details please:

After it will be done, send some ETH/BNB/MATIC to your admin address to pay NFT minting gas fees.

Note that vendor minting can be configured instead of the admin minting. But in this case you’ll need to call the grantRole method for each new vendor approved. And vendors need to top up their wallets with ETH/BNB/MATIC for minting gas fees. The admin minting is a much more user friendly solution.

There is a way to let buyers compensate the minting tx cost by adding a shipping fee or a token price mark up fee.

Token info displaying (shortcodes)

WodPress shortcodes can be used to display token properties on a product or any other page:

  • [nft-product-token-id productid="123" onlyminted="1" placeholder="N/A" decimal="1"] shortcode to display the product’s tokenID value. If the productid attribute is omitted, the current displayed product id is used. If the onlyminted attribute is set to 1, the only already minted tokens tokenID value is shown. If token is not minted the placeholder attribute value will be displayed. The decimal attribute can be used to display the token ID in a decimal instead of the default hexadecimal form.
  • [nft-product-token-address productid="123" onlyminted="1" placeholder="N/A"] shortcode to display the product’s token contract address value. If the productid attribute is omitted, the current displayed product id is used. If token is not minted the placeholder attribute value will be displayed.
  • [nft-product-token-txhash productid="123" onlyminted="1" placeholder="N/A"] shortcode to display the product’s token txhash value. If the productid attribute is omitted, the current displayed product id is used. If the onlyminted attribute is set to 1, the only already minted tokens txhash value is shown or empty value otherwise. If token is not minted the placeholder attribute value will be displayed.
  • [nft-product-token-meta productid="123" onlyminted="1" param="name" attribute="author" placeholder="N/A"] shortcode to display the product’s token meta information and attributes value. If the productid attribute is omitted, the current displayed product id is used. If the onlyminted attribute is set to 1, the only already minted tokens meta values is shown or empty value otherwise. If token is not minted the placeholder attribute value will be displayed.

Theme Requirements

Any WooCommerce compatible theme should work OK. In the multi vendor case the more precise requirement can be if it supports the WCVendors plugin, but it is optional. In most cases WooCommerce should be just enough.

Other Requirements – NFT Marketplace Howto

All requirements of the base Cryptocurrency WordPress Plugin for WooCommerce should be met.

The NFT WordPress Plugin for WooCommerce specific requirement is to enable the allow_url_fopen setting in your PHP ini file. It is used to efficiently open big image and video files of your NFT products.

IPFS storage

In this section you’ll learn howto put images and video files of your WordPress WooCommerce NFT products on IPFS using pinata.cloud or nft.storage service.

IPFS storage is better since it adds more trust to your tokens.

IPFS Settings - NFT Marketplace Howto
IPFS configuration example

Note that your NFT smart contract should have a minting method with signature like this:

function mint(address to, uint256 tokenId, string memory token_IPFS_URI)

Names do not matter here, but this function should have three arguments with the meaning given by their names above.

You can use the Smart Contract Development Service to develop an NFT smart contract for your project.

NFT Media Submarining – NFT Marketplace Howto

Any number of downloadable files can be added to an NFT token WooCommerce product. These files will not be uploaded to IPFS. Only hashes will be calculated and added to the attributes section of the NFT meta data JSON file stored in IPFS.

The Ultimate Downloadable Products for WooCommerce plugin enables to display downloadable files on a product page with thumbnails for images.

Ultimate Downloadable Products for WooCommerce
The downloads tab with blured small image previews.

This way only the NFT token owner will be able to download such submarined files from your site, and in the same time, NFT token owner can always verify if files provided are the right ones by calculating it’s hashes and compare it with hashes from the JSON meta data file.

Set a low quality or just a placeholder image as a featured image of your WooCommerce NFT product for such submarine NFTs.

The NFT Mint button FOMO?

There is a popular feature request for a “NFT Mint Button”. The idea is to let the buyer choose a number of NFTs to mint, and mint them at once by pressing a Mint button with payment integrated.

There may be some good uses of this feature, but in a nutshell, it is a kind of a FOMO technique. NFTs are unique entities a buyer needs to choose for their unique value. Any use case that forces a buyer to buy several NFTs with an unknown value (not a price, but value) breaks the original idea of NFTs as an unique entity and is a suspicious behavior.

The ethereumico.io team will not develop or support solutions like this. Thank you for your understanding.

Consider the valid NFT Series functionality that can be used to sell many NFTs from a single WooCommerce product. Or other custom metadata generation techniques available, like the Advanced Custom Fields or WooCommerce Variable product functionality.

NFT WordPress Plugin vs. opensea

The fundamental difference of the NFT WordPress Plugin Kit described in this NFT WordPress WooCommerce guide with opensea and other similar platforms is that opensea is implemented as a smart contract on a blockchain, and the NFT WordPress Plugin Kit is not. All logic is implemented in a traditional server side PHP code.

Both of these implementations have advantages and disadvantages:

  • The opensea advantage is that payment and minting can be done in a single transaction. Buyer pays the tx gas fee and can be 100% sure that the token will be sent to him after the payment. Sales history with prices can be verified on a blockchain.
  • The opensea disadvantage is that since payment and minting transactions are coupled, they can not accept fiat USD or Bitcoin. For example, only ETH for Ethereum based tokens, or MATIC for Polygon based tokens.


For the NFT WordPress Plugin Kit it is vice versa:

  • The NFT WordPress Plugin Kit advantage is that payment and minting transactions are decoupled. It allows accepting virtually any fiat or crypto currency as a payment. 
  • The NFT WordPress Plugin Kit disadvantage is that since payment and minting transactions are decoupled, the buyer pays only for the payment transaction fee, and the seller should pay for the minting transaction fee. And the buyer can not be 100% sure that the token will be sent to him after the payment, since there is no smart contract in between that can guarantee it. No verifiable sales history with prices exists on a blockchain also.

There is a way to let buyers compensate the minting tx cost by adding a shipping fee or a token price mark up fee.

An additional NFT WordPress plugin advantage is that it can be easily integrated in the WordPress/WooCommerce plugins ecosystem, giving the site admin virtually endless toolkit to implement the unique site’s idea with a very reasonable budget.

Real World Examples

Examples of NFT stores built with these plugins:

See also the demo site where you can register as a vendor and create your own NFTs on a rinkeby test network, and buy them to test it in action: demo.ethereumico.io

Guides and Documentation – NFT Marketplace Howto

Guides for NFT store configure:

Video guides:

The Configure WordPress Plugins Service can be used to let us configure plugins for you.

Categories: