Address References
pAMM uses Native Router V6 and Native RFQ Pool V6. See Addresses for the full V6 layout on every chain.
BNB Chain (chainId 56)
NativeRouter
0x1fDED89D98CBeADd96a109D28689c2638025dad3
NativeRFQPool
0x8Ac1009D5f13660CE7089901E51459142ad50793
WBNB
0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c
QQQB – USDT
0xa02223bBc5F60D8FD0F42E2b5ab1FC3C37be7652
Enabled
Live for test.
WBNB – USDT
0x1d22bd156eE77135afdfB7cbb10C7B8029572699
Disabled
USDC – USDT
0x06a9F8e8967076BbcEF5facc25FA3767Cab7bebf
Disabled
Other V6 chains
Arbitrum, Base, Monad, X Layer, Morph, and Robinhood Chain have the same V6 router/pool layout (see the Addresses) but no pAMM engines assigned at this snapshot.
For Ethereum, Native is working with Titan and other builders to integrate pAMM.
How to confirm a pair yourself
The pool cannot enumerate pairs. Seed token pairs, then keep those with getEngine(a, b) != address(0) and engine.rfqPool() == pool.
const engine = await pool.getEngine(tokenA, tokenB); // zero = not listed
const pairKey = await pool.getPairKey(tokenA, tokenB);
const enabled = await pool.directSwapEnabled(pairKey);
const boundPool = await engine.rfqPool(); // must equal the NativeRFQPool you usetokenA/tokenBorder does not matter.address(0)is normalized to WETH/WBNB on the pool.pairKeyiskeccak256(abi.encode(token0, token1))after WETH-normalize, withtoken0 < token1.Also require
router.isNativePools(pool) == true.
Last updated