// SPDX-License-Identifier: MIT
pragma solidity 0.8.26;
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
/**
* @title PrimehodToken
* @notice A plain, fully-minted ERC-20 launched by the Primehod factory on
* Robinhood Chain. The entire supply is minted once, to the factory, at
* construction. There is NO mint function, no owner, no pause, no
* blacklist, no upgrade path: once deployed the token can only ever be
* transferred. This is the self-contained replacement for the Base-native
* "B20 asset" precompile, which does not exist on Robinhood Chain.
* @dev The factory receives the full supply and splits it into the bonding-curve
* slice, the vesting slice, and any owner-instant distribution slice.
*/
contract PrimehodToken is ERC20 {
uint8 private immutable _decimals;
constructor(
string memory name_,
string memory symbol_,
uint8 decimals_,
uint256 totalSupply_,
address mintTo_
) ERC20(name_, symbol_) {
require(mintTo_ != address(0), "zero mintTo");
require(totalSupply_ > 0, "zero supply");
_decimals = decimals_;
_mint(mintTo_, totalSupply_);
}
function decimals() public view override returns (uint8) {
return _decimals;
}
}[
{
"type": "constructor",
"inputs": [
{
"name": "name_",
"type": "string",
"internalType": "string"
},
{
"name": "symbol_",
"type": "string",
"internalType": "string"
},
{
"name": "decimals_",
"type": "uint8",
"internalType": "uint8"
},
{
"name": "totalSupply_",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "mintTo_",
"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": "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"
}
]0x608080604052600436101561001357600080fd5b60003560e01c90816306fdde031461043257508063095ea7b3146103ac57806318160ddd1461038e57806323b872dd146102a1578063313ce5671461026357806370a082311461022957806395d89b4114610109578063a9059cbb146100d85763dd62ed3e1461008257600080fd5b346100d35760403660031901126100d35761009b61054d565b6100a3610563565b6001600160a01b039182166000908152600160209081526040808320949093168252928352819020549051908152f35b600080fd5b346100d35760403660031901126100d3576100fe6100f461054d565b6024359033610579565b602060405160018152f35b346100d35760003660031901126100d35760405160006004548060011c9060018116801561021f575b60208310811461020b578285529081156101ef5750600114610198575b50819003601f01601f19168101906001600160401b038211818310176101825761017e82918260405282610504565b0390f35b634e487b7160e01b600052604160045260246000fd5b600460009081529091507f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b8282106101d95750602091508201018261014f565b60018160209254838588010152019101906101c4565b90506020925060ff191682840152151560051b8201018261014f565b634e487b7160e01b84526022600452602484fd5b91607f1691610132565b346100d35760203660031901126100d3576001600160a01b0361024a61054d565b1660005260006020526020604060002054604051908152f35b346100d35760003660031901126100d357602060405160ff7f0000000000000000000000000000000000000000000000000000000000000012168152f35b346100d35760603660031901126100d3576102ba61054d565b6102c2610563565b6001600160a01b0382166000818152600160209081526040808320338452909152902054909260443592916000198110610302575b506100fe9350610579565b83811061037157841561035b573315610345576100fe946000526001602052604060002060018060a01b03331660005260205283604060002091039055846102f7565b634a1406b160e11b600052600060045260246000fd5b63e602df0560e01b600052600060045260246000fd5b8390637dc7a0d960e11b6000523360045260245260445260646000fd5b346100d35760003660031901126100d3576020600254604051908152f35b346100d35760403660031901126100d3576103c561054d565b60243590331561035b576001600160a01b031690811561034557336000526001602052604060002082600052602052806040600020556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b346100d35760003660031901126100d35760006003548060011c906001811680156104fa575b60208310811461020b578285529081156101ef57506001146104a35750819003601f01601f19168101906001600160401b038211818310176101825761017e82918260405282610504565b600360009081529091507fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b8282106104e45750602091508201018261014f565b60018160209254838588010152019101906104cf565b91607f1691610458565b91909160208152825180602083015260005b818110610537575060409293506000838284010152601f8019910116010190565b8060208092870101516040828601015201610516565b600435906001600160a01b03821682036100d357565b602435906001600160a01b03821682036100d357565b6001600160a01b0316908115610628576001600160a01b03169182156106125760008281528060205260408120548281106105f85791604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef958760209652828652038282205586815280845220818154019055604051908152a3565b916064928463391434e360e21b8452600452602452604452fd5b63ec442f0560e01b600052600060045260246000fd5b634b637e8f60e11b600052600060045260246000fdfea26469706673582212205877026b4e3fa92fd4af48049aed352ae64bbc27f224ad8f02fba2c4da42ca4c64736f6c634300081a0033
| Token | Symbol | Balance | Price | Value |
|---|---|---|---|---|
| DIH | 1 | $0.0000102 | $0 |
| Txn Hash | Age | Event | Topics / Data |
|---|---|---|---|
| 0x84dc92…d40ad7 | 40 days agoThu, 09 Jul 2026 00:08:18 UTC | Transfer | [0] 0x000000000000…ea07c96f [1] 0x000000000000…c1bc338b data: 0x000000000000000000…9b99b3f8 |
| 0x18b465…b8754d | 44 days agoSat, 04 Jul 2026 13:14:48 UTC | Approval | [0] 0x000000000000…ea07c96f [1] 0x000000000000…c1bc338b data: 0x000000000000000000…9c066800 |
| 0xecf14c…30fce9 | 44 days agoSat, 04 Jul 2026 13:14:05 UTC | Transfer | [0] 0x000000000000…c1bc338b [1] 0x000000000000…ea07c96f data: 0x000000000000000000…9b99b3f8 |
| 0xf811fb…db0c72 | 44 days agoSat, 04 Jul 2026 13:13:58 UTC | Transfer | [0] 0x000000000000…32cb6b43 [1] 0x000000000000…c1bc338b data: 0x000000000000000000…20000000 |
| 0xf811fb…db0c72 | 44 days agoSat, 04 Jul 2026 13:13:58 UTC | Transfer | [0] 0x000000000000…32cb6b43 [1] 0x000000000000…e78f26cb data: 0x000000000000000000…c8000000 |
| 0xf811fb…db0c72 | 44 days agoSat, 04 Jul 2026 13:13:58 UTC | Transfer | [0] 0x000000000000…00000000 [1] 0x000000000000…32cb6b43 data: 0x000000000000000000…e8000000 |
| Transaction Hash | Method | Block | Age | From | To | Type | Item | ||
|---|---|---|---|---|---|---|---|---|---|
| no NFT transfers for this address yet | |||||||||
| Type | Age | Block | Details |
|---|---|---|---|
| no cross-chain L1↔L2 transactions for this address | |||
| Transaction Hash | Method | Block | Age | From | To | Amount | Token | ||
|---|---|---|---|---|---|---|---|---|---|
| 0x6d575e17…2bfecf | Transfer | 18,424,073 | 24 days agoFri, 24 Jul 2026 20:08:04 UTC | 0xcaf7…5d11 | IN | 0xcdd2…60d9 | $0.001 DIH |
| Transaction Hash | Method ? | Block | Age | From | To | Amount | Txn Fee ? | ||
|---|---|---|---|---|---|---|---|---|---|
| 0x18b465…b8754d | Approve | 2,375,086 | 44 days agoSat, 04 Jul 2026 13:14:48 UTC | 0xde46…c96f | IN | test | $0.000 ETH | 0.00000092 |
| Block | Age | Parent Transaction Hash | Type | Method | From | To | Value | |
|---|---|---|---|---|---|---|---|---|
| 2,374,834 | 44 days agoSat, 04 Jul 2026 13:13:58 UTC | 0xf811fb…db0c72 | CREATE | createToken | 0xe06f…6b43 | IN | 0xcdd2…60d9 | 0 ETH |