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
| Tool | Purpose | Key Inputs | Returns |
|---|---|---|---|
yields_get_all | Search and filter available yields | network, token, type, provider | Array of yield objects with APY, TVL, fees, lock periods |
yields_get | Full metadata for a specific yield | yieldId | Reward mechanics, accepted tokens, fees, validator structure, execution requirements |
yields_get_validators | Validator options for delegation-based yields | yieldId | Validator list with performance metrics |
yields_get_balances | Balances and pending actions for a wallet | walletAddress, yieldId (optional) | Active, entering, exiting, claimable, and locked positions with token and USD values |
actions_enter | Construct deposit or stake transaction(s) | yieldId, walletAddress, amount | Intent execution object with array of unsigned transactions |
actions_exit | Construct withdrawal or unstake transaction(s) | yieldId, walletAddress, amount | Intent execution object with array of unsigned transactions |
actions_manage | Claim rewards, reinvest, or redelegate | yieldId, walletAddress, action | Intent 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
| Tool | Try 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
| Field | Type | Description |
|---|---|---|
stepIndex | number | Execution order, must be followed sequentially |
id | string | Transaction ID, used to submit the tx hash after broadcast |
type | string | Action type, APPROVAL, SUPPLY, UNSTAKE, CLAIM etc. |
title | string | Human readable label e.g. "SUPPLY Transaction" |
network | string | Target chain e.g. "arbitrum", "solana" |
status | string | Lifecycle state: CREATED → BROADCASTED → CONFIRMED → FAILED |
hash | string | null | Tx hash — null until broadcasted |
unsignedTransaction | object | string | EVM: object with from, to, data, chainId etc. Solana: base64 string. Do not modify. |
gasEstimate | object | { amount: string, gasLimit: string, token: { symbol, network, decimals } } |
Updated 3 days ago
What’s Next
