Back to Home

Constantine Nicholas: Block Difficulty Index(BDI)

Token
0xf224144eab9f...dd481f91c274
Spurious DragonContract #31KSource VerifiedEdit this contract
Deployed February 20, 2017 (9 years ago)Block 3,214,517

A 2017 conceptual token by Constantine Nicholas using block.difficulty as the price variable; bricked post-merge by prevrandao.

Spurious Dragon EraVerified Source

Historical Significance

A 2017 conceptual on-chain art piece that became unintentionally bricked by The Merge. Paired with BHI (block.number variant) which still works.

Context

Deployed Feb 20, 2017 — five years before The Merge. The author had no way to predict that block.difficulty would later return a 250-bit random number, but the buy() math depends on block.difficulty being a small uint, so the contract effectively died on Sept 15, 2022.

Token Information
Token Name
Constantine Nicholas: Block Difficulty Index
Symbol
BDI
Decimals
18
Key Facts
Deployment Block
3,214,517
Deployment Date
Feb 20, 2017, 03:31 AM
Code Size
2.9 KB
Gas at Deploy
1,068,414
Transactions by Year
20178

Description

Block Difficulty Index (BDI) is the sister contract to BHI, deployed Feb 20, 2017 by Constantine Nicholas. It uses block.difficulty in place of block.number as the price-determining variable. The bytecode differs from BHI by exactly 4 bytes (two NUMBER opcodes replaced by DIFFICULTY) inside buy().

A fixed Fee fraction (default 1/100) of every buy, sell, transfer, and transferFrom is skimmed to the contract owner. The Transfer event has six fields (from, to, amount, fee_amount, lastBuyPrice, lastSellPrice), not the standard three.

Bricked post-merge: after The Merge (Sept 2022), block.difficulty returns prevrandao (~2^250). The buy formula amount = msg.value * 10^18 / block.difficulty / Fee evaluates to 0 for any sane msg.value, triggering the if (amount == 0) throw guard. buy() reverts with "invalid jump destination" for every call.

Source Verified

Soliditysource_reconstructed
Compiler: v0.4.6+

Source reconstruction. Sister contract to BHI; only difference is block.number -> block.difficulty (2 opcodes). Bricked post-merge by prevrandao.. Optimizer: ON (200 runs)

Heuristic Analysis

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

Detected Type: Token
Has ERC-20-like patterns

Bytecode Overview

Opcodes3,001
Unique Opcodes195
Jump Instructions187
Storage Operations83

External Links