Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Latest commit

 

History

History
History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

README.md

Outline

EVMORE: Digital Gold for Developers

🏆 Building the Next Generation of Digital Gold

EVMORE represents a revolutionary approach to digital scarcity - the first cryptocurrency to implement KeccakCollision Proof-of-Work, creating digital gold that requires genuine computational work to mine, just like physical gold requires real energy to extract from the earth.

🎯 Why EVMORE is Digital Gold

Scarcity by Design

  • Fixed Supply: 21 million EVMORE tokens, mirroring Bitcoin's scarcity model
  • Halving Events: Mining rewards halve every 210,000 blocks (~4 years)
  • Difficulty Adjustment: Self-regulating mining difficulty maintains consistent 10-minute block times
  • No Premine: Every token must be mined through computational work

Proof-of-Work Innovation

Unlike traditional mining that relies on simple hash iterations, EVMORE requires miners to solve KeccakCollision puzzles - finding multiple values that produce matching hash patterns. This creates:

  • Memory-Hard Mining: Requires sophisticated algorithms, not just raw processing power
  • ASIC Resistance: Complex collision requirements favor general-purpose computing
  • Verifiable Scarcity: Each solution represents genuine computational work
  • Energy Efficiency: More intelligent mining rather than brute force

Economic Properties of Gold

Physical Gold          →    EVMORE Digital Gold
═══════════════════════════════════════════════════════════
Mining requires work   →    KeccakCollision puzzles
Limited supply         →    21 million max supply
Increasing difficulty  →    Automatic difficulty adjustment
Store of value        →    Deflationary tokenomics
Industrial utility    →    DeFi ecosystem integration

🚀 Developer Quick Start

1. Development Environment Setup

# Clone the repository
git clone https://github.com/your-org/evmore-contracts
cd evmore-contracts

# Install Python dependencies
uv sync

# Install Node.js dependencies
npm install

# Compile contracts
uv run ape compile

2. Deploy Local Development Environment

from ape import accounts, project

# Deploy contracts
owner = accounts.test_accounts[0]
verifier = owner.deploy(project.KeccakCollisionVerifier)
evmore = owner.deploy(project.EvmoreToken, verifier.address)

print(f"EVMORE Digital Gold deployed at: {evmore.address}")
print(f"Current mining challenge: {evmore.currentChallenge().hex()}")
print(f"Mining difficulty: {evmore.currentDifficulty()} bits")

3. Mine Your First Digital Gold

from scripts.generate_mining_solution import generate_mining_solution

# Get current mining parameters
challenge = evmore.currentChallenge()
difficulty = evmore.currentDifficulty()

# Generate a valid mining solution
solution = generate_mining_solution(challenge, difficulty)

# Submit proof of work
miner = accounts.test_accounts[1]
tx = evmore.submitProof(solution, sender=miner)

print(f"Mining proof submitted! Gas used: {tx.gas_used}")

# Wait for epoch transition (10 minutes in production)
# Then claim your digital gold
evmore.claimReward(0, sender=miner)
balance = evmore.balanceOf(miner) / 10**18
print(f"Digital gold mined: {balance} EVMORE")

💎 Architecture: Digital Gold Infrastructure

Core Architecture Overview

┌─────────────────────────────────────────────────────────────┐
│                 EVMORE Digital Gold Stack                   │
├─────────────────────────────────────────────────────────────┤
│ Application Layer (Your DApps)                             │
│ ├── DeFi Protocols (Lending, DEXs, Yield Farming)          │
│ ├── NFT Marketplaces (Digital Gold-backed assets)          │
│ ├── Mining Pools (Collaborative mining)                    │
│ └── Wallets & Exchanges (Store & trade digital gold)       │
├─────────────────────────────────────────────────────────────┤
│ Smart Contract Layer                                        │
│ ├── EvmoreToken.vy (Digital Gold Token)                    │
│ │   ├── ERC-20 Standard Implementation                     │
│ │   ├── Mining Reward Distribution                         │
│ │   ├── Epoch-based Economics                              │
│ │   └── Supply Cap Enforcement                             │
│ └── KeccakCollisionVerifier.vy (Mining Verification)       │
│     ├── Collision Algorithm Verification                   │
│     ├── Difficulty Validation                              │
│     └── Solution Uniqueness Enforcement                    │
├─────────────────────────────────────────────────────────────┤
│ Mining Layer (Digital Gold Extraction)                     │
│ ├── KeccakCollision Algorithm                              │
│ ├── Memory-Hard Puzzle Solving                             │
│ ├── Solution Generation & Verification                     │
│ └── Batch Processing Optimization                          │
├─────────────────────────────────────────────────────────────┤
│ Economic Layer (Gold Standard Economics)                   │
│ ├── Fixed Supply (21M EVMORE)                              │
│ ├── Halving Schedule (Every 210k blocks)                   │
│ ├── Difficulty Adjustment (Every 2016 blocks)              │
│ └── Fair Distribution (No premine)                         │
└─────────────────────────────────────────────────────────────┘

