# 2-Deploy smart contract on Scroll

By [amir askari](https://paragraph.com/@arzbama) · 2023-04-10

---

1- go to thi site

2- click “create new file” ex: arzbama\_scroll.sol3- copy this code and paste in right panel

    // SPDX-License-Identifier: MIT
    pragma solidity ^0.8.4;
    
    interface IERC20 {
     
        event Transfer(address indexed from, address indexed to, uint256 value);
    
        event Approval(address indexed owner, address indexed spender, uint256 value);
    
        function totalSupply() external view returns (uint256);
    
        function balanceOf(address account) external view returns (uint256);
    
         function transfer(address to, uint256 amount) external returns (bool);
    
        function allowance(address owner, address spender) external view returns (uint256);
    
        function approve(address spender, uint256 amount) external returns (bool);
    
        function transferFrom(
            address from,
            address to,
            uint256 amount
        ) external returns (bool);
    }
    
    contract ERC20 is IERC20 {
    
        mapping(address => uint256) public override balanceOf;
    
        mapping(address => mapping(address => uint256)) public override allowance;
    
        uint256 public override totalSupply; 
    
        string public name;   
        string public symbol;  
        
        uint8 public decimals = 18; 
        address public owner;
    
        constructor(string memory name_, string memory symbol_){
            name = name_;
            symbol = symbol_;
            owner = msg.sender;
        }
    
        function transfer(address recipient, uint amount) external override returns (bool) {
            balanceOf[msg.sender] -= amount;
            balanceOf[recipient] += amount;
            emit Transfer(msg.sender, recipient, amount);
            return true;
        }
    
        function approve(address spender, uint amount) external override returns (bool) {
            allowance[msg.sender][spender] = amount;
            emit Approval(msg.sender, spender, amount);
            return true;
        }
    
        function transferFrom(
            address sender,
            address recipient,
            uint amount
        ) external override returns (bool) {
            allowance[sender][msg.sender] -= amount;
            balanceOf[sender] -= amount;
            balanceOf[recipient] += amount;
            emit Transfer(sender, recipient, amount);
            return true;
        }
    
        function mint(uint amount) external {
            require(owner == msg.sender);
            balanceOf[msg.sender] += amount;
            totalSupply += amount;
            emit Transfer(address(0), msg.sender, amount);
        }
    
        function burn(uint amount) external {
            balanceOf[msg.sender] -= amount;
            totalSupply -= amount;
            emit Transfer(msg.sender, address(0), amount);
        }
    
    }
    

3- click compile

4-choose injected provider - metamask 5- type name\_ and symbol\_ with strings, such as tobber, tob.

click the “transact”

6- type 18000000000000000000000000 to “mint” function and click “transact”

copy the address of our token address free collect entry

7- go to this site and create liquidity

<[https://uniswap-v3.scroll.io/](https://uniswap-v3.scroll.io/) >

---

*Originally published on [amir askari](https://paragraph.com/@arzbama/2-deploy-smart-contract-on-scroll)*
