ETH Price: $3,334.91 (-1.12%)
Gas: 0.48 GWei

Contract

0xDD3B8084AF79B9BaE3D1b668c0De08CCC2C9429A

Overview

ETH Balance

Linea Mainnet LogoLinea Mainnet LogoLinea Mainnet Logo0 ETH

ETH Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve146269432025-01-15 18:29:5223 hrs ago1736965792IN
Abracadabra Money: MIM Token
0 ETH0.000016080.6139
Approve146071652025-01-15 7:03:3235 hrs ago1736924612IN
Abracadabra Money: MIM Token
0 ETH0.000003650.1395
Approve145929822025-01-14 22:26:5143 hrs ago1736893611IN
Abracadabra Money: MIM Token
0 ETH0.000012330.2653346
Approve144542292025-01-11 13:04:205 days ago1736600660IN
Abracadabra Money: MIM Token
0 ETH0.000003110.1189
Approve144506402025-01-11 11:02:365 days ago1736593356IN
Abracadabra Money: MIM Token
0 ETH0.00000170.07031778
Transfer143316042025-01-08 13:53:218 days ago1736344401IN
Abracadabra Money: MIM Token
0 ETH0.000007450.26143466
Permit142618162025-01-06 20:50:119 days ago1736196611IN
Abracadabra Money: MIM Token
0 ETH0.000014680.2700284
Approve142397022025-01-06 8:03:0610 days ago1736150586IN
Abracadabra Money: MIM Token
0 ETH0.000002760.0598901
Approve142396562025-01-06 8:01:3210 days ago1736150492IN
Abracadabra Money: MIM Token
0 ETH0.000002750.05960432
Approve141196242025-01-03 9:02:0613 days ago1735894926IN
Abracadabra Money: MIM Token
0 ETH0.000009910.2149
Transfer140997602025-01-02 21:38:5413 days ago1735853934IN
Abracadabra Money: MIM Token
0 ETH0.000003470.121799
Approve139111102024-12-29 4:24:0618 days ago1735446246IN
Abracadabra Money: MIM Token
0 ETH0.000009920.21485715
Approve138429122024-12-27 11:12:0520 days ago1735297925IN
Abracadabra Money: MIM Token
0 ETH0.000027780.60163597
Transfer138285262024-12-27 2:56:0320 days ago1735268163IN
Abracadabra Money: MIM Token
0 ETH0.00000390.13676295
Approve136836542024-12-23 15:29:2324 days ago1734967763IN
Abracadabra Money: MIM Token
0 ETH0.00001210.2623
Approve136780692024-12-23 12:22:1124 days ago1734956531IN
Abracadabra Money: MIM Token
0 ETH0.000004540.0984
Approve136329062024-12-22 10:25:5925 days ago1734863159IN
Abracadabra Money: MIM Token
0 ETH0.00000280.1071
Transfer135824322024-12-21 5:24:1226 days ago1734758652IN
Abracadabra Money: MIM Token
0 ETH0.000010260.22062099
Transfer134673302024-12-18 11:42:2029 days ago1734522140IN
Abracadabra Money: MIM Token
0 ETH0.000003040.06552429
Approve134308422024-12-17 14:59:4730 days ago1734447587IN
Abracadabra Money: MIM Token
0 ETH0.000002390.0914
Transfer133088912024-12-14 16:31:4633 days ago1734193906IN
Abracadabra Money: MIM Token
0 ETH0.000006290.13543044
Approve132855262024-12-14 3:12:0633 days ago1734145926IN
Abracadabra Money: MIM Token
0 ETH0.000003670.0797
Approve132763272024-12-13 21:45:5833 days ago1734126358IN
Abracadabra Money: MIM Token
0 ETH0.000007690.29355434
Approve132763212024-12-13 21:45:4633 days ago1734126346IN
Abracadabra Money: MIM Token
0 ETH0.00000770.29374878
Permit132052502024-12-12 5:08:4435 days ago1733980124IN
Abracadabra Money: MIM Token
0 ETH0.000006440.11851514
View all transactions

Latest 25 internal transactions (View All)

