VoomToken
0x8d8d4836f03f6b407f742bbbb7688f68f1019d5c
Verification
Verified
v0.8.24+commit.e11b9ed9
Type
Contract
1,965 bytes
ABI entries
13
7 read · 3 write
License
none
Contract information
- Address
- 0x8d8d4836f03f6b407f742bbbb7688f68f1019d5c
- Chain
- Robinhood Chain (4663)
- Compiler
- v0.8.24+commit.e11b9ed9
- Optimization
- Enabled
- Creator
- 0x0d608C77e1…01d82Eda0C
- Creation tx
- 0xf775b62bb8…f66918a233
Token
- Name
- Voom
- Symbol
- VOOM
- Decimals
- 18
- Holders
- 64
- Market
- View token page →
Read contract (7)
MAX_SUPPLY() → uint256
allowance(address, address) → uint256
balanceOf(address) → uint256
decimals() → uint8
name() → string
symbol() → string
totalSupply() → uint256
Events (2)
ApprovalTransfer
ABI
[
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "Approval",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "Transfer",
"type": "event"
},
{
"inputs": [],
"name": "MAX_SUPPLY",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "allowance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "approve",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "decimals",
"outputs": [
{
"internalType": "uint8",
"name": "",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "name",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "symbol",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "totalSupply",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "transfer",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
}
]Source code
// SPDX-License-Identifier: MIT
pragma solidity 0.8.24;
/*
██╗ ██╗ ██████╗ ██████╗ ███╗ ███╗
██║ ██║██╔═══██╗██╔═══██╗████╗ ████║
██║ ██║██║ ██║██║ ██║██╔████╔██║
╚██╗ ██╔╝██║ ██║██║ ██║██║╚██╔╝██║
╚████╔╝ ╚██████╔╝╚██████╔╝██║ ╚═╝ ██║
$VOOM — Burn. Survive. Take it all.
SCANNER-SAFE BY CONSTRUCTION (GMGN / BasedBot / honeypot checkers):
• Fixed supply, minted once in the constructor — there is NO mint function.
• NO owner, NO admin, not Ownable — nothing to renounce, nothing to abuse.
• NO mint / burn / pause roles, NO blacklist, NO tax or fee on transfer,
NO max-tx, NO max-wallet, NO trading toggle, NO cooldown.
• NOT a proxy, NOT upgradeable — the bytecode you read is the bytecode forever.
• transfer / transferFrom are the plain ERC-20 semantics with no hooks,
no callbacks and no branch that can treat one address differently
from another. Anyone who can buy can sell, always.
The game contract (VoomBoard) NEVER mints. It is pre-funded with an emission
budget out of this same fixed supply and pays survivors out of that balance
with a plain `transfer`. When the budget runs out, rewards simply stop —
the ETH side of the game keeps working untouched.
*/
/// @title VoomToken ($VOOM)
/// @notice Plain, ownerless, fixed-supply ERC-20. The entire supply is minted to the
/// deployer at construction and never grows.
contract VoomToken {
string public constant name = "Voom";
string public constant symbol = "VOOM";
uint8 public constant decimals = 18;
uint256 public constant MAX_SUPPLY = 1_000_000_000e18; // 1,000,000,000 VOOM
uint256 public immutable 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() {
totalSupply = MAX_SUPPLY;
balanceOf[msg.sender] = MAX_SUPPLY;
emit Transfer(address(0), msg.sender, MAX_SUPPLY);
}
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) {
return _transfer(msg.sender, to, value);
}
function transferFrom(address from, address to, uint256 value) external returns (bool) {
uint256 a = allowance[from][msg.sender];
if (a != type(uint256).max) {
require(a >= value, "allowance");
unchecked {
allowance[from][msg.sender] = a - value;
}
}
return _transfer(from, to, value);
}
function _transfer(address from, address to, uint256 value) internal returns (bool) {
require(to != address(0), "zero");
uint256 b = balanceOf[from];
require(b >= value, "balance");
unchecked {
balanceOf[from] = b - value;
balanceOf[to] += value;
}
emit Transfer(from, to, value);
return true;
}
}
Chain explorer5715msChain node80ms