Contract Addresses

This page contains all deployed contract addresses for MemeTrade across supported networks. Use these addresses to interact with the platform programmatically.

Base Sepolia (Testnet)

Chain ID: 84532 Status: ✅ Active Block Explorer: Base Sepolia Scan

Core Platform Contracts

Factory:              0x[SEPOLIA_FACTORY_ADDRESS]
Governance:           0x[SEPOLIA_GOVERNANCE_ADDRESS]
$MEME Token (OFT):    0x[SEPOLIA_MEME_TOKEN_ADDRESS]
Template Module:      0x[SEPOLIA_TEMPLATE_MODULE_ADDRESS]
Economic Module:      0x[SEPOLIA_ECONOMIC_MODULE_ADDRESS]
Moderation Contract:  0x[SEPOLIA_MODERATION_ADDRESS]

Template Contracts

Viral Template:       0x[SEPOLIA_VIRAL_TEMPLATE_ADDRESS]
Standard Template:    0x[SEPOLIA_STANDARD_TEMPLATE_ADDRESS]
Custom Template:      0x[SEPOLIA_CUSTOM_TEMPLATE_ADDRESS]

Liquidity Mining

Liquidity Helper:     0x[SEPOLIA_LIQUIDITY_HELPER_ADDRESS]
Rewards Distributor:  0x[SEPOLIA_REWARDS_DISTRIBUTOR_ADDRESS]
Mining Pool Manager:  0x[SEPOLIA_POOL_MANAGER_ADDRESS]

Uniswap V4 Integration

Pool Manager:         0x[SEPOLIA_UNISWAP_POOL_MANAGER]
Hook Implementation:  0x[SEPOLIA_MEMETRADE_HOOK_ADDRESS]
Position Manager:     0x[SEPOLIA_POSITION_MANAGER_ADDRESS]

LayerZero Integration

LayerZero Endpoint:   0x6EDCE65403992e310A62460808c4b910D972f10f
OFT Adapter:          0x[SEPOLIA_OFT_ADAPTER_ADDRESS]

Proxy Contracts

Factory Proxy:        0x[SEPOLIA_FACTORY_PROXY_ADDRESS]
Governance Proxy:     0x[SEPOLIA_GOVERNANCE_PROXY_ADDRESS]
$MEME Proxy:          0x[SEPOLIA_MEME_PROXY_ADDRESS]

Base Mainnet

Chain ID: 8453 Status: 🔄 Coming Soon Block Explorer: BaseScan

Core Platform Contracts

Factory:              0x[MAINNET_FACTORY_ADDRESS]
Governance:           0x[MAINNET_GOVERNANCE_ADDRESS]
$MEME Token (OFT):    0x[MAINNET_MEME_TOKEN_ADDRESS]
Template Module:      0x[MAINNET_TEMPLATE_MODULE_ADDRESS]
Economic Module:      0x[MAINNET_ECONOMIC_MODULE_ADDRESS]
Moderation Contract:  0x[MAINNET_MODERATION_ADDRESS]

Template Contracts

Viral Template:       0x[MAINNET_VIRAL_TEMPLATE_ADDRESS]
Standard Template:    0x[MAINNET_STANDARD_TEMPLATE_ADDRESS]
Custom Template:      0x[MAINNET_CUSTOM_TEMPLATE_ADDRESS]

Liquidity Mining

Liquidity Helper:     0x[MAINNET_LIQUIDITY_HELPER_ADDRESS]
Rewards Distributor:  0x[MAINNET_REWARDS_DISTRIBUTOR_ADDRESS]
Mining Pool Manager:  0x[MAINNET_POOL_MANAGER_ADDRESS]

Uniswap V4 Integration

Pool Manager:         0x[MAINNET_UNISWAP_POOL_MANAGER]
Hook Implementation:  0x[MAINNET_MEMETRADE_HOOK_ADDRESS]
Position Manager:     0x[MAINNET_POSITION_MANAGER_ADDRESS]

LayerZero Integration

LayerZero Endpoint:   0x1a44076050125825900e736c501f859c50fE728c
OFT Adapter:          0x[MAINNET_OFT_ADAPTER_ADDRESS]

Proxy Contracts

Factory Proxy:        0x[MAINNET_FACTORY_PROXY_ADDRESS]
Governance Proxy:     0x[MAINNET_GOVERNANCE_PROXY_ADDRESS]
$MEME Proxy:          0x[MAINNET_MEME_PROXY_ADDRESS]

Contract Interfaces

Factory Contract

Primary Functions:

function createToken(
    uint256 templateId,
    TokenParams memory params,
    bytes memory extraData
) external returns (address tokenAddress);

function getTemplate(uint256 templateId) external view returns (address);
function isValidToken(address token) external view returns (bool);
function getTokenCount() external view returns (uint256);

$MEME Token (OFT)

Key Functions:

// Standard ERC-20
function transfer(address to, uint256 amount) external returns (bool);
function balanceOf(address account) external view returns (uint256);

