OpenPond
README.md

EVM Signal Bot

Price-signal bot with EVM settlement. Configure via OPENTOOL_PUBLIC_EVM_SIGNAL_BOT_CONFIG.

Signals/pricing use gateway bars; execution uses:

  • relay or uniswap-v3 for swaps
  • aave-v3 borrow flow when execution.mode = "long-short"

Note: for price signals, cadence is derived from resolution.

Example (price signals + long-only execution):

{
  "platform": "evm",
  "asset": "ETH",
  "signalType": "price",
  "indicators": ["rsi"],
  "resolution": "60",
  "countBack": 240,
  "allocationMode": "fixed",
  "amountUsd": 200,
  "schedule": {
    "cron": "0 * * * *",
    "enabled": true,
    "notifyEmail": false
  },
  "price": {
    "rsiPreset": "balanced",
    "rsi": { "overbought": 70, "oversold": 30 }
  },
  "execution": {
    "enabled": true,
    "environment": "testnet",
    "chain": "base-sepolia",
    "mode": "long-only",
    "swapVenue": "relay",
    "slippageBps": 50,
    "indicator": "rsi"
  }
}

Example (price signals + short flow):

{
  "platform": "evm",
  "asset": "ETH",
  "signalType": "price",
  "indicators": ["rsi"],
  "resolution": "60",
  "countBack": 240,
  "allocationMode": "fixed",
  "amountUsd": 150,
  "execution": {
    "enabled": true,
    "environment": "mainnet",
    "chain": "base",
    "mode": "long-short",
    "swapVenue": "uniswap-v3",
    "uniswapPoolFee": 3000,
    "indicator": "rsi"
  }
}

Example (signals only):

{
  "platform": "evm",
  "asset": "ETH",
  "signalType": "price",
  "indicators": ["rsi", "macd", "bb", "price-change", "sma", "ema", "ma-cross", "atr"],
  "resolution": "60",
  "countBack": 240,
  "allocationMode": "percent_equity",
  "percentOfEquity": 2,
  "maxPercentOfEquity": 10,
  "schedule": {
    "cron": "0 8 * * *",
    "enabled": true,
    "notifyEmail": false
  }
}

Example (DCA):

{
  "platform": "evm",
  "asset": "ETH",
  "signalType": "dca",
  "cadence": "weekly",
  "allocationMode": "percent_equity",
  "percentOfEquity": 2,
  "maxPercentOfEquity": 10,
  "execution": {
    "enabled": true,
    "environment": "testnet",
    "chain": "base-sepolia",
    "mode": "long-only",
    "swapVenue": "relay"
  },
  "dca": {
    "preset": "ETH",
    "symbols": ["ETH:1", "WBTC:0.5"],
    "slippageBps": 50
  }
}

Token Overrides

If your asset/quote token is not in the built-in chain map, set:

  • execution.assetTokenAddress, execution.assetTokenDecimals, optional execution.assetTokenSymbol
  • execution.quoteTokenAddress, execution.quoteTokenDecimals, optional execution.quoteTokenSymbol