Skip to content

ABI Routing

Use the contract address from Contract Addresses, then pair it with the ABI for the contract that actually owns the function you are calling.

Contract ABI Map

ActionContractABI
Approve tokens before swaps, joins, or exitsInput ERC-20 tokenStandard ERC-20 ABI
Submit swap intentsMultiHopRouterMultiHopRouter.json
Submit single-asset join intentsMultiHopRouterMultiHopRouter.json
Submit proportional join intentsMultiHopRouterMultiHopRouter.json
Submit proportional exit intentsMultiHopRouterMultiHopRouter.json
Read swap, join, or exit noncesMultiHopRouterMultiHopRouter.json
Read LP share value or expected exit token amountsWeightedPoolQueriesWeightedPoolQueries.json
Read pool tokens, balances, weights, WBR config, or SSP coreWeightedPoolWeightedPool.json
Read WBR parameters directlyPer-pool WBR configFrom ryze-contracts build artifacts
Read LP gauge deposits or rewardsLPGaugeVaultFrom ryze-contracts build artifacts

Router Addresses

NetworkMultiHopRouter
Base mainnet0xCA8A097f627ef41Be12EbF7433F5B6b8A114D77b
Base Sepolia0xbe9f9B66F25F9D9D39899C416CF5fc6BC4952241

The router quote APIs return encoded txData for execution, so most integrations do not need to manually encode swap or join calldata. You still need the MultiHopRouter ABI for EIP-712 typed-data domains and nonce reads.

Query Helper Addresses

NetworkWeightedPoolQueries
Base mainnet0xD4b5DD638d09aB7b6Eb4Ec3490F02A96d0DD4100
Base Sepolia0x1a7B7D9071c30935448b6cC3d114c0c794d0a3C0

WeightedPoolQueries is a stateless helper. Use it for read-only quote and LP valuation calls; do not send execution transactions to it.

Intent Domain

For all router intent signatures:

ts
const domain = {
  name: 'MultiHopRouter',
  version: '1',
  chainId, // 8453 for Base, 84532 for Base Sepolia
  verifyingContract: multiHopRouterAddress,
};

Use the router address for the active network as verifyingContract.

ABI Source

The published docs include the minimal external integration ABIs under /abi/. The canonical Solidity ABIs are generated from ryze-contracts build artifacts. Client examples in these docs use minimal inline ABI fragments only for readability; production integrations should use the full ABI matching the deployed contract version.