// SPDX-License-Identifier: MIT
/*
https://x.com/febu/status/2076828029842596170
*/
pragma solidity ^0.8.33;
contract TRUNK {
// Token details
string public constant name = "Trunk";
string public constant symbol = "TRUNK";
uint8 public constant decimals = 18;
uint256 public totalSupply = 1_000_000_000 * 10**18;
// Balances and allowances
mapping(address => uint256) private balances;
mapping(address => mapping(address => uint256)) private allowances;
// Events
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
constructor() {
balances[msg.sender] = totalSupply;
emit Transfer(address(0), msg.sender, totalSupply);
}
// Returns token balance
function balanceOf(address account) public view returns (uint256) {
return balances[account];
}
// Transfer tokens
function transfer(address to, uint256 amount) public returns (bool) {
require(to != address(0), "ERC20: transfer to zero address");
require(balances[msg.sender] >= amount, "ERC20: insufficient balance");
unchecked {
balances[msg.sender] -= amount;
balances[to] += amount;
}
emit Transfer(msg.sender, to, amount);
return true;
}
// Returns allowance
function allowance(address owner, address spender) public view returns (uint256) {
return allowances[owner][spender];
}
// Approve spender
function approve(address spender, uint256 amount) public returns (bool) {
require(spender != address(0), "ERC20: approve to zero address");
allowances[msg.sender][spender] = amount;
emit Approval(msg.sender, spender, amount);
return true;
}
// Transfer using allowance
function transferFrom(
address from,
address to,
uint256 amount
) public returns (bool) {
require(from != address(0), "ERC20: transfer from zero address");
require(to != address(0), "ERC20: transfer to zero address");
require(balances[from] >= amount, "ERC20: insufficient balance");
require(allowances[from][msg.sender] >= amount, "ERC20: insufficient allowance");
unchecked {
balances[from] -= amount;
balances[to] += amount;
allowances[from][msg.sender] -= amount;
}
emit Transfer(from, to, amount);
emit Approval(from, msg.sender, allowances[from][msg.sender]);
return true;
}
}[
{
"type": "constructor",
"inputs": [],
"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": "owner",
"type": "address",
"internalType": "address"
},
{
"name": "spender",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "approve",
"type": "function",
"inputs": [
{
"name": "spender",
"type": "address",
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "nonpayable"
},
{
"name": "balanceOf",
"type": "function",
"inputs": [
{
"name": "account",
"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": "amount",
"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": "amount",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "nonpayable"
}
]0x60806040526b033b2e3c9fd0803ce80000005f55348015601d575f5ffd5b505f80543380835260016020526040808420839055519092917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91606391815260200190565b60405180910390a3610747806100785f395ff3fe608060405234801561000f575f5ffd5b5060043610610090575f3560e01c8063313ce56711610063578063313ce5671461011a57806370a082311461013457806395d89b411461015c578063a9059cbb14610180578063dd62ed3e14610193575f5ffd5b806306fdde0314610094578063095ea7b3146100ce57806318160ddd146100f157806323b872dd14610107575b5f5ffd5b6100b8604051806040016040528060058152602001645472756e6b60d81b81525081565b6040516100c5919061060e565b60405180910390f35b6100e16100dc36600461065e565b6101cb565b60405190151581526020016100c5565b6100f95f5481565b6040519081526020016100c5565b6100e1610115366004610686565b61028b565b610122601281565b60405160ff90911681526020016100c5565b6100f96101423660046106c0565b6001600160a01b03165f9081526001602052604090205490565b6100b8604051806040016040528060058152602001645452554e4b60d81b81525081565b6100e161018e36600461065e565b6104fb565b6100f96101a13660046106e0565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f6001600160a01b0383166102275760405162461bcd60e51b815260206004820152601e60248201527f45524332303a20617070726f766520746f207a65726f2061646472657373000060448201526064015b60405180910390fd5b335f8181526002602090815260408083206001600160a01b03881680855290835292819020869055518581529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a350600192915050565b5f6001600160a01b0384166102ec5760405162461bcd60e51b815260206004820152602160248201527f45524332303a207472616e736665722066726f6d207a65726f206164647265736044820152607360f81b606482015260840161021e565b6001600160a01b0383166103425760405162461bcd60e51b815260206004820152601f60248201527f45524332303a207472616e7366657220746f207a65726f206164647265737300604482015260640161021e565b6001600160a01b0384165f908152600160205260409020548211156103a95760405162461bcd60e51b815260206004820152601b60248201527f45524332303a20696e73756666696369656e742062616c616e63650000000000604482015260640161021e565b6001600160a01b0384165f90815260026020908152604080832033845290915290205482111561041b5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161021e565b6001600160a01b038481165f818152600160209081526040808320805488900390559387168083528483208054880190558383526002825284832033845282529184902080548790039055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36001600160a01b0384165f81815260026020908152604080832033808552908352928190205490519081529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35060019392505050565b5f6001600160a01b0383166105525760405162461bcd60e51b815260206004820152601f60248201527f45524332303a207472616e7366657220746f207a65726f206164647265737300604482015260640161021e565b335f908152600160205260409020548211156105b05760405162461bcd60e51b815260206004820152601b60248201527f45524332303a20696e73756666696369656e742062616c616e63650000000000604482015260640161021e565b335f818152600160209081526040808320805487900390556001600160a01b03871680845292819020805487019055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910161027a565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b0381168114610659575f5ffd5b919050565b5f5f6040838503121561066f575f5ffd5b61067883610643565b946020939093013593505050565b5f5f5f60608486031215610698575f5ffd5b6106a184610643565b92506106af60208501610643565b929592945050506040919091013590565b5f602082840312156106d0575f5ffd5b6106d982610643565b9392505050565b5f5f604083850312156106f1575f5ffd5b6106fa83610643565b915061070860208401610643565b9050925092905056fea26469706673582212205139bb49073aa594bf4b2d8317f99c1f5b26adc16dab403a569324254408648264736f6c63430008210033
0x608060405234801561000f575f5ffd5b5060043610610090575f3560e01c8063313ce56711610063578063313ce5671461011a57806370a082311461013457806395d89b411461015c578063a9059cbb14610180578063dd62ed3e14610193575f5ffd5b806306fdde0314610094578063095ea7b3146100ce57806318160ddd146100f157806323b872dd14610107575b5f5ffd5b6100b8604051806040016040528060058152602001645472756e6b60d81b81525081565b6040516100c5919061060e565b60405180910390f35b6100e16100dc36600461065e565b6101cb565b60405190151581526020016100c5565b6100f95f5481565b6040519081526020016100c5565b6100e1610115366004610686565b61028b565b610122601281565b60405160ff90911681526020016100c5565b6100f96101423660046106c0565b6001600160a01b03165f9081526001602052604090205490565b6100b8604051806040016040528060058152602001645452554e4b60d81b81525081565b6100e161018e36600461065e565b6104fb565b6100f96101a13660046106e0565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f6001600160a01b0383166102275760405162461bcd60e51b815260206004820152601e60248201527f45524332303a20617070726f766520746f207a65726f2061646472657373000060448201526064015b60405180910390fd5b335f8181526002602090815260408083206001600160a01b03881680855290835292819020869055518581529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a350600192915050565b5f6001600160a01b0384166102ec5760405162461bcd60e51b815260206004820152602160248201527f45524332303a207472616e736665722066726f6d207a65726f206164647265736044820152607360f81b606482015260840161021e565b6001600160a01b0383166103425760405162461bcd60e51b815260206004820152601f60248201527f45524332303a207472616e7366657220746f207a65726f206164647265737300604482015260640161021e565b6001600160a01b0384165f908152600160205260409020548211156103a95760405162461bcd60e51b815260206004820152601b60248201527f45524332303a20696e73756666696369656e742062616c616e63650000000000604482015260640161021e565b6001600160a01b0384165f90815260026020908152604080832033845290915290205482111561041b5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161021e565b6001600160a01b038481165f818152600160209081526040808320805488900390559387168083528483208054880190558383526002825284832033845282529184902080548790039055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36001600160a01b0384165f81815260026020908152604080832033808552908352928190205490519081529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35060019392505050565b5f6001600160a01b0383166105525760405162461bcd60e51b815260206004820152601f60248201527f45524332303a207472616e7366657220746f207a65726f206164647265737300604482015260640161021e565b335f908152600160205260409020548211156105b05760405162461bcd60e51b815260206004820152601b60248201527f45524332303a20696e73756666696369656e742062616c616e63650000000000604482015260640161021e565b335f818152600160209081526040808320805487900390556001600160a01b03871680845292819020805487019055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910161027a565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b0381168114610659575f5ffd5b919050565b5f5f6040838503121561066f575f5ffd5b61067883610643565b946020939093013593505050565b5f5f5f60608486031215610698575f5ffd5b6106a184610643565b92506106af60208501610643565b929592945050506040919091013590565b5f602082840312156106d0575f5ffd5b6106d982610643565b9392505050565b5f5f604083850312156106f1575f5ffd5b6106fa83610643565b915061070860208401610643565b9050925092905056fea26469706673582212205139bb49073aa594bf4b2d8317f99c1f5b26adc16dab403a569324254408648264736f6c63430008210033
| Token | Symbol | Balance | Price | Value |
|---|---|---|---|---|
| no token holdings | ||||
| 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 | Amount | Txn Fee ? | ||
|---|---|---|---|---|---|---|---|---|---|
| no transactions indexed for this address yet | |||||||||
| Transaction Hash | Method | Block | Age | From | To | Type | Item | ||
|---|---|---|---|---|---|---|---|---|---|
| no NFT transfers for this address yet | |||||||||
| Txn Hash | Age | Event | Topics / Data |
|---|---|---|---|
| 0x32a0b0…b22b2e | 35 days agoTue, 14 Jul 2026 01:12:39 UTC | Transfer | [0] 0x000000000000…00000000 [1] 0x000000000000…bc78e4e7 data: 0x000000000000000000…e8000000 |