Parent Transaction Hash Block From To
145999842025-01-15 2:51:0139 hrs ago1736909461
Abracadabra Money: MIM Token
0 ETH
142618162025-01-06 20:50:119 days ago1736196611
Abracadabra Money: MIM Token
0 ETH
142486642025-01-06 13:05:2910 days ago1736168729
Abracadabra Money: MIM Token
0 ETH
142471462025-01-06 12:14:1410 days ago1736165654
Abracadabra Money: MIM Token
0 ETH
141391122025-01-03 20:08:3312 days ago1735934913
Abracadabra Money: MIM Token
0 ETH
137927532024-12-26 6:05:3621 days ago1735193136
Abracadabra Money: MIM Token
0 ETH
137926492024-12-26 6:02:0421 days ago1735192924
Abracadabra Money: MIM Token
0 ETH
134217752024-12-17 9:50:5430 days ago1734429054
Abracadabra Money: MIM Token
0 ETH
134039132024-12-16 23:32:0230 days ago1734391922
Abracadabra Money: MIM Token
0 ETH
134036062024-12-16 23:21:0030 days ago1734391260
Abracadabra Money: MIM Token
0 ETH
133606752024-12-15 22:43:1331 days ago1734302593
Abracadabra Money: MIM Token
0 ETH
133222312024-12-15 0:30:5132 days ago1734222651
Abracadabra Money: MIM Token
0 ETH
132052502024-12-12 5:08:4435 days ago1733980124
Abracadabra Money: MIM Token
0 ETH
130246702024-12-07 19:49:4739 days ago1733600987
Abracadabra Money: MIM Token
0 ETH
130235312024-12-07 19:10:0639 days ago1733598606
Abracadabra Money: MIM Token
0 ETH
129064902024-12-04 21:56:4442 days ago1733349404
Abracadabra Money: MIM Token
0 ETH
129064192024-12-04 21:53:5442 days ago1733349234
Abracadabra Money: MIM Token
0 ETH
125976682024-11-27 11:02:2250 days ago1732705342
Abracadabra Money: MIM Token
0 ETH
120531762024-11-14 13:48:4463 days ago1731592124
Abracadabra Money: MIM Token
0 ETH
118130322024-11-08 21:53:1368 days ago1731102793
Abracadabra Money: MIM Token
0 ETH
117932252024-11-08 10:40:2769 days ago1731062427
Abracadabra Money: MIM Token
0 ETH
114916782024-11-01 8:28:0676 days ago1730449686
Abracadabra Money: MIM Token
0 ETH
114789042024-11-01 1:19:0776 days ago1730423947
Abracadabra Money: MIM Token
0 ETH
111874652024-10-25 6:06:3983 days ago1729836399
Abracadabra Money: MIM Token
0 ETH
110682762024-10-22 11:12:0686 days ago1729595526
Abracadabra Money: MIM Token
0 ETH
View All Internal Transactions
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0x4A3A6Dd6...E9CeB6A3D
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
MintableBurnableERC20

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 800 runs

Other Settings:
default evmVersion
File 1 of 5 : MintableBurnableERC20.sol
// SPDX-License-Identifier: MIT
pragma solidity >=0.8.0;

import "solmate/tokens/ERC20.sol";
import "mixins/OperatableV2.sol";
import "interfaces/IMintableBurnable.sol";

/// @title MintableBurnableERC20
/// @notice MintableBurnableERC20 is an ERC20 token with mint, burn functions.
/// In this context, operators are allowed minters and burners.
contract MintableBurnableERC20 is ERC20, OperatableV2, IMintableBurnable {
    constructor(
        address _owner,
        string memory name_,
        string memory symbol_,
        uint8 decimals_
    ) ERC20(name_, symbol_, decimals_) OperatableV2(_owner) {}

    function burn(address from, uint256 amount) external onlyOperators returns (bool) {
        _burn(from, amount);
        return true;
    }

    function mint(address to, uint256 amount) external onlyOperators returns (bool) {
        _mint(to, amount);
        return true;
    }
}

