Skip to main content

Networks, Deployments, and ABIs

Multiswap exposes one Dispatcher address per deployment. Pool-aware functions are called on the Dispatcher and include the pool address as their first argument.

Browse all currently available pools. The pool directory groups deployments by network and is the canonical public entry point.

Current testnet deployments

Monad Testnet

Monad Testnet is one current deployment available for integration testing.

FieldValue
Chain ID10143
Native assetMON
Dispatcher0x1c6106495a7e8917931F6a17622d03a339ff0bEc
Network poolsapp.caval.re/monad-testnet/pools
Explorertestnet.monadexplorer.com

Deployment facts can change during testnet iteration. The app's generated deployment manifest and the onchain Dispatcher tree are authoritative.

Contract model

The Dispatcher is an immutable selector router. Installed modules provide pool reads, quotes, settlement, intents, deposit phases, staking, and administrative functions without requiring integrators to call module addresses directly.

client → Dispatcher → installed module
↳ pool-specific state

Minimum integration ABI

An exchange integration normally needs these functions:

function subAccounts(address absolute) view returns (address[]);
function poolSummary(address pool) view returns (PoolSummary);
function reserveAssetInfos(address pool, uint256 start, uint256 limit)
view returns (ReserveAssetInfo[]);
function quoteMultiswapForSettlement(
address pool,
QuoteAmount[] payAssets,
QuoteAllocation[] receiveAssets
) view returns (
QuoteItem[] payQuotes,
QuoteItem[] receiveQuotes,
QuoteItem[] feeQuotes,
int256[] receiveAllocations,
int256 priceOfUSD
);
function multiswap(
address pool,
Amount[] payAssets,
Allocation[] receiveAssets
) payable;

For signed execution, also include:

function nonces(address payer) view returns (uint256);
function domainSeparator() view returns (bytes32);
function multiswapWithSignature(MultiswapIntentData intent, bytes signature) payable;

The int256 values in read and quote structs are packed Multiswap Float values. Settlement amounts and minimums are ordinary token base units.

The ABI fragments used by the reference app live beside its quote, pool, Multiswap, and intent clients. Integrators should pin those fragments to a reviewed contract commit rather than infer an ABI from the current module list at runtime.