// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;
import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";
interface IShareTracker {
function setShare(address account, uint256 balance) external;
}
/**
* @title PadQuiverToken
* @author PadQuiver Launchpad — https://padquiver.com/
* @custom:website https://padquiver.com/
* @notice A token created on the PadQuiver launchpad. There is NO TRANSFER TAX
* (fully compatible with Uniswap V3 — the full amount arrives on a swap). Rewards
* come not from a transfer tax but from the LP fees that accrue in the V3 pool.
*
* The only special behavior: on every transfer the balance is reported to the
* reward ledger (distributor) — which makes "just hold, earn rewards" possible.
*/
contract PadQuiverToken is ERC20 {
/// @notice Official PadQuiver launchpad website (readable on-chain).
string public constant WEBSITE = "https://padquiver.com/";
address public distributor;
address public immutable creator;
constructor(
string memory name_,
string memory symbol_,
uint256 totalSupply_,
address mintTo,
address creator_
) ERC20(name_, symbol_) {
creator = creator_;
_mint(mintTo, totalSupply_);
}
/// @notice Links the distributor. Can be set only once; because the factory calls it
/// atomically within the createToken flow, it cannot be front-run.
function initializeDistributor(address distributor_) external {
require(distributor == address(0), "RRT: distributor set");
require(distributor_ != address(0), "RRT: zero distributor");
distributor = distributor_;
}
function _update(address from, address to, uint256 amount) internal override {
super._update(from, to, amount);
address d = distributor;
if (d != address(0)) {
if (from != address(0)) IShareTracker(d).setShare(from, balanceOf(from));
if (to != address(0)) IShareTracker(d).setShare(to, balanceOf(to));
}
}
}[
{
"type": "constructor",
"inputs": [
{
"name": "name_",
"type": "string",
"internalType": "string"
},
{
"name": "symbol_",
"type": "string",
"internalType": "string"
},
{
"name": "totalSupply_",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "mintTo",
"type": "address",
"internalType": "address"
},
{
"name": "creator_",
"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": "WEBSITE",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"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": "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": "distributor",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "initializeDistributor",
"type": "function",
"inputs": [
{
"name": "distributor_",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"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"
}
]0x608060408181526004918236101561001657600080fd5b600092833560e01c91826302d05d3f1461069e5750816306fdde03146105a7578163095ea7b3146104fd57816318160ddd146104de57816323b872dd146103e7578163283dc96f14610373578163313ce567146103575781635b1647791461029357816370a082311461025c57816395d89b411461015757508063a9059cbb14610127578063bfe10928146100ff5763dd62ed3e146100b457600080fd5b346100fb57806003193601126100fb57806020926100d061072a565b6100d8610745565b6001600160a01b0391821683526001865283832091168252845220549051908152f35b5080fd5b50346100fb57816003193601126100fb5760055490516001600160a01b039091168152602090f35b50346100fb57806003193601126100fb5760209061015061014661072a565b60243590336107a7565b5160018152f35b8383346100fb57816003193601126100fb5780519180938054916001908360011c9260018516948515610252575b602095868610811461023f5785895290811561021b57506001146101c3575b6101bf87876101b5828c0383610785565b51918291826106e1565b0390f35b81529295507f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b82841061020857505050826101bf946101b5928201019486806101a4565b80548685018801529286019281016101ea565b60ff19168887015250505050151560051b83010192506101b5826101bf86806101a4565b634e487b7160e01b845260228352602484fd5b93607f1693610185565b5050346100fb5760203660031901126100fb5760209181906001600160a01b0361028461072a565b16815280845220549051908152f35b905034610353576020366003190112610353576102ae61072a565b60055491906001600160a01b039081841661031957169283156102de5750506001600160a01b0319161760055580f35b906020606492519162461bcd60e51b8352820152601560248201527429292a1d103d32b937903234b9ba3934b13aba37b960591b6044820152fd5b845162461bcd60e51b815260208185015260146024820152731494950e88191a5cdd1c9a589d5d1bdc881cd95d60621b6044820152606490fd5b8280fd5b5050346100fb57816003193601126100fb576020905160128152f35b8383346100fb57816003193601126100fb578051918183019083821067ffffffffffffffff8311176103d457506101bf93508152601682527568747470733a2f2f7061647175697665722e636f6d2f60501b602083015251918291826106e1565b634e487b7160e01b815260418552602490fd5b905082346104db5760603660031901126104db5761040361072a565b61040b610745565b916044359360018060a01b038316808352600160205286832033845260205286832054916000198310610447575b6020886101508989896107a7565b8683106104af5781156104985733156104815750825260016020908152868320338452815291869020908590039055829061015087610439565b8751634a1406b160e11b8152908101849052602490fd5b875163e602df0560e01b8152908101849052602490fd5b8751637dc7a0d960e11b8152339181019182526020820193909352604081018790528291506060010390fd5b80fd5b5050346100fb57816003193601126100fb576020906002549051908152f35b90503461035357816003193601126103535761051761072a565b602435903315610590576001600160a01b031691821561057957508083602095338152600187528181208582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b8351634a1406b160e11b8152908101859052602490fd5b835163e602df0560e01b8152808401869052602490fd5b9190503461035357826003193601126103535780519183600354906001908260011c92600181168015610694575b6020958686108214610681575084885290811561065f5750600114610606575b6101bf86866101b5828b0383610785565b929550600383527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b82841061064c57505050826101bf946101b59282010194386105f5565b805486850188015292860192810161062f565b60ff191687860152505050151560051b83010192506101b5826101bf386105f5565b634e487b7160e01b845260229052602483fd5b93607f16936105d5565b8490346100fb57816003193601126100fb577f00000000000000000000000026d03291669c49b613c19f53ad6745fe5ab907906001600160a01b03168152602090f35b6020808252825181830181905290939260005b82811061071657505060409293506000838284010152601f8019910116010190565b8181018601518482016040015285016106f4565b600435906001600160a01b038216820361074057565b600080fd5b602435906001600160a01b038216820361074057565b67ffffffffffffffff811161076f57604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff82111761076f57604052565b600092916001600160a01b03808316919082156109635780821690811561094a57838752866020526040958688205481811061091b577fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60208386948994858e528d8452038b8d2055848c528a8c208181540190558a51908152a3600554169283610836575b50505050505050565b86528560205284862054833b15610917578551630a5b654b60e11b8082526001600160a01b039690961660048201526024810191909152868160448183885af1801561090d576108fa575b508552846020528385205492823b156108f65784519081526001600160a01b03919091166004820152602481019290925290919083908390604490829084905af19081156108ed57506108d9575b808080808061082d565b6108e3829161075b565b6104db57806108cf565b513d84823e3d90fd5b8580fd5b6109069096919661075b565b9438610881565b86513d89823e3d90fd5b8680fd5b875163391434e360e21b81526001600160a01b0388166004820152602481019190915260448101829052606490fd5b60405163ec442f0560e01b815260048101889052602490fd5b604051634b637e8f60e11b815260048101879052602490fdfea2646970667358221220610aabcb77f993b147ed18989291a5fcd7b848b0d7e8f0493f5ebcd54624706d64736f6c63430008180033
| Token | Symbol | Balance | Price | Value |
|---|---|---|---|---|
| no token holdings | ||||
| 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 | ||
|---|---|---|---|---|---|---|---|---|---|
| no token transfers for this address yet | |||||||||
| Block | Age | Parent Transaction Hash | Type | Method | From | To | Value | |
|---|---|---|---|---|---|---|---|---|
| no internal transactions found for this address yet (traced blocks + on-demand) | ||||||||
| Txn Hash | Age | Event | Topics / Data |
|---|---|---|---|
| 0x3064ba…9e913a | 33 days agoWed, 15 Jul 2026 06:45:03 UTC | Approval | [0] 0x000000000000…584a1781 [1] 0x000000000000…0176bd24 data: 0x000000000000000000…00000000 |
| 0x3064ba…9e913a | 33 days agoWed, 15 Jul 2026 06:45:03 UTC | Transfer | [0] 0x000000000000…584a1781 [1] 0x000000000000…b6a409e6 data: 0x000000000000000000…00000001 |
| 0x3064ba…9e913a | 33 days agoWed, 15 Jul 2026 06:45:03 UTC | Approval | [0] 0x000000000000…584a1781 [1] 0x000000000000…0176bd24 data: 0x000000000000000000…00000001 |
| 0x3064ba…9e913a | 33 days agoWed, 15 Jul 2026 06:45:03 UTC | Transfer | [0] 0x000000000000…b6a409e6 [1] 0x000000000000…584a1781 data: 0x000000000000000000…00000001 |
| 0x2091a8…4459ae | 33 days agoWed, 15 Jul 2026 06:30:03 UTC | Approval | [0] 0x000000000000…584a1781 [1] 0x000000000000…0176bd24 data: 0x000000000000000000…00000000 |
| 0x2091a8…4459ae | 33 days agoWed, 15 Jul 2026 06:30:03 UTC | Transfer | [0] 0x000000000000…584a1781 [1] 0x000000000000…b6a409e6 data: 0x000000000000000000…00000002 |
| 0x2091a8…4459ae | 33 days agoWed, 15 Jul 2026 06:30:03 UTC | Approval | [0] 0x000000000000…584a1781 [1] 0x000000000000…0176bd24 data: 0x000000000000000000…00000002 |
| 0x2091a8…4459ae | 33 days agoWed, 15 Jul 2026 06:30:03 UTC | Transfer | [0] 0x000000000000…b6a409e6 [1] 0x000000000000…584a1781 data: 0x000000000000000000…00000002 |
| 0x521e72…a0ec52 | 33 days agoWed, 15 Jul 2026 06:15:03 UTC | Approval | [0] 0x000000000000…584a1781 [1] 0x000000000000…0176bd24 data: 0x000000000000000000…00000000 |
| 0x521e72…a0ec52 | 33 days agoWed, 15 Jul 2026 06:15:03 UTC | Transfer | [0] 0x000000000000…584a1781 [1] 0x000000000000…b6a409e6 data: 0x000000000000000000…00000003 |
| 0x521e72…a0ec52 | 33 days agoWed, 15 Jul 2026 06:15:03 UTC | Approval | [0] 0x000000000000…584a1781 [1] 0x000000000000…0176bd24 data: 0x000000000000000000…00000003 |
| 0x521e72…a0ec52 | 33 days agoWed, 15 Jul 2026 06:15:03 UTC | Transfer | [0] 0x000000000000…b6a409e6 [1] 0x000000000000…584a1781 data: 0x000000000000000000…00000003 |
| 0x8482fe…7ca362 | 33 days agoWed, 15 Jul 2026 06:00:02 UTC | Approval | [0] 0x000000000000…584a1781 [1] 0x000000000000…0176bd24 data: 0x000000000000000000…00000000 |
| 0x8482fe…7ca362 | 33 days agoWed, 15 Jul 2026 06:00:02 UTC | Transfer | [0] 0x000000000000…584a1781 [1] 0x000000000000…b6a409e6 data: 0x000000000000000000…00000004 |
| 0x8482fe…7ca362 | 33 days agoWed, 15 Jul 2026 06:00:02 UTC | Approval | [0] 0x000000000000…584a1781 [1] 0x000000000000…0176bd24 data: 0x000000000000000000…00000004 |
| 0x8482fe…7ca362 | 33 days agoWed, 15 Jul 2026 06:00:02 UTC | Transfer | [0] 0x000000000000…b6a409e6 [1] 0x000000000000…584a1781 data: 0x000000000000000000…00000004 |
| 0x3893dc…d72b58 | 33 days agoWed, 15 Jul 2026 05:45:02 UTC | Approval | [0] 0x000000000000…584a1781 [1] 0x000000000000…0176bd24 data: 0x000000000000000000…00000000 |
| 0x3893dc…d72b58 | 33 days agoWed, 15 Jul 2026 05:45:02 UTC | Transfer | [0] 0x000000000000…584a1781 [1] 0x000000000000…b6a409e6 data: 0x000000000000000000…00000005 |
| 0x3893dc…d72b58 | 33 days agoWed, 15 Jul 2026 05:45:02 UTC | Approval | [0] 0x000000000000…584a1781 [1] 0x000000000000…0176bd24 data: 0x000000000000000000…00000005 |
| 0x3893dc…d72b58 | 33 days agoWed, 15 Jul 2026 05:45:02 UTC | Transfer | [0] 0x000000000000…b6a409e6 [1] 0x000000000000…584a1781 data: 0x000000000000000000…00000005 |
| 0xeb1754…9a5302 | 33 days agoWed, 15 Jul 2026 05:30:03 UTC | Approval | [0] 0x000000000000…584a1781 [1] 0x000000000000…0176bd24 data: 0x000000000000000000…00000000 |
| 0xeb1754…9a5302 | 33 days agoWed, 15 Jul 2026 05:30:03 UTC | Transfer | [0] 0x000000000000…584a1781 [1] 0x000000000000…b6a409e6 data: 0x000000000000000000…00000006 |
| 0xeb1754…9a5302 | 33 days agoWed, 15 Jul 2026 05:30:03 UTC | Approval | [0] 0x000000000000…584a1781 [1] 0x000000000000…0176bd24 data: 0x000000000000000000…00000006 |
| 0xeb1754…9a5302 | 33 days agoWed, 15 Jul 2026 05:30:03 UTC | Transfer | [0] 0x000000000000…b6a409e6 [1] 0x000000000000…584a1781 data: 0x000000000000000000…00000006 |
| 0xbd7ea8…2ec5ed | 34 days agoWed, 15 Jul 2026 05:15:03 UTC | Approval | [0] 0x000000000000…584a1781 [1] 0x000000000000…0176bd24 data: 0x000000000000000000…00000000 |
| Transaction Hash | Method ? | Block | Age | From | To | Amount | Txn Fee ? | ||
|---|---|---|---|---|---|---|---|---|---|
| 0x0d09cd…2c362c | Approve | 8,855,294 | 35 days agoMon, 13 Jul 2026 17:42:11 UTC | 0x7ef0…7ce6 | IN | PadQuiver | $0.000 ETH | 0.00000234 | |
| 0xda1107…e0f15f | Approve | 8,847,420 | 35 days agoMon, 13 Jul 2026 17:29:03 UTC | 0x7f1d…79d1 | IN | PadQuiver | $0.000 ETH | 0.00000233 | |
| 0x3db451…cf54fb | Approve | 8,344,874 | 36 days agoMon, 13 Jul 2026 03:29:52 UTC | 0xf038…73a6 | IN | PadQuiver | $0.000 ETH | 0.00000246 | |
| 0xc53df2…4a86de | Approve | 8,344,874 | 36 days agoMon, 13 Jul 2026 03:29:52 UTC | 0x5faf…94b8 | IN | PadQuiver | $0.000 ETH | 0.00000246 | |
| 0x296890…c30310 | Approve | 8,344,874 | 36 days agoMon, 13 Jul 2026 03:29:52 UTC | 0xe38d…96a7 | IN | PadQuiver | $0.000 ETH | 0.00000246 | |
| 0xf33ee9…b59ecd | Approve | 8,273,182 | 36 days agoMon, 13 Jul 2026 01:30:02 UTC | 0x7f19…80c9 | IN | PadQuiver | $0.000 ETH | 0.00000254 | |
| 0x2e681d…8cde2d | Approve | 8,272,949 | 36 days agoMon, 13 Jul 2026 01:29:39 UTC | 0x424e…8589 | IN | PadQuiver | $0.000 ETH | 0.00000253 | |
| 0xf56edd…a9b5b2 | Approve | 8,272,679 | 36 days agoMon, 13 Jul 2026 01:29:12 UTC | 0x2cc6…6a66 | IN | PadQuiver | $0.000 ETH | 0.00000252 | |
| 0x852478…5b35c8 | Approve | 8,218,162 | 36 days agoSun, 12 Jul 2026 23:58:10 UTC | 0x80c2…fbe4 | IN | PadQuiver | $0.000 ETH | 0.00000251 | |
| 0x2527e4…9802ae | Approve | 6,867,935 | 37 days agoSat, 11 Jul 2026 10:23:23 UTC | 0x26d0…0790 | IN | PadQuiver | $0.000 ETH | 0.00000265 |