File 2 of 5 : ERC20.sol
// SPDX-License-Identifier: AGPL-3.0-only
pragma solidity >=0.8.0;

/// @notice Modern and gas efficient ERC20 + EIP-2612 implementation.
/// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/tokens/ERC20.sol)
/// @author Modified from Uniswap (https://github.com/Uniswap/uniswap-v2-core/blob/master/contracts/UniswapV2ERC20.sol)
/// @dev Do not manually set balances without updating totalSupply, as the sum of all user balances must not exceed it.
abstract contract ERC20 {
    /*//////////////////////////////////////////////////////////////
                                 EVENTS
    //////////////////////////////////////////////////////////////*/

    event Transfer(address indexed from, address indexed to, uint256 amount);

    event Approval(address indexed owner, address indexed spender, uint256 amount);

    /*//////////////////////////////////////////////////////////////
                            METADATA STORAGE
    //////////////////////////////////////////////////////////////*/

    string public name;

    string public symbol;

    uint8 public immutable decimals;

    /*//////////////////////////////////////////////////////////////
                              ERC20 STORAGE
    //////////////////////////////////////////////////////////////*/

    uint256 public totalSupply;

    mapping(address => uint256) public balanceOf;

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

    /*//////////////////////////////////////////////////////////////
                            EIP-2612 STORAGE
    //////////////////////////////////////////////////////////////*/

    uint256 internal immutable INITIAL_CHAIN_ID;

    bytes32 internal immutable INITIAL_DOMAIN_SEPARATOR;

    mapping(address => uint256) public nonces;

    /*//////////////////////////////////////////////////////////////
                               CONSTRUCTOR
    //////////////////////////////////////////////////////////////*/

    constructor(
        string memory _name,
        string memory _symbol,
        uint8 _decimals
    ) {
        name = _name;
        symbol = _symbol;
        decimals = _decimals;

        INITIAL_CHAIN_ID = block.chainid;
        INITIAL_DOMAIN_SEPARATOR = computeDomainSeparator();
    }

    /*//////////////////////////////////////////////////////////////
                               ERC20 LOGIC
    //////////////////////////////////////////////////////////////*/

    function approve(address spender, uint256 amount) public virtual returns (bool) {
        allowance[msg.sender][spender] = amount;

        emit Approval(msg.sender, spender, amount);

        return true;
    }

    function transfer(address to, uint256 amount) public virtual returns (bool) {
        balanceOf[msg.sender] -= amount;

        // Cannot overflow because the sum of all user
        // balances can't exceed the max uint256 value.
        unchecked {
            balanceOf[to] += amount;
        }

        emit Transfer(msg.sender, to, amount);

        return true;
    }

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual returns (bool) {
        uint256 allowed = allowance[from][msg.sender]; // Saves gas for limited approvals.

        if (allowed != type(uint256).max) allowance[from][msg.sender] = allowed - amount;

        balanceOf[from] -= amount;

        // Cannot overflow because the sum of all user
        // balances can't exceed the max uint256 value.
        unchecked {
            balanceOf[to] += amount;
        }

        emit Transfer(from, to, amount);

        return true;
    }

    /*//////////////////////////////////////////////////////////////
                             EIP-2612 LOGIC
    //////////////////////////////////////////////////////////////*/

    function permit(
        address owner,
        address spender,
        uint256 value,
        uint256 deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) public virtual {
        require(deadline >= block.timestamp, "PERMIT_DEADLINE_EXPIRED");

        // Unchecked because the only math done is incrementing
        // the owner's nonce which cannot realistically overflow.
        unchecked {
            address recoveredAddress = ecrecover(
                keccak256(
                    abi.encodePacked(
                        "\x19\x01",
                        DOMAIN_SEPARATOR(),
                        keccak256(
                            abi.encode(
                                keccak256(
                                    "Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)"
                                ),
                                owner,
                                spender,
                                value,
                                nonces[owner]++,
                                deadline
                            )
                        )
                    )
                ),
                v,
                r,
                s
            );

            require(recoveredAddress != address(0) && recoveredAddress == owner, "INVALID_SIGNER");

            allowance[recoveredAddress][spender] = value;
        }

        emit Approval(owner, spender, value);
    }

    function DOMAIN_SEPARATOR() public view virtual returns (bytes32) {
        return block.chainid == INITIAL_CHAIN_ID ? INITIAL_DOMAIN_SEPARATOR : computeDomainSeparator();
    }

    function computeDomainSeparator() internal view virtual returns (bytes32) {
        return
            keccak256(
                abi.encode(
                    keccak256("EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"),
                    keccak256(bytes(name)),
                    keccak256("1"),
                    block.chainid,
                    address(this)
                )
            );
    }

    /*//////////////////////////////////////////////////////////////
                        INTERNAL MINT/BURN LOGIC
    //////////////////////////////////////////////////////////////*/

    function _mint(address to, uint256 amount) internal virtual {
        totalSupply += amount;

        // Cannot overflow because the sum of all user
        // balances can't exceed the max uint256 value.
        unchecked {
            balanceOf[to] += amount;
        }

        emit Transfer(address(0), to, amount);
    }

    function _burn(address from, uint256 amount) internal virtual {
        balanceOf[from] -= amount;

        // Cannot underflow because a user's balance
        // will never be larger than the total supply.
        unchecked {
            totalSupply -= amount;
        }

        emit Transfer(from, address(0), amount);
    }
}

