A dead simple forkable NFT vending machine
The original Skinnerbox is at https://github.com/factoria-org/skinnerbox
- Walletconnect support: v1 only supported Metamask. Skinnerbox2 uses Walletconnect, which means it supports all wallets, including mobile.
- Better error handling: v1 didn't do much to handle errors. Skinnerbox2 now prints out all errors when something goes wrong, so it's easier to understand what's gone wrong.
- Requires infura ID: Because walletconnect requires you to insert an Infura ID, you need to set up an Infura account (FREE) and use its project ID.
Here's an example walkthrough of how it's used:
You can try it out here: https://factoria-org.github.io/skinnerbox2
NOTE: This demo works on Rinkeby (so it's easy to test). Make sure to switch the wallet network to Rinkeby testnet first. (But this repository works both on mainnet and testnet automatically. When you fork this repo and add your own mainnet address, it should automatically work on mainnet too)
- Go deploy an NFT contract with Factoria
- Fork this repository
- Update the box.json to set your own contract address from step 1, as well as set the network ("rinkeby" or "main")
- Also, update the
"infura"
attribute inside the box.json file. You can learn more about how to set up an Infura project over here: https://blog.infura.io/getting-started-with-infura-28e41844cc89/ - (optional) Customize style by changing the style.css
- Create github pages (tutorial)
For those of you who want to hack on it to build custom features. Here are the relevant files:
- index.html: This is the main landing page, which displays the currently signed in user's invite lists
- mint.html: This is the minting app
The code is super simple because it's powered by f0.js, which abstracts away most of the web3, ipfs, and merkle proof handling into one liner methods.