Back to Home

Yellowpaper

MC AFRO COIN (MC) — Technical Specifications

Version 1.0 • February 2026 • Smart Contract Architecture Reference

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

ParameterValue
NetworkEthereum Mainnet (Chain ID: 1)
Solidity Version0.6.12
Proxy Compiler0.4.24
OptimizationYes (10,000,000 runs)
EVM TargetIstanbul
Token StandardERC-20 (Extended)

2. Contract Architecture

The system uses a three-contract architecture for separation of concerns:

FiatTokenProxy

0x13D9D298972470BA99D8EE93B20732cd6A2501Fb

The 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

FiatTokenV2_2 (Implementation)

0xaaCedC6Dc99c25732dBD0df72121F4f50b76e642

Contains 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

SignatureChecker (Library)

0x4e4d3d58b30289a96f676eeb058733ed1247445f

Utility library for EIP-1271 signature verification. Used by the implementation contract to validate permit signatures from both EOAs and smart contract wallets.

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 Admin0x3021861b24b79df02240f4190EC101C42e01ef0e
Token Owner0x07772e552725168997547B556592CB94Da6f4F92

4. Role-Based Access Control

The FiatToken V2.2 implements a granular role system for institutional-grade access control:

Proxy AdminCan upgrade implementation, change admin. CANNOT call token functions.
OwnerCan assign/revoke all other roles. Sets MasterMinter, Pauser, Blacklister.
MasterMinterCan configure minters and their allowances. Controls token supply.
MinterCan mint tokens up to their configured allowance.
PauserCan pause/unpause all token transfers in emergencies.
BlacklisterCan blacklist/unblacklist addresses for compliance.

5. EIP Compliance

MC Afro Coin implements the following Ethereum Improvement Proposals:

EIP-20ERC-20 Token Standard

Full compliance with the standard token interface (transfer, approve, transferFrom, balanceOf, totalSupply).

EIP-2612Permit (Gasless Approvals)

Allows approvals via off-chain signatures, enabling gasless token operations.

EIP-3009Transfer With Authorization

Enables delegated transfers using signed authorizations, supporting meta-transactions.

EIP-1271Smart Contract Signatures

Validates signatures from smart contract wallets (via SignatureChecker library).

EIP-712Typed Structured Data

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: 0x1e3c66c1fe4512231b5be8b113b41af0b11eb67a793570363cac2cb8c5eedf1e

Step 2: FiatTokenV2_2 Implementation

TX: 0xf42a7a641fe13317931c39199b2fb5623ae30eb116ede79f529a77249f96b5b3

Step 3: FiatTokenProxy

TX: 0x34a1a7a1b833c75a49410d25bed89931b821cf4140c93bf93cba681a83a50e3f

Steps 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.