402.bot
Recipe
live $0.0075 medium Wallet Intelligence

Underperformer Exit Board

Combine wallet context, market signals, liquidity, and an exit quote into a compact exit board.

$0.0075price
7steps
11sources
7ktokens saved
3tool calls compressed
median latency
ZapperMessariUniswapGeminiZapper Token BalancesZapper Token PriceMessari Asset TimeseriesMessari News FeedUniswap Token LiquidityUniswap Swap QuoteGoogle Gemini Flash Structured

Endpoint: /v1/recipes/underperformer-exit-board/run
Capabilities: trading, exit-board, underperformer-review

Why pay for this?

This recipe turns roughly 3 separate tool operations into one paid endpoint call and saves about ~7k tokens saved.

Combines wallet, market, liquidity, and quote context into a compact exit board for weak positions.

Creator

Name: 402.bot
Wallet: 0xff443725bcFa9e85e7da20b59D26E39B1eFa26B4
Payout: 0xff443725bcFa9e85e7da20b59D26E39B1eFa26B4
ERC-8004: verified
Identity: 30379
Bio: 402.bot managed workflow marketplace recipes.
ERC-8004 reputation: 0.0
Creator score: 21

Usage and trust

Success 30d: 0%
Refund 30d: 0%
Paid runs: 0
Creator recipes: 1
Last run: No recent runs

Pipeline

Stage 1

Load wallet balances

fetch_transform

Source: Zapper Token Balances
Step id: balances

Stage 2

Load token price

fetch_transform

Source: Zapper Token Price
Step id: price

Stage 3

Load token price history

fetch_transform

Source: Messari Asset Timeseries
Step id: timeseries

Stage 4

Load recent asset news

fetch_transform

Source: Messari News Feed
Step id: news

Stage 5

Inspect token liquidity

fetch_transform

Source: Uniswap Token Liquidity
Step id: liquidity

Stage 6

Quote the exit

fetch_transform

Source: Uniswap Swap Quote
Step id: quote

Stage 7

Build underperformer exit board

fetch_transform

Source: Google Gemini Flash Structured
Step id: summarize

Recent runs

RunStatusTriggerQueued
No recent runs recorded yet. Runs appear here after the first paid execution.
View raw step spec

Load wallet balances

{
  "id": "balances",
  "kind": "fetch_transform",
  "title": "Load wallet balances",
  "request": {
    "params": {
      "first": 10,
      "chainIds": [
        "{{ $.input.chainId }}"
      ],
      "addresses": [
        "{{ $.input.walletAddress }}"
      ]
    },
    "sourceId": "zapper_token_balances",
    "deliveryFormat": "json"
  }
}

Load token price

{
  "id": "price",
  "kind": "fetch_transform",
  "title": "Load token price",
  "request": {
    "params": {
      "address": "{{ $.input.tokenAddress }}",
      "chainId": "{{ $.input.chainId }}",
      "currency": "USD"
    },
    "sourceId": "zapper_token_price",
    "deliveryFormat": "json"
  }
}

Load token price history

{
  "id": "timeseries",
  "kind": "fetch_transform",
  "title": "Load token price history",
  "request": {
    "params": {
      "limit": 30,
      "assetId": "{{ $.input.assetSlug }}",
      "frequency": "1d",
      "metricKey": "price_usd"
    },
    "sourceId": "messari_asset_timeseries",
    "deliveryFormat": "json"
  }
}

Load recent asset news

{
  "id": "news",
  "kind": "fetch_transform",
  "title": "Load recent asset news",
  "request": {
    "params": {
      "limit": 5,
      "assetKeys": [
        "{{ $.input.assetSlug }}"
      ]
    },
    "sourceId": "messari_news_feed",
    "deliveryFormat": "json"
  }
}

Inspect token liquidity

