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
| Action | Contract | ABI |
|---|---|---|
| Approve tokens before swaps, joins, or exits | Input ERC-20 token | Standard ERC-20 ABI |
| Submit swap intents | MultiHopRouter | MultiHopRouter.json |
| Submit single-asset join intents | MultiHopRouter | MultiHopRouter.json |
| Submit proportional join intents | MultiHopRouter | MultiHopRouter.json |
| Submit proportional exit intents | MultiHopRouter | MultiHopRouter.json |
| Read swap, join, or exit nonces | MultiHopRouter | MultiHopRouter.json |
| Read LP share value or expected exit token amounts | WeightedPoolQueries | WeightedPoolQueries.json |
| Read pool tokens, balances, weights, WBR config, or SSP core | WeightedPool | WeightedPool.json |
| Read WBR parameters directly | Per-pool WBR config | From ryze-contracts build artifacts |
| Read LP gauge deposits or rewards | LPGaugeVault | From ryze-contracts build artifacts |
Router Addresses
| Network | MultiHopRouter |
|---|---|
| Base mainnet | 0xCA8A097f627ef41Be12EbF7433F5B6b8A114D77b |
| Base Sepolia | 0xbe9f9B66F25F9D9D39899C416CF5fc6BC4952241 |
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
| Network | WeightedPoolQueries |
|---|---|
| Base mainnet | 0xD4b5DD638d09aB7b6Eb4Ec3490F02A96d0DD4100 |
| Base Sepolia | 0x1a7B7D9071c30935448b6cC3d114c0c794d0a3C0 |
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:
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.