Orionis
Semi-Fungible Token Standard · Lazily Materialized
ERC-444
A deferred-materialization semi-fungible token standard. ERC-444 preserves the dual fungible/non-fungible ontology pioneered by ERC-404 while excising its pathological gas semantics — relocating NFT instantiation from the transfer hot-path to an explicit, holder-initiated phase transition.
§0 Abstract
ERC-444 is a single-contract dual-interface asset: one state machine that satisfies the ERC-20 ABI for fungible balances and the ERC-721 ABI for a bounded set of non-fungible relics, with a deterministic conversion invariant of 10,000 ORIONIS ⇌ 1 relic. Unlike its predecessor, the non-fungible representation is latent by default: token transfers are gas-isomorphic to a canonical ERC-20 until a holder voluntarily collapses their balance into relic form.
The standard is intentionally unregistered — it is not an EIP and claims no finality. It is an adversarially-tested mutation of ERC-404, engineered for compatibility with automated execution infrastructure (sniper bots, honeypot simulators, MEV routing) that the eager-minting semantics of ERC-404 systematically antagonize.
§1 Prior Art & Pathology: ERC-404
ERC-404 ("Pandora", Feb 2024) demonstrated that fungible fractionalization and NFT ownership could cohabit one contract. Its fatal defect is eager materialization: every transfer synchronously mints and burns NFTs proportional to the whole-token delta. The consequences compound:
— O(n) transfer complexity. A swap moving n whole tokens performs n storage-heavy mint operations inline. Large buys become gas detonations that routinely exceed simulator gas ceilings.
— Simulator hostility. Automated buy/sell pre-flight checks (the honeypot heuristics every trading bot executes before committing capital) observe anomalous gas profiles and nonstandard side-effects, and frequently refuse the asset outright.
— Entropy destruction. Fractional sells burn NFT identity irrevocably; token IDs inflate monotonically and provenance is annihilated on every rebalance.
§2 The ERC-444 Thesis: Lazy Materialization
ERC-444 inverts the default. The fungible representation is the ground state; the non-fungible representation is an excited state entered only by explicit holder election. No transfer, swap, or routing operation ever instantiates an NFT as a side-effect.
A holder invokes materialize(count) to claim relics up to the floor of balance / UNIT. Conversely, when a balance decays below the materialized entitlement — through a sell, a transfer, any outflow — the surplus relics are automatically dematerialized (LIFO) into the recycling bank. The downward invariant is enforced unconditionally; the upward transition is never imposed.
| Dimension | ERC-404 (legacy) | ERC-444 (this spec) |
|---|---|---|
| NFT instantiation | Eager — inline on every transfer | Lazy — explicit materialize() |
| Swap gas profile | O(n) mints, gas detonation | ERC-20-isomorphic, O(1) hot path |
| Bot / simulator compatibility | Frequently rejected | Passes as vanilla ERC-20 |
| Burned NFT identity | Destroyed; IDs inflate forever | Recycled via relic bank; cardinality ≤ 444 |
| Metadata mutability | Static | Holder-initiated reroll (ERC-4906) |
| Protocol liquidity | Externally held, ruggable | Self-custodied & irrevocably locked |
§3 The Backing Invariant: Continuously Collateralized Relics
A relic is not a token you own separately from your balance — it is a claim collateralized by 10,000 ORIONIS you must continuously hold. The two representations are welded by a single, unconditionally enforced invariant:
relics_held ≤ ⌊balance / 10,000⌋ — at all times, in every block. A materialized relic that loses its 10,000-ORIONIS backing cannot continue to exist.
The enforcement is atomic and automatic. The instant a transfer, sale, or any outflow drops your balance below relics × 10,000, the surplus relics are auto-burned to the recycling bank within the same transaction (LIFO) — before the transfer returns. There is no grace period, no keeper, no cron: an unbacked relic is unrepresentable, not merely discouraged.
This is what makes ORIONIS a single coherent asset rather than a token with a bolted-on NFT. You cannot sell your tokens and keep the relic; you cannot hold the relic without reserving its collateral. The 10,000 ORIONIS behind each relic are effectively locked-behind-the-artifact for as long as you choose to hold it — and released the moment you don't.
hold 30,000 ORIONIS ──▶ entitled to 3 relics ──▶ materialize 3
│
│ sell / transfer 15,000 ORIONIS (balance → 15,000)
▼
entitlement = ⌊15,000 / 10,000⌋ = 1
│
▼ same transaction, before it returns:
burn 2 surplus relics → bank (1 relic remains, fully backed)
§4 The Relic Bank: Conservation of Identity
Dematerialized relics are not destroyed; they are sequestered. Their IDs enter a recycling stack — the bank — and are re-issued, most-recently-interred first, to the next materializer. Total relic cardinality is therefore permanently bounded at 444: the collection can never inflate, fragment, or leak identity.
┌────────────────┐ materialize() ┌────────────────┐ │ FUNGIBLE STATE │ ───────────────▶ │ RELIC (NFT) │ │ balance / UNIT │ ◀─────────────── │ owned, seeded │ └────────────────┘ balance decay └───────┬────────┘ (auto, LIFO) │ dematerialize ▼ ┌────────────────┐ │ RELIC BANK │──▶ re-issued │ id stack ≤444 │ on next └────────────────┘ materialize()
Every issuance — fresh or recycled — derives a new 256-bit seed from block entropy (prevrandao, ancestral blockhash, claimant, nonce). A relic re-emerging from the bank is thus reforged, not resurrected: same identity, new physiognomy.
§5 Reroll: Holder-Sovereign Entropy
A relic owner may invoke reroll(id) at any time to regenerate the seed underlying its metadata in place — no burn, no re-mint, no ID churn. The contract emits an ERC-4906 MetadataUpdate, instructing downstream indexers and marketplaces to re-derive the token's representation. Metadata is emitted fully on-chain as a data-URI; no server, no IPFS pin, no external dependency can rot.
§6 Dual-Interface ABI Disambiguation
Relic IDs are encoded as (1 << 255) | index. Because the fungible supply is dwarfed by the prefix by ~66 orders of magnitude, the overloaded entrypoints (transferFrom, approve) dispatch deterministically: any argument at or above the prefix that maps to a minted index is an NFT operation; everything else is fungible. With at most 444 relics, type(uint256).max — the infinite allowance every router and bot submits — can never collide with a valid ID and always resolves to the ERC-20 path. The ambiguity that plagued early 404 integrations is structurally unrepresentable.
§7 Protocol-Interred Liquidity (Uniswap v4)
ORIONIS trades on a hookless, native-ETH Uniswap v4 pool, bootstrapped single-sided: the pool is initialized at the exact tick implied by a 3 ETH virtual reserve against the full supply, and the entire float is deposited as a token-only range position. No ETH is spent to seed the market; price discovery begins at the virtual-reserve valuation.
The resulting LP position NFT is minted directly to — and permanently held by — the token contract itself. The contract's bytecode contains no code path capable of decreasing or withdrawing liquidity. This is not a timelock, a multisig promise, or a third-party locker: it is the absence of the withdrawal instruction altogether. The sole exposed lever is collectLPFees() — callable by anyone, permissionlessly — which sweeps accrued swap fees (ETH + ORIONIS) to the treasury.
enableTrading(). A max-wallet of 2% at genesis with a hardcoded 1% floor — the parameter cannot be weaponized into a soft honeypot. Every property a simulation engine audits is intentionally, verifiably boring.
| Parameter | Value | Note |
|---|---|---|
| Total supply | 4,440,000 ORIONIS | Fixed at genesis; no mint function exists |
| UNIT | 10,000 ORIONIS | Fungible mass backing one relic |
| Relic cardinality | 444 (hard bound) | Conserved via the relic bank |
| Pool | ETH / ORIONIS · 1.00% · v4 | Hookless; native ETH, no WETH wrapper |
| Genesis liquidity | 100% of supply, single-sided | 3 ETH virtual reserve sets the genesis tick |
| LP custody | The token contract itself | Irrevocable; fee-collection only |
| Max wallet | 2% at genesis · 1% floor | Relaxable / removable, never tightenable below floor |