// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;
import { ERC20 } from "@openzeppelin/contracts/token/ERC20/ERC20.sol";
import { AccessControl } from "@openzeppelin/contracts/access/AccessControl.sol";
/// @title sPYRToken
/// @notice Staked PYR receipt token. Represents SHARES of the staking pool, not a rebasing
/// balance. 1 sPYR is a claim on `stakedPYR * sPYRsupply^-1` PYR; the redemption value
/// grows as rewards accrue to the pool (an index model — see {Staking}).
/// @dev Trust assumptions:
/// - Mint/burn is gated to MINTER_ROLE, which is granted ONLY to the Staking contract at
/// deployment. No other party can change supply.
/// - Chosen over a rebasing balance because share accounting is simpler to reason about and
/// avoids rounding-drift attack surface on every transfer.
contract sPYRToken is ERC20, AccessControl {
bytes32 public constant MINTER_ROLE = keccak256("MINTER_ROLE");
constructor(address admin) ERC20("Staked Pyramid", "sPRMD") {
require(admin != address(0), "sPYR: zero admin");
_grantRole(DEFAULT_ADMIN_ROLE, admin);
}
/// @notice Mint shares. Only the Staking contract (MINTER_ROLE).
function mint(address to, uint256 shares) external onlyRole(MINTER_ROLE) {
_mint(to, shares);
}
/// @notice Burn shares. Only the Staking contract (MINTER_ROLE).
function burn(address from, uint256 shares) external onlyRole(MINTER_ROLE) {
_burn(from, shares);
}
}[
{
"type": "constructor",
"inputs": [
{
"name": "admin",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "nonpayable"
},
{
"name": "AccessControlBadConfirmation",
"type": "error",
"inputs": []
},
{
"name": "AccessControlUnauthorizedAccount",
"type": "error",
"inputs": [
{
"name": "account",
"type": "address",
"internalType": "address"
},
{
"name": "neededRole",
"type": "bytes32",
"internalType": "bytes32"
}
]
},
{
"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": "RoleAdminChanged",
"type": "event",
"inputs": [
{
"name": "role",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
},
{
"name": "previousAdminRole",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
},
{
"name": "newAdminRole",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
}
],
"anonymous": false
},
{
"name": "RoleGranted",
"type": "event",
"inputs": [
{
"name": "role",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
},
{
"name": "account",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "sender",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "RoleRevoked",
"type": "event",
"inputs": [
{
"name": "role",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
},
{
"name": "account",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "sender",
"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": "DEFAULT_ADMIN_ROLE",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"stateMutability": "view"
},
{
"name": "MINTER_ROLE",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"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": "from",
"type": "address",
"internalType": "address"
},
{
"name": "shares",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "decimals",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint8",
"internalType": "uint8"
}
],
"stateMutability": "view"
},
{
"name": "getRoleAdmin",
"type": "function",
"inputs": [
{
"name": "role",
"type": "bytes32",
"internalType": "bytes32"
}
],
"outputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"stateMutability": "view"
},
{
"name": "grantRole",
"type": "function",
"inputs": [
{
"name": "role",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "account",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "hasRole",
"type": "function",
"inputs": [
{
"name": "role",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "account",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"name": "mint",
"type": "function",
"inputs": [
{
"name": "to",
"type": "address",
"internalType": "address"
},
{
"name": "shares",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "name",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"name": "renounceRole",
"type": "function",
"inputs": [
{
"name": "role",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "callerConfirmation",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "revokeRole",
"type": "function",
"inputs": [
{
"name": "role",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "account",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "supportsInterface",
"type": "function",
"inputs": [
{
"name": "interfaceId",
"type": "bytes4",
"internalType": "bytes4"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"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"
}
]0x60806040523462000370576200101d80380390816200001e8162000394565b9283928339602092839181010312620003705751906001600160a01b0382169081830362000370576200005062000374565b91600e83526d14dd185ad95908141e5c985b5a5960921b828401526200007562000374565b60058152641cd414935160da1b8382015283519093906001600160401b03908181116200027b576003908154906001948583811c9316801562000365575b8884101462000351578190601f93848111620002fe575b5088908483116001146200029b575f926200028f575b50505f1982851b1c191690851b1782555b86519283116200027b5760049687548581811c9116801562000270575b888210146200025d5782811162000215575b5086918411600114620001ae579383949184925f95620001a2575b50501b925f19911b1c19161783555b156200016c576200015b83620003ba565b50604051610bc090816200043d8239f35b60405162461bcd60e51b815291820152601060248201526f39a82ca91d103d32b9379030b236b4b760811b604482015260649150fd5b015193505f806200013b565b9190601f19841692885f5284885f20945f5b8a89838310620001fd5750505010620001e3575b50505050811b0183556200014a565b01519060f8845f19921b161c191690555f808080620001d4565b868601518955909701969485019488935001620001c0565b885f52875f208380870160051c8201928a881062000253575b0160051c019086905b8281106200024757505062000120565b5f815501869062000237565b925081926200022e565b602289634e487b7160e01b5f525260245ffd5b90607f16906200010e565b634e487b7160e01b5f52604160045260245ffd5b015190505f80620000e0565b90879350601f19831691865f528a5f20925f5b8c828210620002e75750508411620002cf575b505050811b018255620000f1565b01515f1983871b60f8161c191690555f8080620002c1565b8385015186558b97909501949384019301620002ae565b909150845f52885f208480850160051c8201928b861062000347575b918991869594930160051c01915b82811062000338575050620000ca565b5f815585945089910162000328565b925081926200031a565b634e487b7160e01b5f52602260045260245ffd5b92607f1692620000b3565b5f80fd5b60408051919082016001600160401b038111838210176200027b57604052565b6040519190601f01601f191682016001600160401b038111838210176200027b57604052565b6001600160a01b03165f8181525f8051602062000ffd833981519152602052604090205460ff1662000437575f8181525f8051602062000ffd83398151915260205260408120805460ff191660011790553391907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b505f9056fe6080604090808252600480361015610015575f80fd5b5f3560e01c91826301ffc9a71461085e5750816306fdde0314610783578163095ea7b3146106db57816318160ddd146106bd57816323b872dd146105cb578163248a9ca3146105a15781632f2ff15d14610579578163313ce5671461055e57816336568abe1461051a57816340c10f191461046d57816370a082311461043757816391d14854146103f357816395d89b41146102d45781639dc29fac146101fd578163a217fddf146101e3578163a9059cbb146101b3578163d539139314610179578163d547741f1461013d575063dd62ed3e146100f1575f80fd5b3461013957806003193601126101395760209061010c6108f7565b61011461090d565b9060018060a01b038091165f5260018452825f2091165f528252805f20549051908152f35b5f80fd5b82346101395780600319360112610139576101779135610172600161016061090d565b93835f5260056020525f200154610a76565b610b16565b005b8234610139575f36600319011261013957602090517f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a68152f35b82346101395780600319360112610139576020906101dc6101d26108f7565b6024359033610923565b5160018152f35b8234610139575f36600319011261013957602090515f8152f35b82346101395780600319360112610139576102166108f7565b90602435926102236109fd565b6001600160a01b0383169283156102be57835f525f602052825f20549185831061028a575f857fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6020898881898688528785520381872055816002540360025551908152a3005b835163391434e360e21b81526001600160a01b03909216908201908152602081018390526040810186905281906060010390fd5b505f6024925191634b637e8f60e11b8352820152fd5b8234610139575f366003190112610139578051905f835460018160011c90600183169283156103e9575b60209384841081146103d6578388529081156103ba5750600114610366575b505050829003601f01601f191682019267ffffffffffffffff841183851017610353575082918261034f9252826108b0565b0390f35b604190634e487b7160e01b5f525260245ffd5b5f878152929350837f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b8385106103a6575050505083010184808061031d565b805488860183015293019284908201610390565b60ff1916878501525050151560051b840101905084808061031d565b602289634e487b7160e01b5f525260245ffd5b91607f16916102fe565b823461013957806003193601126101395760209161040f61090d565b90355f5260058352815f209060018060a01b03165f52825260ff815f20541690519015158152f35b8234610139576020366003190112610139576020906001600160a01b0361045c6108f7565b165f525f8252805f20549051908152f35b82346101395780600319360112610139576104866108f7565b90602435916104936109fd565b6001600160a01b031692831561050557600254908382018092116104f257505f927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9260209260025585855284835280852082815401905551908152a3005b601190634e487b7160e01b5f525260245ffd5b5f602492519163ec442f0560e01b8352820152fd5b823461013957806003193601126101395761053361090d565b90336001600160a01b0383160361054f57506101779135610b16565b5163334bd91960e11b81529050fd5b8234610139575f366003190112610139576020905160128152f35b8234610139578060031936011261013957610177913561059c600161016061090d565b610a98565b823461013957602036600319011261013957602091355f52600582526001815f2001549051908152f35b905034610139576060366003190112610139576105e66108f7565b6105ee61090d565b906044359260018060a01b038216805f526001602052855f20335f52602052855f2054915f198303610629575b6020876101dc888888610923565b85831061069157811561067b57331561066557505f908152600160209081528682203383528152908690209185900390915582906101dc61061b565b6024905f885191634a1406b160e11b8352820152fd5b6024905f88519163e602df0560e01b8352820152fd5b8651637dc7a0d960e11b8152339181019182526020820193909352604081018690528291506060010390fd5b8234610139575f366003190112610139576020906002549051908152f35b82346101395780600319360112610139576106f46108f7565b60243590331561076d576001600160a01b03169081156107575760209350335f5260018452825f20825f52845280835f205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b8251634a1406b160e11b81525f81860152602490fd5b825163e602df0560e01b81525f81860152602490fd5b8234610139575f366003190112610139578051905f60035460018160011c9060018316928315610854575b60209384841081146103d6578388529081156103ba57506001146107fe57505050829003601f01601f191682019267ffffffffffffffff841183851017610353575082918261034f9252826108b0565b60035f908152929350837fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b838510610840575050505083010184808061031d565b80548886018301529301928490820161082a565b91607f16916107ae565b903461013957602036600319011261013957359063ffffffff60e01b821680920361013957602091637965db0b60e01b811490811561089f575b5015158152f35b6301ffc9a760e01b14905083610898565b602080825282518183018190529093925f5b8281106108e357505060409293505f838284010152601f8019910116010190565b8181018601518482016040015285016108c2565b600435906001600160a01b038216820361013957565b602435906001600160a01b038216820361013957565b916001600160a01b038084169283156109e557169283156109cd57825f525f60205260405f20549082821061099b5750817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f84520360405f2055845f5260405f20818154019055604051908152a3565b60405163391434e360e21b81526001600160a01b03919091166004820152602481019190915260448101829052606490fd5b60405163ec442f0560e01b81525f6004820152602490fd5b604051634b637e8f60e11b81525f6004820152602490fd5b335f9081527f15a28d26fa1bf736cf7edc9922607171ccb09c3c73b808e7772a3013e068a52260205260409020547f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a69060ff1615610a585750565b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b805f52600560205260405f20335f5260205260ff60405f20541615610a585750565b90815f52600560205260405f209060018060a01b031690815f5260205260ff60405f205416155f14610b1057815f52600560205260405f20815f5260205260405f20600160ff1982541617905533917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b50505f90565b90815f52600560205260405f209060018060a01b031690815f5260205260ff60405f2054165f14610b1057815f52600560205260405f20815f5260205260405f2060ff19815416905533917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a460019056fea264697066735822122007716eb146623fde354ee8571f1f20fe422deb6e89d901348ee74cbc6d54c99f64736f6c6343000818003305b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc000000000000000000000000dd0011674eb2a9431b5d5203e267005c30cf3436
0x6080604090808252600480361015610015575f80fd5b5f3560e01c91826301ffc9a71461085e5750816306fdde0314610783578163095ea7b3146106db57816318160ddd146106bd57816323b872dd146105cb578163248a9ca3146105a15781632f2ff15d14610579578163313ce5671461055e57816336568abe1461051a57816340c10f191461046d57816370a082311461043757816391d14854146103f357816395d89b41146102d45781639dc29fac146101fd578163a217fddf146101e3578163a9059cbb146101b3578163d539139314610179578163d547741f1461013d575063dd62ed3e146100f1575f80fd5b3461013957806003193601126101395760209061010c6108f7565b61011461090d565b9060018060a01b038091165f5260018452825f2091165f528252805f20549051908152f35b5f80fd5b82346101395780600319360112610139576101779135610172600161016061090d565b93835f5260056020525f200154610a76565b610b16565b005b8234610139575f36600319011261013957602090517f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a68152f35b82346101395780600319360112610139576020906101dc6101d26108f7565b6024359033610923565b5160018152f35b8234610139575f36600319011261013957602090515f8152f35b82346101395780600319360112610139576102166108f7565b90602435926102236109fd565b6001600160a01b0383169283156102be57835f525f602052825f20549185831061028a575f857fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6020898881898688528785520381872055816002540360025551908152a3005b835163391434e360e21b81526001600160a01b03909216908201908152602081018390526040810186905281906060010390fd5b505f6024925191634b637e8f60e11b8352820152fd5b8234610139575f366003190112610139578051905f835460018160011c90600183169283156103e9575b60209384841081146103d6578388529081156103ba5750600114610366575b505050829003601f01601f191682019267ffffffffffffffff841183851017610353575082918261034f9252826108b0565b0390f35b604190634e487b7160e01b5f525260245ffd5b5f878152929350837f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b8385106103a6575050505083010184808061031d565b805488860183015293019284908201610390565b60ff1916878501525050151560051b840101905084808061031d565b602289634e487b7160e01b5f525260245ffd5b91607f16916102fe565b823461013957806003193601126101395760209161040f61090d565b90355f5260058352815f209060018060a01b03165f52825260ff815f20541690519015158152f35b8234610139576020366003190112610139576020906001600160a01b0361045c6108f7565b165f525f8252805f20549051908152f35b82346101395780600319360112610139576104866108f7565b90602435916104936109fd565b6001600160a01b031692831561050557600254908382018092116104f257505f927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9260209260025585855284835280852082815401905551908152a3005b601190634e487b7160e01b5f525260245ffd5b5f602492519163ec442f0560e01b8352820152fd5b823461013957806003193601126101395761053361090d565b90336001600160a01b0383160361054f57506101779135610b16565b5163334bd91960e11b81529050fd5b8234610139575f366003190112610139576020905160128152f35b8234610139578060031936011261013957610177913561059c600161016061090d565b610a98565b823461013957602036600319011261013957602091355f52600582526001815f2001549051908152f35b905034610139576060366003190112610139576105e66108f7565b6105ee61090d565b906044359260018060a01b038216805f526001602052855f20335f52602052855f2054915f198303610629575b6020876101dc888888610923565b85831061069157811561067b57331561066557505f908152600160209081528682203383528152908690209185900390915582906101dc61061b565b6024905f885191634a1406b160e11b8352820152fd5b6024905f88519163e602df0560e01b8352820152fd5b8651637dc7a0d960e11b8152339181019182526020820193909352604081018690528291506060010390fd5b8234610139575f366003190112610139576020906002549051908152f35b82346101395780600319360112610139576106f46108f7565b60243590331561076d576001600160a01b03169081156107575760209350335f5260018452825f20825f52845280835f205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b8251634a1406b160e11b81525f81860152602490fd5b825163e602df0560e01b81525f81860152602490fd5b8234610139575f366003190112610139578051905f60035460018160011c9060018316928315610854575b60209384841081146103d6578388529081156103ba57506001146107fe57505050829003601f01601f191682019267ffffffffffffffff841183851017610353575082918261034f9252826108b0565b60035f908152929350837fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b838510610840575050505083010184808061031d565b80548886018301529301928490820161082a565b91607f16916107ae565b903461013957602036600319011261013957359063ffffffff60e01b821680920361013957602091637965db0b60e01b811490811561089f575b5015158152f35b6301ffc9a760e01b14905083610898565b602080825282518183018190529093925f5b8281106108e357505060409293505f838284010152601f8019910116010190565b8181018601518482016040015285016108c2565b600435906001600160a01b038216820361013957565b602435906001600160a01b038216820361013957565b916001600160a01b038084169283156109e557169283156109cd57825f525f60205260405f20549082821061099b5750817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f84520360405f2055845f5260405f20818154019055604051908152a3565b60405163391434e360e21b81526001600160a01b03919091166004820152602481019190915260448101829052606490fd5b60405163ec442f0560e01b81525f6004820152602490fd5b604051634b637e8f60e11b81525f6004820152602490fd5b335f9081527f15a28d26fa1bf736cf7edc9922607171ccb09c3c73b808e7772a3013e068a52260205260409020547f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a69060ff1615610a585750565b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b805f52600560205260405f20335f5260205260ff60405f20541615610a585750565b90815f52600560205260405f209060018060a01b031690815f5260205260ff60405f205416155f14610b1057815f52600560205260405f20815f5260205260405f20600160ff1982541617905533917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b50505f90565b90815f52600560205260405f209060018060a01b031690815f5260205260ff60405f2054165f14610b1057815f52600560205260405f20815f5260205260405f2060ff19815416905533917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a460019056fea264697066735822122007716eb146623fde354ee8571f1f20fe422deb6e89d901348ee74cbc6d54c99f64736f6c63430008180033
| Token | Symbol | Balance | Price | Value |
|---|---|---|---|---|
| no token holdings | ||||
| 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 |
|---|---|---|---|
| 0x95bd72…14cadf | 40 days agoWed, 08 Jul 2026 10:13:55 UTC | 0x2f8788…6f0d | [0] 0x9f2df0fed2c7…1c8956a6 [1] 0x000000000000…48f9943e [2] 0x000000000000…30cf3436 |
| 0x96dce1…4a1860 | 40 days agoWed, 08 Jul 2026 10:13:51 UTC | 0x2f8788…6f0d | [0] 0x000000000000…00000000 [1] 0x000000000000…30cf3436 [2] 0x000000000000…30cf3436 |
| 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 ? | ||
|---|---|---|---|---|---|---|---|---|---|
| 0x95bd72…14cadf | grantRole | 4,275,880 | 40 days agoWed, 08 Jul 2026 10:13:55 UTC | 0xdd00…3436 | IN | sPYRToken | $0.000 ETH | 0.00000108 |