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 | 0x00000060...531524 (etherscan) |
| Network | Ethereum Mainnet |
| Analysis Date | 2026-08-08 |
Runtime Bytecode
The deployed contract bytecode fetched from the blockchain. 24,243 bytes — 333 bytes below the
EIP-170 ceiling of 24,576. Too large to inline; reproduce locally with the command below.
Source: Etherscan — Contract Code
Command:
export ETH_RPC_URL=https://eth.llamarpc.com
cast code 0x0000006013dF75A31678B786061C2B54bf531524
cast codesize 0x0000006013dF75A31678B786061C2B54bf531524
Artifact (first 160 bytes of the dispatcher):
0x6080806040526004361015610012575f80fd5b5f905f3560e01c90816301ffc9a714613565575080630697b3ab1461354957806306fdde03146134fa578063081812fc146134a9578063095ea7b314...
The dispatcher opens with supportsInterface (0x01ffc9a7) and proceeds through a selector jump
table in ascending order, which is the standard viaIR layout for a contract of this size.
Creation Bytecode
Full creation bytecode used to deploy the contract, including constructor code and the two address
arguments appended after the metadata CBOR.
Source: Etherscan — Creation TX
Command:
export ETH_RPC_URL=https://eth.llamarpc.com
cast tx 0xe5e00f9671a8ebe7a0812806d1ad2986e8c2f54f6bd81bef513cfc286c21dd38 input
Constructor arguments (decoded from the trailing 64 bytes):
initialOwner = 0x006cd14f36f65ecbb29b2519ccbe63a0dc8549f2
renderer_ = 0x000000d595e36dd0228c4040d981a01a59dbbe87
Both arguments matter to the analysis. initialOwner is not an Externally Owned Account (EOA) — it is a minimal proxy to a
2-of-3 Multisig. And renderer_ is not the renderer currently in use: renderer() returns
0x00000096...1eDcF4 (etherscan), confirming setRenderer was called after deployment.
The contract was deployed through the CREATE2 vanity factory at
0x00000000...4e6f2a (etherscan),
which is also how both renderers were deployed — consistent with the per-contract vanity-addressing
pattern documented in DNZN's z0r0z entity profile.
Verified Source Code
Source code verified on Etherscan as an exact match. The verified bundle contains 11 files: the
primary src/utils/TokenList.sol and src/utils/TokenListRenderer.sol, plus 9 vendored Solady
library files.
Source: Etherscan — Contract Source
Bundle contents:
| FILE | LINES | ROLE |
|---|---|---|
src/utils/TokenList.sol |
1,289 | The registry — storage, access control, id derivation, provenance logic |
src/utils/TokenListRenderer.sol |
755 | Card and JSON assembly (the constructor-era version; the live renderer differs) |
lib/solady/src/tokens/ERC721.sol |
913 | NFT base with manually placed storage slots |
lib/solady/src/auth/Ownable.sol |
278 | Owner slot at 0xffffffff...873927, two-step handover |
lib/solady/src/utils/LibString.sol |
977 | String search, case folding, hex conversion, slicing |
lib/solady/src/utils/LibSort.sol |
942 | The sort backing rankedIds |
lib/solady/src/utils/LibBytes.sol |
888 | Byte primitives used by LibString |
lib/solady/src/utils/MetadataReaderLib.sol |
223 | Gas-capped name/symbol/decimals reads — the provenance mechanism |
lib/solady/src/utils/Base58.sol |
205 | Solana account rendering |
lib/solady/src/utils/Base64.sol |
175 | Data URI encoding for logos and cards |
lib/solady/src/utils/Multicallable.sol |
112 | Read batching |
Compiler settings:
{
"remappings": ["forge-std/=lib/forge-std/src/", "solady/=lib/solady/src/"],
"optimizer": { "enabled": true, "runs": 20 },
"metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true },
"evmVersion": "prague",
"viaIR": true
}
The optimizer is set to 20 runs, which favours deployed size over runtime gas — the expected choice
for a contract sitting 333 bytes under the size limit.
Primary source — TokenList.sol (head):
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.36;
import {TokenListRenderer} from "./TokenListRenderer.sol";
import {ERC721} from "../../lib/solady/src/tokens/ERC721.sol";
import {Ownable} from "../../lib/solady/src/auth/Ownable.sol";
import {Base64} from "../../lib/solady/src/utils/Base64.sol";
import {LibSort} from "../../lib/solady/src/utils/LibSort.sol";
import {LibString} from "../../lib/solady/src/utils/LibString.sol";
import {Multicallable} from "../../lib/solady/src/utils/Multicallable.sol";
import {MetadataReaderLib} from "../../lib/solady/src/utils/MetadataReaderLib.sol";
contract TokenList is ERC721, Ownable, Multicallable {
using LibString for string;
enum Kind { EVM, SVM, OTHER }
enum Standard {
UNKNOWN, NATIVE, ERC20, ERC721, ERC1155,
TACIT, RUNE, ORDINAL, BRC20
}
struct Token {
bytes32 account; // token address / mint, right-aligned for EVM
uint64 chainId; // eip155 chain id; 0 for non-EVM namespaces
uint8 decimals;
Kind kind;
Standard standard;
bool deployed;
bool onchainSvg;
bool synced; // true when name/symbol/decimals came from the token itself
uint24 color;
uint32 rank;
bool frozen;
string name;
string symbol;
string logo;
string url;
string audit;
string description;
}
Additional Artifacts
Live Registry State
Captured 2026-08-08. Seventeen listings, none frozen, none delisted.
Command:
cast call 0x0000006013dF75A31678B786061C2B54bf531524 \
"summariesPaged(uint256,uint256)((uint256,bytes32,uint64,uint8,uint8,uint8,bool,bool,bool,uint24,uint32,bool,string,string)[])" \
0 30
Artifact:
| RANK | SYMBOL | NAME | ACCOUNT | STANDARD | DECIMALS | SYNCED |
|---|---|---|---|---|---|---|
| 1,000,000 | ETH | Ether | 0x00000000...000000 (native) |
NATIVE | 18 | ☒ |
| 999,000 | WETH | Wrapped Ether | 0xC02aaA39...756Cc2 (etherscan) |
ERC20 | 18 | ☑ |
| 998,000 | wstETH | Wrapped liquid staked Ether 2.0 | 0x7f39C581...5E2cA0 (etherscan) |
ERC20 | 18 | ☑ |
| 997,500 | stETH | Liquid staked Ether 2.0 | 0xae7ab965...d7fE84 (etherscan) |
ERC20 | 18 | ☑ |
| 997,000 | rETH | Rocket Pool ETH | 0xae78736C...fc6393 (etherscan) |
ERC20 | 18 | ☑ |
| 996,000 | WBTC | Wrapped BTC | 0x2260FAC5...c2C599 (etherscan) |
ERC20 | 8 | ☑ |
| 995,000 | USDC | USD Coin | 0xA0b86991...06eB48 (etherscan) |
ERC20 | 6 | ☑ |
| 994,000 | USDT | Tether USD | 0xdAC17F95...831ec7 (etherscan) |
ERC20 | 6 | ☑ |
| 993,500 | DAI | Dai Stablecoin | 0x6B175474...271d0F (etherscan) |
ERC20 | 18 | ☑ |
| 993,000 | BOLD | BOLD Stablecoin | 0x6440f144...beB01D (etherscan) |
ERC20 | 18 | ☑ |
| 992,500 | LUSD | LUSD Stablecoin | 0x5f98805A...568bA0 (etherscan) |
ERC20 | 18 | ☑ |
| 992,000 | ZORG | zOrg Shares | 0x00a6bA94...2dCb12 (etherscan) |
ERC20 | 18 | ☑ |
| 991,500 | ZAMM | ZAMM | 0xE9b1cFEA...1664ED (etherscan) |
ERC20 | 18 | ☑ |
| 991,000 | zzz | zOrgz | 0x00000000...6b63A6 (etherscan) |
ERC721 | 0 | ☑ |
| 990,000 | WEI | Wei Name Service | 0x00000000...c242EB (etherscan) |
ERC721 | 0 | ☑ |
| 989,000 | FWA | Fake World Assets | 0xa0Df17B5...20C845 (etherscan) |
ERC20 | 18 | ☑ |
| 988,000 | TAC | Tacit Coin | f0bbe868...94762b (tacitscan) |
TACIT | 8 | ☒ |
The two ☒ entries are exactly the listings with no readable on-chain source here — native ETH,
which has no contract at address(0) on any chain, and the Bitcoin-rooted Tacit asset. Both are
held by the registry itself rather than by a subject contract, which is why balanceOf(registry)
returns 2. The Tacit asset id matches the asset documented in DNZN's
Tacit Project Overview.
Two of the seventeen listings carry the onchainSvg flag: zOrgz and Wei Name Service, both
ERC-721 collections.
Complete Event History
Eight transactions across five days. The registry itself has zero direct transactions — every
owner call arrives as an internal call from the multisig — so this log is the whole history.
Command:
curl -s "https://api.etherscan.io/v2/api?chainid=1&module=logs&action=getLogs\
&address=0x0000006013dF75A31678B786061C2B54bf531524\
&fromBlock=0&toBlock=latest&page=1&offset=1000&apikey=$ETHERSCAN_API_KEY"
Artifact:
| BLOCK | TIMESTAMP (UTC) | TX | ACTIVITY |
|---|---|---|---|
| 25675344 | 2026-08-03 15:43 | 0xe5e00f96...21dd38 (tx) |
Deployment. OwnershipTransferred plus 4 seeded listings — ETH, WETH, USDC, USDT |
| 25676194 | 2026-08-03 18:34 | 0x813536e1...ce2a12 (tx) |
1 listing added (wstETH) plus an art update |
| 25677323 | 2026-08-03 22:20 | 0x2831c647...3f7a14 (tx) |
6 listings added, 8 updates — including the two nftArt flags on zOrgz and WNS |
| 25688515 | 2026-08-05 11:45 | 0xc3a02053...b2cfc9 (tx) |
Renderer swap. RendererSet, BatchMetadataUpdate(0, max), ContractURIUpdated |
| 25689390 | 2026-08-05 14:41 | 0xd7e73668...e41ca5 (tx) |
1 listing added |
| 25698321 | 2026-08-06 20:31 | 0x78b0caf4...dc9faa (tx) |
Tacit Coin listed, plus text, art ×2, audit, and the only two ExtraSet writes (etch tx, issued) |
| 25703609 | 2026-08-07 14:12 | 0xc88acef8...d9255a (tx) |
1 listing added plus an art update |
| 25704901 | 2026-08-07 18:32 | 0x9eaf7f3e...f2f88c (tx) |
3 listings added plus 3 art updates |
Event totals: 95 logs — 19 Updated, 19 MetadataUpdate, 17 Transfer (all mints), 17
Locked, 17 Listed, 2 ExtraSet, 1 OwnershipTransferred, 1 RendererSet, 1
BatchMetadataUpdate, 1 ContractURIUpdated.
Events with zero occurrences: Delisted, Froze, Reserved, Activated, RendererLocked.
No listing has ever been removed, sealed, or reserved, and the renderer choice remains unsealed.
Governance Chain
The owner address returns code, which is why the analysis followed it upward.
Command:
cast code 0x006CD14F36F65eCbB29b2519cCBe63A0DC8549F2
cast call 0x006CD14F36F65eCbB29b2519cCBe63A0DC8549F2 "getOwners()(address[])"
cast call 0x006CD14F36F65eCbB29b2519cCBe63A0DC8549F2 "threshold()(uint16)"
cast call 0x006CD14F36F65eCbB29b2519cCBe63A0DC8549F2 "delay()(uint32)"
cast call 0x006CD14F36F65eCbB29b2519cCBe63A0DC8549F2 "executor()(address)"
Artifact:
# Owner runtime code — 45 bytes, a minimal proxy delegating to 0xD54cb652...9f4FB0
0x5f5f365f5f37365f73d54cb65224410f3ff97a8e72f363f224419f4fb05af43d5f5f3e6029573d5ffd5b3d5ff3
getOwners() -> [
0x1C0Aa8cCD568d90d61659F060D1bFb1e6f855A20, # z0r0z canonical EOA (23 bytes of code — EIP-7702 delegation)
0x999657A41753b8E69C66e7b1A8E37d513CB44E1C, # plain EOA
0xCB0592589602B841BE035e1e64C2A5b1Ef006aa2 # plain EOA
]
threshold() -> 2
delay() -> 3600
executor() -> 0x00000000a72A30AdBf38e14d36BCE2610ec3973F # TimelockExecutor
ownerCount()-> 3
nonce() -> 16
# TimelockExecutor.forwardEnabled(multisig) -> true
Seven of the eight transactions that reached the registry were broadcast by
0x1C0Aa8cC...855A20 (etherscan);
the eighth is the deployment, sent by the deployer EOA to the factory. Of the seven, two routed
through the TimelockExecutor (etherscan)
and five went directly to the multisig (etherscan)
as executeQueued calls after the delay elapsed.
This is only half the picture, because a queued action reaches the registry one transaction later
than it is proposed. Reading the multisig's own history shows signer 2
0x999657A4...B44E1C (etherscan)
queuing two of the eight actions with execute — the wstETH listing at 2026-08-03 18:25 UTC
(0x56385866...6e6848, tx)
and the renderer swap at 2026-08-05 11:39 UTC
(0xe5995b7a...c53b27, tx) —
each force-executed by z0r0z through the unanimous bypass within ten minutes. A third attempt on
2026-08-07 reverted.
Command:
curl -s "https://api.etherscan.io/v2/api?chainid=1&module=account&action=txlist\
&address=0x006CD14F36F65eCbB29b2519cCBe63A0DC8549F2&startblock=0&endblock=99999999\
&sort=asc&apikey=$ETHERSCAN_API_KEY"
# selector 0xda0980c7 = execute(address,uint256,bytes,bytes) -> queues
# selector 0x7f576d13 = executeQueued(address,uint256,bytes,uint32) -> applies
Deployer Lineage
Establishes the link between the deploying EOA and z0r0z's canonical address.
Command:
curl -s "https://api.etherscan.io/v2/api?chainid=1&module=account&action=txlist\
&address=0xacfba7ce872c6ead99d535586f84b0d68ade4082&startblock=0&endblock=99999999\
&sort=asc&apikey=$ETHERSCAN_API_KEY"
Artifact:
2026-08-03 15:39 0x1c0aa8ccd5... -> 0xacfba7ce87... 0.02 ETH # funding
2026-08-03 15:43 0xacfba7ce87... -> factory create2Deploy # TokenList deployed
The deployer EOA 0xAcFBA7Ce...DE4082 (etherscan)
was funded by z0r0z's canonical EOA 0x1C0Aa8cC...855A20 (etherscan)
four minutes before deploying the registry, and has no prior history. The
original renderer at 0x000000d5...DbbE87 (etherscan) was deployed directly by the canonical EOA. This is the
same funding-then-deploy pattern DNZN observed in the
ConfidentialPool analysis.
Renderer Comparison
The live renderer differs from the constructor argument, so both verified sources were fetched and
diffed to establish what the swap actually changed.
Command:
# FETCH BOTH VERIFIED SOURCES AND DIFF THE RENDERER FILE
curl -s "https://api.etherscan.io/v2/api?chainid=1&module=contract&action=getsourcecode\
&address=0x0000009650f4aEF08AdB2De98bdD2695A41eDcF4&apikey=$ETHERSCAN_API_KEY"
curl -s "https://api.etherscan.io/v2/api?chainid=1&module=contract&action=getsourcecode\
&address=0x000000d595e36dd0228c4040d981a01a59dbbe87&apikey=$ETHERSCAN_API_KEY"
Artifact:
| PROPERTY | ORIGINAL | ACTIVE |
|---|---|---|
| Address | 0x000000d5...DbbE87 (etherscan) |
0x00000096...1eDcF4 (etherscan) |
| Deployed | Block 25674923 | Block 25688433 |
| Deployed by | 0x1C0Aa8cC...855A20 (etherscan) (z0r0z, directly) |
0xAcFBA7Ce...DE4082 (etherscan) |
| Source lines | 755 | 866 |
| Runtime size | 17,025 bytes | 17,871 bytes |
Substantive differences, all presentational:
_chainLabeladded — Bitcoin-rooted standards (TACIT, RUNE, ORDINAL, BRC20) now render as
bitcoinrather thanraw:0. Added the day before the Tacit listing was created_initialsfallback — a listing with no logo renders its symbol initials instead of an empty well_provenanceChiprestyled from the theme colour to white at reduced opacity, and no longer takes
a theme argument_accountLabeladded, with explicitNONE - NATIVE ASSET/NONE - NO ACCOUNTtext for
zero-account listingsdisplay_type: "number"added to the Decimals and Sort Weight traits_artTraitreplaces_artHint, emitting the trait conditionally rather than always
Nothing in the diff touches storage, access control, or the values the registry holds — consistent
with the renderer being pure and stateless. That is an observation about this particular swap, not
a constraint on future ones.
Rendered Card Sample
Decoded output of tokenURI for the ZORG listing, confirming the renderer path works end to end.
Command:
cast call 0x0000006013dF75A31678B786061C2B54bf531524 "tokenURI(uint256)(string)" \
3718177199436581777268575498026466751093263122
Artifact (decoded metadata):
{
"name": "ZORG / Token Listing",
"description": "zOrg governance shares. Bonded with zOrgz to direct conviction toward existing TokenList entries.",
"external_url": "https://zorg.wei.domains",
"image": "data:image/svg+xml;base64,...",
"attributes": [
{ "trait_type": "Symbol", "value": "ZORG" },
{ "trait_type": "Decimals", "value": 18, "display_type": "number" },
{ "trait_type": "Token Standard","value": "ERC-20" },
{ "trait_type": "Chain", "value": "eip155:1" },
{ "trait_type": "Source", "value": "Onchain" },
{ "trait_type": "Deployment", "value": "Deployed" },
{ "trait_type": "Curation", "value": "Editable" },
{ "trait_type": "Sort Weight", "value": 992000, "display_type": "number" }
]
}
The description is curator-authored text, not a claim the registry enforces. The mechanism it
refers to lives in a separate contract deployed three days later — see
ZorgConviction.
The embedded SVG is 2,580 bytes and fully self-contained — a 720×420 black terminal frame with the
logo, symbol, name, address, description and footer links drawn inline, no external fetch.
"Source": "Onchain" is the rendered form of synced = true, and "Curation": "Editable"
reflects frozen = false.
Storage Verification Sample
The native ETH listing at id 0, read directly from storage to confirm the declared struct layout.
Command:
BASE=$(cast index uint256 0 3) # keccak256(abi.encode(0, 3))
for i in 0 1 2 3 4 5 6 7; do
cast storage 0x0000006013dF75A31678B786061C2B54bf531524 \
$(python3 -c "print('0x%064x'%(int('$BASE',16)+$i))")
done
Artifact:
base = 0x3617319a054d772f909f7c479a2cebe5066e836a939412e32403c99029b92eff
+0 0x0000000000000000000000000000000000000000000000000000000000000000 account = 0 (native)
+1 0x0000000000000000000000000f4240627eea0000010100120000000000000001 packed scalars
+2 0x457468657200000000000000000000000000000000000000000000000000000a name = "Ether"
+3 0x4554480000000000000000000000000000000000000000000000000000000006 symbol = "ETH"
+4 0x00000000000000000000000000000000000000000000000000000000000005ed logo = 758 bytes, out of line
+5 0x68747470733a2f2f657468657265756d2e6f7267000000000000000000000028 url = "https://ethereum.org"
+6 0x0000000000000000000000000000000000000000000000000000000000000000 audit = empty
+7 0x000000000000000000000000000000000000000000000000000000000000008b description = 69 bytes
Decoding the packed word at +1 by byte offset yields chainId = 1, decimals = 18,
kind = EVM, standard = NATIVE, deployed = true, onchainSvg = false, synced = false,
color = 0x627eea, rank = 1,000,000, frozen = false — matching summariesPaged exactly.