Contracts and ABIs
HyperAMM integrations should be built from the current contract address registry and published ABIs.
Address Sources
Use addresses in this order:
- Current HyperAMM address registry.
- Verified block explorer entries for the target chain.
- Factory registry reads for per-pool components.
- Documentation tables for human review.
The public Contract Addresses page is the address reference. Production systems should still verify addresses on-chain before writes.
Global Contracts
| Contract | Purpose | Integrator use |
|---|---|---|
HyperAMMFactory | Registry and pool component lookup | Discover pools and per-pool addresses |
HyperAMMSwapRouter | Swap entry point | Preview and execute exact-input swaps |
HyperAMMLens | Read helper | Preview swaps, deposits, instant withdrawals, and queued withdrawals |
Per-Pool Contracts
Every pool has its own component set.
| Contract | Purpose | Integrator use |
|---|---|---|
HyperAMM | LP ERC-20 and pool accounting | LP balance, token metadata, pool state |
SovereignPool | Valantis spot execution pool | - |
HyperAMMExecutor | Async LP entry point | Submit deposits and withdrawals |
HyperAMMWithdrawer | Queued withdrawal state | Read request state and claim queued withdrawals |
HyperAMMEscrow | Pull-based refund escrow | Read and claim pending HYPE/token refunds |
HyperCoreManager | HyperCore account manager | - |
HyperCoreTrader | HyperCore trading helper | - |
HyperAMMRebalancer | Pool rebalance component | - |
HyperAMMReconciler | Hedge reconciliation component | - |
HyperAMMCompositionManager | Pool composition component | - |
HyperAMMStakingManager | Per-pool sHYPE staking manager | Stake and unstake HYPE when the staking surface is enabled |
sHYPE | Per-pool staked HYPE receipt token | Read staking balances and approve unstake requests |
Oracle | Pool price source | Read oracle configuration when exposed |
SwapFeeModule | Dynamic fee logic | Read fee configuration and previews when exposed |
Factory Lookup
Use getPoolInfo(poolId) when you need the full component set.
pool-components.ts
const info = await publicClient.readContract({
address: factoryAddress,
abi: hyperAMMFactoryAbi,
functionName: "getPoolInfo",
args: [poolId],
});
const components = info.deployment;
Use getPoolAddress(poolId, field) when you need one component address.
single-component.ts
const executor = await publicClient.readContract({
address: factoryAddress,
abi: hyperAMMFactoryAbi,
functionName: "getPoolAddress",
args: [poolId, stringToBytes32("executor")],
});
Supported component fields include:
| Field | Returns |
|---|---|
hyperAMM | LP token and pool accounting contract |
pool | Valantis SovereignPool |
oracle | Pool oracle |
hyperCoreManager | Core account manager |
hyperCoreTrader | Core trading helper |
withdrawer | Queued withdrawal contract |
rebalancer | Rebalancer |
executor | Async LP executor |
escrow | Refund escrow |
reconciler | Hedge reconciliation component |
compositionManager | Pool composition manager |
swapFeeModule | Dynamic swap fee module |
stakingManager | Per-pool sHYPE staking manager |
sHYPE | Per-pool staked HYPE receipt token |
ABI Policy
Use ABIs from the current published ABI files or verified explorer entries for the deployment you are integrating. Pin ABI versions in your application and update them deliberately.
Required ABIs for most integrations:
| Flow | ABIs |
|---|---|
| Pool discovery | HyperAMMFactory |
| Swap | HyperAMMSwapRouter, HyperAMMLens, ERC-20 |
| LP deposit | HyperAMMExecutor, HyperAMMLens, HyperAMM, ERC-20 |
| LP withdraw | HyperAMMExecutor, HyperAMMWithdrawer, HyperAMMLens, HyperAMMEscrow, ERC-20 |
| Portfolio display | HyperAMMFactory, HyperAMM, HyperAMMWithdrawer |
| sHYPE staking | HyperAMMStakingManager, sHYPE, ERC-20 |
Integration Surface
Use these surfaces for integration:
- deployed contract addresses
- published ABIs
- documented events
- documented request lifecycles
- audited and disclosed control surfaces
- RPC simulations against the target chain
Next Steps
- Integration Guide - End-to-end contract flows