Pool and several capability objects.
Core Objects
AdminCap, HLP Treasury Cap, and HLP Metadata Cap are owned objects held by the IFÁ Labs team — not objects you pass into deposit, withdraw, swap, or sweep calls. They’re listed here for completeness and transparency, not because integrators need them. The Pool ID is the object you’ll actually pass into every periphery function.Pool Configuration
Asset Vaults
Each supported asset has its ownAssetVault<T> and ProtocolFeeVault<T> — both required as arguments whenever you deposit, withdraw, or swap that asset.
SUI
USDSUI
CNGN
This Asset Index matches the CNGN/USD asset ID used on the oracle directly — confirming the swap contract reads the exact same
IfaPriceFeed entries documented on Supported Assets.ZARP
WAL
TypeScript Constants
Copy-paste ready object IDs and coin types for the live Sui Testnet deployment:Using These IDs in a Transaction
A complete swap example — SUI for CNGN — using the real testnet IDs above:Notice the swap contract requires both its own Pool/Vault objects and the oracle’s Feed Object ID in the same call. This is the swap contract directly consuming the oracle — exactly as described in the Sui Swap Contract Overview.
Verifying These Objects On-Chain
1
Open the package on Suiscan
Navigate to the Package ID on Suiscan. Confirm the package name is
ifalabs and the modules listed include hetero_swap_core, hetero_swap_periphery, and hlp.2
Verify the Pool object
Navigate to the Pool ID on Suiscan. Confirm the object type is
ifalabs::hetero_swap_core::Pool and it is a shared object.3
Verify an asset vault
Pick any asset vault ID from the tables above and confirm its object type matches
ifalabs::hetero_swap_core::AssetVault<T>, where T is the expected coin type.4
Check recent transactions
On the Pool object page, review recent transactions. You should see
deposit_liquidity, swap_exact_input, or withdraw_liquidity calls if the pool has seen any testnet activity.Reporting an Address Discrepancy
If you encounter an object ID claiming to be part of the IFÁ Labs Swap Contract that is not listed on this page, do not use it and report it immediately:- Email: support@ifalabs.com
- Telegram: t.me/ifalabs
- GitHub: IFA-Labs/swap_contract_sui/issues
Next Steps
Swap Function Reference
Every public function — deposit, withdraw, swap, sweep, and quote.
Sui Swap Contract Overview
Architecture, core concepts, and what the pool does.
Contract Addresses
The oracle’s object IDs — required alongside the Pool ID for every swap call.
Testnet Faucet
Claim testnet SUI and WAL to try a deposit or swap yourself.

