///(o,o){\:/}==

OWLS × ETHEREUM

Eine Beobachtungsstudie von 9.999 code-generierten Vögeln, die ihren Weg von zufälliger Entropie zu deterministischer Permanenz auf dem Ethereum Mainnet migrieren.

SAMMLUNG ERKUNDEN
01

Reine On-Chain-Kunst

299 Zeilen Solidity. Keine Abhängigkeiten. Jede Eule lebt für immer als reine Vertragslogik—keine Server, kein IPFS, nur deterministische Kunst, die aus der Blockchain selbst entsteht.

// tokenURI from Owls.sol
function tokenURI(uint256 tokenId) public view returns (string memory) {
require(_exists(tokenId), "Owl does not exist.");
uint256 seed = seeds[tokenId];
return descriptor.tokenURI(tokenId, seed);
}
02

Block-Hash-Entropie

Beim Prägen liest der Vertrag blockhash. Dieser 256-Bit-Wert, kombiniert mit Ihrer Token-ID durch keccak256, wird zum unveränderlichen Seed für Ihre Eule.

// random() from Owls.sol
function random(uint256 tokenId) private view returns (uint256) {
return uint256(
keccak256(abi.encodePacked(blockhash(block.number - 1), tokenId))
);
}
03

Bit-Shifting-Magie

Der 256-Bit-Seed wird durch Modulo-Operationen zerlegt. Jedes Merkmal extrahiert spezifische Bits: Kopf von Bits 0-47, Gesicht von 48-95, Körper von 96-143, Füße von 144-191.

// generateSeed() from Owls.sol
function generateSeed(uint256 tokenId) private view returns (uint256) {
uint256 r = random(tokenId);
uint256 headSeed = 100 * (r % 7 + 10) + ((r >> 48) % 20 + 10);
uint256 faceSeed = 100 * ((r >> 96) % 6 + 10) + ((r >> 96) % 20 + 10);
...
}
04

Echtzeit-SVG-Generierung

Keine vorgespeicherten Bilder. Der Vertrag erstellt SVG im Speicher mit abi.encodePacked(). Eine benutzerdefinierte WOFF2-Schriftart wird inline base64-kodiert.

// tokenURI from OwlDescriptorV3.sol
function tokenURI(...) {
// Extract traits from seed
Trait memory head = getHead(seed / 1000000000000);
Trait memory face = getFace((seed / 100000000) % 10000);
Trait memory body = getBody((seed / 10000) % 10000);
Trait memory feet = getFeet(seed % 10000);
...
// Assemble SVG from traits
string memory rawSvg = string(
abi.encodePacked(
'<text x="160" y="130">',
head.content, face.content, body.content, feet.content,
'</text>'
));
}
05

Gas-Optimierung

Jede Zeile für Effizienz optimiert. Unchecked-Blöcke überspringen Überlaufprüfungen. Batch-Minting verwendet einen einzelnen SSTORE für bis zu 100 Eulen.

MINT GAS
~65K
CONTRACT SIZE
24KB
ON-CHAIN %
100%
TOTAL SUPPLY
9,999
06

Evolvierende Leinwand

Drei Deskriptor-Versionen on-chain. Das Team kann den visuellen Renderer aktualisieren—für zukünftige Wettbewerbe, künstlerische Verbesserungen oder Community-Anpassungen. Der Seed Ihrer Eule bleibt unveränderlich, während ihr Ausdruck sich entwickeln kann.

Network:Ethereum Mainnet
Status:
Live

Wer wir sind

Die Schweiz hat der Welt Uhren und Schokolade geschenkt. Jetzt gibt sie euch eine Sammlung von 9.999 ASCII-Eulen, erschaffen von zwei Typen aus den Alpen, die von Web3, ASCII-Kunst und natürlich Eulen besessen sind. Gern geschehen.

Fragen?hey@goodbird.io

Ready to own a piece of history?