File 3 of 5 : OperatableV2.sol
// SPDX-License-Identifier: MIT
pragma solidity >=0.8.0;

import "solmate/auth/Owned.sol";

/// @title OperatableV2
/// @notice OperatableV2 is a contract that allows operator management.
/// The difference with OperatableV1 apart from using solmate `Owned` vs `BoringOwnable` is that
/// the constructor is taking in the owner except of using msg.sender.
/// This allows ensuring that the owner is right one.
/// For example, when deploying from a CREATE2 factory, the msg.sender would the factory address
/// which is usually not what we want.
contract OperatableV2 is Owned {
    event OperatorChanged(address indexed, bool);
    error NotAllowedOperator();

    mapping(address => bool) public operators;

    constructor(address _owner) Owned(_owner) {}

    modifier onlyOperators() {
        if (!operators[msg.sender] && msg.sender != owner) {
            revert NotAllowedOperator();
        }
        _;
    }

    function setOperator(address operator, bool status) external onlyOwner {
        operators[operator] = status;
        emit OperatorChanged(operator, status);
    }
}

File 4 of 5 : IMintableBurnable.sol
// SPDX-License-Identifier: MIT
pragma solidity >=0.8.0;

interface IMintableBurnable {
    function burn(address from, uint256 amount) external returns (bool);

    function mint(address to, uint256 amount) external returns (bool);
}

File 5 of 5 : Owned.sol
// SPDX-License-Identifier: AGPL-3.0-only
pragma solidity >=0.8.0;

/// @notice Simple single owner authorization mixin.
/// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/auth/Owned.sol)
abstract contract Owned {
    /*//////////////////////////////////////////////////////////////
                                 EVENTS
    //////////////////////////////////////////////////////////////*/

    event OwnershipTransferred(address indexed user, address indexed newOwner);

    /*//////////////////////////////////////////////////////////////
                            OWNERSHIP STORAGE
    //////////////////////////////////////////////////////////////*/

    address public owner;

    modifier onlyOwner() virtual {
        require(msg.sender == owner, "UNAUTHORIZED");

        _;
    }

    /*//////////////////////////////////////////////////////////////
                               CONSTRUCTOR
    //////////////////////////////////////////////////////////////*/

    constructor(address _owner) {
        owner = _owner;

        emit OwnershipTransferred(address(0), _owner);
    }

    /*//////////////////////////////////////////////////////////////
                             OWNERSHIP LOGIC
    //////////////////////////////////////////////////////////////*/

    function transferOwnership(address newOwner) public virtual onlyOwner {
        owner = newOwner;

        emit OwnershipTransferred(msg.sender, newOwner);
    }
}

