// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
contract OTNToken {
string public name;
string public symbol;
uint8 public constant decimals = 18;
uint256 public totalSupply;
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 tokenName, string memory tokenSymbol, uint256 initialSupply) {
require(bytes(tokenName).length > 0, "Name required");
require(bytes(tokenSymbol).length > 0, "Symbol required");
require(initialSupply > 0, "Supply required");
name = tokenName;
symbol = tokenSymbol;
totalSupply = initialSupply;
balanceOf[msg.sender] = initialSupply;
emit Transfer(address(0), msg.sender, initialSupply);
}
function transfer(address to, uint256 value) external returns (bool) {
_transfer(msg.sender, to, value);
return true;
}
function approve(address spender, uint256 value) external returns (bool) {
allowance[msg.sender][spender] = value;
emit Approval(msg.sender, spender, value);
return true;
}
function transferFrom(address from, address to, uint256 value) external returns (bool) {
uint256 approved = allowance[from][msg.sender];
require(approved >= value, "Allowance exceeded");
if (approved != type(uint256).max) {
allowance[from][msg.sender] = approved - value;
emit Approval(from, msg.sender, allowance[from][msg.sender]);
}
_transfer(from, to, value);
return true;
}
function _transfer(address from, address to, uint256 value) internal {
require(to != address(0), "Zero address");
require(balanceOf[from] >= value, "Balance exceeded");
unchecked {
balanceOf[from] -= value;
balanceOf[to] += value;
}
emit Transfer(from, to, value);
}
}[
{
"type": "constructor",
"inputs": [
{
"name": "tokenName",
"type": "string",
"internalType": "string"
},
{
"name": "tokenSymbol",
"type": "string",
"internalType": "string"
},
{
"name": "initialSupply",
"type": "uint256",
"internalType": "uint256"
}
],
"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": "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": "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"
}
]0x608060405234801561000f575f5ffd5b506040516109e53803806109e583398101604081905261002e916101fc565b5f8351116100735760405162461bcd60e51b815260206004820152600d60248201526c13985b59481c995c5d5a5c9959609a1b60448201526064015b60405180910390fd5b5f8251116100b55760405162461bcd60e51b815260206004820152600f60248201526e14de5b589bdb081c995c5d5a5c9959608a1b604482015260640161006a565b5f81116100f65760405162461bcd60e51b815260206004820152600f60248201526e14dd5c1c1b1e481c995c5d5a5c9959608a1b604482015260640161006a565b5f61010184826102f8565b50600161010e83826102f8565b506002819055335f818152600360209081526040808320859055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050506103b6565b634e487b7160e01b5f52604160045260245ffd5b5f82601f830112610182575f5ffd5b81516001600160401b0381111561019b5761019b61015f565b604051601f8201601f19908116603f011681016001600160401b03811182821017156101c9576101c961015f565b6040528181528382016020018510156101e0575f5ffd5b8160208501602083015e5f918101602001919091529392505050565b5f5f5f6060848603121561020e575f5ffd5b83516001600160401b03811115610223575f5ffd5b61022f86828701610173565b602086015190945090506001600160401b0381111561024c575f5ffd5b61025886828701610173565b925050604084015190509250925092565b600181811c9082168061027d57607f821691505b60208210810361029b57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156102f357828211156102f357805f5260205f20601f840160051c60208510156102cc57505f5b90810190601f840160051c035f5b818110156102ef575f838201556001016102da565b5050505b505050565b81516001600160401b038111156103115761031161015f565b6103258161031f8454610269565b846102a1565b6020601f821160018114610357575f83156103405750848201515b5f19600385901b1c1916600184901b1784556103af565b5f84815260208120601f198516915b828110156103865787850151825560209485019460019092019101610366565b50848210156103a357868401515f19600387901b60f8161c191681555b505060018360011b0184555b5050505050565b610622806103c35f395ff3fe608060405234801561000f575f5ffd5b5060043610610090575f3560e01c8063313ce56711610063578063313ce567146100ff57806370a082311461011957806395d89b4114610138578063a9059cbb14610140578063dd62ed3e14610153575f5ffd5b806306fdde0314610094578063095ea7b3146100b257806318160ddd146100d557806323b872dd146100ec575b5f5ffd5b61009c61017d565b6040516100a99190610492565b60405180910390f35b6100c56100c03660046104e2565b610208565b60405190151581526020016100a9565b6100de60025481565b6040519081526020016100a9565b6100c56100fa36600461050a565b610274565b610107601281565b60405160ff90911681526020016100a9565b6100de610127366004610544565b60036020525f908152604090205481565b61009c610363565b6100c561014e3660046104e2565b610370565b6100de610161366004610564565b600460209081525f928352604080842090915290825290205481565b5f805461018990610595565b80601f01602080910402602001604051908101604052809291908181526020018280546101b590610595565b80156102005780601f106101d757610100808354040283529160200191610200565b820191905f5260205f20905b8154815290600101906020018083116101e357829003601f168201915b505050505081565b335f8181526004602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906102629086815260200190565b60405180910390a35060015b92915050565b6001600160a01b0383165f908152600460209081526040808320338452909152812054828110156102e15760405162461bcd60e51b8152602060048201526012602482015271105b1b1bddd85b98d948195e18d95959195960721b60448201526064015b60405180910390fd5b5f19811461034d576102f383826105cd565b6001600160a01b0386165f81815260046020908152604080832033808552908352928190208590555193845290927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35b610358858585610385565b506001949350505050565b6001805461018990610595565b5f61037c338484610385565b50600192915050565b6001600160a01b0382166103ca5760405162461bcd60e51b815260206004820152600c60248201526b5a65726f206164647265737360a01b60448201526064016102d8565b6001600160a01b0383165f908152600360205260409020548111156104245760405162461bcd60e51b815260206004820152601060248201526f10985b185b98d948195e18d95959195960821b60448201526064016102d8565b6001600160a01b038084165f81815260036020526040808220805486900390559285168082529083902080548501905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906104859085815260200190565b60405180910390a3505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b03811681146104dd575f5ffd5b919050565b5f5f604083850312156104f3575f5ffd5b6104fc836104c7565b946020939093013593505050565b5f5f5f6060848603121561051c575f5ffd5b610525846104c7565b9250610533602085016104c7565b929592945050506040919091013590565b5f60208284031215610554575f5ffd5b61055d826104c7565b9392505050565b5f5f60408385031215610575575f5ffd5b61057e836104c7565b915061058c602084016104c7565b90509250929050565b600181811c908216806105a957607f821691505b6020821081036105c757634e487b7160e01b5f52602260045260245ffd5b50919050565b8181038181111561026e57634e487b7160e01b5f52601160045260245ffdfea264697066735822122082ce3bbd5290969f1ee15c61fbc181cef56a4ac9fad4c11a809dabf8de1ee55f64736f6c63430008240033000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000052b7d2dcc80cd2e400000000000000000000000000000000000000000000000000000000000000000000064f4854414e49000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034f544e0000000000000000000000000000000000000000000000000000000000
0x608060405234801561000f575f5ffd5b5060043610610090575f3560e01c8063313ce56711610063578063313ce567146100ff57806370a082311461011957806395d89b4114610138578063a9059cbb14610140578063dd62ed3e14610153575f5ffd5b806306fdde0314610094578063095ea7b3146100b257806318160ddd146100d557806323b872dd146100ec575b5f5ffd5b61009c61017d565b6040516100a99190610492565b60405180910390f35b6100c56100c03660046104e2565b610208565b60405190151581526020016100a9565b6100de60025481565b6040519081526020016100a9565b6100c56100fa36600461050a565b610274565b610107601281565b60405160ff90911681526020016100a9565b6100de610127366004610544565b60036020525f908152604090205481565b61009c610363565b6100c561014e3660046104e2565b610370565b6100de610161366004610564565b600460209081525f928352604080842090915290825290205481565b5f805461018990610595565b80601f01602080910402602001604051908101604052809291908181526020018280546101b590610595565b80156102005780601f106101d757610100808354040283529160200191610200565b820191905f5260205f20905b8154815290600101906020018083116101e357829003601f168201915b505050505081565b335f8181526004602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906102629086815260200190565b60405180910390a35060015b92915050565b6001600160a01b0383165f908152600460209081526040808320338452909152812054828110156102e15760405162461bcd60e51b8152602060048201526012602482015271105b1b1bddd85b98d948195e18d95959195960721b60448201526064015b60405180910390fd5b5f19811461034d576102f383826105cd565b6001600160a01b0386165f81815260046020908152604080832033808552908352928190208590555193845290927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35b610358858585610385565b506001949350505050565b6001805461018990610595565b5f61037c338484610385565b50600192915050565b6001600160a01b0382166103ca5760405162461bcd60e51b815260206004820152600c60248201526b5a65726f206164647265737360a01b60448201526064016102d8565b6001600160a01b0383165f908152600360205260409020548111156104245760405162461bcd60e51b815260206004820152601060248201526f10985b185b98d948195e18d95959195960821b60448201526064016102d8565b6001600160a01b038084165f81815260036020526040808220805486900390559285168082529083902080548501905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906104859085815260200190565b60405180910390a3505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b03811681146104dd575f5ffd5b919050565b5f5f604083850312156104f3575f5ffd5b6104fc836104c7565b946020939093013593505050565b5f5f5f6060848603121561051c575f5ffd5b610525846104c7565b9250610533602085016104c7565b929592945050506040919091013590565b5f60208284031215610554575f5ffd5b61055d826104c7565b9392505050565b5f5f60408385031215610575575f5ffd5b61057e836104c7565b915061058c602084016104c7565b90509250929050565b600181811c908216806105a957607f821691505b6020821081036105c757634e487b7160e01b5f52602260045260245ffd5b50919050565b8181038181111561026e57634e487b7160e01b5f52601160045260245ffdfea264697066735822122082ce3bbd5290969f1ee15c61fbc181cef56a4ac9fad4c11a809dabf8de1ee55f64736f6c63430008240033
| Token | Symbol | Balance | Price | Value |
|---|---|---|---|---|
| no token holdings | ||||
| Txn Hash | Age | Event | Topics / Data |
|---|---|---|---|
| 0x16afb6…34f19f | 11 days agoFri, 07 Aug 2026 03:12:37 UTC | Transfer | [0] 0x000000000000…9b846ea4 [1] 0x000000000000…d91333fb data: 0x000000000000000000…89e80000 |
| 0x0d48b5…88610d | 22 days agoMon, 27 Jul 2026 04:17:41 UTC | Transfer | [0] 0x000000000000…9b846ea4 [1] 0x000000000000…dd820371 data: 0x000000000000000000…de000000 |
| 0x44186c…ffcfb2 | 22 days agoMon, 27 Jul 2026 04:13:05 UTC | Transfer | [0] 0x000000000000…00000000 [1] 0x000000000000…9b846ea4 data: 0x000000000000000000…e4000000 |
| Block | Age | Parent Transaction Hash | Type | Method | From | To | Value | |
|---|---|---|---|---|---|---|---|---|
| no internal transactions found for this address yet (traced blocks + on-demand) | ||||||||
| 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 | |||||||||
| Transaction Hash | Method | Block | Age | From | To | Type | Item | ||
|---|---|---|---|---|---|---|---|---|---|
| no NFT transfers for this address yet | |||||||||
| Transaction Hash | Method ? | Block | Age | From | To | Amount | Txn Fee ? | ||
|---|---|---|---|---|---|---|---|---|---|
| 0x16afb6…34f19f | Transfer | 29,878,659 | 11 days agoFri, 07 Aug 2026 03:12:37 UTC | 0x09d6…6ea4 | IN | OHTANI | $0.000 ETH | 0.00000169 | |
| 0x0d48b5…88610d | Transfer | 20,438,757 | 22 days agoMon, 27 Jul 2026 04:17:41 UTC | 0x09d6…6ea4 | IN | OHTANI | $0.000 ETH | 0.00000223 |