// SPDX-License-Identifier: MIT
pragma solidity 0.8.24;
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
/// @title BangerToken — immutable ERC-20 for banger.fun launches
/// @notice Fixed 1 billion supply minted at construction. No owner, no mint, no pause,
/// no blacklist, no tax hooks. Fully immutable after deploy.
contract BangerToken is ERC20 {
uint256 public constant TOTAL_SUPPLY = 1_000_000_000e18;
/// @param name_ Token name
/// @param symbol_ Token symbol
/// @param recipient Address receiving the total supply (the BondingCurve)
constructor(string memory name_, string memory symbol_, address recipient) ERC20(name_, symbol_) {
require(recipient != address(0), "BangerToken: zero recipient");
_mint(recipient, TOTAL_SUPPLY);
}
}[
{
"type": "constructor",
"inputs": [
{
"name": "name_",
"type": "string",
"internalType": "string"
},
{
"name": "symbol_",
"type": "string",
"internalType": "string"
},
{
"name": "recipient",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "nonpayable"
},
{
"name": "ERC20InsufficientAllowance",
"type": "error",
"inputs": [
{
"name": "spender",
"type": "address",
"internalType": "address"
},
{
"name": "allowance",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "needed",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"name": "ERC20InsufficientBalance",
"type": "error",
"inputs": [
{
"name": "sender",
"type": "address",
"internalType": "address"
},
{
"name": "balance",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "needed",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"name": "ERC20InvalidApprover",
"type": "error",
"inputs": [
{
"name": "approver",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "ERC20InvalidReceiver",
"type": "error",
"inputs": [
{
"name": "receiver",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "ERC20InvalidSender",
"type": "error",
"inputs": [
{
"name": "sender",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "ERC20InvalidSpender",
"type": "error",
"inputs": [
{
"name": "spender",
"type": "address",
"internalType": "address"
}
]
},
{
"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": "TOTAL_SUPPLY",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"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": "value",
"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": "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"
}
]0x608060405234801561000f575f80fd5b506004361061009b575f3560e01c806370a082311161006357806370a0823114610114578063902d55a51461013c57806395d89b411461014f578063a9059cbb14610157578063dd62ed3e1461016a575f80fd5b806306fdde031461009f578063095ea7b3146100bd57806318160ddd146100e057806323b872dd146100f2578063313ce56714610105575b5f80fd5b6100a76101a2565b6040516100b49190610572565b60405180910390f35b6100d06100cb3660046105d9565b610232565b60405190151581526020016100b4565b6002545b6040519081526020016100b4565b6100d0610100366004610601565b61024b565b604051601281526020016100b4565b6100e461012236600461063a565b6001600160a01b03165f9081526020819052604090205490565b6100e46b033b2e3c9fd0803ce800000081565b6100a761026e565b6100d06101653660046105d9565b61027d565b6100e461017836600461065a565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6060600380546101b19061068b565b80601f01602080910402602001604051908101604052809291908181526020018280546101dd9061068b565b80156102285780601f106101ff57610100808354040283529160200191610228565b820191905f5260205f20905b81548152906001019060200180831161020b57829003601f168201915b5050505050905090565b5f3361023f81858561028a565b60019150505b92915050565b5f3361025885828561029c565b61026385858561031d565b506001949350505050565b6060600480546101b19061068b565b5f3361023f81858561031d565b610297838383600161037a565b505050565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f19811015610317578181101561030957604051637dc7a0d960e11b81526001600160a01b038416600482015260248101829052604481018390526064015b60405180910390fd5b61031784848484035f61037a565b50505050565b6001600160a01b03831661034657604051634b637e8f60e11b81525f6004820152602401610300565b6001600160a01b03821661036f5760405163ec442f0560e01b81525f6004820152602401610300565b61029783838361044c565b6001600160a01b0384166103a35760405163e602df0560e01b81525f6004820152602401610300565b6001600160a01b0383166103cc57604051634a1406b160e11b81525f6004820152602401610300565b6001600160a01b038085165f908152600160209081526040808320938716835292905220829055801561031757826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161043e91815260200190565b60405180910390a350505050565b6001600160a01b038316610476578060025f82825461046b91906106c3565b909155506104e69050565b6001600160a01b0383165f90815260208190526040902054818110156104c85760405163391434e360e21b81526001600160a01b03851660048201526024810182905260448101839052606401610300565b6001600160a01b0384165f9081526020819052604090209082900390555b6001600160a01b03821661050257600280548290039055610520565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161056591815260200190565b60405180910390a3505050565b5f602080835283518060208501525f5b8181101561059e57858101830151858201604001528201610582565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146105d4575f80fd5b919050565b5f80604083850312156105ea575f80fd5b6105f3836105be565b946020939093013593505050565b5f805f60608486031215610613575f80fd5b61061c846105be565b925061062a602085016105be565b9150604084013590509250925092565b5f6020828403121561064a575f80fd5b610653826105be565b9392505050565b5f806040838503121561066b575f80fd5b610674836105be565b9150610682602084016105be565b90509250929050565b600181811c9082168061069f57607f821691505b6020821081036106bd57634e487b7160e01b5f52602260045260245ffd5b50919050565b8082018082111561024557634e487b7160e01b5f52601160045260245ffdfea2646970667358221220d0f9f7b654e8c7cbb901e0e3979765b9d4f14d58f50912bb98d614bea15ff5ac64736f6c63430008180033
| Token | Symbol | Balance | Price | Value |
|---|---|---|---|---|
| no token holdings | ||||
| Type | Age | Block | Details |
|---|---|---|---|
| no cross-chain L1↔L2 transactions for this address | |||
| Txn Hash | Age | Event | Topics / Data |
|---|---|---|---|
| 0xb3fc52…b2cf88 | 10 days agoFri, 07 Aug 2026 13:23:38 UTC | Transfer | [0] 0x000000000000…e705660b [1] 0x000000000000…a1203458 data: 0x000000000000000000…20000000 |
| 0xb3fc52…b2cf88 | 10 days agoFri, 07 Aug 2026 13:23:38 UTC | Transfer | [0] 0x000000000000…00000000 [1] 0x000000000000…e705660b data: 0x000000000000000000…e8000000 |
| 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 ? | ||
|---|---|---|---|---|---|---|---|---|---|
| No direct transactions — this address is only ever reached via internal calls (common for a contract only invoked through a router or proxy). View Internal Transactions → | |||||||||
| Block | Age | Parent Transaction Hash | Type | Method | From | To | Value | |
|---|---|---|---|---|---|---|---|---|
| 30,244,091 | 10 days agoFri, 07 Aug 2026 13:23:38 UTC | 0xb3fc52…b2cf88 | CREATE | launchToken | 0xa1e3…660b | IN | 0xdfbc…175b | 0 ETH |