Tool Reference

Always call yields_get before any action. The yield schema is self-documenting — it defines exactly what inputs are required for that specific yield and chain.

Tools

ToolPurposeKey InputsReturns
yields_get_allSearch and filter available yieldsnetwork, token, type, providerArray of yield objects with APY, TVL, fees, lock periods
yields_getFull metadata for a specific yieldyieldIdReward mechanics, accepted tokens, fees, validator structure, execution requirements
yields_get_validatorsValidator options for delegation-based yieldsyieldIdValidator list with performance metrics
yields_get_balancesBalances and pending actions for a walletwalletAddress, yieldId (optional)Active, entering, exiting, claimable, and locked positions with token and USD values
actions_enterConstruct deposit or stake transaction(s)yieldId, walletAddress, amountIntent execution object with array of unsigned transactions
actions_exitConstruct withdrawal or unstake transaction(s)yieldId, walletAddress, amountIntent execution object with array of unsigned transactions
actions_manageClaim rewards, reinvest, or redelegateyieldId, walletAddress, actionIntent execution object with array of unsigned transactions
💡

Risk scores coming soon. A metadata update adding full per-yield risk scores is in development — enabling agents to filter and rank by risk-adjusted return.

Example Prompts

ToolTry asking
yields_get_all"Find USDC lending yields on Base with APY above 5%"
yields_get"Get the full details for base-usdc-aave-v3-lending"
yields_get_validators"List validators for Ethereum native staking"
yields_get_balances"Show all yield positions and claimable rewards for wallet 0xABC…"
actions_enter"Deposit 500 USDC into Aave v3 on Base"
actions_exit"Withdraw my USDC from Aave v3 on Base"
actions_manage"Claim all pending rewards for wallet 0xABC…"

Transaction Format

Transaction-generating tools (actions_enter, actions_exit, actions_manage) return an intent execution object:

{
  "id": "string",
  "intent": "enter | exit | manage",
  "type": "STAKE | UNSTAKE | SUPPLY | ...",
  "yieldId": "string",
  "address": "string",
  "amount": "string",
  "amountUsd": "string",
  "executionPattern": "synchronous | asynchronous | batch",
  "status": "CREATED | PROCESSING | COMPLETED | FAILED",
  "createdAt": "ISO timestamp",
  "transactions": [
    {
      "stepIndex": 0,
      "id": "string",
      "type": "APPROVAL | SUPPLY | UNSTAKE | CLAIM | ...",
      "title": "string",
      "network": "string",
      "status": "CREATED | BROADCASTED | CONFIRMED | FAILED",
      "hash": "string | null",
      "unsignedTransaction": "object (EVM) | string base64 (Solana) | chain-dependent",
      "gasEstimate": {
        "amount": "string",
        "gasLimit": "string",
        "token": {
          "symbol": "string",
          "network": "string",
          "decimals": "number"
        }
      }
    }
  ]
}

Transaction Fields

FieldTypeDescription
stepIndexnumberExecution order, must be followed sequentially
idstringTransaction ID, used to submit the tx hash after broadcast
typestringAction type, APPROVAL, SUPPLY, UNSTAKE, CLAIM etc.
titlestringHuman readable label e.g. "SUPPLY Transaction"
networkstringTarget chain e.g. "arbitrum", "solana"
statusstringLifecycle state: CREATEDBROADCASTEDCONFIRMEDFAILED
hashstring | nullTx hash — null until broadcasted
unsignedTransactionobject | stringEVM: object with from, to, data, chainId etc. Solana: base64 string. Do not modify.
gasEstimateobject{ amount: string, gasLimit: string, token: { symbol, network, decimals } }


What’s Next