Overview
What Armory deploys on ApeChain, how the four systems fit together, and where to start if you want to build on them.
On this page
Armory is a DEX on ApeChain. It runs two AMMs, an aggregator that routes across every venue on the chain, a set of lockers, and a CCIP bridge into the chain from Base, Ethereum, Robinhood, Arbitrum, BNB Chain and HyperEVM.
All of it is deployed, all of it is callable by anyone, and none of it is permissioned at the point of use. These pages document the contracts so you can build against them directly rather than through our interface.
The four systems
DEX
Two automated market makers. V2 is constant-product, a Uniswap V2 fork, and is the simplest thing to integrate against. V3 is concentrated liquidity, a Uniswap V3 fork, with four fee tiers including a 2.5% tier intended for new launches.
Both are byte-level forks of contracts you have already read. The init code hashes are published on their respective pages, so you can compute pair and pool addresses off chain without a factory call.
Aggregator
ArmoryTradeManager executes a trade against any
registered venue behind one interface. It ships with adapters for Armory V2 and
V3 and for Camelot V2 and V3, addressed by a dexId.
The adapter interface is public. If you run a venue on ApeChain, you can
write an adapter against
ITradeAdapter and have it routed to.
Lockers
Token, LP and V3 position locks, with vesting. The
part worth your attention is
ArmoryLockRouter: it adds liquidity and locks it
in a single transaction, which is what a launch actually needs.
The fee split on a locked position is delegated to a module contract, and the module interface is open. You can write your own and have it approved.
Bridge
ChainHop moves ERC20s and ERC721s between ApeChain, Base, Ethereum, Robinhood, Arbitrum, BNB Chain and HyperEVM over Chainlink CCIP. Not every pair is a direct lane: ApeChain reaches Robinhood, BNB Chain and HyperEVM through Base, and the vault routes those for you as real two-leg hops.
The chain
Armory deploys to ApeChain mainnet, chain id 33139. There is no testnet
deployment. Native APE is the gas token and the quote asset for most pairs;
WAPE above is its ERC20 wrapper, and the routers wrap and unwrap around it so
you can pass native value in and get native value out.
Every deployed address is listed on the addresses page.
Before you integrate
Check configurable state before submitting
Adapter registration, pause flags, fee receivers, routes and module approvals can change on chain. Read the relevant getter while building a transaction instead of assuming a listed contract is ready for every operation.
Three conventions hold across everything documented here.
- Deadlines and slippage are yours. No contract in this system picks a default for you. A call with a past deadline reverts, and a call with a zero minimum output will fill at any price.
- Native APE is handled at the periphery. Core contracts only ever see
WAPE. The routers and the trade manager wrap on the way in and unwrap on the way out. - Quoters are not view functions.
QuoterV2reverts internally to return its answer. Simulate it, never call it inside a transaction.