Exit a Yield
actions_exitConstruct unsigned transactions to unstake or withdraw from a yield. Does NOT execute — the user must sign each transaction exactly as returned (never modify unsignedTransaction). Amounts are human-readable strings ("1.5" = 1.5 tokens, not wei). Submit transactions in stepIndex order. Call yields_get_balances first to verify the staked balance. To complete a PENDING withdrawal (e.g. claiming after a cooldown) that carries a passthrough value, use actions_manage — exit does NOT accept passthrough. For RWA and ERC-4626 vaults, inspect yields_get → mechanics.arguments.exit.fields[] to discover yield-specific options (e.g. useInstantExecution, useMaxAmount, receiverAddress).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| amount | No | Amount to withdraw in token units e.g. "1.5". Optional when useMaxAmount is true on supported yields. | |
| address | Yes | Wallet address that owns the position. | |
| yieldId | Yes | Yield ID from yields_get_all e.g. "ethereum-eth-lido-staking". | |
| outputToken | No | Withdrawal token address, for yields that can pay out in more than one token. Required when yields_get → mechanics.arguments.exit.fields[] lists an outputToken field with required: true; that field's options[] holds the valid addresses. Use "0x" to receive the network's native token. | |
| useAutoClaim | No | Optional. Available on yields whose exit schema lists this field (e.g. Nest RWA vaults). true = authorize the redeem operator to auto-claim settled async redemptions (adds a one-time per-wallet operator approval), so no manual claim is needed after settlement. false or omitted = claim manually once the redemption settles. Honored only when listed in yields_get exit schema. | |
| useMaxAmount | No | Optional. ERC-4626 vault convenience flag. true = redeem the full position (overrides amount). Honored only when listed in yields_get exit schema. | |
| executionMode | No | Transaction execution mode. Defaults to "individual". "batched" is reserved for future use — batch mode is not yet available across all yields and should not be used until fully enabled. | |
| receiverAddress | No | Optional. ERC-4626 vault convenience field. Address that should receive the underlying token from the redemption. Defaults to the position owner (`address`). Honored only when listed in yields_get exit schema. | |
| validatorAddress | No | Validator address to undelegate from. Required for delegation-based yields. | |
| outputTokenNetwork | No | Network of the output token e.g. "ethereum". Only for cross-chain withdrawals, where the destination token is not on the vault's own network. | |
| useInstantExecution | No | Optional. Available on yields whose exit schema lists this field (e.g. Midas mTBILL, Upshift vaults, Marinade on Solana). true = instant redemption (settles same block, may incur a higher fee — Midas docs quote up to 50 bps for mTBILL). false or omitted = standard redemption (queues; for RWAs settlement may take 1-7 business days — poll yields_get_balances and read the "exiting" entry's `date` field for the expected settlement timestamp). Distinct from executionMode (which controls per-step batching, not redemption path). |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| type | Yes | ||
| amount | Yes | ||
| intent | Yes | ||
| status | Yes | ||
| address | Yes | ||
| yieldId | Yes | ||
| amountRaw | Yes | ||
| amountUsd | Yes | ||
| createdAt | Yes | ||
| completedAt | Yes | ||
| rawArguments | Yes | ||
| transactions | Yes | ||
| executionPattern | Yes |