> ## Documentation Index
> Fetch the complete documentation index at: https://platform.monoli.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# Pools API Quick Start

## Token Data

The Token Data API provides unified, real-time token metadata, pricing, liquidity, and risk information to support seamless asset discovery and on-chain interactions.

To read more about the properties of a token, see the (Wrapper Tokens)\[] page,

### Get Curve Pools containing RLUSD

<CodeGroup>
  ```bash cURL theme={null}
  curl -X GET "https://api.monoli.xyz/v1/pools/tokens?token=rlusd&protocol=curve" --header 'Authorization: [YOUR_API_KEY]'
  ```

  ```typescript TypeScript theme={null}
  import { Monoli } from "@monoli/platform-sdk";

  (async () => {
       const monoli = new Monoli({ apiKey: "YOUR_API_KEY", network: "ethereum", });

       const RLUSD = "0x0000000000000000000000000000000000000000";
       const pools = await monoli.tokenData.getPoolsByToken(RLUSD, {
        protocol: "curve",
      });

      console.log("Curve Pools containing RLUSD:");
      console.log(JSON.stringify(pools, null, 2));
  }
  ```

  ```python Python theme={null}
  import requests
  url = "https://api.monoli.xyz/v1/tokens"
  headers = {'Authorization': '[YOUR_API_KEY]'}
  params = {
      'search': 'rlusd',
      'protocol': 'curve',
      'networks': 'ethereum',
      'sortBy': 'liquidity',
      'sortDirection': 'desc'
  }

  response = requests.get(url, headers=headers, params=params)
  print(response.json())
  ```
</CodeGroup>

## Zaps

Zaps API provides a unified interface that lets developers enter or exit complex multi-step DeFi positions using a single token and a single transaction.

### Zap into an LST-Leverage Vault with any Token

Enter an LST Leverage Vault using stETH as the underlying asset: A user holds USDC, but wants to enter the LST Leverage Vault (a leveraged staking strategy using stETH + wETH borrows).

<CodeGroup>
  ```bash cURL theme={null}
  curl -X POST "https://api.monoli.xyz/v1/pools/zaps/vaults/zap-into" \
  -H "Authorization: [YOUR_API_KEY]" \
  -H "Content-Type: application/json" \
  -d '{
      "fromToken": "USDC",
      "toVault": "LST-Leverage-Vault-Address",
      "amount": "1000",
      "slippageTolerance": 0.005,
      "userAddress": "0xUserWalletAddress"
  }'
  ```

  ```typescript TypeScript theme={null}
  import { Monoli } from "@monoli/platform-sdk";

  (async () => {
      const monoli = new Monoli({ apiKey: "YOUR_API_KEY" });
      
      const zapResult = await monoli.pools.zaps.zapIntoVault({
          fromToken: "USDC",
          toVault: "LST-Leverage-Vault-Address",
          amount: "1000", // Amount in USDC
          slippageTolerance: 0.005, // 0.5% slippage tolerance
          userAddress: "0xUserWalletAddress"
      });
      console.log('Zap result:', zapResult);

      const tokenData = await monoli.pools.getTokenData("LST-Leverage-Vault-Address");
      console.log('Vault token data:', tokenData);

      const vaultInfo = await monoli.pools.getVaultInfo('lst_leverage_vault_eth');
      console.log('Vault info:', vaultInfo);
  ```

  ```python Python theme={null}
  import requests
  url = "https://api.monoli.xyz/v1/pools/zaps/vaults/zap-into
  headers = {
      'Authorization': '[YOUR_API_KEY]',
      'Content-Type': 'application/json'
  }
  payload = {
      "fromToken": "USDC",
      "toVault": "LST-Leverage-Vault-Address",
      "amount": "1000",
      "slippageTolerance": 0.005,
      "userAddress": "0xUserWalletAddress"
  }
  response = requests.post(url, headers=headers, json=payload)
  print(response.json())
  ```
</CodeGroup>

What the Zap automatically performs:

1. Swap USDC → stETH
2. Borrow wETH from the lending protocol (Aave/Morpho)
3. Swap wETH → more stETH
4. Loop 1-3 until target leverage is reached (e.g., 3x stETH exposure)
5. Deposit the leveraged stETH position into the Strategy Vault
6. Return vault shares to the user

## Pools
