//----------------------------------
// Primora.meme 👈
// The first move for your meme
//----------------------------------
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
import "@openzeppelin/contracts/access/Ownable.sol";
import "@openzeppelin/contracts/utils/cryptography/MerkleProof.sol";
import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
import "@openzeppelin/contracts/utils/ReentrancyGuard.sol";
import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
interface IStaker {
function stakeRewards(uint256 amount, address user) external;
}
contract PrimoraReferralRewards is Ownable, ReentrancyGuard {
using SafeERC20 for IERC20;
uint256 public currentRound;
bytes32 public currentMerkleRoot;
uint256 public claimedThisRound;
uint256 public lastMerkleUpdate;
uint256 public constant MAX_TOKENS_PER_ROUND = 20_000_000 * 1e18;
uint256 public constant MERKLE_UPDATE_INTERVAL = 6.5 days; // 561600 seconds
mapping(uint256 => mapping(address => bool)) public hasClaimed;
address public primoraToken;
address public stakingContractAddress;
event MerkleRootUpdated(uint256 indexed round, bytes32 merkleRoot);
event Claimed(address indexed user, uint256 amount, uint256 round);
event TokensRecovered(uint256 amount);
constructor(address _theOwner, address _primoraToken, address _stakingContract) Ownable(_theOwner) {
primoraToken = _primoraToken;
stakingContractAddress = _stakingContract;
currentRound = 0;
}
function setStakingContract(address _stakingContract) external onlyOwner {
require(_stakingContract != address(0), "Staking is zero");
stakingContractAddress = _stakingContract;
}
function setPrimoraToken(address _primoraToken) external onlyOwner {
require(_primoraToken != address(0), "Token is zero");
primoraToken = _primoraToken;
}
// Deprecated alias for backwards compatibility
function setPrimorToken(address _primorToken) external onlyOwner {
require(_primorToken != address(0), "Token is zero");
primoraToken = _primorToken;
}
function stakingContract() public view returns (IStaker) {
return IStaker(stakingContractAddress);
}
function primoraTokenContract() public view returns (IERC20) {
return IERC20(primoraToken);
}
// Deprecated alias for backwards compatibility
function primorTokenContract() public view returns (IERC20) {
return IERC20(primoraToken);
}
function updateMerkleRoot(bytes32 newMerkleRoot) external onlyOwner {
require(newMerkleRoot != bytes32(0), "Invalid merkle root");
require(block.timestamp >= lastMerkleUpdate + MERKLE_UPDATE_INTERVAL, "Merkle root update cooldown: 6.5 days");
currentRound += 1;
currentMerkleRoot = newMerkleRoot;
claimedThisRound = 0;
lastMerkleUpdate = block.timestamp;
emit MerkleRootUpdated(currentRound, newMerkleRoot);
}
function claim(uint256 amount, bytes32[] calldata proof) external nonReentrant {
require(amount > 0, "Zero amount");
require(currentMerkleRoot != bytes32(0), "No active merkle root");
require(!hasClaimed[currentRound][msg.sender], "Already claimed in current round");
require(claimedThisRound + amount <= maxTokensForCurrentRound(), "Round claim limit exceeded");
bytes32 leaf = keccak256(abi.encode(msg.sender, amount));
require(MerkleProof.verify(proof, currentMerkleRoot, leaf), "Invalid proof");
hasClaimed[currentRound][msg.sender] = true;
claimedThisRound += amount;
primoraTokenContract().safeTransfer(address(stakingContract()), amount);
stakingContract().stakeRewards(amount, msg.sender);
emit Claimed(msg.sender, amount, currentRound);
}
/// @notice Intentional expanding schedule: round N can distribute N * 20M PRIMORA.
function maxTokensForCurrentRound() public view returns (uint256) {
return MAX_TOKENS_PER_ROUND * currentRound;
}
}[
{
"type": "constructor",
"inputs": [
{
"name": "_theOwner",
"type": "address",
"internalType": "address"
},
{
"name": "_primoraToken",
"type": "address",
"internalType": "address"
},
{
"name": "_stakingContract",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "nonpayable"
},
{
"name": "OwnableInvalidOwner",
"type": "error",
"inputs": [
{
"name": "owner",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "OwnableUnauthorizedAccount",
"type": "error",
"inputs": [
{
"name": "account",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "ReentrancyGuardReentrantCall",
"type": "error",
"inputs": []
},
{
"name": "SafeERC20FailedOperation",
"type": "error",
"inputs": [
{
"name": "token",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "Claimed",
"type": "event",
"inputs": [
{
"name": "user",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "round",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "MerkleRootUpdated",
"type": "event",
"inputs": [
{
"name": "round",
"type": "uint256",
"indexed": true,
"internalType": "uint256"
},
{
"name": "merkleRoot",
"type": "bytes32",
"indexed": false,
"internalType": "bytes32"
}
],
"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": "TokensRecovered",
"type": "event",
"inputs": [
{
"name": "amount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "MAX_TOKENS_PER_ROUND",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "MERKLE_UPDATE_INTERVAL",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "claim",
"type": "function",
"inputs": [
{
"name": "amount",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "proof",
"type": "bytes32[]",
"internalType": "bytes32[]"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "claimedThisRound",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "currentMerkleRoot",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"stateMutability": "view"
},
{
"name": "currentRound",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "hasClaimed",
"type": "function",
"inputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"name": "lastMerkleUpdate",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "maxTokensForCurrentRound",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "owner",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "primorTokenContract",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "contract IERC20"
}
],
"stateMutability": "view"
},
{
"name": "primoraToken",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "primoraTokenContract",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "contract IERC20"
}
],
"stateMutability": "view"
},
{
"name": "renounceOwnership",
"type": "function",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setPrimorToken",
"type": "function",
"inputs": [
{
"name": "_primorToken",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setPrimoraToken",
"type": "function",
"inputs": [
{
"name": "_primoraToken",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setStakingContract",
"type": "function",
"inputs": [
{
"name": "_stakingContract",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "stakingContract",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "contract IStaker"
}
],
"stateMutability": "view"
},
{
"name": "stakingContractAddress",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "transferOwnership",
"type": "function",
"inputs": [
{
"name": "newOwner",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "updateMerkleRoot",
"type": "function",
"inputs": [
{
"name": "newMerkleRoot",
"type": "bytes32",
"internalType": "bytes32"
}
],
"outputs": [],
"stateMutability": "nonpayable"
}
]0x60803461012f57601f610cac38819003918201601f19168301916001600160401b038311848410176101335780849260609460405283398101031261012f5761004781610147565b61005f604061005860208501610147565b9301610147565b6001600160a01b0390911691821561011c575f80546001600160a01b031981168517825560405194916001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a360017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00819055600680546001600160a01b039384166001600160a01b031991821617909155600780549490931693169290921790555f9055610b50908161015c8239f35b631e4fbdf760e01b5f525f60045260245ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b038216820361012f5756fe6080806040526004361015610012575f80fd5b5f905f3560e01c9081631bf2b4cf146109b6575080632f52ebb7146105665780633535f48b146101ba5780633a9d2ee71461054057806344c0f12b1461051d5780634783f0ef146103f5578063715018a61461039b578063760a7669146102fb578063873f6f9e146103455780638a19c8bc146103275780638da5cb5b1461030057806398ab3da5146102fb5780639dd373b9146102785780639ea971901461025a5780639fd6506d1461023d578063bfeb53f81461021f578063cb8088ed14610201578063dbb677de146101e3578063ee99205c146101ba578063f2fde38b146101345763ffd9427514610105575f80fd5b346101315760203660031901126101315761012e610121610a01565b610129610af4565b610a96565b80f35b80fd5b50346101315760203660031901126101315761014e610a01565b610156610af4565b6001600160a01b031680156101a65781546001600160a01b03198116821783556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b631e4fbdf760e01b82526004829052602482fd5b50346101315780600319360112610131576007546040516001600160a01b039091168152602090f35b50346101315780600319360112610131576020600354604051908152f35b50346101315780600319360112610131576020600454604051908152f35b50346101315780600319360112610131576020604051620891c08152f35b50346101315760203660031901126101315761012e610121610a01565b50346101315780600319360112610131576020600254604051908152f35b503461013157602036600319011261013157610292610a01565b61029a610af4565b6001600160a01b031680156102c4576bffffffffffffffffffffffff60a01b600754161760075580f35b60405162461bcd60e51b815260206004820152600f60248201526e5374616b696e67206973207a65726f60881b6044820152606490fd5b6109d9565b5034610131578060031936011261013157546040516001600160a01b039091168152602090f35b50346101315780600319360112610131576020600154604051908152f35b503461013157604036600319011261013157602435906001600160a01b03821682036101315760409060043581526005602052209060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b50346101315780600319360112610131576103b4610af4565b80546001600160a01b03198116825581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b503461013157602036600319011261013157600435610412610af4565b80156104e257600454620891c0810180911161047b57421061048f57600154906001820180921161047b5760207f9ff79792a92b66fee090acb66e07837a2edb31ee6b9780fa551fd04b79dffcd29183600155806002558460035542600455604051908152a280f35b634e487b7160e01b83526011600452602483fd5b60405162461bcd60e51b815260206004820152602560248201527f4d65726b6c6520726f6f742075706461746520636f6f6c646f776e3a20362e35604482015264206461797360d81b6064820152608490fd5b60405162461bcd60e51b8152602060048201526013602482015272125b9d985b1a59081b595c9adb19481c9bdbdd606a1b6044820152606490fd5b50346101315780600319360112610131576020610538610a6e565b604051908152f35b503461013157806003193601126101315760206040516a108b2a2c280290940000008152f35b5034610834576040366003190112610834576004359060243567ffffffffffffffff811161083457366023820112156108345780600401359167ffffffffffffffff8311610834578260051b93602485840101933685116108345760027f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0054146109a75760027f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00558115610974576002549485156109375760015494855f52600560205260405f2060018060a01b0333165f5260205260ff60405f2054166108f35761065484600354610a17565b61065c610a6e565b106108ae57604051602081019033825285604082015260408152610681606082610a38565b5190209261069560206040519a018a610a38565b8852602401602088015b82821061089e57505050925f935b86518510156106ef5760208560051b88010151908181105f146106de575f52602052600160405f205b9401936106ad565b905f52602052600160405f206106d6565b8503610869575f52600560205260405f2060018060a01b0333165f5260205260405f20600160ff1982541617905561072981600354610a17565b60035560065460075460405163a9059cbb60e01b5f9081526001600160a01b03928316600452602485905290929091169060209060448180855af160015f511481161561084a575b826040521561083857506007546001600160a01b0316803b1561083457816044815f8094639b172b3560e01b83528760048401523360248401525af1801561082957610814575b5060015460405191825260208201527f987d620f307ff6b94d58743cb7a7509f24071586a77759b77c2d4e29f75a2f9a60403392a260017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005580f35b6108219192505f90610a38565b5f90826107b8565b6040513d5f823e3d90fd5b5f80fd5b635274afe760e01b5f5260045260245ffd5b600181151661086057813b15153d151616610771565b823d5f823e3d90fd5b60405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b210383937b7b360991b6044820152606490fd5b813581526020918201910161069f565b60405162461bcd60e51b815260206004820152601a60248201527f526f756e6420636c61696d206c696d69742065786365656465640000000000006044820152606490fd5b606460405162461bcd60e51b815260206004820152602060248201527f416c726561647920636c61696d656420696e2063757272656e7420726f756e646044820152fd5b60405162461bcd60e51b8152602060048201526015602482015274139bc81858dd1a5d99481b595c9adb19481c9bdbdd605a1b6044820152606490fd5b60405162461bcd60e51b815260206004820152600b60248201526a16995c9bc8185b5bdd5b9d60aa1b6044820152606490fd5b633ee5aeb560e01b5f5260045ffd5b34610834575f366003190112610834576006546001600160a01b03168152602090f35b34610834575f366003190112610834576006546040516001600160a01b039091168152602090f35b600435906001600160a01b038216820361083457565b91908201809211610a2457565b634e487b7160e01b5f52601160045260245ffd5b90601f8019910116810190811067ffffffffffffffff821117610a5a57604052565b634e487b7160e01b5f52604160045260245ffd5b600154806a108b2a2c2802909400000002906a108b2a2c28029094000000820403610a245790565b6001600160a01b03168015610abf576bffffffffffffffffffffffff60a01b6006541617600655565b60405162461bcd60e51b815260206004820152600d60248201526c546f6b656e206973207a65726f60981b6044820152606490fd5b5f546001600160a01b03163303610b0757565b63118cdaa760e01b5f523360045260245ffdfea2646970667358221220d3d5b8ae75fc72cdce2eaa4cd543c2bdabf957fbf7bf9ab096de6f8928f02bfe64736f6c634300082100330000000000000000000000001eeaf7ee31ae0bad8aa85c34e2a06a93d323f4e900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0x6080806040526004361015610012575f80fd5b5f905f3560e01c9081631bf2b4cf146109b6575080632f52ebb7146105665780633535f48b146101ba5780633a9d2ee71461054057806344c0f12b1461051d5780634783f0ef146103f5578063715018a61461039b578063760a7669146102fb578063873f6f9e146103455780638a19c8bc146103275780638da5cb5b1461030057806398ab3da5146102fb5780639dd373b9146102785780639ea971901461025a5780639fd6506d1461023d578063bfeb53f81461021f578063cb8088ed14610201578063dbb677de146101e3578063ee99205c146101ba578063f2fde38b146101345763ffd9427514610105575f80fd5b346101315760203660031901126101315761012e610121610a01565b610129610af4565b610a96565b80f35b80fd5b50346101315760203660031901126101315761014e610a01565b610156610af4565b6001600160a01b031680156101a65781546001600160a01b03198116821783556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b631e4fbdf760e01b82526004829052602482fd5b50346101315780600319360112610131576007546040516001600160a01b039091168152602090f35b50346101315780600319360112610131576020600354604051908152f35b50346101315780600319360112610131576020600454604051908152f35b50346101315780600319360112610131576020604051620891c08152f35b50346101315760203660031901126101315761012e610121610a01565b50346101315780600319360112610131576020600254604051908152f35b503461013157602036600319011261013157610292610a01565b61029a610af4565b6001600160a01b031680156102c4576bffffffffffffffffffffffff60a01b600754161760075580f35b60405162461bcd60e51b815260206004820152600f60248201526e5374616b696e67206973207a65726f60881b6044820152606490fd5b6109d9565b5034610131578060031936011261013157546040516001600160a01b039091168152602090f35b50346101315780600319360112610131576020600154604051908152f35b503461013157604036600319011261013157602435906001600160a01b03821682036101315760409060043581526005602052209060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b50346101315780600319360112610131576103b4610af4565b80546001600160a01b03198116825581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b503461013157602036600319011261013157600435610412610af4565b80156104e257600454620891c0810180911161047b57421061048f57600154906001820180921161047b5760207f9ff79792a92b66fee090acb66e07837a2edb31ee6b9780fa551fd04b79dffcd29183600155806002558460035542600455604051908152a280f35b634e487b7160e01b83526011600452602483fd5b60405162461bcd60e51b815260206004820152602560248201527f4d65726b6c6520726f6f742075706461746520636f6f6c646f776e3a20362e35604482015264206461797360d81b6064820152608490fd5b60405162461bcd60e51b8152602060048201526013602482015272125b9d985b1a59081b595c9adb19481c9bdbdd606a1b6044820152606490fd5b50346101315780600319360112610131576020610538610a6e565b604051908152f35b503461013157806003193601126101315760206040516a108b2a2c280290940000008152f35b5034610834576040366003190112610834576004359060243567ffffffffffffffff811161083457366023820112156108345780600401359167ffffffffffffffff8311610834578260051b93602485840101933685116108345760027f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0054146109a75760027f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00558115610974576002549485156109375760015494855f52600560205260405f2060018060a01b0333165f5260205260ff60405f2054166108f35761065484600354610a17565b61065c610a6e565b106108ae57604051602081019033825285604082015260408152610681606082610a38565b5190209261069560206040519a018a610a38565b8852602401602088015b82821061089e57505050925f935b86518510156106ef5760208560051b88010151908181105f146106de575f52602052600160405f205b9401936106ad565b905f52602052600160405f206106d6565b8503610869575f52600560205260405f2060018060a01b0333165f5260205260405f20600160ff1982541617905561072981600354610a17565b60035560065460075460405163a9059cbb60e01b5f9081526001600160a01b03928316600452602485905290929091169060209060448180855af160015f511481161561084a575b826040521561083857506007546001600160a01b0316803b1561083457816044815f8094639b172b3560e01b83528760048401523360248401525af1801561082957610814575b5060015460405191825260208201527f987d620f307ff6b94d58743cb7a7509f24071586a77759b77c2d4e29f75a2f9a60403392a260017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005580f35b6108219192505f90610a38565b5f90826107b8565b6040513d5f823e3d90fd5b5f80fd5b635274afe760e01b5f5260045260245ffd5b600181151661086057813b15153d151616610771565b823d5f823e3d90fd5b60405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b210383937b7b360991b6044820152606490fd5b813581526020918201910161069f565b60405162461bcd60e51b815260206004820152601a60248201527f526f756e6420636c61696d206c696d69742065786365656465640000000000006044820152606490fd5b606460405162461bcd60e51b815260206004820152602060248201527f416c726561647920636c61696d656420696e2063757272656e7420726f756e646044820152fd5b60405162461bcd60e51b8152602060048201526015602482015274139bc81858dd1a5d99481b595c9adb19481c9bdbdd605a1b6044820152606490fd5b60405162461bcd60e51b815260206004820152600b60248201526a16995c9bc8185b5bdd5b9d60aa1b6044820152606490fd5b633ee5aeb560e01b5f5260045ffd5b34610834575f366003190112610834576006546001600160a01b03168152602090f35b34610834575f366003190112610834576006546040516001600160a01b039091168152602090f35b600435906001600160a01b038216820361083457565b91908201809211610a2457565b634e487b7160e01b5f52601160045260245ffd5b90601f8019910116810190811067ffffffffffffffff821117610a5a57604052565b634e487b7160e01b5f52604160045260245ffd5b600154806a108b2a2c2802909400000002906a108b2a2c28029094000000820403610a245790565b6001600160a01b03168015610abf576bffffffffffffffffffffffff60a01b6006541617600655565b60405162461bcd60e51b815260206004820152600d60248201526c546f6b656e206973207a65726f60981b6044820152606490fd5b5f546001600160a01b03163303610b0757565b63118cdaa760e01b5f523360045260245ffdfea2646970667358221220d3d5b8ae75fc72cdce2eaa4cd543c2bdabf957fbf7bf9ab096de6f8928f02bfe64736f6c63430008210033
| Token | Symbol | Balance | Price | Value |
|---|---|---|---|---|
| Primora (PRIM) | PRIM | 200,000,000 | — | — |
| 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 | |||
| Txn Hash | Age | Event | Topics / Data |
|---|---|---|---|
| 0x0a400f…c0d09e | 34 days agoTue, 14 Jul 2026 17:11:03 UTC | 0x8be007…57e0 | [0] 0x000000000000…d323f4e9 [1] 0x000000000000…1aafe70d |
| 0x733db9…7102b2 | 34 days agoTue, 14 Jul 2026 16:59:03 UTC | 0x8be007…57e0 | [0] 0x000000000000…00000000 [1] 0x000000000000…d323f4e9 |
| Block | Age | Parent Transaction Hash | Type | Method | From | To | Value | |
|---|---|---|---|---|---|---|---|---|
| no internal transactions found for this address yet (traced blocks + on-demand) | ||||||||
| Transaction Hash | Method | Block | Age | From | To | Amount | Token | ||
|---|---|---|---|---|---|---|---|---|---|
| 0x5a38ec06…21b920 | Transfer | 9,691,781 | 34 days agoTue, 14 Jul 2026 16:59:03 UTC | 0x0000…0000 | IN | 0x2595…8d68 | 200,000,000.000000 PRIM | Primora (PRIM) |
| Transaction Hash | Method ? | Block | Age | From | To | Amount | Txn Fee ? | ||
|---|---|---|---|---|---|---|---|---|---|
| 0x0a400f…c0d09e | transferOwnership | 9,698,971 | 34 days agoTue, 14 Jul 2026 17:11:03 UTC | 0x1eea…f4e9 | IN | PrimoraReferralRewards | $0.000 ETH | 0.00000145 | |
| 0x65ac61…fcb692 | setStakingContract | 9,691,782 | 34 days agoTue, 14 Jul 2026 16:59:04 UTC | 0x1eea…f4e9 | IN | PrimoraReferralRewards | $0.000 ETH | 0.00000234 | |
| 0xc0314e…1f6bb5 | setPrimoraToken | 9,691,782 | 34 days agoTue, 14 Jul 2026 16:59:04 UTC | 0x1eea…f4e9 | IN | PrimoraReferralRewards | $0.000 ETH | 0.00000235 |