Settings
{
  "remappings": [
    "/=src/",
    "BoringSolidity/=lib/BoringSolidity/contracts/",
    "ExcessivelySafeCall/=lib/ExcessivelySafeCall/src/",
    "cauldrons/=src/cauldrons/",
    "ds-test/=lib/forge-std/lib/ds-test/src/",
    "forge-deploy/=lib/forge-deploy/contracts/",
    "forge-std/=lib/forge-std/src/",
    "generated/=generated/",
    "interfaces/=src/interfaces/",
    "lenses/=src/lenses/",
    "libraries/=src/libraries/",
    "mixins/=src/mixins/",
    "openzeppelin-contracts-upgradeabl/=lib/openzeppelin-contracts-upgradeable/contracts/",
    "openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/",
    "oracles/=src/oracles/",
    "periphery/=src/periphery/",
    "solady/=lib/solady/src/",
    "solmate/=lib/solmate/src/",
    "strategies/=src/strategies/",
    "surl/=lib/surl/src/",
    "swappers/=src/swappers/",
    "tokens/=src/tokens/",
    "utils/=utils/"
  ],
  "optimizer": {
    "enabled": true,
    "runs": 800
  },
  "metadata": {
    "useLiteralContent": false,
    "bytecodeHash": "ipfs",
    "appendCBOR": true
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "evmVersion": "paris",
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint8","name":"decimals_","type":"uint8"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"NotAllowedOperator","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"","type":"address"},{"indexed":false,"internalType":"bool","name":"","type":"bool"}],"name":"OperatorChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"operators","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101365760003560e01c806370a08231116100b25780639dc29fac11610081578063d505accf11610066578063d505accf146102cb578063dd62ed3e146102de578063f2fde38b1461030957600080fd5b80639dc29fac146102a5578063a9059cbb146102b857600080fd5b806370a08231146102325780637ecebe00146102525780638da5cb5b1461027257806395d89b411461029d57600080fd5b806323b872dd116101095780633644e515116100ee5780633644e5151461020257806340c10f191461020a578063558a72971461021d57600080fd5b806323b872dd146101b6578063313ce567146101c957600080fd5b806306fdde031461013b578063095ea7b31461015957806313e7c9d81461017c57806318160ddd1461019f575b600080fd5b61014361031c565b6040516101509190610bbf565b60405180910390f35b61016c610167366004610c29565b6103aa565b6040519015158152602001610150565b61016c61018a366004610c53565b60076020526000908152604090205460ff1681565b6101a860025481565b604051908152602001610150565b61016c6101c4366004610c75565b610417565b6101f07f000000000000000000000000000000000000000000000000000000000000001281565b60405160ff9091168152602001610150565b6101a8610509565b61016c610218366004610c29565b610564565b61023061022b366004610cb1565b6105c0565b005b6101a8610240366004610c53565b60036020526000908152604090205481565b6101a8610260366004610c53565b60056020526000908152604090205481565b600654610285906001600160a01b031681565b6040516001600160a01b039091168152602001610150565b61014361066d565b61016c6102b3366004610c29565b61067a565b61016c6102c6366004610c29565b6106cd565b6102306102d9366004610ced565b610745565b6101a86102ec366004610d60565b600460209081526000928352604080842090915290825290205481565b610230610317366004610c53565b610998565b6000805461032990610d93565b80601f016020809104026020016040519081016040528092919081815260200182805461035590610d93565b80156103a25780601f10610377576101008083540402835291602001916103a2565b820191906000526020600020905b81548152906001019060200180831161038557829003601f168201915b505050505081565b3360008181526004602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906104059086815260200190565b60405180910390a35060015b92915050565b6001600160a01b038316600090815260046020908152604080832033845290915281205460001981146104735761044e8382610de3565b6001600160a01b03861660009081526004602090815260408083203384529091529020555b6001600160a01b0385166000908152600360205260408120805485929061049b908490610de3565b90915550506001600160a01b03808516600081815260036020526040908190208054870190555190918716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906104f69087815260200190565b60405180910390a3506001949350505050565b60007f000000000000000000000000000000000000000000000000000000000000e708461461053f5761053a610a45565b905090565b507f6ee610fa9240d753e56fd7794a16dd5dc7fbed1b0d80262a11ebb6080fbf42df90565b3360009081526007602052604081205460ff1615801561058f57506006546001600160a01b03163314155b156105ad5760405163de19c8b360e01b815260040160405180910390fd5b6105b78383610adf565b50600192915050565b6006546001600160a01b0316331461060e5760405162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b60448201526064015b60405180910390fd5b6001600160a01b038216600081815260076020908152604091829020805460ff191685151590811790915591519182527f193de8d500b5cb7b720089b258a39e9c1d0b840019a73ae7c51c3f9101732b02910160405180910390a25050565b6001805461032990610d93565b3360009081526007602052604081205460ff161580156106a557506006546001600160a01b03163314155b156106c35760405163de19c8b360e01b815260040160405180910390fd5b6105b78383610b4b565b336000908152600360205260408120805483919083906106ee908490610de3565b90915550506001600160a01b038316600081815260036020526040908190208054850190555133907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906104059086815260200190565b428410156107955760405162461bcd60e51b815260206004820152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606401610605565b600060016107a1610509565b6001600160a01b038a811660008181526005602090815260409182902080546001810190915582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98184015280840194909452938d166060840152608083018c905260a083019390935260c08083018b90528151808403909101815260e08301909152805192019190912061190160f01b6101008301526101028201929092526101228101919091526101420160408051601f198184030181528282528051602091820120600084529083018083525260ff871690820152606081018590526080810184905260a0016020604051602081039080840390855afa1580156108ad573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906108e35750876001600160a01b0316816001600160a01b0316145b61092f5760405162461bcd60e51b815260206004820152600e60248201527f494e56414c49445f5349474e45520000000000000000000000000000000000006044820152606401610605565b6001600160a01b0390811660009081526004602090815260408083208a8516808552908352928190208990555188815291928a16917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350505050505050565b6006546001600160a01b031633146109e15760405162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b6044820152606401610605565b600680547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03831690811790915560405133907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a350565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6000604051610a779190610df6565b6040805191829003822060208301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b8060026000828254610af19190610e95565b90915550506001600160a01b0382166000818152600360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91015b60405180910390a35050565b6001600160a01b03821660009081526003602052604081208054839290610b73908490610de3565b90915550506002805482900390556040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610b3f565b600060208083528351808285015260005b81811015610bec57858101830151858201604001528201610bd0565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610c2457600080fd5b919050565b60008060408385031215610c3c57600080fd5b610c4583610c0d565b946020939093013593505050565b600060208284031215610c6557600080fd5b610c6e82610c0d565b9392505050565b600080600060608486031215610c8a57600080fd5b610c9384610c0d565b9250610ca160208501610c0d565b9150604084013590509250925092565b60008060408385031215610cc457600080fd5b610ccd83610c0d565b915060208301358015158114610ce257600080fd5b809150509250929050565b600080600080600080600060e0888a031215610d0857600080fd5b610d1188610c0d565b9650610d1f60208901610c0d565b95506040880135945060608801359350608088013560ff81168114610d4357600080fd5b9699959850939692959460a0840135945060c09093013592915050565b60008060408385031215610d7357600080fd5b610d7c83610c0d565b9150610d8a60208401610c0d565b90509250929050565b600181811c90821680610da757607f821691505b602082108103610dc757634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561041157610411610dcd565b600080835481600182811c915080831680610e1257607f831692505b60208084108203610e3157634e487b7160e01b86526022600452602486fd5b818015610e455760018114610e5a57610e87565b60ff1986168952841515850289019650610e87565b60008a81526020902060005b86811015610e7f5781548b820152908501908301610e66565b505084890196505b509498975050505050505050565b8082018082111561041157610411610dcd56fea2646970667358221220d8ae3d8359e9eb5761785912f007462e418941910dfd14161deb78f99ce02ba964736f6c63430008140033

Block Transaction Gas Used Reward
view all blocks sequenced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading

OVERVIEW

Abracadabra.money is a lending protocol that allows users to borrow a USD-pegged Stablecoin (MIM) using interest-bearing tokens as collateral.

Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.