HoodToken
0x620730b41f4baf756aed0ea5957f8095eefd8d7c
Verification
Verified
v0.8.24+commit.e11b9ed9
Type
Contract
2,102 bytes
ABI entries
16
9 read · 3 write
License
none
Contract information
- Address
- 0x620730b41f4baf756aed0ea5957f8095eefd8d7c
- Chain
- Robinhood Chain (4663)
- Compiler
- v0.8.24+commit.e11b9ed9
- Optimization
- Enabled
- Creator
- 0x4F25909F48…2eC70376C1
- Creation tx
- 0x2e6bf80fe8…3f13fb57fc
Token
- Name
- rStock
- Symbol
- rStock
- Decimals
- 18
- Holders
- 125
- Market
- View token page →
Read contract (9)
allowance(address, address) → uint256
balanceOf(address) → uint256
decimals() → uint8
launchedOn() → string
name() → string
socials() → string
symbol() → string
totalSupply() → uint256
website() → string
Events (3)
ApprovalLaunchedOnHoodlabTransfer
ABI
[
{
"inputs": [
{
"internalType": "string",
"name": "_name",
"type": "string"
},
{
"internalType": "string",
"name": "_symbol",
"type": "string"
},
{
"internalType": "uint256",
"name": "_supply",
"type": "uint256"
},
{
"internalType": "address",
"name": "_recipient",
"type": "address"
},
{
"internalType": "string",
"name": "_socials",
"type": "string"
}
],
"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": false,
"internalType": "string",
"name": "message",
"type": "string"
},
{
"indexed": false,
"internalType": "string",
"name": "website",
"type": "string"
},
{
"indexed": false,
"internalType": "string",
"name": "socials",
"type": "string"
}
],
"name": "LaunchedOnHoodlab",
"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": [
{
"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": "amount",
"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": "launchedOn",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "name",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "socials",
"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": "amount",
"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": "amount",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "website",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
}
]Source code
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;
/// @title HoodToken — fixed-supply ERC-20 for Hoodlab launches
/// @notice No owner, no mint, no tax, no pause. Full supply minted once to the launcher,
/// which locks it into a one-sided Uniswap v3 position.
contract HoodToken {
string public name;
string public symbol;
uint8 public constant decimals = 18;
uint256 public immutable totalSupply;
/// @notice On-chain marketing — readable on any explorer's "Read Contract" tab.
string public constant launchedOn = "Launched on hoodlab.fun";
string public constant website = "https://hoodlab.fun";
/// @notice Token socials as JSON: {"d":description,"x":..,"tg":..,"web":..}
string public socials;
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);
/// @notice Emitted at mint so the "launched on hoodlab.fun" message + socials
/// appear in the deployment transaction's logs on Blockscout.
event LaunchedOnHoodlab(string message, string website, string socials);
constructor(string memory _name, string memory _symbol, uint256 _supply, address _recipient, string memory _socials) {
name = _name;
symbol = _symbol;
totalSupply = _supply;
socials = _socials;
balanceOf[_recipient] = _supply;
emit Transfer(address(0), _recipient, _supply);
emit LaunchedOnHoodlab("Launched on hoodlab.fun", "https://hoodlab.fun", _socials);
}
function transfer(address to, uint256 amount) external returns (bool) {
return _transfer(msg.sender, to, amount);
}
function transferFrom(address from, address to, uint256 amount) external returns (bool) {
uint256 allowed = allowance[from][msg.sender];
if (allowed != type(uint256).max) {
require(allowed >= amount, "ERC20: insufficient allowance");
allowance[from][msg.sender] = allowed - amount;
}
return _transfer(from, to, amount);
}
function approve(address spender, uint256 amount) external returns (bool) {
allowance[msg.sender][spender] = amount;
emit Approval(msg.sender, spender, amount);
return true;
}
function _transfer(address from, address to, uint256 amount) internal returns (bool) {
require(to != address(0), "ERC20: transfer to zero");
uint256 fromBal = balanceOf[from];
require(fromBal >= amount, "ERC20: insufficient balance");
unchecked {
balanceOf[from] = fromBal - amount;
balanceOf[to] += amount;
}
emit Transfer(from, to, amount);
return true;
}
}
Chain explorer6409msChain node79ms