WEMIX3.0
WEMIX3.0 (ENG)
WEMIX3.0 (ENG)
  • Introduction
    • Blockchain Basics
      • What is Blockchain?
      • Consensus Algorithm
      • Transactions
      • Gas
      • Account
  • Design
    • Architecture
    • Consensus
    • Governance
    • Minting
    • EIP1559
    • Eco Fund
    • Fee Delegation
    • Roadmap
  • Quick Start
    • Start Node
      • Use Binary
        • Command-line Option
      • Use Public API Server(RPC)
    • Connect Node
    • Account
      • Use MetaMask
    • Testnet Faucet
  • Install & Operation
    • End Node
      • System Requirements
      • Firewall Setting
      • Install Guide
    • Block Producer Node
      • System Requirements
      • Firewall Setting
      • Install Guide
    • Download
    • Operation Guide
  • dApp Developer
    • Smart Contract
      • Solidity
      • Precompiled Contracts
      • Sample Contracts
    • JSON-RPC
    • API Reference
      • Account APIs
      • Block APIs
      • Contract APIs
      • Transaction APIs
      • Event logs APIs
      • Tokens APIs
  • Tutorial
    • Create a Wallet
    • Receive Test Coin
    • Create Smart Contract
      • Remix
      • Truffle
      • Hardhat
    • ERC-20 Token
      • Write ERC-20 Contract
      • Check ERC-20 Token
      • Send ERC-20 Token
      • Check ERC-20 Token API
      • Burn ERC-20 Token
    • ERC-721 Token
      • Write ERC-721 Contract
      • Minting ERC-721 Token
      • Check ERC-721 Token API
      • Burn ERC-721 Token
    • Use Fee Delegation
  • Manual
    • Explorer
    • Wallet
  • FAQ
Powered by GitBook
On this page
  • Step 1 : Access the Remix and Create a file
  • Step 2 : Write ERC-721 Contract
  • Step 3 : Move to SOLIDITY COMPILER tap, Set Version, and Compile
  • Step 4 : Set DEPLOY & RUN TRANSACTIONS
  • Step 5 : Set Gas Fee and Sign at MetaMask
  1. Tutorial
  2. ERC-721 Token

Write ERC-721 Contract

PreviousERC-721 TokenNextMinting ERC-721 Token

It is possible to proceed an ERC-721Let's proceed with the contract deployment process in the order below. contract deployment test using Remix.

Caution

Once deployed contracts cannot be modified or deleted. Please write and deploy the necessary information in the code.

Let's proceed with the contract deployment process in the order below.

  • Step 1 : Access the Remix and Create a file

  • Step 2 : Write ERC-721 Contract

  • Step 3 : Move to SOLIDITY COMPILER tap, Set the version, and Compile

  • Step 4 : Set DEPLOY & RUN TRANSACTIONS

  • Step 5 : Set Gas fee and Sign at MetaMask

All examples are based on WEMIX3.0 Testnet.

Step 1 : Access the Remix and Create a file

Go to .

Storage.sol, Owner.sol, and Ballot.sol are shown in the contracts directory. To create a new smart contract, select them to erase it and create a new file.

The figure below shows an example of creatingMyNFT.sol file in the contracts directory.

Step 2 : Write ERC-721 Contract

You can create the following ERC-721 contracts:

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.10;

import "@openzeppelin/contracts/token/ERC721/ERC721.sol";
import "@openzeppelin/contracts/utils/Counters.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
import "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol";

contract MyNFT is ERC721URIStorage, Ownable {
    using Counters for Counters.Counter;
    Counters.Counter private _tokenIds;

    constructor() public ERC721("Name", "Symbol") {}

    function mintNFT(address recipient, string memory tokenURI) public onlyOwner returns (uint256){
    
        _tokenIds.increment();

        uint256 newItemId = _tokenIds.current();
        _mint(recipient, newItemId);
        _setTokenURI(newItemId, tokenURI);

        return newItemId;
    }
}

You can specify the Token Name, Token Symbol that you want.

In the code below, you can enter the name and Symbol you want in the 'Name' and 'Symbol'.

    constructor() public ERC721("Name", "Symbol") {}

The figure below is an example of designating 'WMNFT', 'NFT'.

Step 3 : Move to SOLIDITY COMPILER tap, Set Version, and Compile

Once the code is written, compile after selecting the correct compiler version on the Solidity Compiler screen.

The compiler version of the example code provided is 0.8.10, and you must select the compiler version that is lower than that version.

Step 4 : Set DEPLOY & RUN TRANSACTIONS

On the Deploy & Run Transactions screen, select the environment to deploy smart contracts to test.

The figure below shows an example of deploying to WEMIX3.0 Testnet using the 'Injected Provider - Metamask' provided by Remix.

If ENVIRONEMNT is selected as 'Injected Provider - MetaMask', it is connected to MetaMask, which requires the network to be 'WEMIX_Testnet' connection. For more information about MetaMask connection, see Use MetaMask.

Step 5 : Set Gas Fee and Sign at MetaMask

After setting on the Deploy & Run Transactions, if you select 'deploy' button, the MetaMask pop-up appears. The screen showing 'Gas Fee' based on Ethereum will be displayed as shown below.

WEMIX has a different fee policy than Ethereum, so press the 'Site suggested' button to change t the Gas Fee.

Selecting 'Advanced' on the screen below allows the user to set 'Max priority fee (GWEI)' and 'Max fee (GWEI)' manually.

Currently, WEMIX is using a fixed 'Max priority fee (GWEI)' and the value is 100.

Max fee is a user-defined value and the minimum value is MaxPriorityFee+BASE_FEE.

BASE_FEE in WEMIX is variable according to EIP-1559. Therefore, for a transaction to be successfully created, it is recommended to set it as follows.

  1. Max base fee (GWEI) = 101

  2. Max priority fee (GWEI) = 100

Complete the Fee setup in the figure above and select 'Save' to be ready for deployment as shown below.

Select 'Confirm' in the figure above to proceed with the contract deployment.

If a green check mark appears at the bottom of the Remix screen as shown below, the delpoyment is completed normally.

https://remix.ethereum.org
Remix Initial View
Create a File
Example Code
Compile Example Code
Setting Delpoying Envrionment
MetaMask, default 'Gas fee'
MetaMask default 'Gas Fee' setting entry screen
'Gas Fee' setting
Confirm Example ERC-721 Deployment
Complete Example ERC-721 Deployment