The Fair Token Project
FTP

🚫🤖

SAFEGUARD WITH FTP ANTIBOT

KEEP BOTS OUT OF YOUR PROJECT

FTPAntiBot uses realtime bot countermeasures. When a transaction comes into your project, you can hook into our library to determine if the user is a bot or a fair trader. Join our telegram and ask us how to get started. By using AntiBot you keep FULL control of your coin, while receiving all the benefits of AntiBot's detection capability.

Ethereum Token Developer Library

Real-time Bot Prevention

Pump n Dump Prevention

Snipe Prevention

No Transfer Cooldowns

No Transaction Fees

Manual Banning Not Necessary

Low Transactional Gas Cost

STEP 1: CREATE YOUR CONTRACT

CREATE A CONTRACT

Develop with remix today using Fair Token Project's recommended features.

With FTP AntiBot

Add Developer Fees

STEP 2: FUND YOUR CONTRACT

FUND YOUR CONTRACT

FTP AntiBot requires your ERC-20 contract to hold your choice of 5 billion $GOLD OR 5 billion $GREEN. This is a static requirement. These funds will not be removed by FTP AntiBot, and fees will not be withrdawn.


Without a funded contract, FTP AntiBot will not work.

STEP 3: EARLY ADOPTER'S PROGRAM

GET EARLY ADOPTION FUNDING

We are giving away 500 billion $GREEN to fund early adopter contracts. Follow and mention us on twitter and join our telegram. Then just ask!

Summary

Bots are rampaging tokens for massive profits. They do this by watching for traders to buy large amounts of tokens at a higher than average slippage. They then cut in line on the same block and then sell right after the trader buys. This gives them instant profits and hurts the trader.

Setup

It is highly recommended that you initialize AntiBot with an external function. This will allow you to update AntiBot versions in the future.


FTPAntiBot private AntiBot;
function assignAntiBotAddress (address _address) external {
    FTPAntiBot _antiBot = FTPAntiBot(_address);
    AntiBot = _antiBot;
}

First we define the AntiBot contract address and create a variable for referencing it.


interface FTPAntiBot {
    function scanAddress(address _recipient, address _sender, address _origin) external returns (bool);
    function registerBlock(address _recipient, address _sender, address _origin) external;
}

contract ProjektGold is Context, IERC20, Ownable {
...

Next we create an interface for interacting with the AntiBot contract.

Functions


registerBlock(address _recipient, address _sender, address _origin) external;
AntiBot.registerBlock(_sender, _recipient, tx.origin); //Tells AntiBot to start watching

registerBlock tells AntiBot to start watching the two parties involved with the trade.


scanAddress(address _address, address _whiteListAddress, address _origin) external returns (bool);
bool isRecipientBotting = AntiBot.scanAddress(_sender, UniswapV2Pair, _origin); // Get AntiBot Result
bool isSenderBotting = AntiBot.scanAddress(_recipient, UniswapV2Pair, _origin); // Get AntiBot result

scanAddress returns a boolean based upon the registerBlock we sent earlier and also on an immediate check of the trader. Returns true if it is a bot.

It is important to note that you need to send your UniswapPair address to AntiBot so that it knows that it is a safe address.


if (isRecipientBotting)
    botAddressMap[_address] = true;

If AntiBot returns true you can assign the address to a (address => bool) map. The cool thing is, you can ban the bot address and the wallet controlling the bot with tx.origin. But make sure you are passing your Pair address to antibot in _whiteListAddress if you are banning tx.origin or you’ll have many unhappy traders.


function _transfer(address _sender, address _recipient, uint256 _amount) {
    require(!botAddressMap[_sender] && !botAddressMap[_recipient],"Beep beep Boop, You're a piece of poop");
    ...

Inside your transfer function create some logic to prevent the foul player from trading.

It is also a good practice when integrating with other contracts to create some logic to toggle those contracts on and off. You do not want the entire success of your transaction to hinge on someone else’s code.

Integrate FTPAntiBot Into Your Contract

Antibot is a Contract as a service. In order to use it, your contract must hold at least 5Billion of one of FTP’s tokens. ($GREEN OR $GOLD)



Currently FairTokenProject is giving these tokens to you for FREE. Join our telegram and ask us how to get started.