Skip to content
Eden Engine

Stablecoin Single-Asset DeFi Earn Pools by Chain and Protocol (No Impermanent Loss Risk, TVL of 1M USD or More, First 100)

omnial/stablecoin-single-asset-earn-pools

For one chain and one DeFi protocol, returns up to 100 earn pools that hold only stablecoins, have single-asset exposure, no impermanent loss risk and TVL of at least 1M USD. Each pool has its id, pool, underlying and reward tokens, link, current, 7-day and 30-day APY (base, reward, total), any intrinsic yield, 30-day APY stability ratios, TVL and available supply in USD, and holder count, average position and top-10 share; plus the match count.

activeper callv1

Price

Up to $0.001 per call; you pay what the call used

The price shown is the price you pay. No monthly minimum. Top-ups start at $5.

Data source

DefiLlama

Data from DefiLlama.

Use it

Five steps: search, inspect, learn, run, settle. No per-tool setup; your agent reaches this tool through the meta-tools it already has.

agent
// 1. search: find the tool
omnial_search({ query: "what you need" })

// 2. inspect: price and input schema
omnial_inspect({ tool: "omnial/stablecoin-single-asset-earn-pools" })

// 3. learn: read the usage guide at runtime
omnial_learn({ tool: "omnial/stablecoin-single-asset-earn-pools" })

// 4. run: price the exact call first, then run it
omnial_execute({ tool: "omnial/stablecoin-single-asset-earn-pools", input: { /* see input_schema */ }, dry_run: true })
omnial_execute({ tool: "omnial/stablecoin-single-asset-earn-pools", input: { /* ... */ } })

// 5. settle: the call is charged when it finishes, nothing to do

Not connected yet? Point your MCP client at https://mcp.eden-engine.com/mcp, then copy a config for your client.

Pricing

Every charge this tool can incur.

ChargePrice
Per call
$0.001
Updated
Oct 14, 2026

Input and output schemas

Input schema
input_schema.json
{
  "type": "object",
  "required": [
    "chain",
    "protocol"
  ],
  "properties": {
    "page": {
      "enum": [
        1
      ],
      "type": "integer",
      "default": 1,
      "description": "Fixed: the first page only."
    },
    "chain": {
      "type": "string",
      "minLength": 1,
      "description": "The chain's lowercase slug. One chain per call."
    },
    "limit": {
      "enum": [
        100
      ],
      "type": "integer",
      "default": 100,
      "description": "Fixed: up to 100 pools."
    },
    "min_tvl": {
      "enum": [
        1000000
      ],
      "type": "number",
      "default": 1000000,
      "description": "Fixed: only pools with TVL of at least 1M USD."
    },
    "protocol": {
      "type": "string",
      "minLength": 1,
      "description": "The protocol's lowercase slug, including its version suffix where it has one. One protocol per call."
    },
    "stablecoin": {
      "enum": [
        true
      ],
      "type": "boolean",
      "default": true,
      "description": "Fixed: only pools whose assets are all stablecoins."
    },
    "impermanent_loss_risk": {
      "enum": [
        false
      ],
      "type": "boolean",
      "default": false,
      "description": "Fixed: only pools with no impermanent loss risk."
    },
    "single_asset_exposure": {
      "enum": [
        true
      ],
      "type": "boolean",
      "default": true,
      "description": "Fixed: only pools exposed to a single asset."
    }
  },
  "additionalProperties": false
}
Output schema
output_schema.json
{
  "type": "object",
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The pool's id (a UUID)."
          },
          "apy": {
            "type": "object",
            "description": "APY in percent for `current`, `avg_7d` and `avg_30d`, each split into `base`, `reward` and `total`; `base` and `reward` may be null (two pools had null base and a total of 0)."
          },
          "url": {
            "type": "string",
            "description": "Link to the pool on the protocol's app."
          },
          "chain": {
            "type": "string",
            "description": "The chain's display name."
          },
          "holders": {
            "type": "object",
            "properties": {
              "count": {
                "type": "number",
                "description": "Number of holders."
              },
              "avg_position_usd": {
                "type": "number",
                "description": "Average position, in USD."
              },
              "top_10_share_pct": {
                "type": "number",
                "description": "Share of the pool held by the top 10 holders, in percent."
              }
            }
          },
          "tvl_usd": {
            "type": "number",
            "description": "Total value locked, in USD."
          },
          "pool_key": {
            "type": "string",
            "description": "The pool token address and chain."
          },
          "protocol": {
            "type": "string",
            "description": "The protocol's display name."
          },
          "intrinsic": {
            "type": "object",
            "description": "Present on pools that pass through another pool's yield: that source pool's base APY (`apy.current`, `apy.avg_7d`, `apy.avg_30d`) and its `source_pool` (`id`, `pool_token` address and `symbol`)."
          },
          "attributes": {
            "type": "object",
            "description": "`stablecoin_only`, `single_asset_exposure` and `impermanent_loss_risk`, matching the fixed filters."
          },
          "pool_token": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string"
              },
              "symbol": {
                "type": "string"
              },
              "address": {
                "type": "string",
                "description": "The pool token's contract address."
              }
            }
          },
          "reward_tokens": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "symbol": {
                  "type": "string"
                },
                "address": {
                  "type": "string",
                  "description": "The token's contract address."
                },
                "decimals": {
                  "type": "number"
                }
              }
            },
            "description": "Reward tokens; empty for most pools in testing."
          },
          "stability_30d": {
            "type": "object",
            "description": "30-day APY stability ratios (`base`, `base_reward`, `base_intrinsic`, `base_reward_intrinsic`), between 0 and 1 in testing; may be null."
          },
          "underlying_tokens": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "symbol": {
                  "type": "string"
                },
                "address": {
                  "type": "string",
                  "description": "The token's contract address."
                },
                "decimals": {
                  "type": "number"
                }
              }
            }
          },
          "available_supply_usd": {
            "type": [
              "number",
              "null"
            ],
            "description": "Available supply in USD; may be null."
          },
          "reference_asset_symbol": {
            "type": "string",
            "description": "The symbol of the asset the pool is measured in."
          }
        }
      },
      "description": "One row per pool, largest TVL first in testing."
    },
    "pagination": {
      "type": "object",
      "properties": {
        "page": {
          "type": "number"
        },
        "limit": {
          "type": "number"
        },
        "total": {
          "type": "number",
          "description": "How many pools match."
        }
      }
    }
  },
  "description": "Matching pools."
}