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
- Navigate to Etherscan: Open your web browser and go to etherscan.io.
- 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
ERC1967Proxyor similar implementation, often with adelegatecallto 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(), oronlyOwner. 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 thetotalSupply()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 thebalanceOf(address account)function. Enter the address you want to check and click "Query". -
latestAnswer()(CPIOracle): On the CPIOracle contract page, find thelatestAnswer()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
delegatecallfunctions 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.
- Find the Pool Address: The FLAT/WETH Uniswap V2 pool address is
0x3235bC561110023a105C936d5423f0C74a38F6b0. - Search on Etherscan: Paste this address into the Ethe
Top comments (0)