HIP-1 Contract
Status: M5 verified Last verified: 2026-07-19
Official sources: HL.DOC.HIP1.2026-07-19, HL.DOC.HIP1_DEPLOY.2026-07-19
Fixture sources: HL.LIVE.MAINNET.M5.2026-07-19, HL.LIVE.TESTNET.M5.2026-07-19
HIP-1 Math validates deterministic deployment and genesis constraints from plain data. It does not bid in auctions, submit deploy actions, create spot books, halt tokens, execute dusting, or predict server governance decisions. Token names are display labels, not stable asset identity.
hl.hip1.deployment.validate v1
Source ID: HLM.SPEC.HIP1.DEPLOYMENT_VALIDATE.V1
Input is exactly:
{
name: string;
weiDecimals: number;
szDecimals: number;
maxSupplyWei: string;
userGenesisWei: string;
anchorGenesisWei: string;
}Rules:
- The official constraint is that
namehas at most 6 characters. This v1 contract deliberately interprets a character as one ECMAScript Unicode code point; that counting convention is a local defensive assumption, not a claim about undocumented server normalization. Unpaired surrogate spellings are invalid plain text. Math preserves leading and trailing spaces and does not trim, normalize, case-fold, or use the display label as identity. The official docs do not require token-name uniqueness, so Math does not check uniqueness. weiDecimalsandszDecimalsare non-negative safe integers in the local defensive range0..255;szDecimals + 5 <= weiDecimalsis an objective deployment constraint.lotSizeWei = 10 ** (weiDecimals - szDecimals).maxSupplyWei,userGenesisWei, andanchorGenesisWeiare non-negative integer decimal strings; each raw spelling is at most 256 characters and each canonical value is at most 40 significant digits; positive maximum supply is an objective constraint.userGenesisWei + anchorGenesisWei == maxSupplyWei. This is the documentedGenesis.maxSupplychecksum over precedingUserGenesiscalls:userGenesisWeiaggregatesuserAndWei, whileanchorGenesisWeiaggregatesexistingTokenAndWei.- Every non-zero supply component must be an integer number of minimal units by construction. Math does not round supply values.
- Kit aggregates repeated
userGenesiscalls and anchor allocations into the two supplied totals; Math neither validates addresses nor submits deployment actions. Hyperliquidity is configured by a later action and is intentionally absent from this checksum.
Valid input returns ok with { lotSizeWei, totalGenesisWei, checks }. Failed objective constraints return ok with violated checks when the input shape is valid. Invalid shape, unsafe integers, invalid Unicode, decimal grammar violations, negative values, or arithmetic overflow against the Decimal40 guard return invalid-input.
Authority is local-exact; maturity is experimental because HIP-1 deployment acceptance, auction state, deployer permissions, and any future governance limits remain server-authoritative.
hl.hip1.anchor-genesis.evaluate v1
Source ID: HLM.SPEC.HIP1.ANCHOR_GENESIS_EVALUATE.V1
Input is exactly { holderBalanceWei, anchorTokenMaxSupplyWei }, both non-negative integer decimal strings.
The official anchor genesis eligibility weight is:
weightWei = max(holderBalanceWei - anchorTokenMaxSupplyWei / 1000000, 0)
Equivalently, holders only receive positive weight above the 0.0001% max-supply threshold.
- Output is
{ thresholdWei, weightWei, eligible }. eligibleis true iffweightWei > 0.- Threshold and weight retain the exact fixed-six rational implied by the denominator. If an exact successful output would require more than 40 significant digits, the function returns
invalid-inputinstead of silently rounding at Decimal40 precision. - This function evaluates one holder's deterministic weight only. It does not allocate final token amounts across all holders, decide tie behavior, round final allocations, or prove snapshot inclusion.
thresholdWeiandweightWeimay contain fractional minimal-unit values because the official proportional-weight formula is rational; this function does not round an allocation.
Authority is local-exact; maturity is experimental.
Trace assumptions
Successful HIP-1 traces record the frozen deploy payload, the local code-point counting assumption, decimal metadata, lot-size derivation, genesis checksum, and exact rational anchor-threshold calculation.
Oracle boundary
Official docs define the v1 constraints above. Live spot metadata can prove deployed token weiDecimals, szDecimals, names, and token IDs after the fact, but it does not prove a rejected deployment or final genesis allocation rule; legacy or testnet metadata that violates a current deployment constraint is observation evidence, not a counter-oracle. The official Python SDK exposes deployment and spot schemas only; it is not a formula oracle for acceptance, auction, or allocation. Server deployment acceptance, auction state, actual genesis distribution, and token lifecycle actions are not-supported in Math.