Mining Process: Digital Gold Extraction

The KeccakCollision algorithm creates digital scarcity through computational work:

def mine_digital_gold(challenge: bytes32, difficulty: int) -> bytes:
    """
    Mine EVMORE digital gold through KeccakCollision proof-of-work

    This process mimics gold mining:
    1. Take a mining challenge (like a gold vein location)
    2. Find 4 values that create collision patterns (like extracting ore)
    3. Verify the solution meets difficulty requirements (like assaying gold)
    4. Submit proof of work to claim reward (like selling refined gold)
    """

    # Find 4 values that produce matching hash patterns
    solutions = []
    target_bits = None

    while len(solutions) < 4:
        # Generate random candidate value
        candidate = generate_random_value()

        # Hash with challenge (like processing ore)
        hash_result = keccak256(challenge + candidate)
        collision_bits = extract_bits(hash_result, difficulty)

        # Check for collision pattern (like finding gold)
        if target_bits is None:
            target_bits = collision_bits
            solutions.append(candidate)
        elif collision_bits == target_bits:
            solutions.append(candidate)

    # Ensure solutions are in ascending order (protocol requirement)
    solutions.sort()

    # Return concatenated solution (your digital gold claim)
    return b''.join(solutions)

🏗️ Building on EVMORE: Digital Gold DApps

1. Digital Gold Wallet

// Example: Simple EVMORE wallet with gold-themed features
contract DigitalGoldWallet {
    IERC20 public evmore;

    mapping(address => uint256) public goldVaults;
    mapping(address => uint256) public lastDepositTime;

    event GoldDeposited(address indexed owner, uint256 amount);
    event GoldWithdrawn(address indexed owner, uint256 amount);

    function depositGold(uint256 amount) external {
        evmore.transferFrom(msg.sender, address(this), amount);
        goldVaults[msg.sender] += amount;
        lastDepositTime[msg.sender] = block.timestamp;

        emit GoldDeposited(msg.sender, amount);
    }

    function withdrawGold(uint256 amount) external {
        require(goldVaults[msg.sender] >= amount, "Insufficient gold");

        goldVaults[msg.sender] -= amount;
        evmore.transfer(msg.sender, amount);

        emit GoldWithdrawn(msg.sender, amount);
    }

    function getGoldBalance(address owner) external view returns (uint256) {
        return goldVaults[owner];
    }
}

2. Digital Gold Lending Protocol

# Python example: Gold-backed lending using EVMORE
class DigitalGoldLending:
    def __init__(self, evmore_token):
        self.evmore = evmore_token
        self.loans = {}
        self.collateral_ratio = 150  # 150% collateralization

    def deposit_gold_collateral(self, amount, borrower):
        """Deposit EVMORE as collateral like depositing gold bars"""
        self.evmore.transferFrom(borrower, self.address, amount)

        if borrower not in self.loans:
            self.loans[borrower] = {'collateral': 0, 'debt': 0}

        self.loans[borrower]['collateral'] += amount

        # Calculate maximum borrowing capacity
        max_borrow = (amount * 100) // self.collateral_ratio
        return max_borrow

    def borrow_against_gold(self, amount, borrower):
        """Borrow stablecoins against EVMORE collateral"""
        loan = self.loans.get(borrower, {'collateral': 0, 'debt': 0})

        max_borrow = (loan['collateral'] * 100) // self.collateral_ratio
        required_borrow = loan['debt'] + amount

        assert required_borrow <= max_borrow, "Insufficient gold collateral"

        # Mint stablecoins
        self.mint_stablecoins(borrower, amount)
        self.loans[borrower]['debt'] += amount

