Smart-Contract Generator

Create your custom Smart-Contract

Deploy your Token or Presale without coding. You can also Submit a Request for a custom Smart-Contract.

Example Contracts

ERC20 Token Contract:
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.10;
  
// https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v3.0.0/contracts/token/ERC20/IERC20.sol
interface IERC20 {
    function totalSupply() external view returns (uint);
  
    function balanceOf(address account) external view returns (uint);
  
    function transfer(address recipient, uint amount) external returns (bool);
  
    function allowance(address owner, address spender) external view returns (uint);
  
    function approve(address spender, uint amount) external returns (bool);
  
    function transferFrom(
        address sender,
        address recipient,
        uint amount
    ) external returns (bool);
  
    event Transfer(address indexed from, address indexed to, uint value);
    event Approval(address indexed owner, address indexed spender, uint value);
}
BEP20 Token Contract:
// SPDX-License-Identifier: MIT
// Current Version of solidity
pragma solidity ^0.8.10;

// Main coin information
contract Token {
    // Initialize addresses mapping
    mapping(address => uint) public balances;
    // Total supply (in this case 1000 tokens)
    uint public totalSupply = 1000 * 10 ** 18;
    // Tokens Name
    string public name = "My Token";
    // Tokens Symbol
    string public symbol = "MTK";
    // Total Decimals (max 18)
    uint public decimals = 18;
    
    // Transfers
    event Transfer(address indexed from, address indexed to, uint value);
    
    // Event executed only ones uppon deploying the contract
    constructor() {
        // Give all created tokens to adress that deployed the contract
        balances[msg.sender] = totalSupply;
    }
    
    // Check balances
    function balanceOf(address owner) public view returns(uint) {
        return balances[owner];
    }
    
    // Transfering coins function
    function transfer(address to, uint value) public returns(bool) {
        require(balanceOf(msg.sender) >= value, 'Insufficient balance');
        balances[to] += value;
        balances[msg.sender] -= value;
        emit Transfer(msg.sender, to, value);
        return true;
    }
    
}