DEV Community

flat cash
flat cash

Posted on

Guide: How to verify FLAT Protocol contracts on Etherscan

Guide: How to Verify FLAT Protocol Contracts on Etherscan

As a DeFi user, understanding the underlying smart contracts of a protocol is crucial for informed decision-making. This guide will walk you through the process of independently verifying FLAT Protocol's core contracts on Etherscan, empowering you to "trust, but verify" without needing to delve deep into Solidity code.

1. FLAT Protocol Core Contract Addresses

Here are the essential FLAT Protocol contract addresses you'll need for verification:

  • CPIOracle: 0x776f30D74a5868B4f9797200B70f3f200b3e51A4
  • FlatSale: 0x42f7F79965a39626379B48956828551E523A702f
  • FlatReserve: 0x0f2495147C8f63567d2682F72e004652c71f4961
  • FLAT Token: 0x19aB9384736f86c25372338A959648937963A1e6
  • SAVE Vault: 0x07f1d533722a4505f903C4B64B74c1001e3593A1

2. How to Find Contracts on Etherscan

  1. Navigate to Etherscan: Open your web browser and go to etherscan.io.
  2. Search for the Contract: Copy one of the contract addresses from the list above. Paste it into the search bar at the top of the Etherscan page and press Enter.

3. What to Look For: Verified Source Code, No Proxy, No Owner Functions

Once you're on the contract's Etherscan page, here's how to verify its integrity:

  • Verified Source Code: Look for a green checkmark next to "Contract" tab, indicating that the source code has been verified. Click on the "Contract" tab. You should see the Solidity code. This ensures that the deployed bytecode matches the human-readable code.
  • No Proxy Pattern: In the "Contract" tab, scroll through the code. A proxy pattern would typically involve an ERC1967Proxy or similar implementation, often with a delegatecall to an implementation contract. The absence of such patterns suggests a direct, immutable contract.
  • No Owner Functions: Search the contract code for keywords like owner(), transferOwnership(), setOwner(), or onlyOwner. The absence of these functions indicates that the contract does not have a single controlling entity that can unilaterally change its parameters or logic after deployment. This is a strong indicator of decentralization and immutability.

4. How to Read the Contract State

To understand the current state of a contract, navigate to the "Read Contract" tab.

  • totalSupply() (FLAT Token): On the FLAT Token contract page, find the totalSupply() function. Clicking "Query" will show you the total number of FLAT tokens in existence.
  • balanceOf() (FLAT Token, SAVE Vault): To check the balance of a specific address (e.g., a liquidity pool or your own wallet), use the balanceOf(address account) function. Enter the address you want to check and click "Query".
  • latestAnswer() (CPIOracle): On the CPIOracle contract page, find the latestAnswer() function. This will display the current CPI price feed that FLAT Protocol uses.

5. How to Verify Immutability

Immutability is a cornerstone of trust in DeFi. Here's how to check for it:

  • No Upgradeability: As mentioned earlier, the absence of proxy patterns and delegatecall functions in the contract code is a primary indicator. Additionally, look for any functions that would allow the contract's logic to be updated or replaced. Truly immutable contracts will lack such mechanisms.
  • No Admin Keys: The lack of owner() or similar administrative functions (as checked in Section 3) is crucial. If there are no administrative keys or multi-signature wallets with the power to alter core contract logic or parameters, the contract is considered more immutable.

6. How to Check the Uniswap LP Position

While not a core FLAT Protocol contract, the Uniswap V2 liquidity pool for FLAT/WETH is vital for its liquidity.

  1. Find the Pool Address: The FLAT/WETH Uniswap V2 pool address is 0x3235bC561110023a105C936d5423f0C74a38F6b0.
  2. Search on Etherscan: Paste this address into the Ethe

Top comments (0)