// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;
contract EthicsToken {
string public name;
string public symbol;
string public metadataURI;
uint8 public constant decimals = 18;
uint256 public constant totalSupply = 1_000_000_000 * 1e18;
mapping(address => uint256) public balanceOf;
mapping(address => mapping(address => uint256)) public allowance;
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
constructor(string memory name_, string memory symbol_, string memory metadataURI_, address mintTo) {
require(bytes(name_).length > 0 && bytes(name_).length <= 64, "name");
require(bytes(symbol_).length > 0 && bytes(symbol_).length <= 16, "symbol");
require(bytes(metadataURI_).length > 0 && bytes(metadataURI_).length <= 256, "uri");
name = name_;
symbol = symbol_;
metadataURI = metadataURI_;
balanceOf[mintTo] = totalSupply;
emit Transfer(address(0), mintTo, totalSupply);
}
function tokenURI() external view returns (string memory) {
return metadataURI;
}
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 to, uint256 value) external returns (bool) {
_transfer(msg.sender, to, value);
return true;
}
function transferFrom(address from, address to, uint256 value) external returns (bool) {
uint256 allowed = allowance[from][msg.sender];
if (allowed != type(uint256).max) {
require(allowed >= value, "allowance");
allowance[from][msg.sender] = allowed - value;
}
_transfer(from, to, value);
return true;
}
function _transfer(address from, address to, uint256 value) internal {
require(to != address(0), "to");
uint256 bal = balanceOf[from];
require(bal >= value, "balance");
unchecked {
balanceOf[from] = bal - value;
balanceOf[to] += value;
}
emit Transfer(from, to, value);
}
}[
{
"type": "constructor",
"inputs": [
{
"name": "name_",
"type": "string",
"internalType": "string"
},
{
"name": "symbol_",
"type": "string",
"internalType": "string"
},
{
"name": "metadataURI_",
"type": "string",
"internalType": "string"
},
{
"name": "mintTo",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "nonpayable"
},
{
"name": "Approval",
"type": "event",
"inputs": [
{
"name": "owner",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "spender",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "value",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "Transfer",
"type": "event",
"inputs": [
{
"name": "from",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "to",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "value",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "allowance",
"type": "function",
"inputs": [
{
"name": "",
"type": "address",
"internalType": "address"
},
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "approve",
"type": "function",
"inputs": [
{
"name": "spender",
"type": "address",
"internalType": "address"
},
{
"name": "value",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "nonpayable"
},
{
"name": "balanceOf",
"type": "function",
"inputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "decimals",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint8",
"internalType": "uint8"
}
],
"stateMutability": "view"
},
{
"name": "metadataURI",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"name": "name",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"name": "symbol",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"name": "tokenURI",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"name": "totalSupply",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "transfer",
"type": "function",
"inputs": [
{
"name": "to",
"type": "address",
"internalType": "address"
},
{
"name": "value",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "nonpayable"
},
{
"name": "transferFrom",
"type": "function",
"inputs": [
{
"name": "from",
"type": "address",
"internalType": "address"
},
{
"name": "to",
"type": "address",
"internalType": "address"
},
{
"name": "value",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "nonpayable"
}
]0x60406080815260049081361015610014575f80fd5b5f3560e01c806303ee438c1461026b57806306fdde0314610412578063095ea7b3146103a457806318160ddd1461037e57806323b872dd146102ae578063313ce567146102935780633c130d901461026b57806370a082311461023457806395d89b4114610112578063a9059cbb146100e25763dd62ed3e14610095575f80fd5b346100de57806003193601126100de576020916100b0610636565b6100b861064c565b6001600160a01b039182165f908152928552838320911682528352819020549051908152f35b5f80fd5b50346100de57806003193601126100de5760209061010b610101610636565b6024359033610662565b5160018152f35b50346100de575f3660031901126100de578051905f60018054908160011c906001831692831561022a575b6020938484108114610217578388529081156101fb57506001146101a5575b505050829003601f01601f191682019267ffffffffffffffff841183851017610192575082918261018e9252826105ef565b0390f35b604190634e487b7160e01b5f525260245ffd5b60015f908152929350837fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8385106101e757505050508301015f808061015c565b8054888601830152930192849082016101d1565b60ff1916878501525050151560051b84010190505f808061015c565b602289634e487b7160e01b5f525260245ffd5b91607f169161013d565b50346100de5760203660031901126100de576020906001600160a01b03610259610636565b165f5260038252805f20549051908152f35b50346100de575f3660031901126100de5761018e906102886104ea565b9051918291826105ef565b50346100de575f3660031901126100de576020905160128152f35b50346100de5760603660031901126100de576102c8610636565b906102d161064c565b6044359060018060a01b03841693845f52602094868652845f20335f528652845f2054905f19820361030b575b50509061010b9291610662565b84821061034f5784820391821161033c579661010b9596975f528752855f20335f528752855f20558594935f6102fe565b601188634e487b7160e01b5f525260245ffd5b855162461bcd60e51b81528089018890526009602482015268616c6c6f77616e636560b81b6044820152606490fd5b50346100de575f3660031901126100de57602090516b033b2e3c9fd0803ce80000008152f35b50346100de57806003193601126100de576020916103c0610636565b9060243590335f528452825f209160018060a01b031691825f52845280835f205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b50346100de575f3660031901126100de578051905f805460018160011c90600183169283156104e0575b6020938484108114610217578388529081156101fb575060011461048c57505050829003601f01601f191682019267ffffffffffffffff841183851017610192575082918261018e9252826105ef565b5f808052929350837f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b8385106104cc57505050508301015f808061015c565b8054888601830152930192849082016104b6565b91607f169161043c565b604051905f60025460018160011c90600183169283156105e5575b60209384841081146105d1578388529081156105b5575060011461055f575b505050829003601f01601f1916820167ffffffffffffffff81118382101761054b57604052565b634e487b7160e01b5f52604160045260245ffd5b60025f908152929350837f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace5b8385106105a157505050508301015f8080610524565b80548886018301529301928490820161058b565b60ff1916878501525050151560051b84010190505f8080610524565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610505565b602080825282518183018190529093925f5b82811061062257505060409293505f838284010152601f8019910116010190565b818101860151848201604001528501610601565b600435906001600160a01b03821682036100de57565b602435906001600160a01b03821682036100de57565b6001600160a01b039182169291908315610704571690815f52600360205260405f20548181106106d557817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f52600384520360405f2055845f5260405f20818154019055604051908152a3565b60405162461bcd60e51b815260206004820152600760248201526662616c616e636560c81b6044820152606490fd5b60405162461bcd60e51b8152602060048201526002602482015261746f60f01b6044820152606490fdfea26469706673582212201f564100cb2cb8c6b90bc85869e0300db008e8b3c5ac8c43232f5ff4bb7dcfec64736f6c63430008180033
| Token | Symbol | Balance | Price | Value |
|---|---|---|---|---|
| no token holdings | ||||
| Transaction Hash | Method | Block | Age | From | To | Type | Item | ||
|---|---|---|---|---|---|---|---|---|---|
| no NFT transfers for this address yet | |||||||||
| Type | Age | Block | Details |
|---|---|---|---|
| no cross-chain L1↔L2 transactions for this address | |||
| Transaction Hash | Method | Block | Age | From | To | Amount | Token | ||
|---|---|---|---|---|---|---|---|---|---|
| no token transfers for this address yet | |||||||||
| Txn Hash | Age | Event | Topics / Data |
|---|---|---|---|
| 0xde06f1…ed3385 | 1 day agoSun, 16 Aug 2026 16:03:21 UTC | Transfer | [0] 0x000000000000…7acdd927 [1] 0x000000000000…894e0f9e data: 0x000000000000000000…29ebd331 |
| 0x14ad3f…678158 | 1 day agoSun, 16 Aug 2026 16:03:19 UTC | Transfer | [0] 0x000000000000…7acdd927 [1] 0x000000000000…894e0f9e data: 0x000000000000000000…1d275bf5 |
| 0x962225…cd347d | 1 day agoSun, 16 Aug 2026 15:57:43 UTC | Transfer | [0] 0x000000000000…3f922405 [1] 0x000000000000…894e0f9e data: 0x000000000000000000…f6aa9d12 |
| 0x159fd4…7e9926 | 1 day agoSun, 16 Aug 2026 15:57:43 UTC | Approval | [0] 0x000000000000…3f922405 [1] 0x000000000000…262c40dc data: 0x000000000000000000…f6aa9d12 |
| 0x941ce3…45e032 | 1 day agoSun, 16 Aug 2026 15:57:43 UTC | Transfer | [0] 0x000000000000…00f24eb3 [1] 0x000000000000…894e0f9e data: 0x000000000000000000…979e1bf0 |
| 0x477cc1…d60350 | 1 day agoSun, 16 Aug 2026 15:57:43 UTC | Approval | [0] 0x000000000000…00f24eb3 [1] 0x000000000000…262c40dc data: 0x000000000000000000…979e1bf0 |
| 0x2ee24d…fc01c3 | 1 day agoSun, 16 Aug 2026 15:55:23 UTC | Transfer | [0] 0x000000000000…aee91652 [1] 0x000000000000…894e0f9e data: 0x000000000000000000…3f1d57ce |
| 0xdf987c…9bccf9 | 1 day agoSun, 16 Aug 2026 15:55:23 UTC | Transfer | [0] 0x000000000000…f05e2583 [1] 0x000000000000…894e0f9e data: 0x000000000000000000…6fce127e |
| 0x62d4eb…08403d | 1 day agoSun, 16 Aug 2026 15:55:22 UTC | Transfer | [0] 0x000000000000…36b30eaa [1] 0x000000000000…894e0f9e data: 0x000000000000000000…da70e064 |
| 0xb4ff9a…e0d31e | 1 day agoSun, 16 Aug 2026 15:55:22 UTC | Approval | [0] 0x000000000000…36b30eaa [1] 0x000000000000…262c40dc data: 0x000000000000000000…da70e064 |
| 0xf3d6db…7fa2eb | 1 day agoSun, 16 Aug 2026 15:55:22 UTC | Transfer | [0] 0x000000000000…39fd3923 [1] 0x000000000000…894e0f9e data: 0x000000000000000000…d217f6de |
| 0xd8c312…78967c | 1 day agoSun, 16 Aug 2026 15:55:14 UTC | Transfer | [0] 0x000000000000…446c9d78 [1] 0x000000000000…894e0f9e data: 0x000000000000000000…bd40d357 |
| 0x051a62…2a0394 | 1 day agoSun, 16 Aug 2026 15:55:11 UTC | Transfer | [0] 0x000000000000…c161dc32 [1] 0x000000000000…894e0f9e data: 0x000000000000000000…57224fad |
| 0xa858a5…550bf1 | 1 day agoSun, 16 Aug 2026 15:55:11 UTC | Transfer | [0] 0x000000000000…a9ec4951 [1] 0x000000000000…894e0f9e data: 0x000000000000000000…65b16f50 |
| 0x17f7cf…4a36b1 | 1 day agoSun, 16 Aug 2026 15:55:09 UTC | Transfer | [0] 0x000000000000…536121ef [1] 0x000000000000…894e0f9e data: 0x000000000000000000…8c3e1508 |
| 0x3eb5d3…ae3ab6 | 1 day agoSun, 16 Aug 2026 15:55:07 UTC | Transfer | [0] 0x000000000000…9fe6bbbb [1] 0x000000000000…894e0f9e data: 0x000000000000000000…2b059857 |
| 0x553686…76866b | 1 day agoSun, 16 Aug 2026 15:55:07 UTC | Approval | [0] 0x000000000000…9fe6bbbb [1] 0x000000000000…262c40dc data: 0x000000000000000000…2b059857 |
| 0x052c55…b897e9 | 1 day agoSun, 16 Aug 2026 15:54:35 UTC | Transfer | [0] 0x000000000000…b266b879 [1] 0x000000000000…894e0f9e data: 0x000000000000000000…4ded578a |
| 0x98e792…7285b1 | 1 day agoSun, 16 Aug 2026 15:54:35 UTC | Transfer | [0] 0x000000000000…8f9d2d09 [1] 0x000000000000…894e0f9e data: 0x000000000000000000…fbf39f0a |
| 0xad4271…660d23 | 1 day agoSun, 16 Aug 2026 15:54:35 UTC | Approval | [0] 0x000000000000…b266b879 [1] 0x000000000000…262c40dc data: 0x000000000000000000…4ded578a |
| 0xcd8d14…ec874c | 1 day agoSun, 16 Aug 2026 15:54:35 UTC | Approval | [0] 0x000000000000…8f9d2d09 [1] 0x000000000000…262c40dc data: 0x000000000000000000…fbf39f0a |
| 0x07bf37…ee7afa | 1 day agoSun, 16 Aug 2026 15:54:13 UTC | Transfer | [0] 0x000000000000…cd1c6930 [1] 0x000000000000…894e0f9e data: 0x000000000000000000…c44e201d |
| 0x5d3eee…e704d7 | 1 day agoSun, 16 Aug 2026 15:54:13 UTC | Approval | [0] 0x000000000000…cd1c6930 [1] 0x000000000000…262c40dc data: 0x000000000000000000…c44e201d |
| 0x0b28b8…2bb91f | 1 day agoSun, 16 Aug 2026 15:54:13 UTC | Transfer | [0] 0x000000000000…d228a479 [1] 0x000000000000…894e0f9e data: 0x000000000000000000…42f7ca09 |
| 0xd1e1f1…3f35f4 | 1 day agoSun, 16 Aug 2026 15:54:13 UTC | Approval | [0] 0x000000000000…d228a479 [1] 0x000000000000…262c40dc data: 0x000000000000000000…42f7ca09 |
| Transaction Hash | Method ? | Block | Age | From | To | Amount | Txn Fee ? | ||
|---|---|---|---|---|---|---|---|---|---|
| 0x159fd4…7e9926 | Approve | 38,100,816 | 1 day agoSun, 16 Aug 2026 15:57:43 UTC | 0xcd38…2405 | IN | Lisa Su | $0.000 ETH | 0.00000093 | |
| 0x477cc1…d60350 | Approve | 38,100,813 | 1 day agoSun, 16 Aug 2026 15:57:43 UTC | 0x9c81…4eb3 | IN | Lisa Su | $0.000 ETH | 0.00000092 | |
| 0xb4ff9a…e0d31e | Approve | 38,099,403 | 1 day agoSun, 16 Aug 2026 15:55:22 UTC | 0xe419…0eaa | IN | Lisa Su | $0.000 ETH | 0.00000092 | |
| 0x553686…76866b | Approve | 38,099,259 | 1 day agoSun, 16 Aug 2026 15:55:07 UTC | 0xaf89…bbbb | IN | Lisa Su | $0.000 ETH | 0.00000092 | |
| 0xcd8d14…ec874c | Approve | 38,098,941 | 1 day agoSun, 16 Aug 2026 15:54:35 UTC | 0xcc6e…2d09 | IN | Lisa Su | $0.000 ETH | 0.00000092 | |
| 0xad4271…660d23 | Approve | 38,098,941 | 1 day agoSun, 16 Aug 2026 15:54:35 UTC | 0xecba…b879 | IN | Lisa Su | $0.000 ETH | 0.00000092 | |
| 0xd1e1f1…3f35f4 | Approve | 38,098,713 | 1 day agoSun, 16 Aug 2026 15:54:13 UTC | 0xe583…a479 | IN | Lisa Su | $0.000 ETH | 0.00000092 | |
| 0x5d3eee…e704d7 | Approve | 38,098,713 | 1 day agoSun, 16 Aug 2026 15:54:13 UTC | 0xcba7…6930 | IN | Lisa Su | $0.000 ETH | 0.00000092 | |
| 0xfe7f48…9b39b5 | Approve | 38,098,687 | 1 day agoSun, 16 Aug 2026 15:54:10 UTC | 0xc36f…2a8b | IN | Lisa Su | $0.000 ETH | 0.00000092 | |
| 0x4c6dbc…25f4c9 | Approve | 38,098,673 | 1 day agoSun, 16 Aug 2026 15:54:09 UTC | 0xcac8…bfd2 | IN | Lisa Su | $0.000 ETH | 0.00000094 | |
| 0xe221e7…f10510 | Approve | 38,098,667 | 1 day agoSun, 16 Aug 2026 15:54:08 UTC | 0x9db4…ddff | IN | Lisa Su | $0.000 ETH | 0.00000092 | |
| 0x3c495c…361758 | Approve | 38,097,501 | 1 day agoSun, 16 Aug 2026 15:52:11 UTC | 0x15d4…d927 | IN | Lisa Su | $0.000 ETH | 0.00000094 | |
| 0x748039…880fde | Approve | 38,097,028 | 1 day agoSun, 16 Aug 2026 15:51:23 UTC | 0x2be0…21ef | IN | Lisa Su | $0.000 ETH | 0.00000092 | |
| 0x010f52…a2da6f | Approve | 38,095,954 | 1 day agoSun, 16 Aug 2026 15:49:36 UTC | 0xc36f…2a8b | IN | Lisa Su | $0.000 ETH | 0.00000053 | |
| 0xa9ef2d…77790a | Approve | 38,095,950 | 1 day agoSun, 16 Aug 2026 15:49:36 UTC | 0xc36f…2a8b | IN | Lisa Su | $0.000 ETH | 0.00000092 | |
| 0xb5204f…cde9f3 | Approve | 38,095,178 | 1 day agoSun, 16 Aug 2026 15:48:18 UTC | 0x7337…a1f7 | IN | Lisa Su | $0.000 ETH | 0.00000092 | |
| 0xde5743…2c6280 | Approve | 38,094,793 | 1 day agoSun, 16 Aug 2026 15:47:39 UTC | 0x0eb9…9d78 | IN | Lisa Su | $0.000 ETH | 0.00000095 | |
| 0x6e276e…cfba53 | Approve | 38,085,749 | 1 day agoSun, 16 Aug 2026 15:32:32 UTC | 0xe419…0eaa | IN | Lisa Su | $0.000 ETH | 0.00000092 | |
| 0x460653…7b6bda | Approve | 38,082,462 | 1 day agoSun, 16 Aug 2026 15:27:02 UTC | 0xfbcf…0007 | IN | Lisa Su | $0.000 ETH | 0.00000092 | |
| 0xaf31a4…9f8b46 | Approve | 38,082,462 | 1 day agoSun, 16 Aug 2026 15:27:02 UTC | 0x49b3…5ddd | IN | Lisa Su | $0.000 ETH | 0.00000092 | |
| 0xda716a…fa7bcb | Approve | 38,082,337 | 1 day agoSun, 16 Aug 2026 15:26:50 UTC | 0xe419…0eaa | IN | Lisa Su | $0.000 ETH | 0.00000092 | |
| 0x1372cd…9e6d7d | Approve | 38,082,280 | 1 day agoSun, 16 Aug 2026 15:26:44 UTC | 0x2fc1…089a | IN | Lisa Su | $0.000 ETH | 0.00000092 | |
| 0x92a555…d6a2e3 | Approve | 38,082,245 | 1 day agoSun, 16 Aug 2026 15:26:40 UTC | 0x6104…cddf | IN | Lisa Su | $0.000 ETH | 0.00000093 | |
| 0x394890…e71417 | Approve | 38,082,188 | 1 day agoSun, 16 Aug 2026 15:26:35 UTC | 0xa6bb…84ad | IN | Lisa Su | $0.000 ETH | 0.00000092 | |
| 0x086ba3…ea08c6 | Approve | 38,082,155 | 1 day agoSun, 16 Aug 2026 15:26:31 UTC | 0x7204…dc32 | IN | Lisa Su | $0.000 ETH | 0.00000093 |
| Block | Age | Parent Transaction Hash | Type | Method | From | To | Value | |
|---|---|---|---|---|---|---|---|---|
| 38,026,051 | 1 day agoSun, 16 Aug 2026 13:52:40 UTC | 0xc418fe…67aa70 | CREATE | launch | 0x2265…aaeb | IN | 0x4df4…d6bb | 0 ETH |