Description
The WordPress NFT Minting Plugin Extension for the NFT (ERC721) tokens minting website wordpress support is released on the 11th of May 2021 for the NFT WordPress Plugin for WooCommerce for the early access sponsorship program members. It become available for the rest of the PRO license owners for free from the 11th of October 2021.
You do not need to buy this extension anymore. All you need is the NFT WordPress Plugin Kit.
This feature allows to build a full featured multi vendor NFT marketplace where vendors can publish their arts without gas fee payments and NFT tokens would be minted automatically when customers purchase them.
Any EVM compatible blockchain like Binance Smart Chain (BSC) or Polygon (MATIC) can be used.
Features – WordPress NFT Minting Plugin Extension
- NFT token minting in the moment of the WooCommerce product publishing or payment confirmation (“gasless minting”)
- WooCommerce NFT product configuration with unique properties. WooCommerce attributes and variations or the Advanced Custom Fields can be used for that.
- NFT Series: sell a limited series of digital copies
- JSON metadata file implementation according to https://docs.opensea.io/docs/metadata-standards, so, they can be accessed with URL like http://your-site.com/nft/123456
- NFT token content is protected with cryptographically generated hashes of all files and attributes attached. The token ID itself is a hash of the JSON metadata file.
- Tokens can be minted from vendor or from admin address (configurable)
- Re-sell feature: check if product for this token was created before and reassign it to a new vendor
- Enhanced security: no need to send tokens to vendor address, just approve or setApprovalForAll vendor’s address to sell your NFTs minted elsewhere
- The changing price (sells) history as on opensea. It is implemented as a [nft-product-sales] shortcode.
productid
,tokenid
andtokenaddress
attributes can be added. On the product page it can be used without attributes. In this case it will show the history for the current product. It is intended to be added to the product.php page template. - Automatic storage of image and JSON meta data files to IPFS. pinata.cloud and nft.storage pinning services are supported.
- NFT token product display with all attributes like opensea does. (Not released yet)
- NFT token smart contract deployment from wordpress admin dashboard (optional). (Not released yet)
See the NFT WordPress Plugin for WooCommerce for full features list please.
The NFT minting website wordpress part generates and stores a token ID in the Ethereum blockchain. The token properties are composed in a JSON file bound to this ID and stored elsewhere, on your site or on an IPFS for example, so, they can be accessed with http://your-site.com/nft/123456
Demo site: demo.ethereumico.io
NFT Marketplace HOWTO
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:
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:
- WC Vendors WooCommerce Simple Auctions and
- WooCommerce Simple Auctions – WordPress Auctions
- (Optional) WooCommere Simple Auction Buy Bid Credits
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:
The result on the NFT product creation page will be like this:
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 theproductid
attribute is omitted, the current displayed product id is used. If theonlyminted
attribute is set to1
, the only already minted tokens tokenID value is shown. If token is not minted theplaceholder
attribute value will be displayed. Thedecimal
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 theproductid
attribute is omitted, the current displayed product id is used. If token is not minted theplaceholder
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 theproductid
attribute is omitted, the current displayed product id is used. If theonlyminted
attribute is set to1
, the only already minted tokens txhash value is shown or empty value otherwise. If token is not minted theplaceholder
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 theproductid
attribute is omitted, the current displayed product id is used. If theonlyminted
attribute is set to1
, the only already minted tokens meta values is shown or empty value otherwise. If token is not minted theplaceholder
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.
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.
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:
- https://ninoarteiro.art/ (migrated to opensea)
- https://nft-matic.com/
- https://earn.unversed.org/
- https://www.purothek.de/shop/
- https://nextagegallery.com/
- https://nextagegallery.com/
- https://artboxhk.io/
- https://blocimarket.co.uk/
- https://www.cryptoshape.io/
- https://www.xinhuanft.com/artgallery/
- https://yesmybook.com/
- https://portfoliotoken.io/
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:
- Cryptocurrency WordPress Plugin for WooCommerce Install and Configure Guide
- Testing the NFT WordPress Plugin for WooCommerce
- WordPress Ethereum Wallet plugin Install and Configure Guide
- Get Infura API Key
Video guides:
The Configure WordPress Plugins Service can be used to let us configure plugins for you.