// SPDX-License-Identifier: MIT
//
// ██████╗ ██╗ █████╗ ███╗ ██╗
// ██╔═══██╗██║██╔══██╗████╗ ██║
// ██║ ██║██║███████║██╔██╗ ██║
// ██║▄▄ ██║██║██╔══██║██║╚██╗██║
// ╚██████╔╝██║██║ ██║██║ ╚████║
// ╚══▀▀═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═══╝
//
// 钱 · Qian.ag — Multichain DEX & Launchpad
// Fixed supply. No owner, no mint, no games.
// — V2.1 —
//
pragma solidity ^0.8.24;
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
import "@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol";
/// @notice Fixed-supply ERC20. Supply is minted once here and there is no mint function.
/// No transfer hooks, no owner, no privileged functions.
contract QianToken is ERC20, ERC20Burnable {
/// @dev Same signature as OpenZeppelin Ownable. Indexers read renouncement from this
/// event rather than calling owner().
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/// @notice The factory that deployed this token.
address public immutable platform;
/// @notice Original launcher. A record, not the fee receiver — fee rights are
/// reassignable, so read `tokenCreator(token)` on `platform` for who is paid today.
address public immutable creator;
uint256 public constant MAX_SUPPLY = 1_000_000_000 * 10 ** 18;
/// @notice ipfs://<cid> for the token's image/description, so indexers need no factory.
string public metadata;
constructor(
string memory _name,
string memory _symbol,
string memory _metadata,
address _creator,
address _platform
) ERC20(_name, _symbol) {
platform = _platform;
creator = _creator;
metadata = _metadata;
_mint(_platform, MAX_SUPPLY);
emit OwnershipTransferred(address(0), _platform);
emit OwnershipTransferred(_platform, address(0));
}
/// @notice Common indexer convention — same value as metadata().
function tokenURI() external view returns (string memory) {
return metadata;
}
/// @notice No owner, no mint, no pause, no blacklist.
function owner() public pure returns (address) {
return address(0);
}
}[
{
"type": "constructor",
"inputs": [
{
"name": "_name",
"type": "string",
"internalType": "string"
},
{
"name": "_symbol",
"type": "string",
"internalType": "string"
},
{
"name": "_metadata",
"type": "string",
"internalType": "string"
},
{
"name": "_creator",
"type": "address",
"internalType": "address"
},
{
"name": "_platform",
"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": "OwnershipTransferred",
"type": "event",
"inputs": [
{
"name": "previousOwner",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "newOwner",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"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": "MAX_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": "burn",
"type": "function",
"inputs": [
{
"name": "value",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "burnFrom",
"type": "function",
"inputs": [
{
"name": "account",
"type": "address",
"internalType": "address"
},
{
"name": "value",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "creator",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "decimals",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint8",
"internalType": "uint8"
}
],
"stateMutability": "view"
},
{
"name": "metadata",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"name": "name",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"name": "owner",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "pure"
},
{
"name": "platform",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "symbol",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"name": "tokenURI",
"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"
}
]0x608060408181526004918236101561001657600080fd5b600092833560e01c91826302d05d3f1461057b5750816306fdde03146104bd578163095ea7b31461040f57816318160ddd146103f057816323b872dd146103b3578163313ce5671461039757816332cb6b0c14610371578163392f37e9146103485781633c130d901461034857816342966c681461032a5781634bde38c8146102e657816370a08231146102af57816379cc6790146102795781638da5cb5b1461025e57816395d89b411461015b57508063a9059cbb1461012b5763dd62ed3e146100e057600080fd5b34610127578060031936011261012757806020926100fc610607565b610104610622565b6001600160a01b0391821683526001865283832091168252845220549051908152f35b5080fd5b503461012757806003193601126101275760209061015461014a610607565b6024359033610808565b5160018152f35b83833461012757816003193601126101275780519082845460018160011c9060018316928315610254575b60209384841081146102415783885290811561022557506001146101ed575b505050829003601f01601f19168201926001600160401b038411838510176101da57508291826101d69252826105be565b0390f35b634e487b7160e01b815260418552602490fd5b919250868652828620918387935b83851061021157505050508301018580806101a5565b8054888601830152930192849082016101fb565b60ff1916878501525050151560051b84010190508580806101a5565b634e487b7160e01b895260228a52602489fd5b91607f1691610186565b50503461012757816003193601126101275751908152602090f35b505034610127573660031901126102ac576102a9610295610607565b602435906102a4823383610743565b6108bf565b80f35b80fd5b5050346101275760203660031901126101275760209181906001600160a01b036102d7610607565b16815280845220549051908152f35b505034610127578160031936011261012757517f000000000000000000000000750d0bc66baa12cf1710a8ba939b97db4ad005c36001600160a01b03168152602090f35b839034610127576020366003190112610127576102a99035336108bf565b5050346101275781600319360112610127576101d690610366610638565b9051918291826105be565b50503461012757816003193601126101275751676765c793fa10079d601b1b8152602090f35b5050346101275781600319360112610127576020905160128152f35b505034610127576060366003190112610127576020906101546103d4610607565b6103dc610622565b604435916103eb833383610743565b610808565b5050346101275781600319360112610127576020906002549051908152f35b9050346104b957816003193601126104b957610429610607565b6024359033156104a2576001600160a01b031691821561048b57508083602095338152600187528181208582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b8351634a1406b160e11b8152908101859052602490fd5b835163e602df0560e01b8152808401869052602490fd5b8280fd5b8383346101275781600319360112610127578051908260035460018160011c9060018316928315610571575b602093848410811461024157838852908115610225575060011461053857505050829003601f01601f19168201926001600160401b038411838510176101da57508291826101d69252826105be565b91925060038652828620918387935b83851061055d57505050508301018580806101a5565b805488860183015293019284908201610547565b91607f16916104e9565b8490346101275781600319360112610127577f00000000000000000000000071cadf42d8a5adbcb82c1c0050f1504b5480a4c26001600160a01b03168152602090f35b6020808252825181830181905290939260005b8281106105f357505060409293506000838284010152601f8019910116010190565b8181018601518482016040015285016105d1565b600435906001600160a01b038216820361061d57565b600080fd5b602435906001600160a01b038216820361061d57565b60405190600060055460018160011c906001831692831561071b575b6020938484108114610707578388529081156106eb57506001146106af575b505050829003601f01601f191682016001600160401b0381118382101761069957604052565b634e487b7160e01b600052604160045260246000fd5b91925060056000528260002091836000935b8385106106d75750505050830101388080610673565b8054888601830152930192849082016106c1565b60ff1916878501525050151560051b8401019050388080610673565b634e487b7160e01b86526022600452602486fd5b91607f1691610654565b604091949392606082019560018060a01b0316825260208201520152565b9160018060a01b038093169160009383855260016020526040938486209183169182875260205284862054926000198410610782575b50505050505050565b8484106107e6575080156107ce5781156107b657855260016020528385209085526020520391205538808080808080610779565b8451634a1406b160e11b815260048101879052602490fd5b845163e602df0560e01b815260048101879052602490fd5b8390610804868851938493637dc7a0d960e11b855260048501610725565b0390fd5b916001600160a01b038084169283156108a6571692831561088d576000908382528160205260408220549083821061087057509160408282600080516020610938833981519152958760209652828652038282205586815220818154019055604051908152a3565b6108048460405193849363391434e360e21b855260048501610725565b60405163ec442f0560e01b815260006004820152602490fd5b604051634b637e8f60e11b815260006004820152602490fd5b906001600160a01b0382169081156108a6576000928284528360205260408420549082821061091a575081600080516020610938833981519152926020928587528684520360408620558060025403600255604051908152a3565b6108048360405193849363391434e360e21b85526004850161072556feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220ada93c449dc8f52aabeaae3c5c4df3ee584550926fbfc94753c9be0292c2f22064736f6c63430008180033
| Token | Symbol | Balance | Price | Value |
|---|---|---|---|---|
| DIH | 1 | $0.0000102 | $0 |
| Type | Age | Block | Details |
|---|---|---|---|
| no cross-chain L1↔L2 transactions for this address | |||
| Txn Hash | Age | Event | Topics / Data |
|---|---|---|---|
| 0x4414b0…120988 | 31 days agoSat, 18 Jul 2026 03:30:31 UTC | Transfer | [0] 0x000000000000…95c61d66 [1] 0x000000000000…43e40951 data: 0x000000000000000000…e33840fe |
| 0x4414b0…120988 | 31 days agoSat, 18 Jul 2026 03:30:31 UTC | Transfer | [0] 0x000000000000…5480a4c2 [1] 0x000000000000…95c61d66 data: 0x000000000000000000…e33840fe |
| 0x49e778…5b41be | 31 days agoSat, 18 Jul 2026 03:30:29 UTC | Approval | [0] 0x000000000000…5480a4c2 [1] 0x000000000000…95c61d66 data: 0x000000000000000000…e33840fe |
| 0x3e7789…51fe50 | 31 days agoSat, 18 Jul 2026 03:30:28 UTC | Transfer | [0] 0x000000000000…0bfa9436 [1] 0x000000000000…43e40951 data: 0x000000000000000000…328963cc |
| 0x3e7789…51fe50 | 31 days agoSat, 18 Jul 2026 03:30:28 UTC | Transfer | [0] 0x000000000000…0bfa9436 [1] 0x000000000000…5480a4c2 data: 0x000000000000000000…2095e8dc |
| 0x3e7789…51fe50 | 31 days agoSat, 18 Jul 2026 03:30:28 UTC | Transfer | [0] 0x000000000000…43e40951 [1] 0x000000000000…0bfa9436 data: 0x000000000000000000…531f4ca8 |
| 0x298294…a3aa9b | 31 days agoSat, 18 Jul 2026 03:30:27 UTC | Transfer | [0] 0x000000000000…95c61d66 [1] 0x000000000000…43e40951 data: 0x000000000000000000…a7c789de |
| 0x298294…a3aa9b | 31 days agoSat, 18 Jul 2026 03:30:27 UTC | Transfer | [0] 0x000000000000…75d0d850 [1] 0x000000000000…95c61d66 data: 0x000000000000000000…a7c789de |
| 0x65ee26…d2d77e | 31 days agoSat, 18 Jul 2026 03:30:26 UTC | Transfer | [0] 0x000000000000…95c61d66 [1] 0x000000000000…43e40951 data: 0x000000000000000000…1709ae61 |
| 0x65ee26…d2d77e | 31 days agoSat, 18 Jul 2026 03:30:26 UTC | Transfer | [0] 0x000000000000…4f8b2bcd [1] 0x000000000000…95c61d66 data: 0x000000000000000000…1709ae61 |
| 0x32c3f8…df295c | 31 days agoSat, 18 Jul 2026 03:30:25 UTC | Transfer | [0] 0x000000000000…95c61d66 [1] 0x000000000000…43e40951 data: 0x000000000000000000…a7a3ef0d |
| 0x32c3f8…df295c | 31 days agoSat, 18 Jul 2026 03:30:25 UTC | Transfer | [0] 0x000000000000…e672474b [1] 0x000000000000…95c61d66 data: 0x000000000000000000…a7a3ef0d |
| 0xe630bc…38de21 | 31 days agoSat, 18 Jul 2026 03:30:24 UTC | Transfer | [0] 0x000000000000…95c61d66 [1] 0x000000000000…43e40951 data: 0x000000000000000000…1deb258f |
| 0xe630bc…38de21 | 31 days agoSat, 18 Jul 2026 03:30:24 UTC | Transfer | [0] 0x000000000000…77b2ccbb [1] 0x000000000000…95c61d66 data: 0x000000000000000000…1deb258f |
| 0xba846a…5bff68 | 31 days agoSat, 18 Jul 2026 03:30:23 UTC | Transfer | [0] 0x000000000000…95c61d66 [1] 0x000000000000…43e40951 data: 0x000000000000000000…8e84c503 |
| 0xba846a…5bff68 | 31 days agoSat, 18 Jul 2026 03:30:23 UTC | Transfer | [0] 0x000000000000…ff772959 [1] 0x000000000000…95c61d66 data: 0x000000000000000000…8e84c503 |
| 0x140af7…53ad52 | 31 days agoSat, 18 Jul 2026 03:30:22 UTC | Transfer | [0] 0x000000000000…95c61d66 [1] 0x000000000000…43e40951 data: 0x000000000000000000…38736e56 |
| 0x140af7…53ad52 | 31 days agoSat, 18 Jul 2026 03:30:22 UTC | Transfer | [0] 0x000000000000…75c528c8 [1] 0x000000000000…95c61d66 data: 0x000000000000000000…38736e56 |
| 0x9f6991…323539 | 31 days agoSat, 18 Jul 2026 03:30:21 UTC | Transfer | [0] 0x000000000000…95c61d66 [1] 0x000000000000…43e40951 data: 0x000000000000000000…49e97ec4 |
| 0x9f6991…323539 | 31 days agoSat, 18 Jul 2026 03:30:21 UTC | Transfer | [0] 0x000000000000…9cb86bd7 [1] 0x000000000000…95c61d66 data: 0x000000000000000000…49e97ec4 |
| 0x9eb6be…7ba0e6 | 31 days agoSat, 18 Jul 2026 03:30:20 UTC | Transfer | [0] 0x000000000000…95c61d66 [1] 0x000000000000…43e40951 data: 0x000000000000000000…f37ebd27 |
| 0x9eb6be…7ba0e6 | 31 days agoSat, 18 Jul 2026 03:30:20 UTC | Transfer | [0] 0x000000000000…ad5fd3ef [1] 0x000000000000…95c61d66 data: 0x000000000000000000…f37ebd27 |
| 0x1ea411…31a2bd | 31 days agoSat, 18 Jul 2026 03:30:19 UTC | Transfer | [0] 0x000000000000…95c61d66 [1] 0x000000000000…43e40951 data: 0x000000000000000000…44365d44 |
| 0x1ea411…31a2bd | 31 days agoSat, 18 Jul 2026 03:30:19 UTC | Transfer | [0] 0x000000000000…163cb4c2 [1] 0x000000000000…95c61d66 data: 0x000000000000000000…44365d44 |
| 0xb8ccf5…da70e0 | 31 days agoSat, 18 Jul 2026 03:30:18 UTC | Transfer | [0] 0x000000000000…95c61d66 [1] 0x000000000000…43e40951 data: 0x000000000000000000…e5117c85 |
| Transaction Hash | Method | Block | Age | From | To | Type | Item | ||
|---|---|---|---|---|---|---|---|---|---|
| no NFT transfers for this address yet | |||||||||
| Transaction Hash | Method | Block | Age | From | To | Amount | Token | ||
|---|---|---|---|---|---|---|---|---|---|
| 0xccfe3157…ac4884 | Transfer | 19,781,667 | 22 days agoSun, 26 Jul 2026 09:59:34 UTC | 0xcaf7…5d11 | IN | 0xb827…40ed | $0.001 DIH |
| Transaction Hash | Method ? | Block | Age | From | To | Amount | Txn Fee ? | ||
|---|---|---|---|---|---|---|---|---|---|
| 0x49e778…5b41be | Approve | 12,659,146 | 31 days agoSat, 18 Jul 2026 03:30:29 UTC | 0x71ca…a4c2 | IN | Kinetic Energy | $0.000 ETH | 0.00000356 | |
| 0xa4ab68…dde04b | Approve | 12,657,832 | 31 days agoSat, 18 Jul 2026 03:28:18 UTC | 0x991a…d3ef | IN | Kinetic Energy | $0.000 ETH | 0.00000357 | |
| 0x68dc12…e61453 | Approve | 12,657,831 | 31 days agoSat, 18 Jul 2026 03:28:18 UTC | 0x3e1e…b4c2 | IN | Kinetic Energy | $0.000 ETH | 0.00000357 | |
| 0x96a8e2…d9adc8 | Approve | 12,657,830 | 31 days agoSat, 18 Jul 2026 03:28:18 UTC | 0x2124…c6f1 | IN | Kinetic Energy | $0.000 ETH | 0.00000356 | |
| 0xfc6c66…29ea61 | Approve | 12,657,829 | 31 days agoSat, 18 Jul 2026 03:28:18 UTC | 0xd23d…d8d4 | IN | Kinetic Energy | $0.000 ETH | 0.00000356 | |
| 0x2bfc34…f0447f | Approve | 12,657,828 | 31 days agoSat, 18 Jul 2026 03:28:18 UTC | 0x01cb…4ed7 | IN | Kinetic Energy | $0.000 ETH | 0.00000358 | |
| 0x6ff99f…760469 | Approve | 12,657,827 | 31 days agoSat, 18 Jul 2026 03:28:17 UTC | 0x4304…d850 | IN | Kinetic Energy | $0.000 ETH | 0.00000358 | |
| 0xd6693f…0cc095 | Approve | 12,657,826 | 31 days agoSat, 18 Jul 2026 03:28:17 UTC | 0xbcb9…2bcd | IN | Kinetic Energy | $0.000 ETH | 0.00000358 | |
| 0xf5d73f…271ef7 | Approve | 12,657,825 | 31 days agoSat, 18 Jul 2026 03:28:17 UTC | 0xbdc7…474b | IN | Kinetic Energy | $0.000 ETH | 0.00000358 | |
| 0x24f183…8762b5 | Approve | 12,657,824 | 31 days agoSat, 18 Jul 2026 03:28:17 UTC | 0x1e59…ccbb | IN | Kinetic Energy | $0.000 ETH | 0.00000357 | |
| 0x1adf0b…57ee9f | Approve | 12,657,823 | 31 days agoSat, 18 Jul 2026 03:28:17 UTC | 0x74f0…2959 | IN | Kinetic Energy | $0.000 ETH | 0.00000357 | |
| 0x488b6e…bf7442 | Approve | 12,657,822 | 31 days agoSat, 18 Jul 2026 03:28:17 UTC | 0xe2d5…28c8 | IN | Kinetic Energy | $0.000 ETH | 0.00000357 | |
| 0x5e6f6a…661ca8 | Approve | 12,657,821 | 31 days agoSat, 18 Jul 2026 03:28:17 UTC | 0xb5a6…6bd7 | IN | Kinetic Energy | $0.000 ETH | 0.00000357 |
| Block | Age | Parent Transaction Hash | Type | Method | From | To | Value | |
|---|---|---|---|---|---|---|---|---|
| 12,657,798 | 31 days agoSat, 18 Jul 2026 03:28:15 UTC | 0x294fe6…e0feae | CREATE2 | deployCoin | 0x750d…05c3 | IN | 0xb827…40ed | 0 ETH |