3. Digital Gold Mining Pool

class DigitalGoldMiningPool:
    """Collaborative mining pool for EVMORE digital gold"""

    def __init__(self, evmore_contract):
        self.evmore = evmore_contract
        self.miners = {}
        self.total_hashrate = 0
        self.pending_rewards = 0

    def join_pool(self, miner_address, hashrate):
        """Join the digital gold mining pool"""
        self.miners[miner_address] = {
            'hashrate': hashrate,
            'joined_at': block.timestamp,
            'pending_rewards': 0
        }
        self.total_hashrate += hashrate

    def submit_mining_work(self, miner, solution):
        """Submit mining work to the pool"""
        # Verify solution locally
        if self.verify_solution(solution):
            # Submit to EVMORE contract
            tx = self.evmore.submitProof(solution, sender=self.pool_address)

            # Track contribution
            miner_data = self.miners[miner]
            contribution_share = miner_data['hashrate'] / self.total_hashrate

            # When pool claims reward, distribute based on contribution
            return True
        return False

    def distribute_gold_rewards(self):
        """Distribute mined digital gold to pool participants"""
        total_rewards = self.evmore.balanceOf(self.pool_address)

        for miner_address, miner_data in self.miners.items():
            share = miner_data['hashrate'] / self.total_hashrate
            reward = int(total_rewards * share)

            if reward > 0:
                self.evmore.transfer(miner_address, reward)
                miner_data['pending_rewards'] = 0

💰 Economic Model: Digital Gold Standard

Supply Mechanics (Like Physical Gold)

# EVMORE Economic Constants
INITIAL_REWARD = 50 * 10**18      # 50 EVMORE per block (like finding a gold nugget)
HALVING_BLOCKS = 210_000          # Halving every ~4 years (like gold veins getting depleted)
MAX_SUPPLY = 21_000_000 * 10**18  # 21 million maximum (like finite gold on Earth)
TARGET_BLOCK_TIME = 600           # 10 minutes (consistent gold extraction rate)

def calculate_current_reward(blocks_mined):
    """Calculate current mining reward (like current gold extraction rate)"""
    halvings = blocks_mined // HALVING_BLOCKS
    current_reward = INITIAL_REWARD >> halvings  # Bit shift for halving
    return current_reward

def get_remaining_supply(current_supply):
    """Get remaining digital gold to be mined"""
    return MAX_SUPPLY - current_supply

# Example: Check current gold mining economics
blocks_mined = evmore.blocksMined()
current_reward = calculate_current_reward(blocks_mined)
remaining_gold = get_remaining_supply(evmore.totalSupply())

print(f"Current mining reward: {current_reward / 10**18} EVMORE per block")
print(f"Remaining digital gold: {remaining_gold / 10**18:,.0f} EVMORE")
print(f"Percentage mined: {(evmore.totalSupply() / MAX_SUPPLY) * 100:.2f}%")

Difficulty Adjustment (Like Mining Getting Harder)

def understand_mining_difficulty():
    """Mining difficulty adjusts like gold becoming harder to find"""

    current_difficulty = evmore.currentDifficulty()
    target_time = evmore.TARGET_BLOCK_TIME()

    print(f"Current difficulty: {current_difficulty} bits")
    print(f"Target block time: {target_time} seconds")

    # As more miners join (like more gold prospectors), difficulty increases
    # This maintains consistent 10-minute blocks (like steady gold extraction)

    # Example: What difficulty means
    collision_probability = 1 / (2 ** current_difficulty)
    print(f"Collision probability: 1 in {2 ** current_difficulty:,}")
    print(f"Expected attempts: ~{2 ** current_difficulty:,}")

🛠️ Developer Tools & APIs

EVMORE SDK for Digital Gold Applications

