- Notifications
You must be signed in to change notification settings - Fork0
ERC-721 implementation for listing non-fungible digital art tokens on compliant marketplaces
License
globotree/alf
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
This contract is based onopensea-creatures.
This is a very simple ERC-721 implementation for listing non-fungible digital art tokens oncompliant marketplaces likeOpenSea andRarebits.
Additionally, this tokenContract whitelists the proxy accounts of OpenSea users so that theyare automatically able to trade the ERC721 item on OpenSea (without having to pay gas for anadditional approval). On OpenSea, each user has a "proxy" account that they control, and isultimately called by the exchange contracts to trade their items. (Note that this additiondoes not mean that OpenSea itself has access to the items, simply that the users can list themmore easily if they wish to do so).
Either make sure you're running a version of node compliant with theengines
requirement inpackage.json
, or install Node Version Managernvm
andrunnvm use
to use the correct version of node.
The frontend application can be run against a local node or ganache-cli, or against compliantcontracts on any network connected viaMetaMask.
- Make sure you copy the latest version of your truffle-compiled contract into
./src/assets/contract.json
- You'll need to sign up forInfura. and get an API key.
- Using your API key and the mnemonic for your Metamask wallet (make sure you'reusing 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 tokenContract on Rinkeby that will be viewableonRinkeby Etherscan. For example, here is arecently deployed tokenContract.You should set this tokenContract address and the address of your Metamask account as environment variableswhen running the minting script:
export OWNER_ADDRESS="<my_address>"export CONTRACT_ADDRESS="<deployed_contract_address>"export NETWORK="rinkeby"node scripts/mint.js
MIT ©chris@yutopya.io