// 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"
}
]0x608060408181526004918236101561001657600080fd5b600092833560e01c91826302d05d3f1461057b5750816306fdde03146104bd578163095ea7b31461040f57816318160ddd146103f057816323b872dd146103b3578163313ce5671461039757816332cb6b0c14610371578163392f37e9146103485781633c130d901461034857816342966c681461032a5781634bde38c8146102e657816370a08231146102af57816379cc6790146102795781638da5cb5b1461025e57816395d89b411461015b57508063a9059cbb1461012b5763dd62ed3e146100e057600080fd5b34610127578060031936011261012757806020926100fc610607565b610104610622565b6001600160a01b0391821683526001865283832091168252845220549051908152f35b5080fd5b503461012757806003193601126101275760209061015461014a610607565b6024359033610808565b5160018152f35b83833461012757816003193601126101275780519082845460018160011c9060018316928315610254575b60209384841081146102415783885290811561022557506001146101ed575b505050829003601f01601f19168201926001600160401b038411838510176101da57508291826101d69252826105be565b0390f35b634e487b7160e01b815260418552602490fd5b919250868652828620918387935b83851061021157505050508301018580806101a5565b8054888601830152930192849082016101fb565b60ff1916878501525050151560051b84010190508580806101a5565b634e487b7160e01b895260228a52602489fd5b91607f1691610186565b50503461012757816003193601126101275751908152602090f35b505034610127573660031901126102ac576102a9610295610607565b602435906102a4823383610743565b6108bf565b80f35b80fd5b5050346101275760203660031901126101275760209181906001600160a01b036102d7610607565b16815280845220549051908152f35b505034610127578160031936011261012757517f000000000000000000000000750d0bc66baa12cf1710a8ba939b97db4ad005c36001600160a01b03168152602090f35b839034610127576020366003190112610127576102a99035336108bf565b5050346101275781600319360112610127576101d690610366610638565b9051918291826105be565b50503461012757816003193601126101275751676765c793fa10079d601b1b8152602090f35b5050346101275781600319360112610127576020905160128152f35b505034610127576060366003190112610127576020906101546103d4610607565b6103dc610622565b604435916103eb833383610743565b610808565b5050346101275781600319360112610127576020906002549051908152f35b9050346104b957816003193601126104b957610429610607565b6024359033156104a2576001600160a01b031691821561048b57508083602095338152600187528181208582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b8351634a1406b160e11b8152908101859052602490fd5b835163e602df0560e01b8152808401869052602490fd5b8280fd5b8383346101275781600319360112610127578051908260035460018160011c9060018316928315610571575b602093848410811461024157838852908115610225575060011461053857505050829003601f01601f19168201926001600160401b038411838510176101da57508291826101d69252826105be565b91925060038652828620918387935b83851061055d57505050508301018580806101a5565b805488860183015293019284908201610547565b91607f16916104e9565b8490346101275781600319360112610127577f0000000000000000000000000b27e9baf7214acd346e813dc0832cdcb5d7f8946001600160a01b03168152602090f35b6020808252825181830181905290939260005b8281106105f357505060409293506000838284010152601f8019910116010190565b8181018601518482016040015285016105d1565b600435906001600160a01b038216820361061d57565b600080fd5b602435906001600160a01b038216820361061d57565b60405190600060055460018160011c906001831692831561071b575b6020938484108114610707578388529081156106eb57506001146106af575b505050829003601f01601f191682016001600160401b0381118382101761069957604052565b634e487b7160e01b600052604160045260246000fd5b91925060056000528260002091836000935b8385106106d75750505050830101388080610673565b8054888601830152930192849082016106c1565b60ff1916878501525050151560051b8401019050388080610673565b634e487b7160e01b86526022600452602486fd5b91607f1691610654565b604091949392606082019560018060a01b0316825260208201520152565b9160018060a01b038093169160009383855260016020526040938486209183169182875260205284862054926000198410610782575b50505050505050565b8484106107e6575080156107ce5781156107b657855260016020528385209085526020520391205538808080808080610779565b8451634a1406b160e11b815260048101879052602490fd5b845163e602df0560e01b815260048101879052602490fd5b8390610804868851938493637dc7a0d960e11b855260048501610725565b0390fd5b916001600160a01b038084169283156108a6571692831561088d576000908382528160205260408220549083821061087057509160408282600080516020610938833981519152958760209652828652038282205586815220818154019055604051908152a3565b6108048460405193849363391434e360e21b855260048501610725565b60405163ec442f0560e01b815260006004820152602490fd5b604051634b637e8f60e11b815260006004820152602490fd5b906001600160a01b0382169081156108a6576000928284528360205260408420549082821061091a575081600080516020610938833981519152926020928587528684520360408620558060025403600255604051908152a3565b6108048360405193849363391434e360e21b85526004850161072556feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220ada93c449dc8f52aabeaae3c5c4df3ee584550926fbfc94753c9be0292c2f22064736f6c63430008180033
| Token | Symbol | Balance | Price | Value |
|---|---|---|---|---|
| no token holdings | ||||
| Transaction Hash | Method | Block | Age | From | To | Amount | Token | ||
|---|---|---|---|---|---|---|---|---|---|
| no token 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 | Type | Item | ||
|---|---|---|---|---|---|---|---|---|---|
| no NFT transfers for this address yet | |||||||||
| Txn Hash | Age | Event | Topics / Data |
|---|---|---|---|
| 0x7936ea…985aa8 | 31 days agoFri, 17 Jul 2026 04:18:00 UTC | Transfer | [0] 0x000000000000…0bfa9436 [1] 0x000000000000…43e40951 data: 0x000000000000000000…02543938 |
| 0x7936ea…985aa8 | 31 days agoFri, 17 Jul 2026 04:18:00 UTC | Transfer | [0] 0x000000000000…0bfa9436 [1] 0x000000000000…b5d7f894 data: 0x000000000000000000…5ac48583 |
| 0x7936ea…985aa8 | 31 days agoFri, 17 Jul 2026 04:18:00 UTC | Transfer | [0] 0x000000000000…43e40951 [1] 0x000000000000…0bfa9436 data: 0x000000000000000000…5d18bebb |
| 0xada3e5…23cf81 | 32 days agoThu, 16 Jul 2026 22:07:01 UTC | Transfer | [0] 0x000000000000…95c61d66 [1] 0x000000000000…43e40951 data: 0x000000000000000000…0993ed96 |
| 0xada3e5…23cf81 | 32 days agoThu, 16 Jul 2026 22:07:01 UTC | Transfer | [0] 0x000000000000…b5d7f894 [1] 0x000000000000…95c61d66 data: 0x000000000000000000…0993ed96 |
| 0x844339…fe36b9 | 32 days agoThu, 16 Jul 2026 22:06:57 UTC | Approval | [0] 0x000000000000…b5d7f894 [1] 0x000000000000…95c61d66 data: 0x000000000000000000…0993ed96 |
| 0xf09313…802a8a | 32 days agoThu, 16 Jul 2026 22:06:52 UTC | Transfer | [0] 0x000000000000…95c61d66 [1] 0x000000000000…43e40951 data: 0x000000000000000000…0bc59bf4 |
| 0xf09313…802a8a | 32 days agoThu, 16 Jul 2026 22:06:52 UTC | Transfer | [0] 0x000000000000…bf64799a [1] 0x000000000000…95c61d66 data: 0x000000000000000000…0bc59bf4 |
| 0x0f6211…c28eb2 | 32 days agoThu, 16 Jul 2026 22:06:48 UTC | Approval | [0] 0x000000000000…bf64799a [1] 0x000000000000…95c61d66 data: 0x000000000000000000…0bc59bf4 |
| 0x2902e8…d73f8f | 32 days agoThu, 16 Jul 2026 22:06:44 UTC | Transfer | [0] 0x000000000000…95c61d66 [1] 0x000000000000…43e40951 data: 0x000000000000000000…9bf748f4 |
| 0x2902e8…d73f8f | 32 days agoThu, 16 Jul 2026 22:06:44 UTC | Transfer | [0] 0x000000000000…1ad40d46 [1] 0x000000000000…95c61d66 data: 0x000000000000000000…9bf748f4 |
| 0x2d988d…7f3343 | 32 days agoThu, 16 Jul 2026 22:06:39 UTC | Approval | [0] 0x000000000000…1ad40d46 [1] 0x000000000000…95c61d66 data: 0x000000000000000000…9bf748f4 |
| 0x237df6…12fb4c | 32 days agoThu, 16 Jul 2026 22:06:35 UTC | Transfer | [0] 0x000000000000…95c61d66 [1] 0x000000000000…43e40951 data: 0x000000000000000000…1fceb15c |
| 0x237df6…12fb4c | 32 days agoThu, 16 Jul 2026 22:06:35 UTC | Transfer | [0] 0x000000000000…a9613e22 [1] 0x000000000000…95c61d66 data: 0x000000000000000000…1fceb15c |
| 0xd29e26…84db1f | 32 days agoThu, 16 Jul 2026 22:06:31 UTC | Approval | [0] 0x000000000000…a9613e22 [1] 0x000000000000…95c61d66 data: 0x000000000000000000…1fceb15c |
| 0x342236…c7903b | 32 days agoThu, 16 Jul 2026 22:06:26 UTC | Transfer | [0] 0x000000000000…95c61d66 [1] 0x000000000000…43e40951 data: 0x000000000000000000…edf5c7af |
| 0x342236…c7903b | 32 days agoThu, 16 Jul 2026 22:06:26 UTC | Transfer | [0] 0x000000000000…8e4595d6 [1] 0x000000000000…95c61d66 data: 0x000000000000000000…edf5c7af |
| 0x750838…8f4170 | 32 days agoThu, 16 Jul 2026 22:06:22 UTC | Approval | [0] 0x000000000000…8e4595d6 [1] 0x000000000000…95c61d66 data: 0x000000000000000000…edf5c7af |
| 0xa461ac…a9af2f | 32 days agoThu, 16 Jul 2026 22:06:18 UTC | Transfer | [0] 0x000000000000…95c61d66 [1] 0x000000000000…43e40951 data: 0x000000000000000000…92c25446 |
| 0xa461ac…a9af2f | 32 days agoThu, 16 Jul 2026 22:06:18 UTC | Transfer | [0] 0x000000000000…03326226 [1] 0x000000000000…95c61d66 data: 0x000000000000000000…92c25446 |
| 0xca6cd5…a64cdf | 32 days agoThu, 16 Jul 2026 22:06:13 UTC | Approval | [0] 0x000000000000…03326226 [1] 0x000000000000…95c61d66 data: 0x000000000000000000…92c25446 |
| 0x9868b4…f5759d | 32 days agoThu, 16 Jul 2026 22:06:09 UTC | Transfer | [0] 0x000000000000…95c61d66 [1] 0x000000000000…43e40951 data: 0x000000000000000000…36c4936d |
| 0x9868b4…f5759d | 32 days agoThu, 16 Jul 2026 22:06:09 UTC | Transfer | [0] 0x000000000000…4f8b2bcd [1] 0x000000000000…95c61d66 data: 0x000000000000000000…36c4936d |
| 0xc593da…a0e159 | 32 days agoThu, 16 Jul 2026 22:06:04 UTC | Approval | [0] 0x000000000000…4f8b2bcd [1] 0x000000000000…95c61d66 data: 0x000000000000000000…36c4936d |
| 0x432fa9…68d642 | 32 days agoThu, 16 Jul 2026 22:06:00 UTC | Transfer | [0] 0x000000000000…95c61d66 [1] 0x000000000000…43e40951 data: 0x000000000000000000…d50e4c29 |
| Transaction Hash | Method ? | Block | Age | From | To | Amount | Txn Fee ? | ||
|---|---|---|---|---|---|---|---|---|---|
| 0x844339…fe36b9 | Approve | 11,604,032 | 32 days agoThu, 16 Jul 2026 22:06:57 UTC | 0x0b27…f894 | IN | humanslop | $0.000 ETH | 0.00000357 | |
| 0x0f6211…c28eb2 | Approve | 11,603,946 | 32 days agoThu, 16 Jul 2026 22:06:48 UTC | 0x166d…799a | IN | humanslop | $0.000 ETH | 0.00000360 | |
| 0x2d988d…7f3343 | Approve | 11,603,860 | 32 days agoThu, 16 Jul 2026 22:06:39 UTC | 0x39fa…0d46 | IN | humanslop | $0.000 ETH | 0.00000369 | |
| 0xd29e26…84db1f | Approve | 11,603,773 | 32 days agoThu, 16 Jul 2026 22:06:31 UTC | 0xfca5…3e22 | IN | humanslop | $0.000 ETH | 0.00000357 | |
| 0x750838…8f4170 | Approve | 11,603,686 | 32 days agoThu, 16 Jul 2026 22:06:22 UTC | 0xd3da…95d6 | IN | humanslop | $0.000 ETH | 0.00000359 | |
| 0xca6cd5…a64cdf | Approve | 11,603,599 | 32 days agoThu, 16 Jul 2026 22:06:13 UTC | 0x0d4a…6226 | IN | humanslop | $0.000 ETH | 0.00000365 | |
| 0xc593da…a0e159 | Approve | 11,603,510 | 32 days agoThu, 16 Jul 2026 22:06:04 UTC | 0xbcb9…2bcd | IN | humanslop | $0.000 ETH | 0.00000362 | |
| 0x1064aa…543b1c | Approve | 11,603,423 | 32 days agoThu, 16 Jul 2026 22:05:56 UTC | 0x4304…d850 | IN | humanslop | $0.000 ETH | 0.00000365 |
| Block | Age | Parent Transaction Hash | Type | Method | From | To | Value | |
|---|---|---|---|---|---|---|---|---|
| 11,602,032 | 32 days agoThu, 16 Jul 2026 22:03:36 UTC | 0x403f13…c1fdef | CREATE2 | deployCoin | 0x750d…05c3 | IN | 0x74bb…acf4 | 0 ETH |