class EVMOREDigitalGold:
    """Python SDK for EVMORE digital gold applications"""

    def __init__(self, contract_address, web3_provider):
        self.w3 = Web3(web3_provider)
        self.contract = self.w3.eth.contract(
            address=contract_address,
            abi=EVMORE_ABI
        )

    def get_gold_balance(self, address):
        """Get digital gold balance in human-readable format"""
        balance_wei = self.contract.functions.balanceOf(address).call()
        return balance_wei / 10**18

    def get_mining_info(self):
        """Get current mining information"""
        return {
            'challenge': self.contract.functions.currentChallenge().call().hex(),
            'difficulty': self.contract.functions.currentDifficulty().call(),
            'epoch': self.contract.functions.current_epoch().call(),
            'blocks_mined': self.contract.functions.blocksMined().call(),
            'total_supply': self.get_total_supply(),
            'current_reward': self.get_current_reward()
        }

    def get_total_supply(self):
        """Get total mined digital gold"""
        supply_wei = self.contract.functions.totalSupply().call()
        return supply_wei / 10**18

    def get_current_reward(self):
        """Get current mining reward"""
        blocks_mined = self.contract.functions.blocksMined().call()
        halvings = blocks_mined // 210000
        reward_wei = (50 * 10**18) >> halvings
        return reward_wei / 10**18

    def estimate_mining_time(self, hashrate):
        """Estimate time to mine a block at given hashrate"""
        difficulty = self.contract.functions.currentDifficulty().call()
        expected_attempts = 2 ** difficulty
        estimated_seconds = expected_attempts / hashrate
        return estimated_seconds

    def monitor_gold_events(self, callback):
        """Monitor digital gold events in real-time"""
        def handle_mining_event(event):
            callback({
                'type': 'mining',
                'miner': event['args']['miner'],
                'reward': event['args']['reward'] / 10**18,
                'solution': event['args']['solution'].hex()
            })

        def handle_transfer_event(event):
            callback({
                'type': 'transfer',
                'from': event['args']['_from'],
                'to': event['args']['_to'],
                'amount': event['args']['_value'] / 10**18
            })

        # Set up event listeners
        mining_filter = self.contract.events.Mining.createFilter(fromBlock='latest')
        transfer_filter = self.contract.events.Transfer.createFilter(fromBlock='latest')

        mining_filter.watch(handle_mining_event)
        transfer_filter.watch(handle_transfer_event)

JavaScript SDK for Web Applications

class EVMOREDigitalGold {
    constructor(contractAddress, web3Provider) {
        this.web3 = new Web3(web3Provider);
        this.contract = new this.web3.eth.Contract(EVMORE_ABI, contractAddress);
    }

    async getGoldBalance(address) {
        const balanceWei = await this.contract.methods.balanceOf(address).call();
        return this.web3.utils.fromWei(balanceWei, 'ether');
    }

    async getMiningDashboard() {
        const [challenge, difficulty, epoch, blocksMined, totalSupply] = await Promise.all([
            this.contract.methods.currentChallenge().call(),
            this.contract.methods.currentDifficulty().call(),
            this.contract.methods.current_epoch().call(),
            this.contract.methods.blocksMined().call(),
            this.contract.methods.totalSupply().call()
        ]);

        const halvings = Math.floor(blocksMined / 210000);
        const currentReward = 50 / Math.pow(2, halvings);
        const totalGoldMined = parseFloat(this.web3.utils.fromWei(totalSupply, 'ether'));
        const remainingGold = 21000000 - totalGoldMined;

        return {
            challenge: challenge,
            difficulty: difficulty,
            epoch: epoch,
            blocksMined: blocksMined,
            currentReward: currentReward,
            totalGoldMined: totalGoldMined,
            remainingGold: remainingGold,
            percentageMined: (totalGoldMined / 21000000) * 100
        };
    }

    watchGoldTransfers(callback) {
        this.contract.events.Transfer({
            fromBlock: 'latest'
        })
        .on('data', (event) => {
            callback({
                from: event.returnValues._from,
                to: event.returnValues._to,
                amount: this.web3.utils.fromWei(event.returnValues._value, 'ether'),
                txHash: event.transactionHash
            });
        });
    }

