1. Technical Overview
MC Afro Coin is implemented as a FiatToken V2.2 smart contract on the Ethereum blockchain. The contract system consists of three deployed components: a transparent proxy, an implementation contract, and a signature verification library.
Deployment Summary
| Parameter | Value |
|---|---|
| Network | Ethereum Mainnet (Chain ID: 1) |
| Solidity Version | 0.6.12 |
| Proxy Compiler | 0.4.24 |
| Optimization | Yes (10,000,000 runs) |
| EVM Target | Istanbul |
| Token Standard | ERC-20 (Extended) |
2. Contract Architecture
The system uses a three-contract architecture for separation of concerns:
0x13D9D298972470BA99D8EE93B20732cd6A2501FbThe user-facing contract address. All interactions (transfers, approvals, minting) go through this proxy. It delegates all calls to the implementation contract while maintaining its own storage.
Solidity 0.4.24 | No optimization | Byzantium EVM
0xaaCedC6Dc99c25732dBD0df72121F4f50b76e642Contains all token logic: ERC-20 functions, minting, burning, pausing, blacklisting, and permit-based approvals. Can be upgraded by the Proxy Admin without changing the token address.
Solidity 0.6.12 | Optimized (10M runs) | Istanbul EVM
3. Transparent Proxy Pattern
The FiatTokenProxy uses the transparent proxy pattern (EIP-1967 compatible). This pattern ensures that:
- The Proxy Admin can only call admin functions (upgrade, changeAdmin) and cannot call token functions
- All other callers have their calls delegated to the implementation contract
- Token balances and state are stored in the proxy's storage, not the implementation
- Upgrading the implementation preserves all balances and approvals
Role Addresses
| Proxy Admin | 0x3021861b24b79df02240f4190EC101C42e01ef0e |
| Token Owner | 0x07772e552725168997547B556592CB94Da6f4F92 |
4. Role-Based Access Control
The FiatToken V2.2 implements a granular role system for institutional-grade access control:
5. EIP Compliance
MC Afro Coin implements the following Ethereum Improvement Proposals:
Full compliance with the standard token interface (transfer, approve, transferFrom, balanceOf, totalSupply).
Allows approvals via off-chain signatures, enabling gasless token operations.
Enables delegated transfers using signed authorizations, supporting meta-transactions.
Validates signatures from smart contract wallets (via SignatureChecker library).
Domain-separated signature hashing for secure off-chain message signing.
6. Security Model
The security model is built on multiple layers of protection:
- Role Separation: Proxy Admin and Token Owner use different private keys, preventing single-key compromise
- Minter Allowances: Each minter has a capped allowance, limiting potential damage from compromised minter keys
- Emergency Pause: The Pauser can instantly freeze all transfers if a security incident is detected
- Blacklisting: Compromised or malicious addresses can be blacklisted to prevent fund movement
- Proven Codebase: FiatToken V2.2 is the same code used by Circle's USDC, audited by multiple security firms
7. Deployment Details
Deployment Transactions
Step 1: SignatureChecker Library
TX: 0x1e3c66c1fe4512231b5be8b113b41af0b11eb67a793570363cac2cb8c5eedf1eStep 2: FiatTokenV2_2 Implementation
TX: 0xf42a7a641fe13317931c39199b2fb5623ae30eb116ede79f529a77249f96b5b3Step 3: FiatTokenProxy
TX: 0x34a1a7a1b833c75a49410d25bed89931b821cf4140c93bf93cba681a83a50e3fSteps 4-7: Initialization (V1, V2, V2.1, V2.2)
Initialization transactions configure token name, symbol, decimals, and enable all V2.2 features.
8. Source Code Verification
All contracts are verified on Etherscan with their source code publicly available. Verification allows anyone to inspect the exact code running on-chain and confirm it matches the published specifications.