// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;
/// @title ScryVowRegistry — soulbound vows + merkle-anchored drift ledgers
/// @notice Two jobs, one small contract, zero dependencies:
///
/// 1. TAKE A VOW ON-CHAIN (agent-paid, one tx). A vow is minted as an
/// ERC-5192 soulbound ERC-721 to the caller's wallet — non-transferable
/// forever, non-burnable forever (you cannot sell your oath, and the
/// record does not go away). Unsealed vow text lives in the EVENT LOG
/// (cheap, permanent, indexable); sealed vows commit only sha256(text).
/// Metadata is fully on-chain (base64 JSON + SVG, Loot-style) so the
/// token renders in any wallet with no server and no IPFS dependency.
///
/// 2. ANCHOR THE OFF-CHAIN LEDGERS (oracle-paid, one tx per period). The
/// scry meter posts a merkle root over every vow's current chain head.
/// One anchor covers every ledger in existence: after it lands, no one
/// — INCLUDING the scry operator — can rewrite any anchored history
/// without breaking a proof. This is the one thing Ed25519 + hash
/// chains cannot give (the signer could re-sign); the chain closes it.
///
/// What is deliberately NOT here: report-ins (off-chain, hash-chained,
/// covered by the anchor — putting them on-chain would tax the ritual with
/// gas), readings (interpretations are not records), and any slash/stake
/// mechanics (measuring and enforcing must never be the same party; parked
/// forever — see VOWS.md).
/// @dev Optional external metadata renderer. If one is set, the registry
/// delegates tokenURI/contractURI to it — so the *look* of every vow in
/// wallets can be upgraded later with a single tx, without migrating any
/// vow, ownership, or anchor. A renderer reads vow data back from the
/// registry's public `vows(tokenId)` getter. address(0) => built-in art.
interface IScryRenderer {
function tokenURI(uint256 tokenId) external view returns (string memory);
function contractURI() external view returns (string memory);
}
contract ScryVowRegistry {
// ── ERC-721 core state (transfers are banned, so this is tiny) ──────────
// name/symbol are mutable (owner-set) so the collection title / ticker can
// be changed later. Wallets may cache these; a change won't always refresh.
string public name = "scry vows";
string public symbol = "VOW";
// ── admin: metadata + ticker control (separate from the anchor oracle) ──
address public owner; // may set renderer, name, symbol
address public renderer; // address(0) => built-in on-chain art
struct Vow {
bytes32 vowId; // content-addressed id (matches the API's vow_id, padded)
bytes32 textHash; // sha256(vow text)
uint32 cadenceHours; // declared report-in cadence
uint64 takenAt; // block timestamp
bool sealed_; // true => text never published, only the hash
address swearer; // the wallet bound by this vow
}
uint256 public nextTokenId = 1;
mapping(uint256 => Vow) public vows; // tokenId => vow
mapping(bytes32 => uint256) public tokenOf; // vowId => tokenId (0 = untaken)
mapping(address => uint256) private _balance; // ERC-721 balanceOf
mapping(uint256 => address) private _owner; // ERC-721 ownerOf
// ── anchor state ────────────────────────────────────────────────────────
address public oracle; // the scry meter's anchor wallet
bytes32 public lastRoot;
uint64 public lastAnchorTime;
uint64 public anchorCount;
// ── events ──────────────────────────────────────────────────────────────
event Transfer(address indexed from, address indexed to, uint256 indexed tokenId); // mint only
event Locked(uint256 tokenId); // ERC-5192
event VowTaken(uint256 indexed tokenId, bytes32 indexed vowId, address indexed swearer,
bytes32 textHash, uint32 cadenceHours, bool sealed_, string text);
event Anchored(bytes32 indexed root, uint64 vowCount, string leavesCid, uint64 timestamp);
event OracleTransferred(address indexed from, address indexed to);
event OwnershipTransferred(address indexed from, address indexed to);
event RendererUpdated(address indexed renderer);
event ContractURIUpdated(); // ERC-7572
event MetadataUpdate(uint256 _tokenId); // ERC-4906
event BatchMetadataUpdate(uint256 _fromTokenId, uint256 _toTokenId); // ERC-4906
error Soulbound();
error VowAlreadyTaken();
error BadTextHash();
error SealedNeedsNoText();
error NotOracle();
error NotOwner();
error NoSuchToken();
modifier onlyOwner() {
if (msg.sender != owner) revert NotOwner();
_;
}
constructor(address oracle_) {
oracle = oracle_;
owner = msg.sender;
emit OwnershipTransferred(address(0), msg.sender);
emit ContractURIUpdated();
}
// ── admin: transferable, renounceable; renderer + ticker are owner-set ──
function transferOwnership(address newOwner) external onlyOwner {
emit OwnershipTransferred(owner, newOwner);
owner = newOwner; // pass address(0) to renounce and freeze metadata forever
}
/// @notice Point at an external renderer (or address(0) to restore built-in
/// art). Signals every marketplace/wallet to re-pull all metadata.
function setRenderer(address newRenderer) external onlyOwner {
renderer = newRenderer;
emit RendererUpdated(newRenderer);
emit ContractURIUpdated();
if (nextTokenId > 1) emit BatchMetadataUpdate(1, nextTokenId - 1);
}
function setName(string calldata newName) external onlyOwner { name = newName; }
function setSymbol(string calldata newSymbol) external onlyOwner { symbol = newSymbol; }
// ── taking a vow (agent-paid, agent-called) ─────────────────────────────
/// @param vowId content-addressed id from the scry API (bytes32-padded)
/// @param textHash sha256 of the exact vow text
/// @param cadenceHours declared report-in cadence
/// @param sealed_ true => commit hash only; text must be empty
/// @param text the vow text (empty when sealed). Emitted, not stored —
/// the event log is permanent and ~100x cheaper than storage.
function takeVow(bytes32 vowId, bytes32 textHash, uint32 cadenceHours,
bool sealed_, string calldata text)
external returns (uint256 tokenId)
{
if (tokenOf[vowId] != 0) revert VowAlreadyTaken();
if (sealed_) {
if (bytes(text).length != 0) revert SealedNeedsNoText();
} else {
if (sha256(bytes(text)) != textHash) revert BadTextHash();
}
tokenId = nextTokenId++;
vows[tokenId] = Vow(vowId, textHash, cadenceHours, uint64(block.timestamp),
sealed_, msg.sender);
tokenOf[vowId] = tokenId;
_balance[msg.sender] += 1;
_owner[tokenId] = msg.sender;
emit Transfer(address(0), msg.sender, tokenId);
emit Locked(tokenId);
emit VowTaken(tokenId, vowId, msg.sender, textHash, cadenceHours, sealed_, text);
}
// ── anchoring (oracle-paid) ─────────────────────────────────────────────
/// @param root merkle root over keccak256(vowId . chainHead) leaves,
/// sorted-pair hashing (OpenZeppelin MerkleProof compatible)
/// @param vowCount number of leaves under this root
/// @param leavesCid where the leaf-set lives (IPFS CID or API URL)
function anchorRoot(bytes32 root, uint64 vowCount, string calldata leavesCid) external {
if (msg.sender != oracle) revert NotOracle();
lastRoot = root;
lastAnchorTime = uint64(block.timestamp);
anchorCount += 1;
emit Anchored(root, vowCount, leavesCid, uint64(block.timestamp));
}
function setOracle(address newOracle) external {
if (msg.sender != oracle) revert NotOracle();
emit OracleTransferred(oracle, newOracle);
oracle = newOracle;
}
/// @notice client-side convenience: verify a sorted-pair merkle proof.
function verifyProof(bytes32[] calldata proof, bytes32 root, bytes32 leaf)
external pure returns (bool)
{
bytes32 h = leaf;
for (uint256 i = 0; i < proof.length; i++) {
bytes32 p = proof[i];
h = h < p ? keccak256(abi.encodePacked(h, p))
: keccak256(abi.encodePacked(p, h));
}
return h == root;
}
// ── ERC-721 read surface ────────────────────────────────────────────────
function balanceOf(address who) external view returns (uint256) { return _balance[who]; }
function ownerOf(uint256 tokenId) public view returns (address) {
address o = _owner[tokenId];
if (o == address(0)) revert NoSuchToken();
return o;
}
/// @notice ERC-5192: every vow is locked forever.
function locked(uint256 tokenId) external view returns (bool) {
ownerOf(tokenId); // revert on nonexistent
return true;
}
// ── soulbound: every mutation path reverts ──────────────────────────────
function transferFrom(address, address, uint256) external pure { revert Soulbound(); }
function safeTransferFrom(address, address, uint256) external pure { revert Soulbound(); }
function safeTransferFrom(address, address, uint256, bytes calldata) external pure { revert Soulbound(); }
function approve(address, uint256) external pure { revert Soulbound(); }
function setApprovalForAll(address, bool) external pure { revert Soulbound(); }
function getApproved(uint256) external pure returns (address) { return address(0); }
function isApprovedForAll(address, address) external pure returns (bool) { return false; }
// ── ERC-165 ─────────────────────────────────────────────────────────────
function supportsInterface(bytes4 id) external pure returns (bool) {
return id == 0x01ffc9a7 // ERC-165
|| id == 0x80ac58cd // ERC-721
|| id == 0x5b5e139f // ERC-721 Metadata
|| id == 0x49064906 // ERC-4906 (metadata update)
|| id == 0xb45a3c0e; // ERC-5192
}
// ── metadata: built-in on-chain art by default (base64 JSON + SVG, no
// server, no IPFS); swappable via an external renderer (setRenderer). ─
/// @notice ERC-7572 contract-level metadata.
function contractURI() external view returns (string memory) {
if (renderer != address(0)) return IScryRenderer(renderer).contractURI();
return _builtinContractURI();
}
function _builtinContractURI() internal pure returns (string memory) {
return string.concat(
"data:application/json;utf8,",
'{"name":"scry vows","description":"Soulbound vows for AI agents. '
'An agent commits a declared purpose (ERC-5192, non-transferable, '
'non-burnable), then reports in over time to a hash-chained public '
'ledger anchored here by merkle root. The trajectory is the record; '
'a missed report-in is itself signal. Readings are interpretation, '
'never a verdict. https://scry.moreright.xyz",'
'"external_link":"https://scry.moreright.xyz/scry-watch.html"}');
}
function tokenURI(uint256 tokenId) external view returns (string memory) {
Vow memory v = vows[tokenId];
if (v.swearer == address(0)) revert NoSuchToken();
if (renderer != address(0)) return IScryRenderer(renderer).tokenURI(tokenId);
string memory idHex = _hex16(v.vowId);
string memory json = string.concat(
'{"name":"scry vow ', idHex,
'","description":"A soulbound vow: this wallet publicly committed an AI agent to a declared purpose. ',
v.sealed_ ? 'The text is SEALED (committed by sha256). ' : 'The text is in the VowTaken event log, forever. ',
'Ledger + trajectory: https://scry.moreright.xyz/scry-watch.html",',
'"image":"data:image/svg+xml;base64,', _b64(bytes(_svg(idHex, v))), '",',
'"attributes":[',
'{"trait_type":"vow_id","value":"', idHex, '"},',
'{"trait_type":"text_sha256","value":"', _hex32(v.textHash), '"},',
'{"trait_type":"cadence_hours","value":', _u(v.cadenceHours), '},',
'{"trait_type":"sealed","value":"', v.sealed_ ? "true" : "false", '"},',
'{"display_type":"date","trait_type":"taken_at","value":', _u(v.takenAt), '}',
']}');
return string.concat("data:application/json;base64,", _b64(bytes(json)));
}
function _svg(string memory idHex, Vow memory v) internal pure returns (string memory) {
return string.concat(
'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 350 350">',
'<rect width="350" height="350" fill="#150e28"/>',
'<circle cx="175" cy="140" r="66" fill="none" stroke="#f4b942" stroke-width="2"/>',
'<circle cx="175" cy="140" r="46" fill="none" stroke="#6a4a97" stroke-width="1.5"/>',
'<circle cx="175" cy="140" r="7" fill="#00c805"/>',
'<text x="175" y="248" text-anchor="middle" fill="#f4efe4" font-family="monospace" font-size="16">',
v.sealed_ ? unicode"🔒 sealed vow" : "scry vow", "</text>",
'<text x="175" y="274" text-anchor="middle" fill="#b9b0cc" font-family="monospace" font-size="13">',
idHex, "</text>",
'<text x="175" y="300" text-anchor="middle" fill="#c99a34" font-family="monospace" font-size="11">',
"every ", _u(v.cadenceHours), "h · soulbound · scry.moreright.xyz</text></svg>");
}
// ── tiny pure helpers (no deps) ─────────────────────────────────────────
function _u(uint256 x) internal pure returns (string memory s) {
if (x == 0) return "0";
uint256 t = x; uint256 len;
while (t != 0) { len++; t /= 10; }
bytes memory b = new bytes(len);
while (x != 0) { len--; b[len] = bytes1(uint8(48 + x % 10)); x /= 10; }
return string(b);
}
function _hex32(bytes32 x) internal pure returns (string memory) {
bytes memory a = "0123456789abcdef";
bytes memory b = new bytes(64);
for (uint256 i = 0; i < 32; i++) {
b[i * 2] = a[uint8(x[i]) >> 4];
b[i * 2 + 1] = a[uint8(x[i]) & 0x0f];
}
return string(b);
}
/// @dev first 8 bytes of a bytes32 as 16 hex chars (the API's vow_id form).
function _hex16(bytes32 x) internal pure returns (string memory) {
bytes memory a = "0123456789abcdef";
bytes memory b = new bytes(16);
for (uint256 i = 0; i < 8; i++) {
b[i * 2] = a[uint8(x[i]) >> 4];
b[i * 2 + 1] = a[uint8(x[i]) & 0x0f];
}
return string(b);
}
function _b64(bytes memory data) internal pure returns (string memory) {
if (data.length == 0) return "";
string memory table = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
string memory result = new string(4 * ((data.length + 2) / 3));
assembly {
let tablePtr := add(table, 1)
let resultPtr := add(result, 32)
for { let dataPtr := data } lt(dataPtr, add(data, mload(data))) {} {
dataPtr := add(dataPtr, 3)
let input := mload(dataPtr)
mstore8(resultPtr, mload(add(tablePtr, and(shr(18, input), 0x3F)))) resultPtr := add(resultPtr, 1)
mstore8(resultPtr, mload(add(tablePtr, and(shr(12, input), 0x3F)))) resultPtr := add(resultPtr, 1)
mstore8(resultPtr, mload(add(tablePtr, and(shr(6, input), 0x3F)))) resultPtr := add(resultPtr, 1)
mstore8(resultPtr, mload(add(tablePtr, and(input, 0x3F)))) resultPtr := add(resultPtr, 1)
}
switch mod(mload(data), 3)
case 1 { mstore8(sub(resultPtr, 1), 0x3d) mstore8(sub(resultPtr, 2), 0x3d) }
case 2 { mstore8(sub(resultPtr, 1), 0x3d) }
}
return result;
}
}[
{
"type": "constructor",
"inputs": [
{
"name": "oracle_",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "nonpayable"
},
{
"name": "BadTextHash",
"type": "error",
"inputs": []
},
{
"name": "NoSuchToken",
"type": "error",
"inputs": []
},
{
"name": "NotOracle",
"type": "error",
"inputs": []
},
{
"name": "NotOwner",
"type": "error",
"inputs": []
},
{
"name": "SealedNeedsNoText",
"type": "error",
"inputs": []
},
{
"name": "Soulbound",
"type": "error",
"inputs": []
},
{
"name": "VowAlreadyTaken",
"type": "error",
"inputs": []
},
{
"name": "Anchored",
"type": "event",
"inputs": [
{
"name": "root",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
},
{
"name": "vowCount",
"type": "uint64",
"indexed": false,
"internalType": "uint64"
},
{
"name": "leavesCid",
"type": "string",
"indexed": false,
"internalType": "string"
},
{
"name": "timestamp",
"type": "uint64",
"indexed": false,
"internalType": "uint64"
}
],
"anonymous": false
},
{
"name": "BatchMetadataUpdate",
"type": "event",
"inputs": [
{
"name": "_fromTokenId",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "_toTokenId",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "ContractURIUpdated",
"type": "event",
"inputs": [],
"anonymous": false
},
{
"name": "Locked",
"type": "event",
"inputs": [
{
"name": "tokenId",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "MetadataUpdate",
"type": "event",
"inputs": [
{
"name": "_tokenId",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "OracleTransferred",
"type": "event",
"inputs": [
{
"name": "from",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "to",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "OwnershipTransferred",
"type": "event",
"inputs": [
{
"name": "from",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "to",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "RendererUpdated",
"type": "event",
"inputs": [
{
"name": "renderer",
"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": "tokenId",
"type": "uint256",
"indexed": true,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "VowTaken",
"type": "event",
"inputs": [
{
"name": "tokenId",
"type": "uint256",
"indexed": true,
"internalType": "uint256"
},
{
"name": "vowId",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
},
{
"name": "swearer",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "textHash",
"type": "bytes32",
"indexed": false,
"internalType": "bytes32"
},
{
"name": "cadenceHours",
"type": "uint32",
"indexed": false,
"internalType": "uint32"
},
{
"name": "sealed_",
"type": "bool",
"indexed": false,
"internalType": "bool"
},
{
"name": "text",
"type": "string",
"indexed": false,
"internalType": "string"
}
],
"anonymous": false
},
{
"name": "anchorCount",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint64",
"internalType": "uint64"
}
],
"stateMutability": "view"
},
{
"name": "anchorRoot",
"type": "function",
"inputs": [
{
"name": "root",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "vowCount",
"type": "uint64",
"internalType": "uint64"
},
{
"name": "leavesCid",
"type": "string",
"internalType": "string"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "approve",
"type": "function",
"inputs": [
{
"name": "",
"type": "address",
"internalType": "address"
},
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "pure"
},
{
"name": "balanceOf",
"type": "function",
"inputs": [
{
"name": "who",
"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": "getApproved",
"type": "function",
"inputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "pure"
},
{
"name": "isApprovedForAll",
"type": "function",
"inputs": [
{
"name": "",
"type": "address",
"internalType": "address"
},
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "pure"
},
{
"name": "lastAnchorTime",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint64",
"internalType": "uint64"
}
],
"stateMutability": "view"
},
{
"name": "lastRoot",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"stateMutability": "view"
},
{
"name": "locked",
"type": "function",
"inputs": [
{
"name": "tokenId",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"name": "name",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"name": "nextTokenId",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "oracle",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "owner",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "ownerOf",
"type": "function",
"inputs": [
{
"name": "tokenId",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "renderer",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "safeTransferFrom",
"type": "function",
"inputs": [
{
"name": "",
"type": "address",
"internalType": "address"
},
{
"name": "",
"type": "address",
"internalType": "address"
},
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "pure"
},
{
"name": "safeTransferFrom",
"type": "function",
"inputs": [
{
"name": "",
"type": "address",
"internalType": "address"
},
{
"name": "",
"type": "address",
"internalType": "address"
},
{
"name": "",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "",
"type": "bytes",
"internalType": "bytes"
}
],
"outputs": [],
"stateMutability": "pure"
},
{
"name": "setApprovalForAll",
"type": "function",
"inputs": [
{
"name": "",
"type": "address",
"internalType": "address"
},
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"outputs": [],
"stateMutability": "pure"
},
{
"name": "setName",
"type": "function",
"inputs": [
{
"name": "newName",
"type": "string",
"internalType": "string"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setOracle",
"type": "function",
"inputs": [
{
"name": "newOracle",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setRenderer",
"type": "function",
"inputs": [
{
"name": "newRenderer",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setSymbol",
"type": "function",
"inputs": [
{
"name": "newSymbol",
"type": "string",
"internalType": "string"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "supportsInterface",
"type": "function",
"inputs": [
{
"name": "id",
"type": "bytes4",
"internalType": "bytes4"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "pure"
},
{
"name": "symbol",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"name": "takeVow",
"type": "function",
"inputs": [
{
"name": "vowId",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "textHash",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "cadenceHours",
"type": "uint32",
"internalType": "uint32"
},
{
"name": "sealed_",
"type": "bool",
"internalType": "bool"
},
{
"name": "text",
"type": "string",
"internalType": "string"
}
],
"outputs": [
{
"name": "tokenId",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "nonpayable"
},
{
"name": "tokenOf",
"type": "function",
"inputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "tokenURI",
"type": "function",
"inputs": [
{
"name": "tokenId",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"name": "transferFrom",
"type": "function",
"inputs": [
{
"name": "",
"type": "address",
"internalType": "address"
},
{
"name": "",
"type": "address",
"internalType": "address"
},
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "pure"
},
{
"name": "transferOwnership",
"type": "function",
"inputs": [
{
"name": "newOwner",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "verifyProof",
"type": "function",
"inputs": [
{
"name": "proof",
"type": "bytes32[]",
"internalType": "bytes32[]"
},
{
"name": "root",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "leaf",
"type": "bytes32",
"internalType": "bytes32"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "pure"
},
{
"name": "vows",
"type": "function",
"inputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "vowId",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "textHash",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "cadenceHours",
"type": "uint32",
"internalType": "uint32"
},
{
"name": "takenAt",
"type": "uint64",
"internalType": "uint64"
},
{
"name": "sealed_",
"type": "bool",
"internalType": "bool"
},
{
"name": "swearer",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
}
]0x60c060405260096080908152687363727920766f777360b81b60a0525f906100279082610198565b50604080518082019091526003815262564f5760e81b602082015260019061004f9082610198565b506001600455348015610060575f80fd5b506040516129a73803806129a783398101604081905261007f91610252565b600980546001600160a01b03199081166001600160a01b0384161790915560028054339216821790556040515f907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a36040517fa5d4097edda6d87cb9329af83fb3712ef77eeb13738ffe43cc35a4ce305ad962905f90a15061027f565b634e487b7160e01b5f52604160045260245ffd5b600181811c9082168061012857607f821691505b60208210810361014657634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561019357805f5260205f20601f840160051c810160208510156101715750805b601f840160051c820191505b81811015610190575f815560010161017d565b50505b505050565b81516001600160401b038111156101b1576101b1610100565b6101c5816101bf8454610114565b8461014c565b6020601f8211600181146101f7575f83156101e05750848201515b5f19600385901b1c1916600184901b178455610190565b5f84815260208120601f198516915b828110156102265787850151825560209485019460019092019101610206565b508482101561024357868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b5f60208284031215610262575f80fd5b81516001600160a01b0381168114610278575f80fd5b9392505050565b61271b8061028c5f395ff3fe608060405234801561000f575f80fd5b50600436106101e7575f3560e01c806385a0eac011610109578063b88d4fde1161009e578063d92dc6bd1161006e578063d92dc6bd146104d7578063e8a3d485146104ea578063e985e9c5146104f2578063f2fde38b14610507575f80fd5b8063b88d4fde14610484578063bae667bc14610492578063c47f0027146104b1578063c87b56dd146104c4575f80fd5b8063a22cb465116100d9578063a22cb46514610447578063b45a3c0e14610455578063b58166f214610468578063b84c824614610471575f80fd5b806385a0eac0146104065780638ada6b0f146104195780638da5cb5b1461042c57806395d89b411461043f575f80fd5b806356d3163d1161017f57806375794a3c1161014f57806375794a3c146103c45780637714743d146103cd5780637adbf973146103e05780637dc0d1d0146103f3575f80fd5b806356d3163d146102bb5780635e8ea25a146102ce5780636352211e1461037b57806370a082311461038e575f80fd5b806323b872dd116101ba57806323b872dd1461026857806334f96c8c1461027657806342842e0e146102685780634bc935d7146102a8575f80fd5b806301ffc9a7146101eb57806306fdde0314610213578063081812fc14610228578063095ea7b314610253575b5f80fd5b6101fe6101f93660046117e4565b61051a565b60405190151581526020015b60405180910390f35b61021b6105a1565b60405161020a919061180b565b61023b610236366004611840565b505f90565b6040516001600160a01b03909116815260200161020a565b610266610261366004611872565b61062c565b005b61026661026136600461189a565b600b5461029090600160401b90046001600160401b031681565b6040516001600160401b03909116815260200161020a565b6101fe6102b63660046118d4565b610645565b6102666102c936600461194f565b6106e5565b6103316102dc366004611840565b60056020525f908152604090208054600182015460028301546003909301549192909163ffffffff82169164010000000081046001600160401b031691600160601b90910460ff16906001600160a01b031686565b60408051968752602087019590955263ffffffff909316938501939093526001600160401b0316606084015290151560808301526001600160a01b031660a082015260c00161020a565b61023b610389366004611840565b6107d6565b6103b661039c36600461194f565b6001600160a01b03165f9081526007602052604090205490565b60405190815260200161020a565b6103b660045481565b6102666103db3660046119ac565b61080b565b6102666103ee36600461194f565b6108df565b60095461023b906001600160a01b031681565b6103b6610414366004611a1d565b610965565b60035461023b906001600160a01b031681565b60025461023b906001600160a01b031681565b61021b610c14565b610266610261366004611a99565b6101fe610463366004611840565b610c21565b6103b6600a5481565b61026661047f366004611aca565b610c34565b610266610261366004611b08565b6103b66104a0366004611840565b60066020525f908152604090205481565b6102666104bf366004611aca565b610c71565b61021b6104d2366004611840565b610ca8565b600b54610290906001600160401b031681565b61021b610f05565b6101fe610500366004611b71565b5f92915050565b61026661051536600461194f565b6111e7565b5f6301ffc9a760e01b6001600160e01b03198316148061054a57506380ac58cd60e01b6001600160e01b03198316145b806105655750635b5e139f60e01b6001600160e01b03198316145b806105805750632483248360e11b6001600160e01b03198316145b8061059b5750635a2d1e0760e11b6001600160e01b03198316145b92915050565b5f80546105ad90611b99565b80601f01602080910402602001604051908101604052809291908181526020018280546105d990611b99565b80156106245780601f106105fb57610100808354040283529160200191610624565b820191905f5260205f20905b81548152906001019060200180831161060757829003601f168201915b505050505081565b60405163a4420a9560e01b815260040160405180910390fd5b5f81815b858110156106d9575f87878381811061066457610664611bd1565b9050602002013590508083106106a3576040805160208101839052908101849052606001604051602081830303815290604052805190602001206106ce565b6040805160208101859052908101829052606001604051602081830303815290604052805190602001205b925050600101610649565b50909214949350505050565b6002546001600160a01b03163314610710576040516330cd747160e01b815260040160405180910390fd5b600380546001600160a01b0319166001600160a01b0383169081179091556040517f482cbbbcf912da3be80deb8503ae1e94c0b7d5d1d0ec0af3d9d6403e06e609ee905f90a26040517fa5d4097edda6d87cb9329af83fb3712ef77eeb13738ffe43cc35a4ce305ad962905f90a1600160045411156107d3577f6bd5c950a8d8df17f772f5af37cb3655737899cbf903264b9795592da439661c6001806004546107ba9190611bf9565b6040805192835260208301919091520160405180910390a15b50565b5f818152600860205260408120546001600160a01b03168061059b576040516329b490ad60e01b815260040160405180910390fd5b6009546001600160a01b0316331461083657604051631bc2178f60e01b815260040160405180910390fd5b600a849055600b805467ffffffffffffffff1916426001600160401b039081169190911780835560019291600891610877918591600160401b900416611c0c565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550837f7aa00ea787d865eef443b7d82171446506b8368cf1f71e4e549b9710596ea3a1848484426040516108d19493929190611c53565b60405180910390a250505050565b6009546001600160a01b0316331461090a57604051631bc2178f60e01b815260040160405180910390fd5b6009546040516001600160a01b038084169216907f9b0948b943e24ff3413cb400b2eeae4337138739aaf31759dc6e813e8076fbc3905f90a3600980546001600160a01b0319166001600160a01b0392909216919091179055565b5f868152600660205260408120541561099157604051630f0fb50d60e01b815260040160405180910390fd5b83156109bb5781156109b657604051634ed5b88360e11b815260040160405180910390fd5b610a2a565b85600284846040516109ce929190611c8f565b602060405180830381855afa1580156109e9573d5f803e3d5ffd5b5050506040513d601f19601f82011682018060405250810190610a0c9190611c9e565b14610a2a5760405163c2e30f0f60e01b815260040160405180910390fd5b60048054905f610a3983611cb5565b909155506040805160c08101825289815260208082018a815263ffffffff808b168486019081526001600160401b03428116606087019081528c1515608088019081523360a089018181525f8c815260058a528b81209a518b5597516001808c0191909155955160028b018054955194511515600160601b0260ff60601b1995909716640100000000026bffffffffffffffffffffffff1990961691909816179390931791909116929092179093559151600390950180546001600160a01b03969096166001600160a01b0319909616959095179094558c8252600683528482208690558152600790915291822080549394509092909190610b3c908490611ccd565b90915550505f8181526008602052604080822080546001600160a01b0319163390811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a46040518181527f032bc66be43dbccb7487781d168eb7bda224628a3b2c3388bdf69b532a3a16119060200160405180910390a1336001600160a01b031687827faf817e272b306685a726e4a3487db92e11e4d657b64a12c3fa69d1ccb22201918989898989604051610c02959493929190611ce0565b60405180910390a49695505050505050565b600180546105ad90611b99565b5f610c2b826107d6565b50600192915050565b6002546001600160a01b03163314610c5f576040516330cd747160e01b815260040160405180910390fd5b6001610c6c828483611d77565b505050565b6002546001600160a01b03163314610c9c576040516330cd747160e01b815260040160405180910390fd5b5f610c6c828483611d77565b5f81815260056020908152604091829020825160c08101845281548152600182015492810192909252600281015463ffffffff81169383019390935264010000000083046001600160401b0316606080840191909152600160601b90930460ff1615156080830152600301546001600160a01b031660a08201819052610d41576040516329b490ad60e01b815260040160405180910390fd5b6003546001600160a01b031615610dc65760035460405163c87b56dd60e01b8152600481018590526001600160a01b039091169063c87b56dd906024015f60405180830381865afa158015610d98573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610dbf9190810190611e30565b9392505050565b5f610dd3825f015161126d565b90505f818360800151610dfe576040518060600160405280603081526020016126b660309139610e18565b6040518060600160405280602a815260200161264c602a91395b610e2a610e2585876113ba565b611451565b84610e38876020015161159b565b610e4b886040015163ffffffff166116df565b8860800151610e77576040518060400160405280600581526020016466616c736560d81b815250610e95565b604051806040016040528060048152602001637472756560e01b8152505b610eab8a606001516001600160401b03166116df565b604051602001610ec2989796959493929190611ef7565b6040516020818303038152906040529050610edc81611451565b604051602001610eec91906121f5565b6040516020818303038152906040529350505050919050565b6003546060906001600160a01b031615610f945760035f9054906101000a90046001600160a01b03166001600160a01b031663e8a3d4856040518163ffffffff1660e01b81526004015f60405180830381865afa158015610f68573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610f8f9190810190611e30565b905090565b50604080517f646174613a6170706c69636174696f6e2f6a736f6e3b757466382c000000000060208201527f7b226e616d65223a227363727920766f7773222c226465736372697074696f6e603b8201527f223a22536f756c626f756e6420766f777320666f72204149206167656e74732e605b8201527f20416e206167656e7420636f6d6d6974732061206465636c6172656420707572607b8201527f706f736520284552432d353139322c206e6f6e2d7472616e7366657261626c65609b8201527f2c206e6f6e2d6275726e61626c65292c207468656e207265706f72747320696e60bb8201527f206f7665722074696d6520746f206120686173682d636861696e65642070756260db8201527f6c6963206c656467657220616e63686f7265642068657265206279206d65726b60fb8201527f6c6520726f6f742e20546865207472616a6563746f727920697320746865207261011b8201527f65636f72643b2061206d6973736564207265706f72742d696e2069732069747361013b8201527f656c66207369676e616c2e2052656164696e67732061726520696e746572707261015b8201527f65746174696f6e2c206e65766572206120766572646963742e2068747470733a61017b8201527f2f2f736372792e6d6f726572696768742e78797a222c2265787465726e616c5f61019b8201527f6c696e6b223a2268747470733a2f2f736372792e6d6f726572696768742e78796101bb820152727a2f736372792d77617463682e68746d6c227d60681b6101db82015281516101ce8183030181526101ee90910190915290565b6002546001600160a01b03163314611212576040516330cd747160e01b815260040160405180910390fd5b6002546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3600280546001600160a01b0319166001600160a01b0392909216919091179055565b60408051808201825260108082526f181899199a1a9b1b9c1cb0b131b232b360811b602083015282518181528084019093526060925f916020820181803683370190505090505f5b60088110156113b2578260048683602081106112d3576112d3611bd1565b835191901a90911c60ff169081106112ed576112ed611bd1565b01602001516001600160f81b03191682611308836002612226565b8151811061131857611318611bd1565b60200101906001600160f81b03191690815f1a9053508285826020811061134157611341611bd1565b1a60f81b60f81c600f1660ff168151811061135e5761135e611bd1565b01602001516001600160f81b03191682611379836002612226565b611384906001611ccd565b8151811061139457611394611bd1565b60200101906001600160f81b03191690815f1a9053506001016112b5565b509392505050565b606081608001516113eb57604051806040016040528060088152602001677363727920766f7760c01b815250611414565b6040518060400160405280600f81526020016ef09f9492207365616c656420766f7760881b8152505b83611428846040015163ffffffff166116df565b60405160200161143a9392919061223d565b604051602081830303815290604052905092915050565b606081515f0361146e57505060408051602081019091525f815290565b5f6040518060600160405280604081526020016126766040913990505f60038451600261149b9190611ccd565b6114a59190612610565b6114b0906004612226565b6001600160401b038111156114c7576114c7611d18565b6040519080825280601f01601f1916602001820160405280156114f1576020820181803683370190505b5090506001820160208201855b8651870181101561155a576003018051601281901c603f168401518353600183019250603f81600c1c168401518353600183019250603f8160061c168401518353600183019250603f81168401518353506001820191506114fe565b50600386510660018114611575576002811461158857611590565b603d6001830353603d6002830353611590565b603d60018303535b509195945050505050565b604080518082018252601081526f181899199a1a9b1b9c1cb0b131b232b360811b6020820152815182815260608181018452925f91906020820181803683370190505090505f5b60208110156113b25782600486836020811061160057611600611bd1565b835191901a90911c60ff1690811061161a5761161a611bd1565b01602001516001600160f81b03191682611635836002612226565b8151811061164557611645611bd1565b60200101906001600160f81b03191690815f1a9053508285826020811061166e5761166e611bd1565b1a60f81b60f81c600f1660ff168151811061168b5761168b611bd1565b01602001516001600160f81b031916826116a6836002612226565b6116b1906001611ccd565b815181106116c1576116c1611bd1565b60200101906001600160f81b03191690815f1a9053506001016115e2565b6060815f036117055750506040805180820190915260018152600360fc1b602082015290565b815f5b811561172e578061171881611cb5565b91506117279050600a83612610565b9150611708565b5f816001600160401b0381111561174757611747611d18565b6040519080825280601f01601f191660200182016040528015611771576020820181803683370190505b5090505b84156117dc578161178581612623565b92506117949050600a86612638565b61179f906030611ccd565b60f81b8183815181106117b4576117b4611bd1565b60200101906001600160f81b03191690815f1a9053506117d5600a86612610565b9450611775565b949350505050565b5f602082840312156117f4575f80fd5b81356001600160e01b031981168114610dbf575f80fd5b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f60208284031215611850575f80fd5b5035919050565b80356001600160a01b038116811461186d575f80fd5b919050565b5f8060408385031215611883575f80fd5b61188c83611857565b946020939093013593505050565b5f805f606084860312156118ac575f80fd5b6118b584611857565b92506118c360208501611857565b929592945050506040919091013590565b5f805f80606085870312156118e7575f80fd5b84356001600160401b038111156118fc575f80fd5b8501601f8101871361190c575f80fd5b80356001600160401b03811115611921575f80fd5b8760208260051b8401011115611935575f80fd5b602091820198909750908601359560400135945092505050565b5f6020828403121561195f575f80fd5b610dbf82611857565b5f8083601f840112611978575f80fd5b5081356001600160401b0381111561198e575f80fd5b6020830191508360208285010111156119a5575f80fd5b9250929050565b5f805f80606085870312156119bf575f80fd5b8435935060208501356001600160401b03811681146119dc575f80fd5b925060408501356001600160401b038111156119f6575f80fd5b611a0287828801611968565b95989497509550505050565b8035801515811461186d575f80fd5b5f805f805f8060a08789031215611a32575f80fd5b8635955060208701359450604087013563ffffffff81168114611a53575f80fd5b9350611a6160608801611a0e565b925060808701356001600160401b03811115611a7b575f80fd5b611a8789828a01611968565b979a9699509497509295939492505050565b5f8060408385031215611aaa575f80fd5b611ab383611857565b9150611ac160208401611a0e565b90509250929050565b5f8060208385031215611adb575f80fd5b82356001600160401b03811115611af0575f80fd5b611afc85828601611968565b90969095509350505050565b5f805f805f60808688031215611b1c575f80fd5b611b2586611857565b9450611b3360208701611857565b93506040860135925060608601356001600160401b03811115611b54575f80fd5b611b6088828901611968565b969995985093965092949392505050565b5f8060408385031215611b82575f80fd5b611b8b83611857565b9150611ac160208401611857565b600181811c90821680611bad57607f821691505b602082108103611bcb57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b8181038181111561059b5761059b611be5565b6001600160401b03818116838216019081111561059b5761059b611be5565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b6001600160401b0385168152606060208201525f611c75606083018587611c2b565b90506001600160401b038316604083015295945050505050565b818382375f9101908152919050565b5f60208284031215611cae575f80fd5b5051919050565b5f60018201611cc657611cc6611be5565b5060010190565b8082018082111561059b5761059b611be5565b85815263ffffffff851660208201528315156040820152608060608201525f611d0d608083018486611c2b565b979650505050505050565b634e487b7160e01b5f52604160045260245ffd5b601f821115610c6c57805f5260205f20601f840160051c81016020851015611d515750805b601f840160051c820191505b81811015611d70575f8155600101611d5d565b5050505050565b6001600160401b03831115611d8e57611d8e611d18565b611da283611d9c8354611b99565b83611d2c565b5f601f841160018114611dd3575f8515611dbc5750838201355b5f19600387901b1c1916600186901b178355611d70565b5f83815260208120601f198716915b82811015611e025786850135825560209485019460019092019101611de2565b5086821015611e1e575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b5f60208284031215611e40575f80fd5b81516001600160401b03811115611e55575f80fd5b8201601f81018413611e65575f80fd5b80516001600160401b03811115611e7e57611e7e611d18565b604051601f8201601f19908116603f011681016001600160401b0381118282101715611eac57611eac611d18565b604052818152828201602001861015611ec3575f80fd5b8160208401602083015e5f91810160200191909152949350505050565b5f81518060208401855e5f93019283525090919050565b7103d913730b6b2911d1139b1b93c903b37bb960751b81525f611f1d601283018b611ee0565b7f222c226465736372697074696f6e223a224120736f756c626f756e6420766f7781527f3a20746869732077616c6c6574207075626c69636c7920636f6d6d697474656460208201527f20616e204149206167656e7420746f2061206465636c6172656420707572706f604082015263039b297160e51b606082015261204361203d612008611faf606485018e611ee0565b7f4c6564676572202b207472616a6563746f72793a2068747470733a2f2f73637281527f792e6d6f726572696768742e78797a2f736372792d77617463682e68746d6c226020820152600b60fa1b604082015260410190565b7f22696d616765223a22646174613a696d6167652f7376672b786d6c3b626173658152620d8d0b60ea1b602082015260230190565b8a611ee0565b61088b60f21b815290506d2261747472696275746573223a5b60901b60028201527f7b2274726169745f74797065223a22766f775f6964222c2276616c7565223a2260108201526120976030820189611ee0565b62089f4b60ea1b815290507f7b2274726169745f74797065223a22746578745f736861323536222c2276616c6003820152643ab2911d1160d91b60238201526120e36028820188611ee0565b62089f4b60ea1b815290507f7b2274726169745f74797065223a22636164656e63655f686f757273222c227660038201526530b63ab2911d60d11b60238201526121306029820187611ee0565b611f4b60f21b815290507f7b2274726169745f74797065223a227365616c6564222c2276616c7565223a22600282015261216d6022820186611ee0565b62089f4b60ea1b815290507f7b22646973706c61795f74797065223a2264617465222c2274726169745f747960038201527f7065223a2274616b656e5f6174222c2276616c7565223a00000000000000000060238201526121d1603a820185611ee0565b607d60f81b8152615d7d60f01b60018201526003019b9a5050505050505050505050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c00000081525f610dbf601d830184611ee0565b808202811582820484141761059b5761059b611be5565b7f3c73766720786d6c6e733d22687474703a2f2f7777772e77332e6f72672f323081527f30302f737667222076696577426f783d223020302033353020333530223e000060208201527f3c726563742077696474683d2233353022206865696768743d22333530222066603e8201526e34b6361e9111989a9832991c11179f60891b605e8201527f3c636972636c652063783d22313735222063793d223134302220723d22363622606d8201527f2066696c6c3d226e6f6e6522207374726f6b653d222366346239343222207374608d8201526f3937b5b296bbb4b23a341e911911179f60811b60ad8201527f3c636972636c652063783d22313735222063793d223134302220723d2234362260bd8201527f2066696c6c3d226e6f6e6522207374726f6b653d22233661346139372220737460dd820152713937b5b296bbb4b23a341e9118971a91179f60711b60fd8201527f3c636972636c652063783d22313735222063793d223134302220723d2237222061010f8201526f3334b6361e91119818319c181a91179f60811b61012f8201527f3c7465787420783d223137352220793d223234382220746578742d616e63686f61013f8201527f723d226d6964646c65222066696c6c3d22236634656665342220666f6e742d6661015f8201527f616d696c793d226d6f6e6f73706163652220666f6e742d73697a653d2231362261017f820152601f60f91b61019f8201525f6124616101a083015b86611ee0565b661e17ba32bc3a1f60c91b81527f3c7465787420783d223137352220793d223237342220746578742d616e63686f60078201527f723d226d6964646c65222066696c6c3d22236239623063632220666f6e742d6660278201527f616d696c793d226d6f6e6f73706163652220666f6e742d73697a653d223133226047820152601f60f91b60678201526124f66068820161245b565b661e17ba32bc3a1f60c91b815290507f3c7465787420783d223137352220793d223330302220746578742d616e63686f60078201527f723d226d6964646c65222066696c6c3d22236339396133342220666f6e742d6660278201527f616d696c793d226d6f6e6f73706163652220666f6e742d73697a653d223131226047820152601f60f91b60678201526068810165032bb32b93c960d51b815290506125f26125a36006830186611ee0565b7f682026233138333b20736f756c626f756e642026233138333b20736372792e6d81527f6f726572696768742e78797a3c2f746578743e3c2f7376673e00000000000000602082015260390190565b9695505050505050565b634e487b7160e01b5f52601260045260245ffd5b5f8261261e5761261e6125fc565b500490565b5f8161263157612631611be5565b505f190190565b5f82612646576126466125fc565b50069056fe5468652074657874206973205345414c45442028636f6d6d697474656420627920736861323536292e204142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2f546865207465787420697320696e2074686520566f7754616b656e206576656e74206c6f672c20666f72657665722e20a264697066735822122068dea409fa15fa3a27d3fa7747aff327620876eb0472e10231de2ffcc573d36c64736f6c634300081a003300000000000000000000000024445efddb08d4938e3e3627042b2cf4063d9092
0x608060405234801561000f575f80fd5b50600436106101e7575f3560e01c806385a0eac011610109578063b88d4fde1161009e578063d92dc6bd1161006e578063d92dc6bd146104d7578063e8a3d485146104ea578063e985e9c5146104f2578063f2fde38b14610507575f80fd5b8063b88d4fde14610484578063bae667bc14610492578063c47f0027146104b1578063c87b56dd146104c4575f80fd5b8063a22cb465116100d9578063a22cb46514610447578063b45a3c0e14610455578063b58166f214610468578063b84c824614610471575f80fd5b806385a0eac0146104065780638ada6b0f146104195780638da5cb5b1461042c57806395d89b411461043f575f80fd5b806356d3163d1161017f57806375794a3c1161014f57806375794a3c146103c45780637714743d146103cd5780637adbf973146103e05780637dc0d1d0146103f3575f80fd5b806356d3163d146102bb5780635e8ea25a146102ce5780636352211e1461037b57806370a082311461038e575f80fd5b806323b872dd116101ba57806323b872dd1461026857806334f96c8c1461027657806342842e0e146102685780634bc935d7146102a8575f80fd5b806301ffc9a7146101eb57806306fdde0314610213578063081812fc14610228578063095ea7b314610253575b5f80fd5b6101fe6101f93660046117e4565b61051a565b60405190151581526020015b60405180910390f35b61021b6105a1565b60405161020a919061180b565b61023b610236366004611840565b505f90565b6040516001600160a01b03909116815260200161020a565b610266610261366004611872565b61062c565b005b61026661026136600461189a565b600b5461029090600160401b90046001600160401b031681565b6040516001600160401b03909116815260200161020a565b6101fe6102b63660046118d4565b610645565b6102666102c936600461194f565b6106e5565b6103316102dc366004611840565b60056020525f908152604090208054600182015460028301546003909301549192909163ffffffff82169164010000000081046001600160401b031691600160601b90910460ff16906001600160a01b031686565b60408051968752602087019590955263ffffffff909316938501939093526001600160401b0316606084015290151560808301526001600160a01b031660a082015260c00161020a565b61023b610389366004611840565b6107d6565b6103b661039c36600461194f565b6001600160a01b03165f9081526007602052604090205490565b60405190815260200161020a565b6103b660045481565b6102666103db3660046119ac565b61080b565b6102666103ee36600461194f565b6108df565b60095461023b906001600160a01b031681565b6103b6610414366004611a1d565b610965565b60035461023b906001600160a01b031681565b60025461023b906001600160a01b031681565b61021b610c14565b610266610261366004611a99565b6101fe610463366004611840565b610c21565b6103b6600a5481565b61026661047f366004611aca565b610c34565b610266610261366004611b08565b6103b66104a0366004611840565b60066020525f908152604090205481565b6102666104bf366004611aca565b610c71565b61021b6104d2366004611840565b610ca8565b600b54610290906001600160401b031681565b61021b610f05565b6101fe610500366004611b71565b5f92915050565b61026661051536600461194f565b6111e7565b5f6301ffc9a760e01b6001600160e01b03198316148061054a57506380ac58cd60e01b6001600160e01b03198316145b806105655750635b5e139f60e01b6001600160e01b03198316145b806105805750632483248360e11b6001600160e01b03198316145b8061059b5750635a2d1e0760e11b6001600160e01b03198316145b92915050565b5f80546105ad90611b99565b80601f01602080910402602001604051908101604052809291908181526020018280546105d990611b99565b80156106245780601f106105fb57610100808354040283529160200191610624565b820191905f5260205f20905b81548152906001019060200180831161060757829003601f168201915b505050505081565b60405163a4420a9560e01b815260040160405180910390fd5b5f81815b858110156106d9575f87878381811061066457610664611bd1565b9050602002013590508083106106a3576040805160208101839052908101849052606001604051602081830303815290604052805190602001206106ce565b6040805160208101859052908101829052606001604051602081830303815290604052805190602001205b925050600101610649565b50909214949350505050565b6002546001600160a01b03163314610710576040516330cd747160e01b815260040160405180910390fd5b600380546001600160a01b0319166001600160a01b0383169081179091556040517f482cbbbcf912da3be80deb8503ae1e94c0b7d5d1d0ec0af3d9d6403e06e609ee905f90a26040517fa5d4097edda6d87cb9329af83fb3712ef77eeb13738ffe43cc35a4ce305ad962905f90a1600160045411156107d3577f6bd5c950a8d8df17f772f5af37cb3655737899cbf903264b9795592da439661c6001806004546107ba9190611bf9565b6040805192835260208301919091520160405180910390a15b50565b5f818152600860205260408120546001600160a01b03168061059b576040516329b490ad60e01b815260040160405180910390fd5b6009546001600160a01b0316331461083657604051631bc2178f60e01b815260040160405180910390fd5b600a849055600b805467ffffffffffffffff1916426001600160401b039081169190911780835560019291600891610877918591600160401b900416611c0c565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550837f7aa00ea787d865eef443b7d82171446506b8368cf1f71e4e549b9710596ea3a1848484426040516108d19493929190611c53565b60405180910390a250505050565b6009546001600160a01b0316331461090a57604051631bc2178f60e01b815260040160405180910390fd5b6009546040516001600160a01b038084169216907f9b0948b943e24ff3413cb400b2eeae4337138739aaf31759dc6e813e8076fbc3905f90a3600980546001600160a01b0319166001600160a01b0392909216919091179055565b5f868152600660205260408120541561099157604051630f0fb50d60e01b815260040160405180910390fd5b83156109bb5781156109b657604051634ed5b88360e11b815260040160405180910390fd5b610a2a565b85600284846040516109ce929190611c8f565b602060405180830381855afa1580156109e9573d5f803e3d5ffd5b5050506040513d601f19601f82011682018060405250810190610a0c9190611c9e565b14610a2a5760405163c2e30f0f60e01b815260040160405180910390fd5b60048054905f610a3983611cb5565b909155506040805160c08101825289815260208082018a815263ffffffff808b168486019081526001600160401b03428116606087019081528c1515608088019081523360a089018181525f8c815260058a528b81209a518b5597516001808c0191909155955160028b018054955194511515600160601b0260ff60601b1995909716640100000000026bffffffffffffffffffffffff1990961691909816179390931791909116929092179093559151600390950180546001600160a01b03969096166001600160a01b0319909616959095179094558c8252600683528482208690558152600790915291822080549394509092909190610b3c908490611ccd565b90915550505f8181526008602052604080822080546001600160a01b0319163390811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a46040518181527f032bc66be43dbccb7487781d168eb7bda224628a3b2c3388bdf69b532a3a16119060200160405180910390a1336001600160a01b031687827faf817e272b306685a726e4a3487db92e11e4d657b64a12c3fa69d1ccb22201918989898989604051610c02959493929190611ce0565b60405180910390a49695505050505050565b600180546105ad90611b99565b5f610c2b826107d6565b50600192915050565b6002546001600160a01b03163314610c5f576040516330cd747160e01b815260040160405180910390fd5b6001610c6c828483611d77565b505050565b6002546001600160a01b03163314610c9c576040516330cd747160e01b815260040160405180910390fd5b5f610c6c828483611d77565b5f81815260056020908152604091829020825160c08101845281548152600182015492810192909252600281015463ffffffff81169383019390935264010000000083046001600160401b0316606080840191909152600160601b90930460ff1615156080830152600301546001600160a01b031660a08201819052610d41576040516329b490ad60e01b815260040160405180910390fd5b6003546001600160a01b031615610dc65760035460405163c87b56dd60e01b8152600481018590526001600160a01b039091169063c87b56dd906024015f60405180830381865afa158015610d98573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610dbf9190810190611e30565b9392505050565b5f610dd3825f015161126d565b90505f818360800151610dfe576040518060600160405280603081526020016126b660309139610e18565b6040518060600160405280602a815260200161264c602a91395b610e2a610e2585876113ba565b611451565b84610e38876020015161159b565b610e4b886040015163ffffffff166116df565b8860800151610e77576040518060400160405280600581526020016466616c736560d81b815250610e95565b604051806040016040528060048152602001637472756560e01b8152505b610eab8a606001516001600160401b03166116df565b604051602001610ec2989796959493929190611ef7565b6040516020818303038152906040529050610edc81611451565b604051602001610eec91906121f5565b6040516020818303038152906040529350505050919050565b6003546060906001600160a01b031615610f945760035f9054906101000a90046001600160a01b03166001600160a01b031663e8a3d4856040518163ffffffff1660e01b81526004015f60405180830381865afa158015610f68573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610f8f9190810190611e30565b905090565b50604080517f646174613a6170706c69636174696f6e2f6a736f6e3b757466382c000000000060208201527f7b226e616d65223a227363727920766f7773222c226465736372697074696f6e603b8201527f223a22536f756c626f756e6420766f777320666f72204149206167656e74732e605b8201527f20416e206167656e7420636f6d6d6974732061206465636c6172656420707572607b8201527f706f736520284552432d353139322c206e6f6e2d7472616e7366657261626c65609b8201527f2c206e6f6e2d6275726e61626c65292c207468656e207265706f72747320696e60bb8201527f206f7665722074696d6520746f206120686173682d636861696e65642070756260db8201527f6c6963206c656467657220616e63686f7265642068657265206279206d65726b60fb8201527f6c6520726f6f742e20546865207472616a6563746f727920697320746865207261011b8201527f65636f72643b2061206d6973736564207265706f72742d696e2069732069747361013b8201527f656c66207369676e616c2e2052656164696e67732061726520696e746572707261015b8201527f65746174696f6e2c206e65766572206120766572646963742e2068747470733a61017b8201527f2f2f736372792e6d6f726572696768742e78797a222c2265787465726e616c5f61019b8201527f6c696e6b223a2268747470733a2f2f736372792e6d6f726572696768742e78796101bb820152727a2f736372792d77617463682e68746d6c227d60681b6101db82015281516101ce8183030181526101ee90910190915290565b6002546001600160a01b03163314611212576040516330cd747160e01b815260040160405180910390fd5b6002546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3600280546001600160a01b0319166001600160a01b0392909216919091179055565b60408051808201825260108082526f181899199a1a9b1b9c1cb0b131b232b360811b602083015282518181528084019093526060925f916020820181803683370190505090505f5b60088110156113b2578260048683602081106112d3576112d3611bd1565b835191901a90911c60ff169081106112ed576112ed611bd1565b01602001516001600160f81b03191682611308836002612226565b8151811061131857611318611bd1565b60200101906001600160f81b03191690815f1a9053508285826020811061134157611341611bd1565b1a60f81b60f81c600f1660ff168151811061135e5761135e611bd1565b01602001516001600160f81b03191682611379836002612226565b611384906001611ccd565b8151811061139457611394611bd1565b60200101906001600160f81b03191690815f1a9053506001016112b5565b509392505050565b606081608001516113eb57604051806040016040528060088152602001677363727920766f7760c01b815250611414565b6040518060400160405280600f81526020016ef09f9492207365616c656420766f7760881b8152505b83611428846040015163ffffffff166116df565b60405160200161143a9392919061223d565b604051602081830303815290604052905092915050565b606081515f0361146e57505060408051602081019091525f815290565b5f6040518060600160405280604081526020016126766040913990505f60038451600261149b9190611ccd565b6114a59190612610565b6114b0906004612226565b6001600160401b038111156114c7576114c7611d18565b6040519080825280601f01601f1916602001820160405280156114f1576020820181803683370190505b5090506001820160208201855b8651870181101561155a576003018051601281901c603f168401518353600183019250603f81600c1c168401518353600183019250603f8160061c168401518353600183019250603f81168401518353506001820191506114fe565b50600386510660018114611575576002811461158857611590565b603d6001830353603d6002830353611590565b603d60018303535b509195945050505050565b604080518082018252601081526f181899199a1a9b1b9c1cb0b131b232b360811b6020820152815182815260608181018452925f91906020820181803683370190505090505f5b60208110156113b25782600486836020811061160057611600611bd1565b835191901a90911c60ff1690811061161a5761161a611bd1565b01602001516001600160f81b03191682611635836002612226565b8151811061164557611645611bd1565b60200101906001600160f81b03191690815f1a9053508285826020811061166e5761166e611bd1565b1a60f81b60f81c600f1660ff168151811061168b5761168b611bd1565b01602001516001600160f81b031916826116a6836002612226565b6116b1906001611ccd565b815181106116c1576116c1611bd1565b60200101906001600160f81b03191690815f1a9053506001016115e2565b6060815f036117055750506040805180820190915260018152600360fc1b602082015290565b815f5b811561172e578061171881611cb5565b91506117279050600a83612610565b9150611708565b5f816001600160401b0381111561174757611747611d18565b6040519080825280601f01601f191660200182016040528015611771576020820181803683370190505b5090505b84156117dc578161178581612623565b92506117949050600a86612638565b61179f906030611ccd565b60f81b8183815181106117b4576117b4611bd1565b60200101906001600160f81b03191690815f1a9053506117d5600a86612610565b9450611775565b949350505050565b5f602082840312156117f4575f80fd5b81356001600160e01b031981168114610dbf575f80fd5b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f60208284031215611850575f80fd5b5035919050565b80356001600160a01b038116811461186d575f80fd5b919050565b5f8060408385031215611883575f80fd5b61188c83611857565b946020939093013593505050565b5f805f606084860312156118ac575f80fd5b6118b584611857565b92506118c360208501611857565b929592945050506040919091013590565b5f805f80606085870312156118e7575f80fd5b84356001600160401b038111156118fc575f80fd5b8501601f8101871361190c575f80fd5b80356001600160401b03811115611921575f80fd5b8760208260051b8401011115611935575f80fd5b602091820198909750908601359560400135945092505050565b5f6020828403121561195f575f80fd5b610dbf82611857565b5f8083601f840112611978575f80fd5b5081356001600160401b0381111561198e575f80fd5b6020830191508360208285010111156119a5575f80fd5b9250929050565b5f805f80606085870312156119bf575f80fd5b8435935060208501356001600160401b03811681146119dc575f80fd5b925060408501356001600160401b038111156119f6575f80fd5b611a0287828801611968565b95989497509550505050565b8035801515811461186d575f80fd5b5f805f805f8060a08789031215611a32575f80fd5b8635955060208701359450604087013563ffffffff81168114611a53575f80fd5b9350611a6160608801611a0e565b925060808701356001600160401b03811115611a7b575f80fd5b611a8789828a01611968565b979a9699509497509295939492505050565b5f8060408385031215611aaa575f80fd5b611ab383611857565b9150611ac160208401611a0e565b90509250929050565b5f8060208385031215611adb575f80fd5b82356001600160401b03811115611af0575f80fd5b611afc85828601611968565b90969095509350505050565b5f805f805f60808688031215611b1c575f80fd5b611b2586611857565b9450611b3360208701611857565b93506040860135925060608601356001600160401b03811115611b54575f80fd5b611b6088828901611968565b969995985093965092949392505050565b5f8060408385031215611b82575f80fd5b611b8b83611857565b9150611ac160208401611857565b600181811c90821680611bad57607f821691505b602082108103611bcb57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b8181038181111561059b5761059b611be5565b6001600160401b03818116838216019081111561059b5761059b611be5565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b6001600160401b0385168152606060208201525f611c75606083018587611c2b565b90506001600160401b038316604083015295945050505050565b818382375f9101908152919050565b5f60208284031215611cae575f80fd5b5051919050565b5f60018201611cc657611cc6611be5565b5060010190565b8082018082111561059b5761059b611be5565b85815263ffffffff851660208201528315156040820152608060608201525f611d0d608083018486611c2b565b979650505050505050565b634e487b7160e01b5f52604160045260245ffd5b601f821115610c6c57805f5260205f20601f840160051c81016020851015611d515750805b601f840160051c820191505b81811015611d70575f8155600101611d5d565b5050505050565b6001600160401b03831115611d8e57611d8e611d18565b611da283611d9c8354611b99565b83611d2c565b5f601f841160018114611dd3575f8515611dbc5750838201355b5f19600387901b1c1916600186901b178355611d70565b5f83815260208120601f198716915b82811015611e025786850135825560209485019460019092019101611de2565b5086821015611e1e575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b5f60208284031215611e40575f80fd5b81516001600160401b03811115611e55575f80fd5b8201601f81018413611e65575f80fd5b80516001600160401b03811115611e7e57611e7e611d18565b604051601f8201601f19908116603f011681016001600160401b0381118282101715611eac57611eac611d18565b604052818152828201602001861015611ec3575f80fd5b8160208401602083015e5f91810160200191909152949350505050565b5f81518060208401855e5f93019283525090919050565b7103d913730b6b2911d1139b1b93c903b37bb960751b81525f611f1d601283018b611ee0565b7f222c226465736372697074696f6e223a224120736f756c626f756e6420766f7781527f3a20746869732077616c6c6574207075626c69636c7920636f6d6d697474656460208201527f20616e204149206167656e7420746f2061206465636c6172656420707572706f604082015263039b297160e51b606082015261204361203d612008611faf606485018e611ee0565b7f4c6564676572202b207472616a6563746f72793a2068747470733a2f2f73637281527f792e6d6f726572696768742e78797a2f736372792d77617463682e68746d6c226020820152600b60fa1b604082015260410190565b7f22696d616765223a22646174613a696d6167652f7376672b786d6c3b626173658152620d8d0b60ea1b602082015260230190565b8a611ee0565b61088b60f21b815290506d2261747472696275746573223a5b60901b60028201527f7b2274726169745f74797065223a22766f775f6964222c2276616c7565223a2260108201526120976030820189611ee0565b62089f4b60ea1b815290507f7b2274726169745f74797065223a22746578745f736861323536222c2276616c6003820152643ab2911d1160d91b60238201526120e36028820188611ee0565b62089f4b60ea1b815290507f7b2274726169745f74797065223a22636164656e63655f686f757273222c227660038201526530b63ab2911d60d11b60238201526121306029820187611ee0565b611f4b60f21b815290507f7b2274726169745f74797065223a227365616c6564222c2276616c7565223a22600282015261216d6022820186611ee0565b62089f4b60ea1b815290507f7b22646973706c61795f74797065223a2264617465222c2274726169745f747960038201527f7065223a2274616b656e5f6174222c2276616c7565223a00000000000000000060238201526121d1603a820185611ee0565b607d60f81b8152615d7d60f01b60018201526003019b9a5050505050505050505050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c00000081525f610dbf601d830184611ee0565b808202811582820484141761059b5761059b611be5565b7f3c73766720786d6c6e733d22687474703a2f2f7777772e77332e6f72672f323081527f30302f737667222076696577426f783d223020302033353020333530223e000060208201527f3c726563742077696474683d2233353022206865696768743d22333530222066603e8201526e34b6361e9111989a9832991c11179f60891b605e8201527f3c636972636c652063783d22313735222063793d223134302220723d22363622606d8201527f2066696c6c3d226e6f6e6522207374726f6b653d222366346239343222207374608d8201526f3937b5b296bbb4b23a341e911911179f60811b60ad8201527f3c636972636c652063783d22313735222063793d223134302220723d2234362260bd8201527f2066696c6c3d226e6f6e6522207374726f6b653d22233661346139372220737460dd820152713937b5b296bbb4b23a341e9118971a91179f60711b60fd8201527f3c636972636c652063783d22313735222063793d223134302220723d2237222061010f8201526f3334b6361e91119818319c181a91179f60811b61012f8201527f3c7465787420783d223137352220793d223234382220746578742d616e63686f61013f8201527f723d226d6964646c65222066696c6c3d22236634656665342220666f6e742d6661015f8201527f616d696c793d226d6f6e6f73706163652220666f6e742d73697a653d2231362261017f820152601f60f91b61019f8201525f6124616101a083015b86611ee0565b661e17ba32bc3a1f60c91b81527f3c7465787420783d223137352220793d223237342220746578742d616e63686f60078201527f723d226d6964646c65222066696c6c3d22236239623063632220666f6e742d6660278201527f616d696c793d226d6f6e6f73706163652220666f6e742d73697a653d223133226047820152601f60f91b60678201526124f66068820161245b565b661e17ba32bc3a1f60c91b815290507f3c7465787420783d223137352220793d223330302220746578742d616e63686f60078201527f723d226d6964646c65222066696c6c3d22236339396133342220666f6e742d6660278201527f616d696c793d226d6f6e6f73706163652220666f6e742d73697a653d223131226047820152601f60f91b60678201526068810165032bb32b93c960d51b815290506125f26125a36006830186611ee0565b7f682026233138333b20736f756c626f756e642026233138333b20736372792e6d81527f6f726572696768742e78797a3c2f746578743e3c2f7376673e00000000000000602082015260390190565b9695505050505050565b634e487b7160e01b5f52601260045260245ffd5b5f8261261e5761261e6125fc565b500490565b5f8161263157612631611be5565b505f190190565b5f82612646576126466125fc565b50069056fe5468652074657874206973205345414c45442028636f6d6d697474656420627920736861323536292e204142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2f546865207465787420697320696e2074686520566f7754616b656e206576656e74206c6f672c20666f72657665722e20a264697066735822122068dea409fa15fa3a27d3fa7747aff327620876eb0472e10231de2ffcc573d36c64736f6c634300081a0033
| Token | Symbol | Balance | Price | Value |
|---|---|---|---|---|
| DIH | 1 | $0.0000102 | $0 |
| Type | Age | Block | Details |
|---|---|---|---|
| no cross-chain L1↔L2 transactions for this address | |||
| 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 | ||
|---|---|---|---|---|---|---|---|---|---|
| 0x1c91ed42…d71c21 | Transfer | 18,448,360 | 24 days agoFri, 24 Jul 2026 20:48:39 UTC | 0xcaf7…5d11 | IN | 0x0813…3590 | $0.001 DIH |
| Txn Hash | Age | Event | Topics / Data |
|---|---|---|---|
| 0x1fcc8f…38f095 | 21 days agoMon, 27 Jul 2026 17:29:26 UTC | 0x7aa00e…a3a1 | [0] 0xaeb77f5529d2…a2751ed5 data: 0x000000000000000000…00000000 |
| 0xe5a123…d13ba3 | 22 days agoMon, 27 Jul 2026 04:09:20 UTC | 0x7aa00e…a3a1 | [0] 0xaeb77f5529d2…a2751ed5 data: 0x000000000000000000…00000000 |
| 0x4d88ba…40e858 | 23 days agoSun, 26 Jul 2026 04:09:18 UTC | 0x7aa00e…a3a1 | [0] 0xaeb77f5529d2…a2751ed5 data: 0x000000000000000000…00000000 |
| 0x863214…a66191 | 23 days agoSat, 25 Jul 2026 21:24:27 UTC | 0x7aa00e…a3a1 | [0] 0x730f3cb00baa…80da09d0 data: 0x000000000000000000…00000000 |
| 0x4c360f…eda25b | 23 days agoSat, 25 Jul 2026 16:53:42 UTC | 0x7aa00e…a3a1 | [0] 0x940284a3ef2a…f378a163 data: 0x000000000000000000…00000000 |
| 0xe53b05…e3ca2e | 23 days agoSat, 25 Jul 2026 16:34:07 UTC | 0x7aa00e…a3a1 | [0] 0x940284a3ef2a…f378a163 data: 0x000000000000000000…00000000 |
| 0x2989b5…6c3ea6 | 23 days agoSat, 25 Jul 2026 16:12:12 UTC | 0x7aa00e…a3a1 | [0] 0x940284a3ef2a…f378a163 data: 0x000000000000000000…00000000 |
| 0x24cdb1…ab8e5d | 24 days agoFri, 24 Jul 2026 21:52:02 UTC | 0x7aa00e…a3a1 | [0] 0x6f0ca8671bc7…20e2c92d data: 0x000000000000000000…00000000 |
| 0xfed7ae…3ae9fe | 25 days agoThu, 23 Jul 2026 21:52:01 UTC | 0x7aa00e…a3a1 | [0] 0x2b8822f2e0e9…4d69a3cf data: 0x000000000000000000…00000000 |
| 0x441718…d12baa | 26 days agoWed, 22 Jul 2026 21:51:59 UTC | 0x7aa00e…a3a1 | [0] 0x9b516f5ae67c…b2a487fd data: 0x000000000000000000…00000000 |
| 0xf426b2…9ebeb7 | 27 days agoTue, 21 Jul 2026 21:51:58 UTC | 0x7aa00e…a3a1 | [0] 0x78c81fc30451…2b2bf60c data: 0x000000000000000000…00000000 |
| 0x5b9810…836340 | 28 days agoMon, 20 Jul 2026 21:51:57 UTC | 0x7aa00e…a3a1 | [0] 0x9b420a233f1f…a257cca2 data: 0x000000000000000000…00000000 |
| 0x3fa46e…64b138 | 28 days agoMon, 20 Jul 2026 20:55:55 UTC | 0x7aa00e…a3a1 | [0] 0x24f0854bd7f6…ab545f17 data: 0x000000000000000000…00000000 |
| 0xd665ea…a288fe | 28 days agoMon, 20 Jul 2026 20:19:18 UTC | 0x7aa00e…a3a1 | [0] 0x24f0854bd7f6…ab545f17 data: 0x000000000000000000…00000000 |
| 0x7aa52c…79b361 | 29 days agoSun, 19 Jul 2026 20:19:17 UTC | 0x7aa00e…a3a1 | [0] 0xa50f4b43cfe7…3b8d33a8 data: 0x000000000000000000…00000000 |
| 0x035b19…dabe7c | 30 days agoSat, 18 Jul 2026 20:19:16 UTC | 0x7aa00e…a3a1 | [0] 0xa50f4b43cfe7…3b8d33a8 data: 0x000000000000000000…00000000 |
| 0x12346e…dd4fbb | 30 days agoSat, 18 Jul 2026 19:48:43 UTC | 0x7aa00e…a3a1 | [0] 0xa50f4b43cfe7…3b8d33a8 data: 0x000000000000000000…00000000 |
| 0x9da7fd…1f1303 | 31 days agoFri, 17 Jul 2026 23:31:21 UTC | 0x7aa00e…a3a1 | [0] 0xa50f4b43cfe7…3b8d33a8 data: 0x000000000000000000…00000000 |
| 0x7b9417…c46c29 | 31 days agoFri, 17 Jul 2026 23:18:25 UTC | 0xa5d409…d962 | |
| 0x7b9417…c46c29 | 31 days agoFri, 17 Jul 2026 23:18:25 UTC | 0x8be007…57e0 | [0] 0x000000000000…00000000 [1] 0x000000000000…063d9092 |
| 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 ? | ||
|---|---|---|---|---|---|---|---|---|---|
| 0x1fcc8f…38f095 | anchorRoot | 20,911,019 | 21 days agoMon, 27 Jul 2026 17:29:26 UTC | 0x2444…9092 | IN | ScryVowRegistry | $0.000 ETH | 0.00000131 | |
| 0xe5a123…d13ba3 | anchorRoot | 20,433,772 | 22 days agoMon, 27 Jul 2026 04:09:20 UTC | 0x2444…9092 | IN | ScryVowRegistry | $0.000 ETH | 0.00000153 | |
| 0x4d88ba…40e858 | anchorRoot | 19,572,324 | 23 days agoSun, 26 Jul 2026 04:09:18 UTC | 0x2444…9092 | IN | ScryVowRegistry | $0.000 ETH | 0.00000244 | |
| 0x863214…a66191 | anchorRoot | 19,330,370 | 23 days agoSat, 25 Jul 2026 21:24:27 UTC | 0x2444…9092 | IN | ScryVowRegistry | $0.000 ETH | 0.00000281 | |
| 0x4c360f…eda25b | anchorRoot | 19,168,398 | 23 days agoSat, 25 Jul 2026 16:53:42 UTC | 0x2444…9092 | IN | ScryVowRegistry | $0.000 ETH | 0.00000276 | |
| 0xe53b05…e3ca2e | anchorRoot | 19,156,690 | 23 days agoSat, 25 Jul 2026 16:34:07 UTC | 0x2444…9092 | IN | ScryVowRegistry | $0.000 ETH | 0.00000278 | |
| 0x2989b5…6c3ea6 | anchorRoot | 19,143,595 | 23 days agoSat, 25 Jul 2026 16:12:12 UTC | 0x2444…9092 | IN | ScryVowRegistry | $0.000 ETH | 0.00000303 | |
| 0x24cdb1…ab8e5d | anchorRoot | 18,486,311 | 24 days agoFri, 24 Jul 2026 21:52:02 UTC | 0x2444…9092 | IN | ScryVowRegistry | $0.000 ETH | 0.00000410 | |
| 0xfed7ae…3ae9fe | anchorRoot | 17,624,884 | 25 days agoThu, 23 Jul 2026 21:52:01 UTC | 0x2444…9092 | IN | ScryVowRegistry | $0.000 ETH | 0.00000473 | |
| 0x441718…d12baa | anchorRoot | 16,762,979 | 26 days agoWed, 22 Jul 2026 21:51:59 UTC | 0x2444…9092 | IN | ScryVowRegistry | $0.000 ETH | 0.00000352 | |
| 0xf426b2…9ebeb7 | anchorRoot | 15,900,675 | 27 days agoTue, 21 Jul 2026 21:51:58 UTC | 0x2444…9092 | IN | ScryVowRegistry | $0.000 ETH | 0.00000275 | |
| 0x5b9810…836340 | anchorRoot | 15,038,593 | 28 days agoMon, 20 Jul 2026 21:51:57 UTC | 0x2444…9092 | IN | ScryVowRegistry | $0.000 ETH | 0.00000223 | |
| 0x3fa46e…64b138 | anchorRoot | 15,005,004 | 28 days agoMon, 20 Jul 2026 20:55:55 UTC | 0x2444…9092 | IN | ScryVowRegistry | $0.000 ETH | 0.00000202 | |
| 0xd665ea…a288fe | anchorRoot | 14,983,068 | 28 days agoMon, 20 Jul 2026 20:19:18 UTC | 0x2444…9092 | IN | ScryVowRegistry | $0.000 ETH | 0.00000213 | |
| 0x7aa52c…79b361 | anchorRoot | 14,122,097 | 29 days agoSun, 19 Jul 2026 20:19:17 UTC | 0x2444…9092 | IN | ScryVowRegistry | $0.000 ETH | 0.00000200 | |
| 0x035b19…dabe7c | anchorRoot | 13,261,833 | 30 days agoSat, 18 Jul 2026 20:19:16 UTC | 0x2444…9092 | IN | ScryVowRegistry | $0.000 ETH | 0.00000232 | |
| 0x12346e…dd4fbb | anchorRoot | 13,243,565 | 30 days agoSat, 18 Jul 2026 19:48:43 UTC | 0x2444…9092 | IN | ScryVowRegistry | $0.000 ETH | 0.00000232 | |
| 0x9da7fd…1f1303 | anchorRoot | 12,515,998 | 31 days agoFri, 17 Jul 2026 23:31:21 UTC | 0x2444…9092 | IN | ScryVowRegistry | $0.000 ETH | 0.00000564 |