    watchMiningEvents(callback) {
        this.contract.events.Mining({
            fromBlock: 'latest'
        })
        .on('data', (event) => {
            callback({
                miner: event.returnValues.miner,
                reward: this.web3.utils.fromWei(event.returnValues.reward, 'ether'),
                solution: event.returnValues.solution,
                txHash: event.transactionHash
            });
        });
    }
}

🎮 Example: Digital Gold Portfolio Tracker

<!DOCTYPE html>
<html>
<head>
    <title>EVMORE Digital Gold Portfolio</title>
    <script src="https://cdn.jsdelivr.net/npm/web3@1.5.2/dist/web3.min.js"></script>
</head>
<body>
    <div id="portfolio">
        <h1>🏆 My Digital Gold Portfolio</h1>
        <div id="balance">Loading gold balance...</div>
        <div id="value">Loading portfolio value...</div>
        <div id="mining-stats">Loading mining statistics...</div>
    </div>

    <script>
        class DigitalGoldPortfolio {
            constructor() {
                this.web3 = new Web3('https://mainnet.infura.io/v3/YOUR_KEY');
                this.evmore = new EVMOREDigitalGold(CONTRACT_ADDRESS, this.web3);
                this.userAddress = '0x...'; // User's address
            }

            async updatePortfolio() {
                try {
                    // Get user's digital gold holdings
                    const goldBalance = await this.evmore.getGoldBalance(this.userAddress);
                    const miningStats = await this.evmore.getMiningDashboard();

                    // Calculate portfolio value (assuming EVMORE price)
                    const goldPrice = await this.getEVMOREPrice(); // From exchange API
                    const portfolioValue = goldBalance * goldPrice;

                    // Update UI
                    document.getElementById('balance').innerHTML = `
                        <h3>Gold Holdings: ${goldBalance.toFixed(4)} EVMORE</h3>
                        <p>Worth: $${portfolioValue.toFixed(2)} USD</p>
                    `;

                    document.getElementById('mining-stats').innerHTML = `
                        <h3>Digital Gold Mining Stats</h3>
                        <p>Total Gold Mined: ${miningStats.totalGoldMined.toFixed(0)} EVMORE</p>
                        <p>Remaining Gold: ${miningStats.remainingGold.toFixed(0)} EVMORE</p>
                        <p>Current Mining Reward: ${miningStats.currentReward} EVMORE</p>
                        <p>Mining Progress: ${miningStats.percentageMined.toFixed(2)}%</p>
                    `;

                } catch (error) {
                    console.error('Error updating portfolio:', error);
                }
            }

            async getEVMOREPrice() {
                // Fetch from exchange API or DeFi oracle
                // This is a placeholder
                return 1250; // $1,250 per EVMORE (like gold price)
            }
        }

        // Initialize portfolio tracker
        const portfolio = new DigitalGoldPortfolio();
        portfolio.updatePortfolio();

        // Update every 30 seconds
        setInterval(() => portfolio.updatePortfolio(), 30000);
    </script>
</body>
</html>

📚 Advanced Developer Resources

Mining Software Development

  • Mining Algorithm: Reference implementation in /scripts/generate_mining_solution.py
  • Optimization Guides: Memory-hard algorithm optimization techniques
  • Pool Software: Templates for building mining pools
  • Hardware Guides: Optimal hardware configurations for KeccakCollision mining

DeFi Integration

  • Lending Protocols: Use EVMORE as collateral for loans
  • DEX Integration: Automated market makers with EVMORE pairs
  • Yield Farming: Liquidity mining with EVMORE rewards
  • Derivatives: Gold futures and options contracts

Enterprise Integration

  • Treasury Management: Corporate EVMORE reserves
  • Payment Processing: Accept EVMORE payments
  • Custody Solutions: Secure storage for institutions
  • Compliance Tools: KYC/AML integration for EVMORE transactions

🚀 Next Steps for Developers

  1. Start Building: Clone the repository and deploy locally
  2. Join Community: Connect with other digital gold developers
  3. Contribute: Submit improvements to the mining algorithm
  4. Build Applications: Create the next generation of gold-standard DeFi
  5. Mine Gold: Participate in the digital gold rush

EVMORE represents the convergence of traditional store-of-value economics with cutting-edge blockchain technology. Build the future of digital gold! 🏆

Morty Proxy This is a proxified and sanitized view of the page, visit original site.