// 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 | ||||
| Type | Age | Block | Details |
|---|---|---|---|
| no cross-chain L1↔L2 transactions for this address | |||
| Transaction Hash | Method | Block | Age | From | To | Type | Item | ||
|---|---|---|---|---|---|---|---|---|---|
| no NFT transfers for this address yet | |||||||||
| Transaction Hash | Method | Block | Age | From | To | Amount | Token | ||
|---|---|---|---|---|---|---|---|---|---|
| no token transfers for this address yet | |||||||||
| Txn Hash | Age | Event | Topics / Data |
|---|---|---|---|
| 0x773b85…fd87ed | 53 mins agoTue, 18 Aug 2026 01:11:11 UTC | Transfer | [0] 0x000000000000…b10c98b1 [1] 0x000000000000…7096a5e8 data: 0x000000000000000000…96d852cf |
| 0xec8bf2…d8ad64 | 53 mins agoTue, 18 Aug 2026 01:11:10 UTC | Approval | [0] 0x000000000000…b10c98b1 [1] 0x000000000000…72c22734 data: 0xffffffffffffffffff…ffffffff |
| 0x9fcc71…447c04 | 53 mins agoTue, 18 Aug 2026 01:11:08 UTC | Transfer | [0] 0x000000000000…43e40951 [1] 0x000000000000…b10c98b1 data: 0x000000000000000000…96d84c50 |
| 0xb3bde7…0d5dff | 3 hrs agoMon, 17 Aug 2026 22:46:47 UTC | Transfer | [0] 0x000000000000…b0b0bb1b [1] 0x000000000000…7096a5e8 data: 0x000000000000000000…bfaa2768 |
| 0x9d1ada…cda77a | 3 hrs agoMon, 17 Aug 2026 22:33:24 UTC | Approval | [0] 0x000000000000…b0b0bb1b [1] 0x000000000000…262c40dc data: 0xffffffffffffffffff…ffffffff |
| 0x9b55d8…bef2cf | 15 hrs agoMon, 17 Aug 2026 10:53:42 UTC | Approval | [0] 0x000000000000…f0cb3888 [1] 0x000000000000…a9f8e4bf data: 0x000000000000000000…00000000 |
| 0x6961c0…235bd6 | 17 hrs agoMon, 17 Aug 2026 08:27:26 UTC | Transfer | [0] 0x000000000000…02d883d6 [1] 0x000000000000…7096a5e8 data: 0x000000000000000000…0c579df1 |
| 0x353d1c…ad4bc6 | 17 hrs agoMon, 17 Aug 2026 08:27:26 UTC | Approval | [0] 0x000000000000…02d883d6 [1] 0x000000000000…1fcf6f60 data: 0xffffffffffffffffff…ffffffff |
| 0x7e997c…c69239 | 19 hrs agoMon, 17 Aug 2026 06:10:28 UTC | Transfer | [0] 0x000000000000…07fafd6f [1] 0x000000000000…7096a5e8 data: 0x000000000000000000…5a2eaa33 |
| 0x11356d…1dd062 | 19 hrs agoMon, 17 Aug 2026 06:10:27 UTC | Approval | [0] 0x000000000000…07fafd6f [1] 0x000000000000…72c22734 data: 0xffffffffffffffffff…ffffffff |
| 0x2f4b18…fd9180 | 19 hrs agoMon, 17 Aug 2026 06:10:25 UTC | Transfer | [0] 0x000000000000…43e40951 [1] 0x000000000000…07fafd6f data: 0x000000000000000000…58fc6f2c |
| 0x19aedd…09accf | 20 hrs agoMon, 17 Aug 2026 05:12:41 UTC | Transfer | [0] 0x000000000000…fc2971bd [1] 0x000000000000…7096a5e8 data: 0x000000000000000000…e189ca85 |
| 0x5b2c8a…7bdc4a | 20 hrs agoMon, 17 Aug 2026 05:12:41 UTC | Approval | [0] 0x000000000000…fc2971bd [1] 0x000000000000…262c40dc data: 0x000000000000000000…e189ca85 |
| 0x679fd6…638dea | 21 hrs agoMon, 17 Aug 2026 04:51:44 UTC | Transfer | [0] 0x000000000000…a9f8e4bf [1] 0x000000000000…7096a5e8 data: 0x000000000000000000…429830a6 |
| 0x679fd6…638dea | 21 hrs agoMon, 17 Aug 2026 04:51:44 UTC | Approval | [0] 0x000000000000…a9f8e4bf [1] 0x000000000000…bafad669 data: 0x000000000000000000…429830a6 |
| 0x679fd6…638dea | 21 hrs agoMon, 17 Aug 2026 04:51:44 UTC | Transfer | [0] 0x000000000000…171a08bf [1] 0x000000000000…a9f8e4bf data: 0x000000000000000000…429830a6 |
| 0x262512…2d902b | 22 hrs agoMon, 17 Aug 2026 03:39:34 UTC | Transfer | [0] 0x000000000000…7096a5e8 [1] 0x000000000000…02d883d6 data: 0x000000000000000000…0c579df1 |
| 0x08dd9a…0144a3 | 22 hrs agoMon, 17 Aug 2026 03:25:38 UTC | Transfer | [0] 0x000000000000…c8aebb4f [1] 0x000000000000…7096a5e8 data: 0x000000000000000000…093032fe |
| 0x08dd9a…0144a3 | 22 hrs agoMon, 17 Aug 2026 03:25:38 UTC | Transfer | [0] 0x000000000000…694e07b4 [1] 0x000000000000…c8aebb4f data: 0x000000000000000000…093032fe |
| 0x7f5eeb…4b3ec5 | 22 hrs agoMon, 17 Aug 2026 03:25:38 UTC | Approval | [0] 0x000000000000…694e07b4 [1] 0x000000000000…e1a4f53d data: 0xffffffffffffffffff…ffffffff |
| 0x92c503…48b032 | 1 day agoMon, 17 Aug 2026 01:08:14 UTC | Transfer | [0] 0x000000000000…5d6b1496 [1] 0x000000000000…fdd6678f data: 0x000000000000000000…342620b8 |
| 0x636d6a…7637ca | 1 day agoSun, 16 Aug 2026 23:01:32 UTC | Transfer | [0] 0x000000000000…c8aebb4f [1] 0x000000000000…7096a5e8 data: 0x000000000000000000…da11cc99 |
| 0x636d6a…7637ca | 1 day agoSun, 16 Aug 2026 23:01:32 UTC | Transfer | [0] 0x000000000000…fa0c755b [1] 0x000000000000…c8aebb4f data: 0x000000000000000000…da11cc99 |
| 0x7a36ab…d88b39 | 1 day agoSun, 16 Aug 2026 23:01:32 UTC | Approval | [0] 0x000000000000…fa0c755b [1] 0x000000000000…e1a4f53d data: 0xffffffffffffffffff…ffffffff |
| 0xe61417…daa7f7 | 1 day agoSun, 16 Aug 2026 19:55:12 UTC | Transfer | [0] 0x000000000000…d113f996 [1] 0x000000000000…7096a5e8 data: 0x000000000000000000…472e1c58 |
| Transaction Hash | Method ? | Block | Age | From | To | Amount | Txn Fee ? | ||
|---|---|---|---|---|---|---|---|---|---|
| 0xec8bf2…d8ad64 | Approve | 39,293,246 | 53 mins agoTue, 18 Aug 2026 01:11:10 UTC | 0x6f6e…98b1 | IN | jcaket | $0.000 ETH | 0.00000092 | |
| 0x9d1ada…cda77a | Approve | 39,198,754 | 3 hrs agoMon, 17 Aug 2026 22:33:24 UTC | 0x6fe9…bb1b | IN | jcaket | $0.000 ETH | 0.00000093 | |
| 0x9b55d8…bef2cf | Approve | 38,779,978 | 15 hrs agoMon, 17 Aug 2026 10:53:42 UTC | 0x41cf…3888 | IN | jcaket | $0.000 ETH | 0.00000048 | |
| 0x353d1c…ad4bc6 | Approve | 38,692,578 | 17 hrs agoMon, 17 Aug 2026 08:27:26 UTC | 0x1957…83d6 | IN | jcaket | $0.000 ETH | 0.00000093 | |
| 0x11356d…1dd062 | Approve | 38,610,708 | 19 hrs agoMon, 17 Aug 2026 06:10:27 UTC | 0x5326…fd6f | IN | jcaket | $0.000 ETH | 0.00000092 | |
| 0x5b2c8a…7bdc4a | Approve | 38,576,194 | 20 hrs agoMon, 17 Aug 2026 05:12:41 UTC | 0x39d9…71bd | IN | jcaket | $0.000 ETH | 0.00000093 | |
| 0x7f5eeb…4b3ec5 | Approve | 38,512,179 | 22 hrs agoMon, 17 Aug 2026 03:25:38 UTC | 0x1c7f…07b4 | IN | jcaket | $0.000 ETH | 0.00000092 | |
| 0x92c503…48b032 | Transfer | 38,430,072 | 1 day agoMon, 17 Aug 2026 01:08:14 UTC | 0x84a1…1496 | IN | jcaket | $0.000 ETH | 0.00000093 | |
| 0x7a36ab…d88b39 | Approve | 38,354,320 | 1 day agoSun, 16 Aug 2026 23:01:32 UTC | 0x24d5…755b | IN | jcaket | $0.000 ETH | 0.00000093 | |
| 0xf09c75…17756e | Approve | 38,234,874 | 1 day agoSun, 16 Aug 2026 19:41:52 UTC | 0xf5c4…6157 | IN | jcaket | $0.000 ETH | 0.00000093 | |
| 0xe2e81b…7d7c24 | Approve | 38,206,659 | 1 day agoSun, 16 Aug 2026 18:54:42 UTC | 0x7a50…3c35 | IN | jcaket | $0.000 ETH | 0.00000092 | |
| 0x3501fe…7258da | Approve | 38,186,881 | 1 day agoSun, 16 Aug 2026 18:21:38 UTC | 0x3f3d…1857 | IN | jcaket | $0.000 ETH | 0.00000048 | |
| 0x4faab8…a49771 | Approve | 38,154,327 | 1 day agoSun, 16 Aug 2026 17:27:12 UTC | 0xc766…d7ba | IN | jcaket | $0.000 ETH | 0.00000093 | |
| 0x590d2e…b24be1 | Approve | 38,111,476 | 1 day agoSun, 16 Aug 2026 16:15:33 UTC | 0xfc07…2273 | IN | jcaket | $0.000 ETH | 0.00000095 | |
| 0xea5d80…849e37 | Approve | 38,103,580 | 1 day agoSun, 16 Aug 2026 16:02:22 UTC | 0xc50a…4fc8 | IN | jcaket | $0.000 ETH | 0.00000093 | |
| 0x7337f8…3eccc5 | Approve | 38,100,488 | 1 day agoSun, 16 Aug 2026 15:57:11 UTC | 0x7777…752c | IN | jcaket | $0.000 ETH | 0.00000093 | |
| 0x59fcd7…33624d | Approve | 38,092,966 | 1 day agoSun, 16 Aug 2026 15:44:37 UTC | 0xe8d2…f3f8 | IN | jcaket | $0.000 ETH | 0.00000094 | |
| 0xf7de2b…5d799f | Approve | 38,089,394 | 1 day agoSun, 16 Aug 2026 15:38:37 UTC | 0xb55f…ad44 | IN | jcaket | $0.000 ETH | 0.00000092 | |
| 0xec4f51…e26378 | Approve | 38,089,394 | 1 day agoSun, 16 Aug 2026 15:38:37 UTC | 0xfe2f…45d1 | IN | jcaket | $0.000 ETH | 0.00000092 | |
| 0x80db5c…76db57 | Approve | 38,088,049 | 1 day agoSun, 16 Aug 2026 15:36:23 UTC | 0x91a7…4444 | IN | jcaket | $0.000 ETH | 0.00000092 | |
| 0x448ca1…e0967d | Approve | 38,087,628 | 1 day agoSun, 16 Aug 2026 15:35:41 UTC | 0xa148…3b14 | IN | jcaket | $0.000 ETH | 0.00000092 | |
| 0x8148e4…cc602a | Approve | 38,086,873 | 1 day agoSun, 16 Aug 2026 15:34:25 UTC | 0xd457…804e | IN | jcaket | $0.000 ETH | 0.00000092 | |
| 0xc821ca…f46b27 | Approve | 38,085,953 | 1 day agoSun, 16 Aug 2026 15:32:52 UTC | 0x74c7…1b0e | IN | jcaket | $0.000 ETH | 0.00000092 | |
| 0x4bc000…0a2b6a | Approve | 38,085,842 | 1 day agoSun, 16 Aug 2026 15:32:41 UTC | 0xaf89…bbbb | IN | jcaket | $0.000 ETH | 0.00000092 | |
| 0x123eda…6464e3 | Approve | 38,085,734 | 1 day agoSun, 16 Aug 2026 15:32:30 UTC | 0xa64c…614b | IN | jcaket | $0.000 ETH | 0.00000092 |
| Block | Age | Parent Transaction Hash | Type | Method | From | To | Value | |
|---|---|---|---|---|---|---|---|---|
| 38,074,295 | 1 day agoSun, 16 Aug 2026 15:13:22 UTC | 0x3c87a3…e2219c | CREATE | launch | 0x2265…aaeb | IN | 0xc061…9c58 | 0 ETH |