// SPDX-License-Identifier: BUSL-1.1
pragma solidity 0.8.26;
import { ERC20 } from "openzeppelin-contracts/contracts/token/ERC20/ERC20.sol";
/// @notice Plain fixed-supply launch token. Policy lives in the associated v4 pool hook.
contract QuiverTokenV2 is ERC20 {
string public imageURI;
constructor(string memory name_, string memory symbol_, uint256 supply_, string memory imageURI_)
ERC20(name_, symbol_)
{
imageURI = imageURI_;
_mint(msg.sender, supply_);
}
/// @notice ERC-7572-compatible, self-contained token metadata.
function contractURI() external view returns (string memory) {
return string(
abi.encodePacked(
'data:application/json;utf8,{"name":"',
_jsonEscape(name()),
'","symbol":"',
_jsonEscape(symbol()),
'","image":"',
_jsonEscape(imageURI),
'"}'
)
);
}
function _jsonEscape(string memory value) private pure returns (string memory) {
bytes memory input = bytes(value);
bytes memory output = new bytes(input.length * 2);
uint256 j;
for (uint256 i; i < input.length; ++i) {
bytes1 char = input[i];
if (char == '"' || char == "\\") {
output[j++] = "\\";
output[j++] = char;
} else if (uint8(char) >= 0x20) {
output[j++] = char;
}
}
assembly ("memory-safe") {
mstore(output, j)
}
return string(output);
}
}[
{
"type": "constructor",
"inputs": [
{
"name": "name_",
"type": "string",
"internalType": "string"
},
{
"name": "symbol_",
"type": "string",
"internalType": "string"
},
{
"name": "supply_",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "imageURI_",
"type": "string",
"internalType": "string"
}
],
"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": "contractURI",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"name": "decimals",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint8",
"internalType": "uint8"
}
],
"stateMutability": "view"
},
{
"name": "imageURI",
"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": "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"
}
]0x60806040526004361015610011575f80fd5b5f3560e01c806306fdde0314610687578063095ea7b3146105da578063135d088d146105a157806318160ddd1461056657806323b872dd146103d2578063313ce5671461039957806370a082311461033757806395d89b41146102fe578063a9059cbb146102af578063dd62ed3e146102235763e8a3d48514610092575f80fd5b3461021f575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261021f5761021b602061020f6002600b6100dc6100d76107bc565b610c21565b600c856100ea6100d7610981565b6044826100f86100d76108d5565b926040519a8b977f646174613a6170706c69636174696f6e2f6a736f6e3b757466382c7b226e616d828a01527f65223a220000000000000000000000000000000000000000000000000000000060408a0152805191829101858a015e8701907f222c2273796d626f6c223a22000000000000000000000000000000000000000084830152805192839101605083015e0101907f222c22696d616765223a2200000000000000000000000000000000000000000084830152805192839101601783015e01017f227d0000000000000000000000000000000000000000000000000000000000008382015203017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe281018452018261074e565b604051918291826106c0565b0390f35b5f80fd5b3461021f5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261021f5761025a610708565b73ffffffffffffffffffffffffffffffffffffffff61027761072b565b91165f52600160205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f52602052602060405f2054604051908152f35b3461021f5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261021f576102f36102e9610708565b6024359033610a2d565b602060405160018152f35b3461021f575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261021f5761021b61020f610981565b3461021f5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261021f5773ffffffffffffffffffffffffffffffffffffffff610383610708565b165f525f602052602060405f2054604051908152f35b3461021f575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261021f57602060405160128152f35b3461021f5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261021f57610409610708565b61041161072b565b6044359073ffffffffffffffffffffffffffffffffffffffff831692835f52600160205260405f2073ffffffffffffffffffffffffffffffffffffffff33165f5260205260405f20547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810361048d575b506102f39350610a2d565b8381106105325784156105065733156104da576102f3945f52600160205260405f2073ffffffffffffffffffffffffffffffffffffffff33165f526020528360405f209103905584610482565b7f94280d62000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b7fe602df05000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b83907ffb8f41b2000000000000000000000000000000000000000000000000000000005f523360045260245260445260645ffd5b3461021f575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261021f576020600254604051908152f35b3461021f575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261021f5761021b61020f6108d5565b3461021f5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261021f57610611610708565b6024359033156105065773ffffffffffffffffffffffffffffffffffffffff169081156104da57335f52600160205260405f20825f526020528060405f20556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b3461021f575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261021f5761021b61020f6107bc565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602060409481855280519182918282880152018686015e5f8582860101520116010190565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361021f57565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361021f57565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761078f57604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b604051905f6003548060011c91600182169182156108cb575b60208410831461089e5783865285929081156108615750600114610802575b6108009250038361074e565b565b5060035f90815290917fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b818310610845575050906020610800928201016107f4565b602091935080600191548385890101520191019091849261082d565b602092506108009491507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001682840152151560051b8201016107f4565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b92607f16926107d5565b604051905f6005548060011c9160018216918215610977575b60208410831461089e5783865285929081156108615750600114610918576108009250038361074e565b5060055f90815290917f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db05b81831061095b575050906020610800928201016107f4565b6020919350806001915483858901015201910190918492610943565b92607f16926108ee565b604051905f6004548060011c9160018216918215610a23575b60208410831461089e57838652859290811561086157506001146109c4576108009250038361074e565b5060045f90815290917f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b818310610a07575050906020610800928201016107f4565b60209193508060019154838589010152019101909184926109ef565b92607f169261099a565b73ffffffffffffffffffffffffffffffffffffffff16908115610b235773ffffffffffffffffffffffffffffffffffffffff16918215610af757815f525f60205260405f2054818110610ac557817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f84520360405f2055845f525f825260405f20818154019055604051908152a3565b827fe450d38c000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b7fec442f05000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b7f96c6fd1e000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b67ffffffffffffffff811161078f57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b908151811015610b9a570160200190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610bf45760010190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b9081518060011b9080820460021490151715610bf4577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0610c7a610c6483610b4f565b92610c72604051948561074e565b808452610b4f565b013660208301375f805b8451821015610d7d57610c978286610b89565b51917fff000000000000000000000000000000000000000000000000000000000000008316927f220000000000000000000000000000000000000000000000000000000000000084148015610d54575b15610d25575081605c610d05610cfe600195610bc7565b9287610b89565b53610d1c610d1282610bc7565b945f1a9186610b89565b535b0190610c84565b60209060f81c1015610d3c575b6001919250610d1e565b600191610d4b610d1282610bc7565b53829150610d32565b507f5c000000000000000000000000000000000000000000000000000000000000008414610ce7565b825250915056
| Token | Symbol | Balance | Price | Value |
|---|---|---|---|---|
| no token holdings | ||||
| Txn Hash | Age | Event | Topics / Data |
|---|---|---|---|
| 0x8fe3b7…73cfde | 19 days agoWed, 29 Jul 2026 15:33:57 UTC | Transfer | [0] 0x000000000000…c68c63ad [1] 0x000000000000…43e40951 data: 0x000000000000000000…48e6f9b2 |
| 0x3a57d9…f449b8 | 19 days agoWed, 29 Jul 2026 15:33:50 UTC | Transfer | [0] 0x000000000000…1bb49acf [1] 0x000000000000…c4a555d4 data: 0x000000000000000000…9239be6c |
| 0x3a57d9…f449b8 | 19 days agoWed, 29 Jul 2026 15:33:50 UTC | Transfer | [0] 0x000000000000…1bb49acf [1] 0x000000000000…c68c63ad data: 0x000000000000000000…48e6f9b2 |
| 0x3a57d9…f449b8 | 19 days agoWed, 29 Jul 2026 15:33:50 UTC | Transfer | [0] 0x000000000000…43e40951 [1] 0x000000000000…1bb49acf data: 0x000000000000000000…db20b81e |
| 0x7de6cf…a2952a | 19 days agoWed, 29 Jul 2026 15:33:44 UTC | Transfer | [0] 0x000000000000…c68c63ad [1] 0x000000000000…43e40951 data: 0x000000000000000000…98c7ebfd |
| 0xe029cd…cbc298 | 19 days agoWed, 29 Jul 2026 15:33:43 UTC | Approval | [0] 0x000000000000…c68c63ad [1] 0x000000000000…3ac78ba3 data: 0xffffffffffffffffff…ffffffff |
| 0xaa1ff2…776cf5 | 19 days agoWed, 29 Jul 2026 15:31:06 UTC | Transfer | [0] 0x000000000000…43e40951 [1] 0x000000000000…c68c63ad data: 0x000000000000000000…e152f21b |
| 0x66477f…1ac609 | 19 days agoWed, 29 Jul 2026 15:30:44 UTC | Transfer | [0] 0x000000000000…d6bd584d [1] 0x000000000000…c68c63ad data: 0x000000000000000000…b774f9e2 |
| 0x66477f…1ac609 | 19 days agoWed, 29 Jul 2026 15:30:44 UTC | Transfer | [0] 0x000000000000…43e40951 [1] 0x000000000000…d6bd584d data: 0x000000000000000000…b774f9e2 |
| 0x66477f…1ac609 | 19 days agoWed, 29 Jul 2026 15:30:44 UTC | Approval | [0] 0x000000000000…d6bd584d [1] 0x000000000000…3ac78ba3 data: 0x000000000000000000…00000000 |
| 0x66477f…1ac609 | 19 days agoWed, 29 Jul 2026 15:30:44 UTC | Transfer | [0] 0x000000000000…d6bd584d [1] 0x000000000000…43e40951 data: 0x000000000000000000…e7ffe2a9 |
| 0x66477f…1ac609 | 19 days agoWed, 29 Jul 2026 15:30:44 UTC | Approval | [0] 0x000000000000…d6bd584d [1] 0x000000000000…3ac78ba3 data: 0x000000000000000000…e8000000 |
| 0x66477f…1ac609 | 19 days agoWed, 29 Jul 2026 15:30:44 UTC | Transfer | [0] 0x000000000000…00000000 [1] 0x000000000000…d6bd584d data: 0x000000000000000000…e8000000 |
| Type | Age | Block | Details |
|---|---|---|---|
| no cross-chain L1↔L2 transactions for this address | |||
| Transaction Hash | Method | Block | Age | From | To | Amount | Token | ||
|---|---|---|---|---|---|---|---|---|---|
| no token transfers for this address yet | |||||||||
| Transaction Hash | Method | Block | Age | From | To | Type | Item | ||
|---|---|---|---|---|---|---|---|---|---|
| no NFT transfers for this address yet | |||||||||
| Transaction Hash | Method ? | Block | Age | From | To | Amount | Txn Fee ? | ||
|---|---|---|---|---|---|---|---|---|---|
| 0xe029cd…cbc298 | Approve | 22,564,506 | 19 days agoWed, 29 Jul 2026 15:33:43 UTC | 0x028a…63ad | IN | tt | $0.000 ETH | 0.00000102 |
| Block | Age | Parent Transaction Hash | Type | Method | From | To | Value | |
|---|---|---|---|---|---|---|---|---|
| 22,562,716 | 19 days agoWed, 29 Jul 2026 15:30:44 UTC | 0x66477f…1ac609 | CREATE2 | launch | 0x7ed1…584d | IN | 0x712e…cf95 | 0 ETH |