402.bot
Recipe
live $0.0100 premium Market & Prediction

Base Vault Allocation Scorecard

Combine wallet balances, yield-route context, and bounded Base surface evidence into a compact vault-allocation scorecard.

$0.0100price
4steps
8sources
10ktokens saved
4tool calls compressed
median latency
402.bot RouteAlliumStableEnrichGeminiWallet PortfolioRoute Capability CandidatesStableenrich Exa SearchGoogle Gemini Flash Structured

Endpoint: /v1/recipes/base-vault-allocation-scorecard/run
Capabilities: base-yield, vault-allocation, allocation-scorecard

Why pay for this?

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

Combines wallet balances, visible yield lanes, and Base surface context into one compact vault-allocation scorecard.

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

Materialize wallet portfolio

materialize

Source: Wallet Portfolio
Step id: portfolio

Stage 2

Rank yield-capable routes

fetch_transform

Source: Route Capability Candidates
Step id: routes

Stage 3

Search Base yield surface context

fetch_transform

Source: Stableenrich Exa Search
Step id: search

Stage 4

Build Base vault allocation scorecard

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

Materialize wallet portfolio

{
  "id": "portfolio",
  "kind": "materialize",
  "title": "Materialize wallet portfolio",
  "request": {
    "scope": {
      "walletAddress": "{{ $.input.walletAddress }}"
    },
    "network": "eip155:8453",
    "templateId": "wallet_portfolio",
    "deliveryFormat": "json"
  }
}

Rank yield-capable routes

{
  "id": "routes",
  "kind": "fetch_transform",
  "title": "Rank yield-capable routes",
  "request": {
    "params": {
      "limit": 5,
      "strategy": "balanced",
      "capability": "yield"
    },
    "sourceId": "route_capability_candidates",
    "deliveryFormat": "json"
  }
}

Search Base yield surface context

{
  "id": "search",
  "kind": "fetch_transform",
  "title": "Search Base yield surface context",
  "request": {
    "params": {
      "count": 5,
      "query": "{{ $.input.surfaceName }} Base vault allocation {{ $.input.asset }} {{ $.input.operatorGoal }}"
    },
    "sourceId": "stableenrich_exa_search",
    "deliveryFormat": "json"
  }
}

Build Base vault allocation scorecard

{
  "id": "summarize",
  "kind": "fetch_transform",
  "title": "Build Base vault allocation scorecard",
  "request": {
    "params": {
      "input": {
        "asset": "{{ $.input.asset }}",
        "routes": "{{ $.stepsById.routes.output }}",
        "portfolio": "{{ $.stepsById.portfolio.output.response.result }}",
        "surfaceName": "{{ $.input.surfaceName }}",
        "operatorGoal": "{{ $.input.operatorGoal }}",
        "riskTolerance": "{{ $.input.riskTolerance }}",
        "searchContext": "{{ $.stepsById.search.output }}"
      },
      "prompt": "Build a Base vault allocation scorecard. Focus on the allocation verdict, the best visible lanes, the risk caps, and the next actions.",
      "responseSchema": {
        "type": "object",
        "required": [
          "surfaceName",
          "asset",
          "allocationVerdict",
          "summary",
          "candidateLanes",
          "riskCaps",
          "nextActions"
        ],
        "properties": {
          "asset": {
            "type": "string"
          },
          "summary": {
            "type": "string",
            "maxLength": 280
          },
          "riskCaps": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 120
            },
            "maxItems": 4,
            "description": "Risk caps or guardrails."
          },
          "nextActions": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 120
            },
            "maxItems": 4,
            "description": "Next actions."
          },
          "surfaceName": {
            "type": "string"
          },
          "candidateLanes": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "endpointId",
                "resource",
                "score",
                "fitNote"
              ],
              "properties": {
                "score": {
                  "type": "number"
                },
                "fitNote": {
                  "type": "string",
                  "maxLength": 120
                },
                "resource": {
                  "type": "string",
                  "maxLength": 180
                },
                "endpointId": {
                  "type": "string",
                  "maxLength": 80
                }
              },
              "additionalProperties": false
            },
            "maxItems": 4,
            "description": "Candidate Base yield lanes."
          },
          "allocationVerdict": {
            "enum": [
              "aggressive",
              "balanced",
              "defensive"
            ],
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "systemInstruction": "You are compressing Base vault-allocation work into a bounded scorecard. Stay grounded in the supplied wallet portfolio, route shortlist, and public surface context only."
    },
    "sourceId": "google_gemini_flash_structured",
    "deliveryFormat": "json"
  }
}