false
true
0

Contract Address Details

0x83c8b596B0825326707F5BC88E2bd2a052d3FfBa

Token
Commitment Value (CV)
Creator
0xd6db43–d657d9 at 0xa5454e–1508af
Balance
0 PLS ( )
Tokens
Fetching tokens...
Transactions
1,039 Transactions
Transfers
0 Transfers
Gas Used
45,979,630
Last Balance Update
27205313
Warning! Contract bytecode has been changed and doesn't match the verified one. Therefore, interaction with this smart contract may be risky.
This contract has been verified via Sourcify. View contract in Sourcify repository
Contract name:
CV




Optimization enabled
true
Compiler version
v0.8.26+commit.8a97fa7a




Optimization runs
200
EVM Version
shanghai




Verified at
2026-07-01T16:58:40.141590Z

CV.sol

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

/// @title CV (Commitment Value)
/// @notice Uncapped ERC20. No fixed supply. CV is only ever created by the CVProtocol
///         mining contract. The minter is set exactly once by the deployer and then frozen,
///         so after launch there is no admin able to mint or change anything here.
contract CV {
    string public constant name = "Commitment Value";
    string public constant symbol = "CV";
    uint8 public constant decimals = 18;

    uint256 public totalSupply;
    mapping(address => uint256) public balanceOf;
    mapping(address => mapping(address => uint256)) public allowance;

    address public immutable deployer;
    address public minter;
    bool public minterLocked;

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
    event MinterSet(address indexed minter);

    constructor() {
        deployer = msg.sender;
    }

    /// @notice One time wiring. Deployer points CV at the protocol, then it is locked forever.
    function setMinter(address m) external {
        require(msg.sender == deployer, "not deployer");
        require(!minterLocked, "minter locked");
        require(m != address(0), "zero minter");
        minter = m;
        minterLocked = true;
        emit MinterSet(m);
    }

    /// @notice Only the protocol can create CV.
    function mint(address to, uint256 amount) external {
        require(msg.sender == minter, "only minter");
        require(to != address(0), "to zero");
        totalSupply += amount;
        unchecked {
            balanceOf[to] += amount;
        }
        emit Transfer(address(0), to, amount);
    }

    function transfer(address to, uint256 value) external returns (bool) {
        return _transfer(msg.sender, to, value);
    }

    function transferFrom(address from, address to, uint256 value) external returns (bool) {
        uint256 a = allowance[from][msg.sender];
        if (a != type(uint256).max) {
            require(a >= value, "allowance");
            allowance[from][msg.sender] = a - value;
        }
        return _transfer(from, to, value);
    }

    function approve(address spender, uint256 value) external returns (bool) {
        allowance[msg.sender][spender] = value;
        emit Approval(msg.sender, spender, value);
        return true;
    }

    function _transfer(address from, address to, uint256 value) internal returns (bool) {
        require(to != address(0), "to zero");
        uint256 b = balanceOf[from];
        require(b >= value, "balance");
        unchecked {
            balanceOf[from] = b - value;
            balanceOf[to] += value;
        }
        emit Transfer(from, to, value);
        return true;
    }

    /// @notice Burn your own CV. Reduces total supply. Used by the protocol buy and burn.
    function burn(uint256 amount) external {
        uint256 b = balanceOf[msg.sender];
        require(b >= amount, "balance");
        unchecked {
            balanceOf[msg.sender] = b - amount;
        }
        totalSupply -= amount;
        emit Transfer(msg.sender, address(0), amount);
    }
}
        

Compiler Settings

{"viaIR":true,"remappings":[],"optimizer":{"runs":200,"enabled":true},"metadata":{"bytecodeHash":"ipfs"},"libraries":{},"evmVersion":"shanghai","compilationTarget":{"CV.sol":"CV"}}
              

Contract ABI