{
  "id": "liquidity",
  "kind": "fetch_transform",
  "title": "Inspect token liquidity",
  "request": {
    "params": {
      "chainId": "{{ $.input.chainId }}",
      "topPools": 3,
      "tokenAddresses": [
        "{{ $.input.tokenAddress }}"
      ]
    },
    "sourceId": "uniswap_token_liquidity",
    "deliveryFormat": "json"
  }
}

Quote the exit

{
  "id": "quote",
  "kind": "fetch_transform",
  "title": "Quote the exit",
  "request": {
    "params": {
      "amount": "{{ $.input.exitUsd }}",
      "chainId": "{{ $.input.chainId }}",
      "exactSide": "output",
      "slippageBps": "{{ $.input.slippageBps }}",
      "tokenInAddress": "{{ $.input.tokenAddress }}",
      "tokenOutAddress": "0x833589fCD6EDB6E08f4c7C32D4f71b54bdA02913"
    },
    "sourceId": "uniswap_swap_quote",
    "deliveryFormat": "json"
  }
}

Build underperformer exit board

{
  "id": "summarize",
  "kind": "fetch_transform",
  "title": "Build underperformer exit board",
  "request": {
    "params": {
      "input": {
        "news": "{{ $.stepsById.news.output }}",
        "price": "{{ $.stepsById.price.output }}",
        "quote": "{{ $.stepsById.quote.output }}",
        "chainId": "{{ $.input.chainId }}",
        "exitUsd": "{{ $.input.exitUsd }}",
        "balances": "{{ $.stepsById.balances.output }}",
        "assetSlug": "{{ $.input.assetSlug }}",
        "liquidity": "{{ $.stepsById.liquidity.output }}",
        "timeseries": "{{ $.stepsById.timeseries.output }}",
        "tokenAddress": "{{ $.input.tokenAddress }}",
        "walletAddress": "{{ $.input.walletAddress }}"
      },
      "prompt": "Build an underperformer exit board. Focus on whether to exit, reduce, or hold, the exit checklist, the quote, recovery conditions, and concrete next actions.",
      "responseSchema": {
        "type": "object",
        "required": [
          "walletAddress",
          "chainId",
          "tokenAddress",
          "exitStatus",
          "summary",
          "exitChecklist",
          "quote",
          "recoveryConditions",
          "nextActions"
        ],
        "properties": {
          "quote": {
            "type": "object",
            "required": [
              "tokenInSymbol",
              "tokenOutSymbol",
              "amountIn",
              "amountOut",
              "priceImpactBps",
              "routeHops"
            ],
            "properties": {
              "amountIn": {
                "type": "string"
              },
              "amountOut": {
                "type": "string"
              },
              "routeHops": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "tokenInSymbol": {
                "type": "string"
              },
              "priceImpactBps": {
                "type": "number"
              },
              "tokenOutSymbol": {
                "type": "string"
              }
            },
            "description": "Reference exit quote.",
            "additionalProperties": false
          },
          "chainId": {
            "type": "integer"
          },
          "summary": {
            "type": "string"
          },
          "exitStatus": {
            "enum": [
              "exit",
              "reduce",
              "hold"
            ],
            "type": "string"
          },
          "nextActions": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Suggested next actions."
          },
          "tokenAddress": {
            "type": "string"
          },
          "exitChecklist": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "title",
                "status",
                "reason"
              ],
              "properties": {
                "title": {
                  "type": "string"
                },
                "reason": {
                  "type": "string"
                },
                "status": {
                  "enum": [
                    "do_now",
                    "watch",
                    "skip"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            "description": "Exit checklist items."
          },
          "walletAddress": {
            "type": "string"
          },
          "recoveryConditions": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Conditions that would justify holding longer."
          }
        },
        "additionalProperties": false
      },
      "systemInstruction": "You are compressing exit planning into a bounded operator board. Stay grounded in the supplied wallet, market, liquidity, and quote context."
    },
    "sourceId": "google_gemini_flash_structured",
    "deliveryFormat": "json"
  }
}