OpenSeaCreatures ERC721 contracts
This is a very simple sample ERC721 for the purposes of demonstrating integration with the OpenSea marketplace. We include a script for minting the items.
Additionally, this contract whitelists the proxy accounts of OpenSea users so that they are automatically able to trade the ERC721 item on OpenSea (without having to pay gas for an additional approval). On OpenSea, each user has a "proxy" account that they control, and is ultimately called by the exchange contracts to trade their items. (Note that this addition does not mean that OpenSea itself has access to the items, simply that the users can list them more easily if they wish to do so)
Either make sure you're running a version of node compliant with the
engines requirement in
package.json, or install Node Version Manager
nvm and run
nvm use to use the correct version of node.
Version 0.20.*, the latest stable version, is required. v1 betas don't work.
If you run into an error while building the dependencies and you're on a Mac, run the code below, remove your
node_modules folder, and do a fresh
xcode-select --install # Install Command Line Tools if you haven't already. sudo xcode-select --switch /Library/Developer/CommandLineTools # Enable command line tools sudo npm explore npm -g -- npm install node-gyp@latest # Update node-gyp
Deploying to the Rinkeby network.
- You'll need to sign up for Infura. and get an API key.
- Using your API key and the mnemonic for your Metamask wallet (make sure you're using a Metamask seed phrase that you're comfortable using for testing purposes), run:
export INFURA_KEY="<infura_key>" export MNEMONIC="<metmask_mnemonic>" truffle deploy --network rinkeby
After deploying to the Rinkeby network, there will be a contract on Rinkeby that will be viewable on Rinkeby Etherscan. For example, here is a recently deployed contract. You should set this contract address and the address of your Metamask account as environment variables when running the minting script:
export OWNER_ADDRESS="<my_address>" export CONTRACT_ADDRESS="<deployed_contract_address>" export NETWORK="rinkeby" node scripts/mint.js