[{"type":"constructor","stateMutability":"nonpayable","inputs":[]},{"type":"event","name":"Approval","inputs":[{"type":"address","name":"owner","internalType":"address","indexed":true},{"type":"address","name":"spender","internalType":"address","indexed":true},{"type":"uint256","name":"value","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"event","name":"MinterSet","inputs":[{"type":"address","name":"minter","internalType":"address","indexed":true}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"type":"address","name":"from","internalType":"address","indexed":true},{"type":"address","name":"to","internalType":"address","indexed":true},{"type":"uint256","name":"value","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"allowance","inputs":[{"type":"address","name":"","internalType":"address"},{"type":"address","name":"","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"approve","inputs":[{"type":"address","name":"spender","internalType":"address"},{"type":"uint256","name":"value","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"balanceOf","inputs":[{"type":"address","name":"","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"burn","inputs":[{"type":"uint256","name":"amount","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint8","name":"","internalType":"uint8"}],"name":"decimals","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"deployer","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"mint","inputs":[{"type":"address","name":"to","internalType":"address"},{"type":"uint256","name":"amount","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"minter","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"minterLocked","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"string","name":"","internalType":"string"}],"name":"name","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setMinter","inputs":[{"type":"address","name":"m","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"string","name":"","internalType":"string"}],"name":"symbol","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"totalSupply","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"transfer","inputs":[{"type":"address","name":"to","internalType":"address"},{"type":"uint256","name":"value","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"transferFrom","inputs":[{"type":"address","name":"from","internalType":"address"},{"type":"address","name":"to","internalType":"address"},{"type":"uint256","name":"value","internalType":"uint256"}]}]
              

Contract Creation Code

0x60a0806040523460285733608052610884908161002d823960805181818160d901526102660152f35b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c806306fdde0314610682578063075461721461065a578063095ea7b3146105e157806318160ddd146105c557806323b872dd146104f7578063313ce567146104dc57806340c10f191461040157806342966c681461038957806370a082311461035157806395d89b41146102ec578063a9059cbb146102ba578063cc54cce314610295578063d5f3948814610251578063dd62ed3e146102015763fca3b5aa146100be575f80fd5b346101fd5760203660031901126101fd576100d7610720565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036101c9576003549060ff8260a01c16610194576001600160a01b0316908115610161576001600160a81b0319168117600160a01b176003557f726b590ef91a8c76ad05bbe91a57ef84605276528f49cd47d787f558a4e755b65f80a2005b60405162461bcd60e51b815260206004820152600b60248201526a3d32b9379036b4b73a32b960a91b6044820152606490fd5b60405162461bcd60e51b815260206004820152600d60248201526c1b5a5b9d195c881b1bd8dad959609a1b6044820152606490fd5b60405162461bcd60e51b815260206004820152600c60248201526b3737ba103232b83637bcb2b960a11b6044820152606490fd5b5f80fd5b346101fd5760403660031901126101fd5761021a610720565b610222610736565b6001600160a01b039182165f908152600260209081526040808320949093168252928352819020549051908152f35b346101fd575f3660031901126101fd576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101fd575f3660031901126101fd57602060ff60035460a01c166040519015158152f35b346101fd5760403660031901126101fd5760206102e26102d8610720565b60243590336107c5565b6040519015158152f35b346101fd575f3660031901126101fd57604051604081019080821067ffffffffffffffff83111761033d5761033991604052600281526121ab60f11b6020820152604051918291826106d9565b0390f35b634e487b7160e01b5f52604160045260245ffd5b346101fd5760203660031901126101fd576001600160a01b03610372610720565b165f526001602052602060405f2054604051908152f35b346101fd5760203660031901126101fd575f60043533825260016020528060408320546103b88282101561078f565b33845260016020520360408320556103d181835461074c565b82556040519081527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60203392a3005b346101fd5760403660031901126101fd5761041a610720565b60035460243591906001600160a01b031633036104a9576001600160a01b031690610446821515610759565b5f54908082018092116104955760207fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef915f9384558484526001825260408420818154019055604051908152a3005b634e487b7160e01b5f52601160045260245ffd5b60405162461bcd60e51b815260206004820152600b60248201526a37b7363c9036b4b73a32b960a91b6044820152606490fd5b346101fd575f3660031901126101fd57602060405160128152f35b346101fd5760603660031901126101fd57610510610720565b610518610736565b6001600160a01b0382165f81815260026020908152604080832033845290915290205460443593919060018101610557575b60206102e28686866107c5565b9290939182841061059457602094610572846102e29661074c565b5f9182526002875260408083203384528852909120559193909250829061054a565b60405162461bcd60e51b8152602060048201526009602482015268616c6c6f77616e636560b81b6044820152606490fd5b346101fd575f3660031901126101fd5760205f54604051908152f35b346101fd5760403660031901126101fd576105fa610720565b335f8181526002602090815260408083206001600160a01b03909516808452948252918290206024359081905591519182527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a3602060405160018152f35b346101fd575f3660031901126101fd576003546040516001600160a01b039091168152602090f35b346101fd575f3660031901126101fd57604051604081019080821067ffffffffffffffff83111761033d5761033991604052601081526f436f6d6d69746d656e742056616c756560801b6020820152604051918291825b9190916020815282518060208301525f5b81811061070a575060409293505f838284010152601f8019910116010190565b80602080928701015160408286010152016106ea565b600435906001600160a01b03821682036101fd57565b602435906001600160a01b03821682036101fd57565b9190820391821161049557565b1561076057565b60405162461bcd60e51b8152602060048201526007602482015266746f207a65726f60c81b6044820152606490fd5b1561079657565b60405162461bcd60e51b815260206004820152600760248201526662616c616e636560c81b6044820152606490fd5b6001600160a01b0390911691907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602090610802851515610759565b60018060a01b031692835f52600182528060405f20546108248282101561078f565b855f52600184520360405f2055845f526001825260405f20818154019055604051908152a360019056fea2646970667358221220a595e633cac60425e5557e11a4ed71b822d0b05247f7445e3ee52f3db1c48e9e64736f6c634300081a0033

Deployed ByteCode

0x60806040526004361015610011575f80fd5b5f3560e01c806306fdde0314610682578063075461721461065a578063095ea7b3146105e157806318160ddd146105c557806323b872dd146104f7578063313ce567146104dc57806340c10f191461040157806342966c681461038957806370a082311461035157806395d89b41146102ec578063a9059cbb146102ba578063cc54cce314610295578063d5f3948814610251578063dd62ed3e146102015763fca3b5aa146100be575f80fd5b346101fd5760203660031901126101fd576100d7610720565b7f000000000000000000000000d6db43c18c7ef1794aefb3a868b80b7e51d657d96001600160a01b031633036101c9576003549060ff8260a01c16610194576001600160a01b0316908115610161576001600160a81b0319168117600160a01b176003557f726b590ef91a8c76ad05bbe91a57ef84605276528f49cd47d787f558a4e755b65f80a2005b60405162461bcd60e51b815260206004820152600b60248201526a3d32b9379036b4b73a32b960a91b6044820152606490fd5b60405162461bcd60e51b815260206004820152600d60248201526c1b5a5b9d195c881b1bd8dad959609a1b6044820152606490fd5b60405162461bcd60e51b815260206004820152600c60248201526b3737ba103232b83637bcb2b960a11b6044820152606490fd5b5f80fd5b346101fd5760403660031901126101fd5761021a610720565b610222610736565b6001600160a01b039182165f908152600260209081526040808320949093168252928352819020549051908152f35b346101fd575f3660031901126101fd576040517f000000000000000000000000d6db43c18c7ef1794aefb3a868b80b7e51d657d96001600160a01b03168152602090f35b346101fd575f3660031901126101fd57602060ff60035460a01c166040519015158152f35b346101fd5760403660031901126101fd5760206102e26102d8610720565b60243590336107c5565b6040519015158152f35b346101fd575f3660031901126101fd57604051604081019080821067ffffffffffffffff83111761033d5761033991604052600281526121ab60f11b6020820152604051918291826106d9565b0390f35b634e487b7160e01b5f52604160045260245ffd5b346101fd5760203660031901126101fd576001600160a01b03610372610720565b165f526001602052602060405f2054604051908152f35b346101fd5760203660031901126101fd575f60043533825260016020528060408320546103b88282101561078f565b33845260016020520360408320556103d181835461074c565b82556040519081527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60203392a3005b346101fd5760403660031901126101fd5761041a610720565b60035460243591906001600160a01b031633036104a9576001600160a01b031690610446821515610759565b5f54908082018092116104955760207fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef915f9384558484526001825260408420818154019055604051908152a3005b634e487b7160e01b5f52601160045260245ffd5b60405162461bcd60e51b815260206004820152600b60248201526a37b7363c9036b4b73a32b960a91b6044820152606490fd5b346101fd575f3660031901126101fd57602060405160128152f35b346101fd5760603660031901126101fd57610510610720565b610518610736565b6001600160a01b0382165f81815260026020908152604080832033845290915290205460443593919060018101610557575b60206102e28686866107c5565b9290939182841061059457602094610572846102e29661074c565b5f9182526002875260408083203384528852909120559193909250829061054a565b60405162461bcd60e51b8152602060048201526009602482015268616c6c6f77616e636560b81b6044820152606490fd5b346101fd575f3660031901126101fd5760205f54604051908152f35b346101fd5760403660031901126101fd576105fa610720565b335f8181526002602090815260408083206001600160a01b03909516808452948252918290206024359081905591519182527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a3602060405160018152f35b346101fd575f3660031901126101fd576003546040516001600160a01b039091168152602090f35b346101fd575f3660031901126101fd57604051604081019080821067ffffffffffffffff83111761033d5761033991604052601081526f436f6d6d69746d656e742056616c756560801b6020820152604051918291825b9190916020815282518060208301525f5b81811061070a575060409293505f838284010152601f8019910116010190565b80602080928701015160408286010152016106ea565b600435906001600160a01b03821682036101fd57565b602435906001600160a01b03821682036101fd57565b9190820391821161049557565b1561076057565b60405162461bcd60e51b8152602060048201526007602482015266746f207a65726f60c81b6044820152606490fd5b1561079657565b60405162461bcd60e51b815260206004820152600760248201526662616c616e636560c81b6044820152606490fd5b6001600160a01b0390911691907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602090610802851515610759565b60018060a01b031692835f52600182528060405f20546108248282101561078f565b855f52600184520360405f2055845f526001825260405f20818154019055604051908152a360019056fea2646970667358221220a595e633cac60425e5557e11a4ed71b822d0b05247f7445e3ee52f3db1c48e9e64736f6c634300081a0033