Back to Home

Avatars

Utility
0x5e49ec3fbd55...3aa44b42b4af
Spurious DragonSource VerifiedEdit this contract
Deployed March 14, 2017 (9 years ago)Block 3,350,513

Onchain avatar registry: each avatar is stored as packed bytes describing its shapes, colors and positions, with no external art.

Spurious Dragon EraVerified Source

Historical Significance

An early example of fully onchain generative character art: each avatar exists only as packed layer, color and position bytes in contract storage, with no image file or offchain metadata, months before CryptoPunks and the ERC-721 era.

Context

Deployed on 14 March 2017 by 0x4376342d52aacc8b971d83664b4164f7f86fc3c8 and verified on Etherscan with solc v0.4.9. The deployer registered the first avatars the same day. The avatarsCount counter in storage now stands at 4,455, while only 63 successful register() calls came as direct transactions (41 in 2017, the rest from 2021 to 2023), so most avatars were registered through other contracts calling it.

Key Facts
Deployment Block
3,350,513
Deployment Date
Mar 14, 2017, 01:55 PM
Code Size
1.4 KB
Transactions by Year
201741
20219
202212
20231

Description

Avatars stores composable character portraits entirely onchain. register() takes four hex strings and packs each into a bytes32: a gender flag plus the chosen part for each of 13 layers (backs, clothes, ears, eyebrows, eyes, iris, face shape, glasses, hair, mouth, nose, beard, mustache), the colors of the first five layers, the colors of the last eight, and an up or down offset for every layer. Each avatar is keyed by the keccak hash of its shapes string, so a given combination of parts can be registered only once, and the registering address is recorded as its owner. get(), getOwner() and isExists() read an avatar back by its hash. The contract has no admin functions and no payable functions.

Source Verified

Etherscan verified
Compiler: v0.4.9+
Heuristic Analysis

The following characteristics were detected through bytecode analysis and may not be accurate.

Detected Type: Utility

Bytecode Overview

Opcodes1,412
Unique Opcodes126
Jump Instructions51
Storage Operations34

External Links

Related contracts