Artifacts
DISCLAIMER // NFA // DYOR
This analysis is based on observations of the contract behavior. We are not smart contract security experts. This document aims to explain what the contract appears to do based on the code. It should not be considered a comprehensive security audit or financial advice. Always verify critical information independently and consult with blockchain security professionals for important decisions.
⊙ generated by robots | curated by humans
| METADATA | |
|---|---|
| Contract Address | 0x00000000...feAaBC (etherscan) |
| Network | Ethereum Mainnet |
| Analysis Date | 2026-05-02 |
Runtime Bytecode
The deployed contract bytecode fetched from the blockchain. Approximately 21.6 KB. Full bytecode is too large to inline; reproduce locally with the command below.
Source: Etherscan — Contract Code
Command:
Creation Bytecode
Full creation bytecode used to deploy the contract, including constructor code and the two SSTORE2 chunk addresses passed as constructor args.
Source: Etherscan — Creation TX
Command:
export ETH_RPC_URL=https://eth.llamarpc.com
cast tx 0xb98494e357d21c7dac98fd417b1b6efbbc89ddfd7fe2d07250176a69c93fa7bb input
Constructor arguments (decoded from the trailing 64 bytes after the metadata CBOR):
_htmlChunk1 = 0x745c9c91674754eee083c66bdd533fca2e21723e
_htmlChunk2 = 0x62a765fce31b247febd64918ef964e56998863f8
Both chunks were deployed by the same vanity factory (0xac5fb2e1...DaC6Ea) earlier in the same deployment trace.
Verified Source Code
Source code verified on Etherscan as Exact Match. The verified bundle contains 11 files: the primary src/SLOW.sol plus 10 vendored Solady library files (ERC1155, Multicallable, ReentrancyGuardTransient, SafeTransferLib, EnumerableSetLib, MetadataReaderLib, LibString, LibBytes, Base64, SSTORE2).
Source: Etherscan — Contract Source
Compiler settings:
{
"remappings": ["@solady/=lib/solady/", "solady/=lib/solady/src/"],
"optimizer": { "enabled": true, "runs": 200 },
"metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true },
"evmVersion": "prague",
"viaIR": true
}
Primary source — SLOW.sol (head):
// SPDX-License-Identifier: AGPL-3.0-only
pragma solidity ^0.8.34;
import {Base64} from "@solady/src/utils/Base64.sol";
import {SSTORE2} from "@solady/src/utils/SSTORE2.sol";
import {ERC1155} from "@solady/src/tokens/ERC1155.sol";
import {LibString} from "@solady/src/utils/LibString.sol";
import {Multicallable} from "@solady/src/utils/Multicallable.sol";
import {SafeTransferLib} from "@solady/src/utils/SafeTransferLib.sol";
import {EnumerableSetLib} from "@solady/src/utils/EnumerableSetLib.sol";
import {MetadataReaderLib} from "@solady/src/utils/MetadataReaderLib.sol";
import {ReentrancyGuardTransient} from "@solady/src/utils/ReentrancyGuardTransient.sol";
/// @notice Timelocked token sends with optional guardian co-sign and tipped settlement.
contract SLOW is ERC1155, Multicallable, ReentrancyGuardTransient {
// ... ~900 lines, see Etherscan for full source ...
}
/// @notice `claim`-only operator for keeper-driven settlement.
contract SLOWGate {
// ... ~75 lines, see Etherscan for full source ...
}
The full source is ~1,008 lines and is reproduced verbatim in the working artifacts directory at artifacts/000000...feaabc/source/src__SLOW.sol.
Additional Artifacts
Internal Deployment Trace
The deployment transaction included an internal CREATE / CREATE2 cascade that deployed the vanity factory, the SSTORE2 chunks, this contract, and the SLOWGate child. Reproducible via:
curl -s "https://api.etherscan.io/v2/api?chainid=1&module=account&action=txlistinternal\
&txhash=0xb98494e357d21c7dac98fd417b1b6efbbc89ddfd7fe2d07250176a69c93fa7bb\
&apikey=$ETHERSCAN_API_KEY"
Notable subset:
| TYPE | FROM | CONTRACT CREATED | NOTE |
|---|---|---|---|
| create2 | 0x00000000...3c15Aa |
0xac5fb2e1...DaC6Ea |
Vanity factory used for the rest of the deploy cascade |
| create | 0xac5fb2e1...DaC6Ea |
0x745c9c91...21723e |
htmlChunk1 SSTORE2 storage contract |
| create | 0xac5fb2e1...DaC6Ea |
0x62a765fc...9863f8 |
htmlChunk2 SSTORE2 storage contract |
| create | 0xac5fb2e1...DaC6Ea |
0x00000000...feAaBC |
SLOW (main contract) |
| create2 | 0x00000000...feAaBC |
0xb8B546b9...9ef3D4 |
SLOWGate (deployed inside the SLOW constructor with salt = bytes32(0)) |
Observed Activity Log (deployment → 2026-05-02)
Reproducible via:
cast logs --from-block 24986598 --to-block latest \
--address 0x000000000000888741B254d37e1b27128AfEAaBC
Summary of decoded events:
| BLOCK | TX | EVENT(S) | NOTE |
|---|---|---|---|
| 24986967 | 0xfc3c057e...9e52c4 (tx) |
TransferSingle + TransferPending(transferId=0x81528a0d..., delay=86400) | First test deposit: 0.001 ETH for 1-day delay to 0xcb059258...006aa2 (etherscan), via depositToWithTip (tip ≈ 0.0011 ETH) |
| 25000107 | 0x9eee03f0...16d2db (tx) |
TransferClaimed(0x81528a0d...) | First gate-claim 2 days later — keeper (the deployer) collected the tip |
| 25000379 | 0xb8b18934...7600b3 (tx) |
TransferSingle + TransferPending(0x311c2acf..., delay=600) | 0.001 ETH for 10-min delay to same recipient |
| 25000519 | 0x63b56a28...a08bee (tx) |
TransferClaimed(0x311c2acf...) | Settled ~10 min after expiry |
| 25000976 | 0x4cf80328...007e38 (tx) |
TransferSingle + TransferPending(0x63e8401e..., delay=3600) | 0.001 ETH for 1-hour delay self-send (deployer to deployer) |
| 25002360 | 0x5ddfb50f...e5f1fe (tx) |
TransferClaimed(0x63e8401e...) | Settled ~1 hour after expiry |
| 25008271 | 0x86a6e1c8...e7fcf9 (tx) |
TransferSingle + TransferPending(0x44c8e370..., delay=600) | 0.006 ETH for 10-min delay to vitalik.eth (0xd8dA6BF2...A96045 (etherscan)), via plain depositTo (no tip) |
| 25008278 | 0x9e8250bb...d780ad (tx) |
TransferReversed(0x44c8e370...) | Multicall reversal of the prior tx ~84 seconds later |
Aggregate event tally (event topic → count):
| EVENT | COUNT |
|---|---|
TransferSingle (ERC-1155 mint and burn) |
9 |
TransferPending |
4 |
TransferClaimed |
3 |
TransferReversed |
1 |
Source Splitting Helper
Used to extract the multi-file source bundle for offline reading:
import json, os
d = json.load(open('getsourcecode.json'))
src = d['result'][0]['SourceCode']
if src.startswith('{{') and src.endswith('}}'):
src = src[1:-1]
parsed = json.loads(src)
os.makedirs('source', exist_ok=True)
for path, payload in parsed['sources'].items():
with open(os.path.join('source', path.replace('/', '__')), 'w') as f:
f.write(payload['content'])
Local Working Directory
All raw artifacts collected during this analysis are stored at:
artifacts/000000...feaabc/
├── TODO.md # phase tracking
├── getsourcecode.json # raw etherscan API response
├── getcontractcreation.json # creator + factory + tx + block + ts
├── source-metadata.json # compiler settings (sans source body)
├── source/ # 11 split source files (SLOW.sol + Solady deps)
├── txlist_all.json # full tx history (5 transactions)
├── txlist_recent.json # most-recent 10 (descending)
├── txlist_gate.json # gate transaction history
└── tokentx.json # ERC20 transfer log (empty)