creation_sourcecode: // SPDX-License-Identifier: MIT
  
  pragma solidity ^0.8.0;
  
  /**
  
  Website  : https://billysol.lol/
  Twitter  : https://x.com/billycoinsolana
  Telegram : https://t.me/billy_cto_sol
  */
  
  
  contract BILLY {
  
      string public name = "BILLY";
      string public symbol = "BILLY";
      uint256 public totalSupply = 429999999999999999000000000;
      uint8 public decimals = 18;
  
      mapping (address => uint256) public balanceOf;
      mapping (address => mapping (address => uint256)) public allowance;
  
      address public owner;
  
      event Transfer(address indexed from, address indexed to, uint256 value);
      event Approval(address indexed owner, address indexed spender, uint256 value);
      event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
  
      constructor() {
          owner = msg.sender;
          balanceOf[msg.sender] = totalSupply;
      }
  
      function transfer(address _to, uint256 _value) public returns (bool success) {
          require(balanceOf[msg.sender] >= _value, "1BILLY");
          require(_to != address(0), "2BILLY");
          balanceOf[msg.sender] -= _value;
          balanceOf[_to] += _value;
          emit Transfer(msg.sender, _to, _value);
          return true;
      }
  
      function approve(address _spender, uint256 _value) public returns (bool success) {
          allowance[msg.sender][_spender] = _value;
          emit Approval(msg.sender, _spender, _value);
          return true;
      }
  
      function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) {
          require(balanceOf[_from] >= _value, "3BILLY");
          require(allowance[_from][msg.sender] >= _value, "4BILLY");
          require(_to != address(0));
          balanceOf[_from] -= _value;
          balanceOf[_to] += _value;
          allowance[_from][msg.sender] -= _value;
          emit Transfer(_from, _to, _value);
          return true;
      }
  
      function transferOwnership(address newOwner) public onlyOwner {
          require(newOwner != address(0), "5BILLY");
          emit OwnershipTransferred(owner, newOwner);
          owner = newOwner;
      }
  
      function renounceOwnership() public onlyOwner {
          emit OwnershipTransferred(owner, address(0));
          owner = address(0);
      }
  
      modifier onlyOwner() {
          require(msg.sender == owner, "6BILLY");
          _;
      }
  }