// LayerZero OFT
function sendFrom(
    address _from,
    uint16 _dstChainId,
    bytes calldata _toAddress,
    uint256 _amount,
    address payable _refundAddress,
    address _zroPaymentAddress,
    bytes calldata _adapterParams
) external payable;

Governance Contract

Core Functions:

function propose(
    address[] memory targets,
    uint256[] memory values,
    bytes[] memory calldatas,
    string memory description
) external returns (uint256 proposalId);

function vote(uint256 proposalId, uint8 support) external;
function execute(uint256 proposalId) external;

Network-Specific Information

Base Sepolia

Getting Testnet ETH:

RPC Configuration:

const config = {
  chainId: 84532,
  name: "Base Sepolia",
  rpcUrl: "https://sepolia.base.org",
  blockExplorer: "https://sepolia.basescan.org",
};

Base Mainnet

RPC Configuration:

const config = {
  chainId: 8453,
  name: "Base",
  rpcUrl: "https://mainnet.base.org",
  blockExplorer: "https://basescan.org",
};

SDK Integration

JavaScript/TypeScript

import { MemeTrade } from "@memetrade/sdk";

const memetrade = new MemeTrade({
  chainId: 84532, // Base Sepolia
  factoryAddress: "0x[SEPOLIA_FACTORY_ADDRESS]",
  provider: window.ethereum,
});

// Create a new token
const tokenAddress = await memetrade.createToken({
  name: "My Meme Token",
  symbol: "MMT",
  totalSupply: "1000000",
  initialPrice: "0.001",
});

Wagmi Configuration

import { createConfig } from "wagmi";
import { base, baseSepolia } from "viem/chains";

const contracts = {
  factory: {
    address: "0x[FACTORY_ADDRESS]",
    abi: FactoryABI,
  },
  memeToken: {
    address: "0x[MEME_TOKEN_ADDRESS]",
    abi: OFTABI,
  },
} as const;

const config = createConfig({
  chains: [base, baseSepolia],
  contracts,
});

Verification

All contracts are verified on their respective block explorers. You can view source code and interact with contracts directly through:

Base Sepolia:

Base Mainnet:

Security Considerations

Multi-Signature Wallets

Owner Addresses:

Sepolia Owner:    0x[SEPOLIA_MULTISIG_ADDRESS]
Mainnet Owner:    0x[MAINNET_MULTISIG_ADDRESS]
Treasury:         0x[TREASURY_MULTISIG_ADDRESS]
Emergency:        0x[EMERGENCY_MULTISIG_ADDRESS]

Timelock Controllers:

Sepolia Timelock: 0x[SEPOLIA_TIMELOCK_ADDRESS]
Mainnet Timelock: 0x[MAINNET_TIMELOCK_ADDRESS]

Access Control

Role-Based Permissions:

DEFAULT_ADMIN_ROLE:     0x0000000000000000000000000000000000000000000000000000000000000000
FACTORY_ADMIN_ROLE:     0x[FACTORY_ADMIN_ROLE_HASH]
TEMPLATE_ADMIN_ROLE:    0x[TEMPLATE_ADMIN_ROLE_HASH]
MODERATOR_ROLE:         0x[MODERATOR_ROLE_HASH]

Contract ABIs

All contract ABIs are available in our GitHub repository:

Repository: github.com/memetrade/contracts

ABI Files:

Deployment Information

Base Sepolia Deployment

Deployment Date: [SEPOLIA_DEPLOYMENT_DATE] Deployer Address: 0x[SEPOLIA_DEPLOYER_ADDRESS] Deployment Transaction: View on BaseScan

Git Commit: [SEPOLIA_GIT_COMMIT_HASH] Foundry Version: [FOUNDRY_VERSION]

Base Mainnet Deployment

Deployment Date: [MAINNET_DEPLOYMENT_DATE] Deployer Address: 0x[MAINNET_DEPLOYER_ADDRESS] Deployment Transaction: View on BaseScan

Git Commit: [MAINNET_GIT_COMMIT_HASH] Foundry Version: [FOUNDRY_VERSION]

Emergency Procedures

Pause Functionality

Most contracts include pause functionality for emergency situations:

// Check if contract is paused
function paused() external view returns (bool);

// Emergency pause (admin only)
function pause() external onlyRole(EMERGENCY_ROLE);

// Unpause (requires timelock)
function unpause() external onlyRole(DEFAULT_ADMIN_ROLE);

Upgrade Procedures

Contracts use OpenZeppelin's upgradeable proxy pattern:

// Upgrade implementation (timelock required)
function upgrade(address newImplementation) external;

// Upgrade with data migration
function upgradeToAndCall(
    address newImplementation,
    bytes calldata data
) external;

Need Help?

Note: Contract addresses will be updated when Base Mainnet deployment is complete. Subscribe to our Discord for deployment announcements.

Last updated