Documentation
HyperCore
Tartarus tokens are built so they can move from Elysium to a HyperCore spot listing without changing the token. This page separates what is already true of every launch from what is still to come.
What every launch already satisfies#
These are fixed by the contracts, for every token, from its first block:
| Requirement | How Tartarus meets it |
|---|---|
| Immutable name, symbol and decimals | Stored in the bytecode, with no setter. The bridge keys a mirror on these exact values |
| Valid ticker | [A-Z0-9], 1 to 6 characters, the HyperCore ticker verbatim |
| Unique ticker | One launch per symbol across Tartarus; major assets reserved |
| Fixed supply | Exactly 1e27 raw, with no mint or burn |
| Plain transfers | No tax, rebase, pause or blocklist on the token |
| Representable on HyperCore | At 1,000,000,000 tokens, weiDecimals of 10 or fewer fits in uint64 Core wei |
| Bridge-ready | An escrow wallet created in the launch transaction, once a bridge factory is set |
The path to a listing#
- Bridge wallet. The escrow wallet for the token on Elysium. New launches get one automatically
once
elysiumBridgeFactoryis set.createL2Walletis permissionless, so earlier launches can create theirs afterwards. - Mirror. A 1:1 mirror of the token is registered on HyperEVM, keyed on its exact name, symbol and decimals.
- HIP-1 deploy. The issuer wins the HyperCore ticker auction and runs genesis.
- Link. The HyperCore spot token is linked to the mirror.
Steps 3 and 4 happen on HyperCore, outside Tartarus. A ticker auction costs real money, and winning one is not guaranteed.
Reading a token's status#
hypercoreStatus on GET /v1/tokens/:id:
| Value | Meaning |
|---|---|
none | No bridge wallet yet. Every mainnet token today |
bridgeWallet | The escrow wallet exists |
mirrorRegistered | The HyperEVM mirror is registered |
ascended | Linked to a HyperCore spot token |
bridgeWallet on the same record is the wallet's address, or null.
On chain, factory.bridgeWalletFor(token) and factory.expectedMirrorFor(token) return the same facts
once a bridge factory is set. Both revert with BridgeFactoryNotSet until then, so wrap them, or
check factory.elysiumBridgeFactory() first.
A launch records the outcome with BridgeWalletCreated(token, wallet) or BridgeWalletSkipped(token).
A bridge failure can never block a launch. With no factory set, neither event fires.