James Bachini

What is Pepe | A Memecoin Story


The Pepe memecoin is a cryptocurrency based on the Pepe the Frog meme, which originated on the imageboard website 4chan in 2005. The meme gained mainstream popularity in 2016 when it was adopted by supporters of then-presidential candidate Donald Trump.

PepeToken is an ERC20 token on the Ethereum blockchain. It is widely traded across many decentralized exchanges such as Uniswap. The ETH-PEPE liquidity pool on Uniswap v2 has traded $760m in the last 7 days. The token now has a market cap in excess of $1 billion US dollars.

It’s rise to fame in May 2023 was one of the first times we have seen retail interest revisit crypto markets since the collapse of FTX in November the previous year.

Pepe Price Chart

The contract is on Etherscan and it’s verified (open source):

There is an unusual blacklisting function which allows the owner to block addresses from transferring assets and also limitations on holding amounts per wallet. The owner address at some point got updated to 0x0 removing any centralized authority and rendering the contract permissionless.

Here is the full code minus libraries:

pragma solidity ^0.8.0;

contract PepeToken is Ownable, ERC20 {
    bool public limited;
    uint256 public maxHoldingAmount;
    uint256 public minHoldingAmount;
    address public uniswapV2Pair;
    mapping(address => bool) public blacklists;

    constructor(uint256 _totalSupply) ERC20("Pepe", "PEPE") {
        _mint(msg.sender, _totalSupply);

    function blacklist(address _address, bool _isBlacklisting) external onlyOwner {
        blacklists[_address] = _isBlacklisting;

    function setRule(bool _limited, address _uniswapV2Pair, uint256 _maxHoldingAmount, uint256 _minHoldingAmount) external onlyOwner {
        limited = _limited;
        uniswapV2Pair = _uniswapV2Pair;
        maxHoldingAmount = _maxHoldingAmount;
        minHoldingAmount = _minHoldingAmount;

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) override internal virtual {
        require(!blacklists[to] && !blacklists[from], "Blacklisted");

        if (uniswapV2Pair == address(0)) {
            require(from == owner() || to == owner(), "trading is not started");

        if (limited && from == uniswapV2Pair) {
            require(super.balanceOf(to) + amount <= maxHoldingAmount && super.balanceOf(to) + amount >= minHoldingAmount, "Forbid");

    function burn(uint256 value) external {
        _burn(msg.sender, value);

After revoking the owner permissions the contract treats all users equally. This allows for a level of decentralization and independence that is not possible in anything other than blockchain technology. The community is able to interact with a digital asset that no one is in charge of or has control over.

This is part of the reason why it was so successful. There was no chance of a rug pull because the contract was simple enough that anyone with even a small amount of dev experience can understand how it works.

Pepe is a great meme and the original creators of the digital assets struck gold with a narrative that connected with traders. Ties to meme culture have for some time been a driving force in cryptocurrency and internet culture but when an asset with zero value get’s pumped to $1B+ in 7 days it’s perhaps something of a evolving landscape. Cheers to that!

Pepe Memecoin

Get The Blockchain Sector Newsletter, binge the YouTube channel and connect with me on Twitter

The Blockchain Sector newsletter goes out a few times a month when there is breaking news or interesting developments to discuss. All the content I produce is free, if you’d like to help please share this content on social media.

Thank you.

James Bachini

Disclaimer: Not a financial advisor, not financial advice. The content I create is to document my journey and for educational and entertainment purposes only. It is not under any circumstances investment advice. I am not an investment or trading professional and am learning myself while still making plenty of mistakes along the way. Any code published is experimental and not production ready to be used for financial transactions. Do your own research and do not play with funds you do not want to lose.