Back to Home

ExoPlanets(XPL)

other
0xB41FeA87Ef7c...95C0F8F6198F
ByzantiumSource VerifiedEdit this contract
Deployed June 28, 2018 (7 years ago)Block 5,870,490

June 2018 NFT exoplanet collectible game with 9-tier hot-potato pricing, presale mode, and per-planet life rate / crypto match / tech bonuses. Extends the Crypt

Byzantium EraVerified Source
Token Information
Token Name
ExoPlanets
Symbol
XPL
Key Facts
Deployment Block
5,870,490
Deployment Date
Jun 28, 2018, 06:29 PM
Code Size
17.3 KB
Gas at Deploy
4,808,551
Transactions by Year
201833
202618

Description

ExoPlanets is a June 2018 NFT collectible game on Ethereum where players bought, traded, and managed virtual exoplanets in a CryptoCelebrities-style hot-potato mechanic.

Each Exoplanet has a name, crypto-match identifier, life rate (uint8), prices in both ETH and ExoTokens (uint32 each), scientific data and three tech bonus fields — all stored on-chain in a packed struct. The contract extends the CryptoCelebrities/CelebrityToken ERC-721-draft template with 9-tier escalating pricing (200%, 150%, 135%, 125%, 119%, 117%, 115%, 113%, 110% multipliers as price crosses 5/10/26/36/47/59/68/77 ETH thresholds) and a 7-9% fee structure that decreases with higher prices.

Special features include a presale mode (inPresaleMode toggle controlling when prices can be edited vs auto-set during purchase), a paused/unpaused lifecycle controlled by CEO, and a Birth event emitted when new exoplanets are added to the universe. CEO and COO admin roles control listing, transfers of unowned planets, and contract upgrades.

Token: ExoPlanets (XPL). Metadata URL: https://exoplanets.io/metadata/planet_<id>.

Deployer 0x76990237ea27b27e598c3923fbc8ebb52a01e394 deployed at block 5,870,490 (June 28 2018) — part of the second wave of NFT collectibles following CryptoKitties/CryptoCelebrities, with extensive game-specific additions beyond the base template.

Source Verified

SolidityEtherscan verified
Compiler: soljson

Source reconstructed by analyzing on-chain bytecode and decompiled output. Compiles with solc v0.4.18+commit.9cf6e910, optimizer OFF, to a 17,726-byte runtime that matches the on-chain bytecode EXACTLY (0 non-metadata bytes differ; only the trailing 32-byte bzzr0 swarm hash differs as it encodes the local source filename). Key reconstructed source-shape findings: (1) purchase() locals declared in order sellingPrice / purchaseExcess / fee / multiplier / payment / oldOwner; (2) strConcat local-decl order is _bs / _ba / _bb / ab / bab / k — _bs must precede _ba so the call to uintToString writes into the correct stack slot; (3) uintToPackedBytes uses an if/else shape (not early-return): the v==0 branch assigns ret = bytes32("0"), the else branch runs the while loop, and a single return ret; at the end — this is what produces the function-exit JUMPDEST pattern (DUP1 SWAP1 POP after tag_exit instead of before); (4) Birth event passes _numOfTokensBonusOnPurchase (not _priceInExoTokens) as the lifeRate slot — revealed by DUP8 vs DUP10 at PC 14631; (5) createContractExoplanet selector 0x1d8b4dd1 from signature (string, uint256, uint32, string, uint32, uint8, string). All 50 function selectors, all 5 event topics (Birth, TokenSold, Transfer, Approval, ContractUpgrade), and storage layout are identical. Verified on Sourcify (runtimeMatch: match) and Etherscan (Pass - Verified).

Heuristic Analysis

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

Detected Type: other

Bytecode Overview

Opcodes17,726
Unique Opcodes252
Jump Instructions854
Storage Operations223

External Links