🪄
How to build an NFT minting website on Wix without code
a.k.a how to mint NFTs on Wix or how to connect Metamask to Wix
This article helps to set up a no-code widget that allows minting NFTs on your Wix website.
Webflow, WordPress, and Squarespace are also supported. Click to read Webflow guide. For others, instructions are coming soon, meanwhile, ask in our Discord
- Create/open your Wix website
- Go to Settings -> Advanced -> Custom code, click "+Add custom code" (at least "Connect Domain" Wix subscription required)
- Add a button with URL:
https://your-minting-website.xyz/#mint-button
- You need an Ethereum NFT smart contract. Create it using Buildship, or test with an example contract.
ERC721Community contract by buildship.xyz is used by 280+ collections with 1500ETH+ in total volume. It uses ERC721A, and has 40-100% lower minting gas fees, costs ~10-20$ in gas to deploy, bullet-proof security, and extensions like allowlists, funds/royalty splits, mint passes, etc.
- Make sure your contract has
price
andmint
constants. The possible namings are:mint
,buy
ormintXXX
;price
orcost
. - Your Wix website is at least on a Connect Domain site plan (required to add custom code)
- 1.Open Wix website editor
- 2.Go to your Wix Dashboard by clicking on Wix logo. Then open Settings -> Advanced -> Custom code, and click on "+ Add custom code" button

Dashboard Settings -> Advanced -> Custom code
3. Copy & paste this code in the Wix window, and select the "Body - end" option under "Place Code in".
Don't close the code window, we'll still need it in Step 4.
<script>
CONTRACT_ADDRESS = "YOUR CONTRACT ADDRESS HERE"
IS_TESTNET = false
// if your contract is NOT VERIFIED on Etherscan
// put here: CONTRACT_ABI = [{...}]
// don't do anything if unsure
</script>
<script src="https://nftcomponents.vercel.app/static/js/main.js"></script>
<link href="https://nftcomponents.vercel.app/static/css/main.css" rel="stylesheet">
4. If you have your Ethereum NFT contract
- insert your contract address in
CONTRACT_ADDRESS
field - set
IS_TESTNET
tofalse
ortrue
depending on which network is the contract on:Ethereum Mainnet
orGoerli Testnet
.
Your contract should be verified on Etherscan. Otherwise you have to addCONTRACT_ABI = [{...}]
line in the above code, with your full contract ABI inserted. If you have an error saying your ABI is too long, click here.
5. Create a Wix button and insert your minting page link ending with
/#mint-button
. Example:
https://your-minting-website.xyz/#mint-button
Then set the "How does it open?" option to "Current window".

Creating a button in Wix editor

My minting page URL is https://theshad.wixsite.com/minting-website, so look
6. Publish the changes, and you're done 🎉
<script>
CONTRACT_ADDRESS = "0xb1db0dbad7a14370872a7e5327c8ad7c9951a661"
IS_TESTNET = true
</script>
<script src="https://nftcomponents.vercel.app/static/js/main.js"></script>
<link href="https://nftcomponents.vercel.app/static/css/main.css" rel="stylesheet">
It's easy! Set
NETWORK_ID
instead of IS_TESTNET
in the code snippet<script>
CONTRACT_ADDRESS = "YOUR CONTRACT ADDRESS HERE"
NETWORK_ID = 1
// remove IS_TESTNET line
...
</script>
<script ...>
<link ...>
Some of the network IDs you might use:
- Ethereum Mainnet:
NETWORK_ID = 1
- Ethereum Rinkeby Testnet:
NETWORK_ID = 4
- Polygon:
NETWORK_ID = 137
- Binance:
NETWORK_ID = 56
You need to set
DEFAULTS.hideCounter
to true
<script>
CONTRACT_ADDRESS = "YOUR CONTRACT ADDRESS HERE"
NETWORK_ID = 1
DEFAULTS = {
hideCounter: true
}
...
</script>
<script ...>
<link ...>