Skip to content

Reference: networks & addresses

HAM launched on HyperEVM mainnet (chain 999) on 2026-06-13. The protocol contract addresses below are the live, on-chain deployment. The canonical machine-readable record is deployments/<chainid>.json in the protocol repository.

Every address on this page was read back from HyperEVM mainnet on 2026-08-22 (via https://rpc.hyperliquid.xyz/evm) — proxies from their EIP-1967 implementation slot, roles from the contract that holds them, pairs from their factory.

Networks

NetworkChain IDRPCExplorer
HyperEVM mainnet999https://rpc.hyperliquid.xyz/evmhttps://hyperscan.com
HyperEVM testnet998https://rpc.hyperliquid-testnet.xyz/evmhttps://testnet.purrsec.com

Standing infrastructure (HyperEVM mainnet)

WhatAddress
WHYPE (reserve token)0x5555555555555555555555555555555555555555
Ramses legacy (Solidly) pair factory0xd0a07E160511c40ccD5340e94660E9C9c01b0D27
Multicall30xcA11bde05977b3631167028862bE2a173976CA11
Treasury / governance Safe (3-of-5)0xF61D218b1429243d7F5937bCB85A4B8b41301CCa

The treasury Safe above is deployed on mainnet (999) only — it does not exist on testnet. A testnet rehearsal needs its own Safe on chain 998. (Safe addresses are per-chain.)

The two token contracts: HAM and wHAM

HAM is a rebasing token: your balanceOf changes at every rebase. That behaviour breaks contracts that assume balances only move on transfer — AMM pairs above all. So the protocol also ships a non-rebasing wrapper, wHAM, and it is wHAM (not HAM) that trades on the live pool.

TokenAddressDecimalsWhat it is
HAM0xd62DcC1E28D646Db54E2204A40980F9db28e036318The rebasing token. Balances scale at every rebase.
wHAM (Wrapped HAM)0xD48ad2f34Ce9071ac130F55237c030643C5eeDe624Non-rebasing wrapper. One wHAM share is one HAM internal unit and never rescales; the HAM it redeems for grows with the scaling factor. This is the token in the live pool.

wHAM has 24 decimals, not 18

wHAM.decimals() returns 24, because a wHAM share is a HAM internal unit (INTERNAL_DECIMALS = 1e24), not a HAM fragment. Any indexer, price feed, token list, or reader that defaults to 18 will be wrong by a factor of 10^6. State the decimals explicitly in every registration and read decimals() back to confirm.

Trading venue

The live pool is the Ramses legacy (Solidly) volatile pair — WHYPE/wHAM.

WhatAddress
WHYPE/wHAM volatile pair (Volatile - WHYPE/wHAM)0x6cCA1C5a88A391f4e55f69E7BBA13e42A813BaD5
Pair factory0xd0a07E160511c40ccD5340e94660E9C9c01b0D27
Pool feeOwner-mutable — read pairFee(pair) on the factory. Do not hard-code it; it was 5000 ppm at deploy and is lower now.
token0 / token1WHYPE 0x5555…5555 / wHAM 0xD48a…eDe6

The old Project X pair is dead — do not trade or LP into it

The original HAM/WHYPE Uniswap V2 pair on the Project X factory, 0x948e6F60e07654602Ed7D60447e0B683fd86E3d5, was drained to zero HAM by the Ramses cutover on 2026-08-10. Read live, its getReserves() returns ~3.56 WHYPE and 0 HAM. It is still a deployed contract and will still accept transactions — a swap or an addLiquidity against it will execute at an arbitrary price against an empty book. Use the Ramses pair above.

Protocol contracts

The HAM token address below (the ERC-1967 proxy) is the canonical contract address — the one to add to wallets, explorers, and DEX listings. The implementation lives behind the proxy and is replaced on upgrades; the proxy address never changes.

HAM token CA (mainnet): 0xd62DcC1E28D646Db54E2204A40980F9db28e0363

ContractMainnet (999)Testnet (998)
HAM token (ERC-1967 proxy)0xd62DcC1E28D646Db54E2204A40980F9db28e03630x94d9D59157064645AaCfB2ED1d4577cB6C8377C6
HAM implementation0xE6D908F7c156d3FcE88FF145A239d017dBc9a68f0x4fb240CDBfD34d8365e5434389dd124A03B645E5
wHAM wrapper (24 dec)0xD48ad2f34Ce9071ac130F55237c030643C5eeDe6
HAMRebaserV2the live rebaser0x08E5cEf25c7fe9dbcf584d1Bd95de5cDD55962F50xfd1Ded0DfE6b51dE23FB7829633D6aEf2aB50774
HAMRebaser (V1, superseded)0xa55fC153BE71E416BcCeD93e688D470dA42eb4Da
RamsesLegacyZap0x9f43EfA4dD3DCFfd2eeD43964B80f8272c1ee25f
WHYPE/wHAM pair (live venue)0x6cCA1C5a88A391f4e55f69E7BBA13e42A813BaD5
HAM/WHYPE Project X pair (dead)0x948e6F60e07654602Ed7D60447e0B683fd86E3d5

Which rebaser is authoritative: the one the token itself accepts. HAM.rebaser() returns 0x08E5cEf2…62F5 (HAMRebaserV2, deployed 2026-08-10 for the Ramses migration). V1 0xa55fC153…b4Da still reports rebasingActive() == true on its own storage, but it is inert — the token will not accept a rebase() from it. Read V2 for live policy state.

Integrator trap — RamsesLegacyZap.ham() returns the rebasing HAM (0xd62D…0363), not wHAM. The zap wraps internally. Do not infer the pool's token from it; the pool holds wHAM.

Treasury, lending & bond contracts

ContractMainnet (999)What it is
BackingLens0x5c0Af8e697f45C632dE8E3f08e7dB9450625ca69Canonical on-chain backing mark. Reads treasury reserves and a dual HYPE/USD feed — never the pool — so rebases and pool-price manipulation cannot move it. Stateless, immutable, ownerless.
CoolerVault0x4B184A9f7DE61A3254B35Bb2F0295D68B0C3221eFixed-term (90-day) loan desk against wHAM collateral, marked off BackingLens.
HAMBondDesk0xA7FF7341A3A2A545293249D00959960A6Db6dcb2Discounted-bond desk; sells wHAM against reserve/LP deposits at a discount floored by the backing mark. Owner: treasury Safe.

Reading the backing mark

BackingLens is the contract to read for backing — not a number frozen in this page, which would be stale the moment a rebase or a HYPE move lands.

ViewReturns
backingPerUnitUsd()USD (1e18) backing 1e24 internal units — i.e. one whole wHAM. Rebase-invariant.
backingPerUnitReserve()The same mark denominated in WHYPE (1e18). Oracle-free; readable during an oracle incident.
backingPerHamUsd()USD (1e18) backing one HAM fragment at the current scaling factor. Display-only — moves inversely with rebases.
treasuryReserveAssets() · circulatingInternal() · reserveUsd()The three inputs, if you want to recompute the mark yourself.

Backing is not a redemption right

These views measure what the treasury holds against circulating supply. They are not a claim: there is no contract that redeems HAM or wHAM for reserves at the backing mark, and no holder can demand $1. The $1.00 peg is a supply-policy target pursued by rebasing — see The peg.

Verify on the explorer: HAM token · wHAM · HAMRebaserV2 · WHYPE/wHAM pair · BackingLens

USD-mode oracle feeds (HyperEVM mainnet)

USD mode requires two independent reserve→USD (WHYPE/USD) feeds. The launch ships two HyperCoreOracleAdapters, each wrapping a native HyperCore price precompile:

RoleAdapterSource precompileAddress
Primary reserveUsdOracleHyperCoreOracleAdapterPerp oracle 0x0000000000000000000000000000000000000807 (HYPE perp index 159, scale exp 4)0xb582949a6A7350F6678487C0a6eD28f8072111f5
Secondary secondaryReserveUsdOracleHyperCoreOracleAdapterSpot 0x0000000000000000000000000000000000000808 (HYPE/USDC pair @107, scale exp 2)0x1cE0D3ff08aeCF05574cF3c17dF06d98566B3635

Both adapters report decimals() == 8. The same pair backs BackingLens, which requires them to agree within its divergence bound and reverts otherwise — failing closed rather than marking off a single feed.

Testnet (998) runs in RATIO mode (pool TWAP only); no oracle adapters are deployed there.

HAM // Elastic supply pegged to $1.00 · Not financial advice.